Skip to main content

Calculate apy, apr, and wallet information,... in decentralized applications.

Project description

defi-state-querier

Description

Return the asset list of an address in a blockchain. These assets are native token, tokens, nft, and the assets locked in protocols.

Requirement

  • Accuracy
  • Fastest speed
  • Post all requests in a call with maximum batch size and workers

Input

  • address: str (lower case or upper case)
  • block_number: int
  • chain_id: string. Eg: 0x1, 0x38
  • query: array
    • query_id: id of query
    • entity_id: token address, nft or id of protocols like aave-v2, compound, and pancakeswap-amm
    • query_type: one of keywords - token_balance, ntf_balance, deposit_borrow, protocol_reward, and protocol_apy.

Output

[
  {
    "query_id": "<query_id>",
    "entity_id": "<token_address>",
    "query_type": "token_balance",
    "token_balance": 173.84
  },
  {
    "query_id": "<query_id>",
    "entity_id": "<nft_address>",
    "query_type": "nft_balance",
    "nft_balance": 11
  },
  {
    "query_id": "<query_id>",
    "entity_id": "<protocol_id>",
    "query_type": "deposit_borrow",
    "deposit_borrow": {
      "<protocol_address>": {
        "<asset_address_1>": {
          "borrow_amount": 184.4,
          "deposit_amount": 331.5
        },
        "<asset_address_2>": {
          "borrow_amount": 184.4,
          "deposit_amount": 331.5
        }
      }
    }
  },
  {
    "query_id": "<query_id>",
    "entity_id": "<protocol_id>",
    "query_type": "protocol_reward",
    "protocol_reward": {
      "<reward_address>": {
        "amount": 1.4
      }
    }
  },
  {
    "query_id": "<query_id>",
    "entity_id": "<protocol_id>",
    "query_type": "protocol_apy",
    "protocol_apy": {
      "<protocol_address>": {
        "<asset_address_1>": {
          "total_deposit": 331.5,
          "total_borrow": 184.4,
          "deposit_apy": 0.051,
          "borrow_apy": 0.067,
        }
      }
    }
  }
]

Query state data

Preparation

Get some information of protocols in their github or documents.

[1] Create abi files having format like erc20 token abi or aave v3 lending abi.

[2] Get basic information of protocols and save in a python file like aave_v2_eth.py.

Infrastructure

Important files

[1] state_querier.py - create function information, encode function calls, push function calls, and decode response data.

[2] state_processor.py - receive input, combine all encoded function calls in a batch, execute function call batch, process response data, and return output.

[3] protocol_services.py - protocol service pattern file, all protocols should follow this file like aave_v2_services.py. There are 4 main functions of a service: get service info, get token list related to protocol, get asset information supported by protocol (dapp), get all information of function calls, and process response data.

[4] token_services.py - get information of erc 20 function calls and process response data.

Examples

[1] token_information.py - example of using state querier.

[2] wallet_information.py - example of using state processor.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

defi_state_querier-0.5.16.tar.gz (386.8 kB view details)

Uploaded Source

Built Distribution

defi_state_querier-0.5.16-py3-none-any.whl (622.2 kB view details)

Uploaded Python 3

File details

Details for the file defi_state_querier-0.5.16.tar.gz.

File metadata

  • Download URL: defi_state_querier-0.5.16.tar.gz
  • Upload date:
  • Size: 386.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for defi_state_querier-0.5.16.tar.gz
Algorithm Hash digest
SHA256 661773f2d394d97ba46eebfa489b97c59747c27472a2d20d058abe459950c100
MD5 12eeb17e28bd8d19f78529179a03dc8a
BLAKE2b-256 36655f7ab2feaccff9d5f60adc6ae1cd5c4b4e6e2a3cbb9ba39ded50b3b69f84

See more details on using hashes here.

File details

Details for the file defi_state_querier-0.5.16-py3-none-any.whl.

File metadata

File hashes

Hashes for defi_state_querier-0.5.16-py3-none-any.whl
Algorithm Hash digest
SHA256 9acec786751d8e8803881b481a8c807f514c306f9c9205af4fb731c6ccb8fb41
MD5 32b63ce2ceacd4524d1de558ce0cb163
BLAKE2b-256 69a8d9005151c363a193f9aefc4cf49bcde7448d329cd0652d30e90c0f81dc89

See more details on using hashes here.

Supported by

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