Skip to main content

A package for creating a directed graphs based on DeFi protocols

Project description

Defi Graph

test GitHub repo size GitHub last commit PyPI - Version PyPI - Downloads GitHub top language

X (formerly Twitter) Follow

This is package for creating and visualizing graphs in DeFi protocols.

Token Graph

Install

Install using pip or uv

pip install defigraph

# or using uv

uv add defigraph

Modules

  • Edge - describes a path between tokens
  • Vertex - describes a token
  • Graph - describes a defi market
  • Pool - describes trading token pairs

Edge type

Edges store two main state:

  1. self.weight - a weight between two tokens
    • typeof float
    • {0,1} Depends on direction of edge
    • Calculated as -Math.log(self.pool.token_price_{0,1})
  2. self.pool - an instance of a token pool
    • typeof Pool
  3. self._tuple - Allows indexing/iteration of the edge object
    • typeof iter
    • Array of [Vertex1, Vertex2, (self.weight, Pool)]

Pool type

A pool object describing tokens:

  1. self.address - the address of the pool
    • typeof Hex checksum address
  2. self.token0 - a token described as a vertex
    • typeof Vertex
  3. self.token1 - a token described as a vertex
    • typeof Vertex
  4. self.token0_price - the price of token0
    • typeof float
  5. self.token1_price - the price of token1
    • typeof `float
  6. self.fee - describes the pool fee e.g Uniswap (100 | 500 | 1000 | 3000)
    • typeof int

Graph type

An adjacency list graph object desribing a defi market

  1. self.vertices - contains a list of all vertices
    • typeof List[Vertex]
  2. self.adjascency_list - a mapping describing edges in the graph
    • typeof Dict[Vertex, List[Edge]]
    • example: {Vertex: [Edge1, Edge2, Edge3, Edge4]}

Vertex type

A node on the graph describing a token

  1. self.name - name of the token
    • typeof string
  2. self.decimals - number of decimals for token
    • typeof int
  3. self.address - address of token
    • typeof Hex checksum address

Tests

Run tests:

pytest

Usage

See example in docs/notebooks/graph.ipynb

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

defigraph-0.1.2.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

defigraph-0.1.2-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file defigraph-0.1.2.tar.gz.

File metadata

  • Download URL: defigraph-0.1.2.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for defigraph-0.1.2.tar.gz
Algorithm Hash digest
SHA256 32ae51f65c8ac35d7a6ca7d1289c4a55740fa41264e64d83450221f25e6efc51
MD5 66b2ece8b39b3b77da030bad9742de06
BLAKE2b-256 4122d722f815fc4125ba010e4cab33583a162c0ce61481f3220637a34756a823

See more details on using hashes here.

File details

Details for the file defigraph-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: defigraph-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for defigraph-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d3a83e65df37cb85c046a2bd1462e03c13185f56c48995df4afe2f5bd2881eb3
MD5 8b07ffe68b5b05926c320a9dade6a65b
BLAKE2b-256 e3e5a1357245a017368f54639855659eca00cc2de27c4239c31787c2b8e78688

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page