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
, andpancakeswap-amm
- query_type: one of keywords -
token_balance
,ntf_balance
,deposit_borrow
,protocol_reward
, andprotocol_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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 661773f2d394d97ba46eebfa489b97c59747c27472a2d20d058abe459950c100 |
|
MD5 | 12eeb17e28bd8d19f78529179a03dc8a |
|
BLAKE2b-256 | 36655f7ab2feaccff9d5f60adc6ae1cd5c4b4e6e2a3cbb9ba39ded50b3b69f84 |
File details
Details for the file defi_state_querier-0.5.16-py3-none-any.whl
.
File metadata
- Download URL: defi_state_querier-0.5.16-py3-none-any.whl
- Upload date:
- Size: 622.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9acec786751d8e8803881b481a8c807f514c306f9c9205af4fb731c6ccb8fb41 |
|
MD5 | 32b63ce2ceacd4524d1de558ce0cb163 |
|
BLAKE2b-256 | 69a8d9005151c363a193f9aefc4cf49bcde7448d329cd0652d30e90c0f81dc89 |