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
Hashes for defi-state-querier-0.4.15.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d56bd7d1483870e7b45a9a7fff9a702f11557d7ed0e3da45b826bf8de44f209 |
|
MD5 | 596316285712ac86653578ce027011a9 |
|
BLAKE2b-256 | 9ac926c8ef945f42499031988086868a09f5f461c6d8b29fe3cc3cab7ea7731b |
Hashes for defi_state_querier-0.4.15-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11f2d6f2340df88fec605c74b98f4b04d1b2fd69774ea8f442012d8d0d60dd70 |
|
MD5 | d5d532eb1806fc8e0f91e93775478c0c |
|
BLAKE2b-256 | a8105683d07160ff1c55257ece9d3aba14ac88dd30bc78b7f0b256ad176ebd6f |