A simple defi_protocols package
Project description
Python package for Defi Protocols!
🌻 Motivation
Karpatkey tech team has always been dealing with defi protocols for various purposes, like getting prices, underlying tokens, pools, rewards, alerts, fees, reporting, APRs, etc. As a result of this search we created this protocol with all the knowledge acquired to contribute to the web3 and DEFI community. We hope it will be useful for your developments!
Repo Url
Installing from repository
pip3 install git+https://github.com/KarpatkeyDAO/defi-protocols.git#egg=defi_protocols
Installing latest version available on pypi
Config
-
First you will have to modify the config.json
-
You should provide
RPC
endpoints andEXPLORER API KEYS
-
You should set the env
CONFIG_PATH
env with the config.json's absolute path or the config.json can be placed under default package path/path/to/python/site-packages/defi-protocols/config.json
Test
nano /tmp/config.json export CONFIG_PATH=/tmp/config.json
from defi_protocols.constants import config_data print(config_data)
output: {'apikeys': {'etherscan': 'xyz', 'polscan': 'xyz', 'gnosisscan': 'xyz', 'binance': 'xyz', 'avalanche': 'xyz', 'fantom': 'xyz', 'ethplorer': 'xyz'}, 'nodes': {'ethereum': {'latest': ['first', 'second', 'third', 'fourth'], 'archival': ['first', 'second', 'third', 'fourth']}, 'polygon': {'latest': ['first', 'second', 'third', 'fourth'], 'archival': ['first', 'second', 'third', 'fourth']}, 'xdai': {'latest': ['first', 'second', 'third', 'fourth'], 'archival': ['first', 'second', 'third', 'fourth']}, 'binance': {'latest': ['first', 'second', 'third', 'fourth'], 'archival': ['first', 'second', 'third', 'fourth']}, 'avalanche': {'latest': ['first', 'second', 'third', 'fourth'], 'archival': ['first', 'second', 'third', 'fourth']}, 'fantom': {'latest': ['first', 'second', 'third', 'fourth'], 'archival': ['first', 'second', 'third', 'fourth']}, 'ropsten': {'latest': ['first', 'second', 'third', 'fourth'], 'archival': ['first', 'second', 'third', 'fourth']}, 'kovan': {'latest': ['first', 'second', 'third', 'fourth'], 'archival': ['first', 'second', 'third', 'fourth']}, 'goerli': {'latest': ['first', 'second', 'third', 'fourth'], 'archival': ['first', 'second', 'third', 'fourth']}}}
Protocols supported
Protocol | Underlying | Rewards | Fees | docs |
---|---|---|---|---|
AAVE | ✔ | ✔ | - | link |
Agave | ✔ | ✔ | - | link |
Aura | ✔ | ✔ | - | link |
Balancer | ✔ | ✔ | ✔ | link |
Bancor | ✔ | ? | - | link |
Compound | ✔ | pending | - | link |
Convex | ✔ | ✔ | - | link |
Curve | ✔ | ✔ | ✔ | link |
Elk | ✔ | ✔ | ✔ | link |
Honeyswap | ✔ | - | ✔ | link |
Maker | ✔ | - | - | link |
QiDao | ✔ | - | - | link |
SushiSwap | ✔ | ✔ | ✔ | link |
Swapr | ✔ | ✔ | ✔ | link |
Symmetric | ✔ | ✔ | ✔ | link |
Unit Protocol | ✔ | ✔ | - | link |
Uniswap V3 | ✔ | ? | - | link |
Docs
-
Functions
Functions
Defined in functions.py
1: get_node(blockchain, block='latest', index=0)
Description: function returns web3 object of the node
-
Example
a = get_node(ETHEREUM, 'latest', 0) print(a)
output: <web3.main.Web3 object at 0x7fe8c584b8b0>
2: last_block(blockchain, web3=None, block='latest', index=0)
Description: functoion returns last block of the blockchain
-
Example
a = last_block(ETHEREUM, None, 'latest', 0) print(a)
output: 16370420
3: timestamp_to_date(timestamp, utc=0)
Description: function retuns timestamp to date conversion
-
Example
a = timestamp_to_date(1663181616) print(a)
output: 2022-09-14 18:53:36
4: timestamp_to_block(timestamp, blockchain) -> int
Description: function returns timestamp to block conversion
-
Example
a = timestamp_to_block(1663181616, ETHEREUM) print(a)
output: 15534540
5: date_to_timestamp(datestring, utc=0)
Description: function returns date to timestamp conversion
-
Example
a = date_to_timestamp('2022-01-14 00:00:00') print(a)
output: 1642118400
6: date_to_block(datestring, blockchain, utc=0) -> int
Description: function returns date to block conversion
-
Example
a = date_to_block('2022-01-14 00:00:00', ETHEREUM) print(a)
output: 14000270
7: block_to_timestamp(block, blockchain)
Description: function returns block to timestamp conversion
-
Example
a = block_to_timestamp(14000200, ETHEREUM) print(a)
output: 1642117536
8: block_to_date(block, blockchain, utc=0)
Description: function returns block to date conversion
-
Example
a = block_to_date(14000270, ETHEREUM) print(a)
output: 2022-01-13 23:59:54
9: get_blocks_per_year(blockchain)
Description: function returns blocks per year for a blockchain
-
Example
a = get_blocks_per_year(ETHEREUM) print(a)
output: 2398217
10: token_info(token_address, blockchain)
Description: function returns token related info
-
Example
a = token_info('0x6810e776880C02933D47DB1b9fc05908e5386b96', ETHEREUM) print (a)
output: {'address': '0x6810e776880c02933d47db1b9fc05908e5386b96', 'name': 'Gnosis', 'decimals': '18', 'symbol': 'GNO', 'totalSupply': '10000000000000000000000000', 'owner': '', 'txsCount': 154486, 'transfersCount': 318423, 'lastUpdated': 1673304547, 'issuancesCount': 0, 'holdersCount': 16650, 'website': 'https://gnosis.pm/', 'image': '/images/GNO6810e776.png', 'ethTransfersCount': 0, 'price': {'rate': 91.2045572764551, 'diff': 4, 'diff7d': 8.78, 'ts': 1673304180, 'marketCapUsd': 236182227.06842083, 'availableSupply': 2589588, 'volume24h': 1954362.90295114, 'volDiff1': 17.234718455656363, 'volDiff7': 1358.516624011187, 'volDiff30': 108.75660649607727, 'diff30d': 1.367903603382814, 'bid': 323.4, 'currency': 'USD'}, 'publicTags': ['DEX', 'Protocol', 'DeFi'], 'countOps': 318423}
11: balance_of(address, contract_address, block, blockchain, execution=1, web3=None, index=0, decimals=True)
Description: function returns ballance of given wallet for given contract
-
Example
a = balance_of('0x2D0669DB84f11A9EAD41e57Ce2f242D92111a58F', '0x6810e776880C02933D47DB1b9fc05908e5386b96', 'latest', ETHEREUM) print(a)
output: 0.0
12: total_supply(token_address, block, blockchain, execution=1, web3=None, index=0, decimals=True)
Description: fucntion returns total suppy for a given token contract address
-
Example
a = total_supply('0x6810e776880C02933D47DB1b9fc05908e5386b96', 'latest', ETHEREUM) print(a)
output: 10000000.0
13: get_decimals(token_address, blockchain, execution=1, web3=None, block='latest', index=0)
Description: function returns decimals for given token address
14: get_symbol(token_address, blockchain, execution=1, web3=None, block='latest', index=0) -> str
Description: function returns symbol for given toke contract address
15: get_contract_abi(contract_address, blockchain)
fucntion returns abi for given contract address
16: get_contract(contract_address, blockchain, web3=None, abi=None, block='latest', index=0)
Description: function returns web3 contract object for given contract object
-
Example
print(get_contract('0xdAC17F958D2ee523a2206206994597C13D831ec7', ETHEREUM))
output: <web3._utils.datatypes.Contract object at 0x7f1dfdcb7af0>
16: get_contract_proxy_abi(contract_address, abi_contract_address, blockchain, web3=None, block='latest', index=0)
Description: function returns abi for given contract with the help of proxy conract
-
Example
# a = get_contract_abi('0xdc31ee1784292379fbb2964b3b9c4124d8f89c60', GOERLI) # print(a) b = get_contract_proxy_abi('0xdc31ee1784292379fbb2964b3b9c4124d8f89c60', '0xe2E52C2D0D64209b8DD1854371A4C673c13448f0', GOERLI) print(b)
output: <web3._utils.datatypes.Contract object at 0x7f61efe07af0>
17: search_proxy_contract(contract_address, blockchain, web3=None)
Description: function returns proxy contracts for given contract
-
Example
d = search_proxy_contract('0x4aa42145Aa6Ebf72e164C9bBC74fbD3788045016', XDAI) print(d)
output: <web3._utils.datatypes.Contract object at 0x7f0ac475ba90>
18: get_abi_function_signatures(contract_address, blockchain, web3=None, abi_address=None)
Description: function returns function signatures for givenn contract address
-
Example
d = get_abi_function_signatures('0x4aa42145Aa6Ebf72e164C9bBC74fbD3788045016', XDAI) print(d)
output: [{'name': 'claimValues', 'signature': 'claimValues(address,address)', 'inline_signature': 'claimValues(address,address)', 'components': ['address', 'address'], 'stateMutability': 'nonpayable'}, {'name': 'owner', 'signature': 'owner()', 'inline_signature': 'owner()', 'components': [], 'stateMutability': 'view'}, {'name': 'transferOwnership', 'signature': 'transferOwnership(address)', 'inline_signature': 'transferOwnership(address)', 'components': ['address'], 'stateMutability': 'nonpayable'}]
19: get_data(contract_address, function_name, parameters, blockchain, web3=None, abi_address=None)
Description: function returns data of a specific function of given contract address
-
Example
d = get_data('0x4aa42145Aa6Ebf72e164C9bBC74fbD3788045016', 'owner', None, XDAI) print(d)
output: 0x8da5cb5b
20: get_token_tx(token_address, contract_address, block_start, block_end, blockchain)
Description: function returns transactions on given contract for given token address for given block range
-
Example
e = get_token_tx('0x4ECaBa5870353805a9F068101A40E0f32ed605C6', '0xc30141B657f4216252dc59Af2e7CdB9D8792e1B0', 25813406, 'latest', XDAI) print(e)
output: [{'blockNumber': '25848427', 'timeStamp': '1673114785', 'hash': '0x75a397e95e3e5761b21f05ead73834455fda37888ec27079a8f1a45b24b6d1cb', 'nonce': '686', 'blockHash': '0x7f818d65d54f4a00ae968965a13d5d7cd113b67f0fba326d674cefa3ec8bb2b6', 'from': '0xc30141b657f4216252dc59af2e7cdb9d8792e1b0', 'contractAddress': '0x4ecaba5870353805a9f068101a40e0f32ed605c6', 'to': '0xac313d7491910516e06fbfc2a0b5bb49bb072d91', 'value': '101454525', 'tokenName': 'Tether USD on xDai', 'tokenSymbol': 'USDT', 'tokenDecimal': '6', 'transactionIndex': '1', 'gas': '926025', 'gasPrice': '1825346000', 'gasUsed': '562326', 'cumulativeGasUsed': '583326', 'input': 'deprecated', 'confirmations': '36987'}, {'blockNumber': '25848427', 'timeStamp': '1673114785', 'hash': '0x75a397e95e3e5761b21f05ead73834455fda37888ec27079a8f1a45b24b6d1cb', 'nonce': '686', 'blockHash': '0x7f818d65d54f4a00ae968965a13d5d7cd113b67f0fba326d674cefa3ec8bb2b6', 'from': '0x1111111254fb6c44bac0bed2854e76f90643097d', 'contractAddress': '0x4ecaba5870353805a9f068101a40e0f32ed605c6', 'to': '0xc30141b657f4216252dc59af2e7cdb9d8792e1b0', 'value': '101454525', 'tokenName': 'Tether USD on xDai', 'tokenSymbol': 'USDT', 'tokenDecimal': '6', 'transactionIndex': '1', 'gas': '926025', 'gasPrice': '1825346000', 'gasUsed': '562326', 'cumulativeGasUsed': '583326', 'input': 'deprecated', 'confirmations': '36987'}, {'blockNumber': '25842520', 'timeStamp': '1673084125', 'hash': '0x521a6ed38b407d3101456135fdae3428e5ce32eb6749ed8bee1beeb28591bb79', 'nonce': '471', 'blockHash': '0x322acd3bad3b462d053e014c088b164c7d17491d683d946d7edb4f7374bc14c4', 'from': '0xc30141b657f4216252dc59af2e7cdb9d8792e1b0', 'contractAddress': '0x4ecaba5870353805a9f068101a40e0f32ed605c6', 'to': '0xac313d7491910516e06fbfc2a0b5bb49bb072d91', 'value': '36272803', 'tokenName': 'Tether USD on xDai', 'tokenSymbol': 'USDT', 'tokenDecimal': '6', 'transactionIndex': '5', 'gas': '828950', 'gasPrice': '2000000007', 'gasUsed': '535324', 'cumulativeGasUsed': '886617', 'input': 'deprecated', 'confirmations': '42894'}, {'blockNumber': '25842520', 'timeStamp': '1673084125', 'hash': '0x521a6ed38b407d3101456135fdae3428e5ce32eb6749ed8bee1beeb28591bb79', 'nonce': '471', 'blockHash': '0x322acd3bad3b462d053e014c088b164c7d17491d683d946d7edb4f7374bc14c4', 'from': '0x1111111254fb6c44bac0bed2854e76f90643097d', 'contractAddress': '0x4ecaba5870353805a9f068101a40e0f32ed605c6', 'to': '0xc30141b657f4216252dc59af2e7cdb9d8792e1b0', 'value': '36272803', 'tokenName': 'Tether USD on xDai', 'tokenSymbol': 'USDT', 'tokenDecimal': '6', 'transactionIndex': '5', 'gas': '828950', 'gasPrice': '2000000007', 'gasUsed': '535324', 'cumulativeGasUsed': '886617', 'input': 'deprecated', 'confirmations': '42894'}, {'blockNumber': '25814478', 'timeStamp': '1672938840', 'hash': '0x48c01f261497eb2ab9a82dfd019d4d019b7d5bd9707399e1ae8ec0891542bf29', 'nonce': '3132', 'blockHash': '0xcb1b78d76b7ca57c8feaff09862662d071a9fefe435e7dc7baf14e5b954ac45b', 'from': '0xc30141b657f4216252dc59af2e7cdb9d8792e1b0', 'contractAddress': '0x4ecaba5870353805a9f068101a40e0f32ed605c6', 'to': '0xac313d7491910516e06fbfc2a0b5bb49bb072d91', 'value': '48987164', 'tokenName': 'Tether USD on xDai', 'tokenSymbol': 'USDT', 'tokenDecimal': '6', 'transactionIndex': '1', 'gas': '1007940', 'gasPrice': '1500000007', 'gasUsed': '610897', 'cumulativeGasUsed': '802730', 'input': 'deprecated', 'confirmations': '70936'}, {'blockNumber': '25814478', 'timeStamp': '1672938840', 'hash': '0x48c01f261497eb2ab9a82dfd019d4d019b7d5bd9707399e1ae8ec0891542bf29', 'nonce': '3132', 'blockHash': '0xcb1b78d76b7ca57c8feaff09862662d071a9fefe435e7dc7baf14e5b954ac45b', 'from': '0x1111111254fb6c44bac0bed2854e76f90643097d', 'contractAddress': '0x4ecaba5870353805a9f068101a40e0f32ed605c6', 'to': '0xc30141b657f4216252dc59af2e7cdb9d8792e1b0', 'value': '48987164', 'tokenName': 'Tether USD on xDai', 'tokenSymbol': 'USDT', 'tokenDecimal': '6', 'transactionIndex': '1', 'gas': '1007940', 'gasPrice': '1500000007', 'gasUsed': '610897', 'cumulativeGasUsed': '802730', 'input': 'deprecated', 'confirmations': '70936'}]
21: get_tx_list(contract_address, block_start, block_end, blockchain)
Description: function returns txs list for given contract address for given block range
-
Example
e = get_tx_list('0x4ECaBa5870353805a9F068101A40E0f32ed605C6', 25884100, 'latest', XDAI) print(e)
output: [{'blockNumber': '25884304', 'timeStamp': '1673301985', 'hash': '0x2eb63c1d0af69b41969515885badb605a791a1ae4917339d895294ec88b8c4c2', 'nonce': '3', 'blockHash': '0x1f5189238d55e31fd9510022a3a50d0649f5a8110601ed138f4661a1de862460', 'transactionIndex': '41', 'from': '0x10e35f286bc156272c6846b97d1a95b9555ced4b', 'to': '0x4ecaba5870353805a9f068101a40e0f32ed605c6', 'value': '0', 'gas': '289343', 'gasPrice': '2910000001', 'isError': '1', 'txreceipt_status': '0', 'input': '0x4000aea0000000000000000000000000f6a78083ca3e2a662d6dd1703c939c8ace2e268d00000000000000000000000000000000000000000000000000000000124616160000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001410e35f286bc156272c6846b97d1a95b9555ced4b000000000000000000000000', 'contractAddress': '', 'cumulativeGasUsed': '3381775', 'gasUsed': '30207', 'confirmations': '1169', 'methodId': '0x4000aea0', 'functionName': 'transferAndCall(address _to, uint256 _value, bytes _data)'}, {'blockNumber': '25884303', 'timeStamp': '1673301980', 'hash': '0x75b29da1b0ea555d70955ebeacc2797e46f60deb6540805ed68a6585c78f8699', 'nonce': '2', 'blockHash': '0x32044065f599e8c4f4c5fb9ce3e17b0d3633678b10b462e0bd3417a0caaf9636', 'transactionIndex': '0', 'from': '0x10e35f286bc156272c6846b97d1a95b9555ced4b', 'to': '0x4ecaba5870353805a9f068101a40e0f32ed605c6', 'value': '0', 'gas': '289343', 'gasPrice': '2910000001', 'isError': '0', 'txreceipt_status': '1', 'input': '0x4000aea0000000000000000000000000f6a78083ca3e2a662d6dd1703c939c8ace2e268d00000000000000000000000000000000000000000000000000000000124616160000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001410e35f286bc156272c6846b97d1a95b9555ced4b000000000000000000000000', 'contractAddress': '', 'cumulativeGasUsed': '227528', 'gasUsed': '227528', 'confirmations': '1170', 'methodId': '0x4000aea0', 'functionName': 'transferAndCall(address _to, uint256 _value, bytes _data)'}]
22: get_logs(block_start, block_end, address, topic0, blockchain, **kwargs)
Description: function returns logs data for given block range for specified contract/address
** Example needed **
23: get_block_samples(start_date, samples, blockchain, end_date='latest', utc=0, dates=False)
Description: function returns blah blahh blaaahhh
** Work needs to be done **
24: is_archival(endpoint) -> bool
Description: function returns if node is an archival node or a full node.
-
-
Aave
Aave
Defined in Aave.py
1: get_reserves_tokens(pdp_contract, block)
Description: function returns reserved tokens for aave protocol v2
-
Example
from defi_protocols.functions import * from defi_protocols import Aave f1 = get_contract('0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d', ETHEREUM) f2 = Aave.get_reserves_tokens(f1, 'latest') print(f2)
output: ['0xdAC17F958D2ee523a2206206994597C13D831ec7', '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', '0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e', '0xE41d2489571d322189246DaFA5ebDe1F4699F498', '0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', '0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9', '0x0D8775F648430679A709E98d2b0Cb6250d2887EF', '0x4Fabb145d64652a948d72533023f6E7A623C7C53', '0x6B175474E89094C44Da98b954EedeAC495271d0F', '0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c', '0xdd974D5C2e2928deA5F71b9825b8b646686BD200', '0x514910771AF9Ca656af840dff83E8264EcF986CA', '0x0F5D2fB29fb7d3CFeE444a200298f468908cC942', '0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2', '0x408e41876cCCDC0F92210600ef50372656052a38', '0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F', '0x57Ab1ec28D129707052df4dF418D58a2D46d5f51', '0x0000000000085d4780B73119b644AE5ecd22b376', '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', '0xD533a949740bb3306d119CC777fa900bA034cd52', '0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd', '0xba100000625a3754423978a60c9317c58a424e3D', '0x8798249c2E607446EfB7Ad49eC89dD1865Ff4272', '0xD5147bc8e386d91Cc5DBE72099DAC6C9b99276F5', '0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919', '0xD46bA6D942050d489DBd938a2C909A5d5039A161', '0x8E870D67F660D95d5be530380D0eC0bd388289E1', '0x1494CA1F11D487c2bBe4543E90080AeBa4BA3C2b', '0x853d955aCEf822Db058eb8505911ED77F175b99e', '0x956F47F50A910163D8BF957Cf5846D573E7f87CA', '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', '0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72', '0xa693B19d2931d498c5B318dF961919BB4aee87a5', '0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B', '0x111111111117dC0aa78b770fA6A738034120C302', '0x5f98805A4E8be255a32880FDeC7F6728C6568bA0']
2: get_reserves_tokens_balances(web3, wallet, block, blockchain, decimals=True)
Description: function returns reserved token ballances for given wallet
-
Example
from defi_protocols.functions import * from defi_protocols import Aave web3 = get_node(ETHEREUM, 'latest', 0) f2 = Aave.get_reserves_tokens_balances(web3, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f2)
output: [['0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', -25.1759987], ['0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 1385.4727732126728]]
3: get_data(wallet, block, blockchain, execution = 1, web3=None, index=0, decimals=True)
Description: function returns aave protocol data for given wallet
-
Example
from defi_protocols.functions import * from defi_protocols import Aave f3 = Aave.get_data('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f3)
output: {'collateral_ratio': 422.8517007532872, 'liquidation_ratio': 120.48192771084337, 'eth_price_usd': 1321.28, 'collaterals': [{'token_address': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'token_amount': 1385.4727732126728, 'token_price_usd': 1309.82714496}], 'debts': [{'token_address': '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', 'token_amount': 25.17600199, 'token_price_usd': 17046.574635530906}]}
4: get_all_rewards(wallet, block, blockchain, execution = 1, web3=None, index=0, decimals=True)
Description: function returns all the rewards for given wallet from aave protocol
-
Example
from defi_protocols.functions import * from defi_protocols import Aave f4 = Aave.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f4)
output: [['0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9', 5.046433045046507]]
5: underlying(wallet, block, blockchain, execution=1, web3=None, index=0, decimals=True, reward=False)
Description: function returns underlying tokens for given wallter from aave protocol
-
Example
from defi_protocols.functions import * from defi_protocols import Aave f5 = Aave.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM, reward=True) print(f5)
output: [[['0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', -25.17600614], ['0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 1385.4727732126728]], [['0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9', 5.046433045046507]]]
-
-
Agave
Agave
Defined in Agave.py
1: get_reserves_tokens(pdp_contract, block)
Description: function returns reserved tokens for agave protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Agave f1 = Agave.get_contract('0x24dCbd376Db23e4771375092344f5CbEA3541FC0', XDAI) f2 = Agave.get_reserves_tokens(f1, 'latest') print(f2)
output: ['0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', '0xE2e73A1c69ecF83F464EFCE6A5be353a37cA09b2', '0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', '0x8e5bBbb09Ed1ebdE8674Cda39A0c169401db4252', '0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1', '0x21a42669643f45Bc0e086b8Fc2ed70c23D67509d', '0x4ECaBa5870353805a9F068101A40E0f32ed605C6']
2: get_reserves_tokens_balances(web3, wallet, block, blockchain, decimals=True)
Description: function returns reserved token balances for given wallet address
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Agave web3 = get_node(XDAI, 'latest', 0) f2 = Agave.get_reserves_tokens_balances(web3, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', XDAI) print(f2)
output: []
3: get_data(wallet, block, blockchain, execution=1, web3=None, index=1, decimals=True)
Description: function returns agave data for given wallet address
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Agave f3 = Agave.get_data('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', XDAI) print(f3)
output: None
4: get_all_rewards(wallet, block, blockchain, execution=1, web3=None, index=0, decimals=True)
Description: function returns all rewards for given wallet on agave protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Agave f4 = Agave.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', XDAI) print(f4)
output: [['0x3a97704a1b25F08aa230ae53B352e2e72ef52843', 0.0]]
5: underlying(wallet, block, blockchain, execution=1, web3=None, index=0, decimals=True, reward=False)
Description: function returns underlying tokens for given wallet from agave protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Agave f5 = Agave.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', XDAI, reward=True) print(f5)
output: [[], [['0x3a97704a1b25F08aa230ae53B352e2e72ef52843', 0.0]]]
-
-
Aura
Aura
Defined in Aura.py
1: get_pool_info(booster_contract, lptoken_address, block)
Description: function returns pool info for Aura protocol
# get_pool_info - Retrieves the result of the pool_info method if there is a match for the lptoken_address - Otherwise it returns None # Output: pool_info method return a list with the following data: # [0] lptoken address, [1] token address, [2] gauge address, [3] crvRewards address, [4] stash adress, [5] shutdown bool
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura f0 = get_contract('0xA57b8d98dAE62B26Ec3bcC4a365338157060B234', ETHEREUM) f1 = Aura.get_pool_info(f0, '0xCfCA23cA9CA720B6E98E3Eb9B6aa0fFC4a5C08B9', 'latest') print(f1)
output: ['0xCfCA23cA9CA720B6E98E3Eb9B6aa0fFC4a5C08B9', '0x70751c02db1a5e48eD333c919A7B94e34a4E07E2', '0x275dF57d2B23d53e20322b4bb71Bf1dCb21D0A00', '0x712CC5BeD99aA06fC4D5FB50Aea3750fA5161D0f', '0xE61df2CE6CC89467bb30f44E0d5cABfCEdc115BE', False]
2: get_rewards(web3, rewarder_contract, wallet, block, blockchain, decimals=True)
Description: function returns for given wallet from Aura protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura web3 = get_node(ETHEREUM, 'latest', 0) f1 = get_contract('0x00A7BA8Ae7bca0B10A32Ea1f8e2a1Da980c6CAd2', ETHEREUM) f2 = Aura.get_rewards(web3, f1, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f2)
output: ['0xba100000625a3754423978a60c9317c58a424e3D', 4017.2429829677944]
3: get_extra_rewards(web3, rewarder_contract, wallet, block, blockchain, decimals=True)
Description: function returns extra rewards from Aura protocol for given wallet
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura web3 = get_node(ETHEREUM, 'latest', 0) f1 = get_contract('0x00A7BA8Ae7bca0B10A32Ea1f8e2a1Da980c6CAd2', ETHEREUM) f3 = Aura.get_extra_rewards(web3, f1, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f3)
output: [['0xA13a9247ea42D743238089903570127DdA72fE44', 30.77849807228373]]
4: get_extra_rewards_airdrop(wallet, block, blockchain, execution=1, web3=None, index=0, decimals=True)
Description: function returns extra rewards/airdrop for given wallet by Aura protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura f4 = Aura.get_extra_rewards_airdrop('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f4)
output: []
5: get_aura_mint_amount(web3, bal_earned, block, blockchain, decimals=True)
** Help needed **
Description: function returns ...
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura
output: []
6: get_all_rewards(wallet, lptoken_address, block, blockchain, execution=1, web3=None, index=0, decimals=True, bal_rewards_contract=None)
Description: function returns all the rewards for givrn wallet on/by Aura protocol
# Output: # 1 - List of Tuples: [aura_token_address, locked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura f6 = Aura.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xCfCA23cA9CA720B6E98E3Eb9B6aa0fFC4a5C08B9', 'latest', ETHEREUM) print(f6)
output: [['0xba100000625a3754423978a60c9317c58a424e3D', 182.74770874952657], ['0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF', 656.3832186003915]]
7: get_locked(wallet, block, blockchain, execution=1, web3=None, index=0, reward=False, decimals=True)
Description: function returns locked token on Aura protocol for given wallet address
# Output: # 1 - List of Tuples: [aurabal_token_address, staked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura f7 = Aura.get_locked('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f7)
output: [['0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF', 1180484.6172952577]]
8: get_staked(wallet, block, blockchain, web3=None, execution=1, index=0, reward=False, decimals=True)
Description: function returns staked token for given wallet on Aura protocol
# Output: # 1 - List of Tuples: [aurabal_token_address, staked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura f8 = Aura.get_staked('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f8)
output: [['0x616e8BfA43F920657B3497DBf40D6b1A02D4608d', 340828.48444727337]]
9: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, reward=False, no_balancer_underlying=False, decimals=True)
Description: function returns underlying tokens for given wallter from Aura protocol
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance, staked_balance] | [liquidity_token_address, staked_balance] -> depending on 'no_balancer_underlying' value # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura f9 = Aura.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xCfCA23cA9CA720B6E98E3Eb9B6aa0fFC4a5C08B9', 'latest', ETHEREUM) print(f9)
output: [['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 95.43873343809126], ['0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF', 83620.16903591678]]
10: pool_balances(lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns pool balances for given lptoken address
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Aura f10 = Aura.pool_balances('0xCfCA23cA9CA720B6E98E3Eb9B6aa0fFC4a5C08B9', 'latest', ETHEREUM) print(f10)
output: [['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 2680.4587867269847], ['0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF', 2348526.7329675243]]
11: update_db()
** Help needed **
Description: function updates the db
-
-
Balancer
Balancer
Defined in Balancer.py
1: get_lptoken_data(lptoken_address, block, blockchain, web3=None, execution=1, index=0)
Description: function returns lp token data from balancer protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Balancer f1 = Balancer.get_lptoken_data('0x7B50775383d3D6f0215A8F290f2C9e2eEBBEceb2', 'latest', ETHEREUM) print(f1)
output: {'contract': <web3._utils.datatypes.Contract object at 0x7f3c66cb6500>, 'poolId': b'{PwS\x83\xd3\xd6\xf0!Z\x8f)\x0f,\x9e.\xeb\xbe\xce\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe', 'decimals': 18, 'totalSupply': 4025945672168376636231543, 'isBoosted': True, 'bptIndex': 1}
2: get_bal_rewards(web3, gauge_contract, wallet, block, blockchain, decimals=True)
Description: function returns total balancer rewards for given wallet and to a specific Gauge
# Output: # 1 - Tuples: [bal_token_address, balance]
** Help needed **
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Balancer web3 = get_node(ETHEREUM, 'latest', 0) f1 = get_contract('0x68d019f64A7aa97e2D4e7363AEE42251D08124Fb', ETHEREUM) f2 = Balancer.get_bal_rewards(web3, 'f1', '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f2)
output:
3: get_rewards(web3, gauge_contract, wallet, block, blockchain, decimals=True)
Description: function returns rewards for the given wallet by balancer protocol
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Balancer web3 = get_node(ETHEREUM, 'latest', 0) f1 = get_contract('0x68d019f64A7aa97e2D4e7363AEE42251D08124Fb', ETHEREUM) f3 = Balancer.get_rewards(web3, f1, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM, decimals=True) print(f3)
output: []
4: get_vebal_rewards(web3, wallet, block, blockchain, decimals=True)
Description: function returns vebal rewards for given wallet by Balancer protocol
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Balancer web3 = get_node(ETHEREUM, 'latest', 0) f4 = Balancer.get_vebal_rewards(web3, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM, decimals=True) print(f4)
output: [['0xba100000625a3754423978a60c9317c58a424e3D', 17.470227018260175], ['0x7B50775383d3D6f0215A8F290f2C9e2eEBBEceb2', 111.44084143506045], ['0xA13a9247ea42D743238089903570127DdA72fE44', 25.141921181623832]]
5: get_all_rewards(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, gauge_address=None)
Description: function returns all the rewards for the given wallet by Balancer protocol
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Balancer f5 = Balancer.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x7B50775383d3D6f0215A8F290f2C9e2eEBBEceb2', 'latest', ETHEREUM) print(f5)
output: [['0xba100000625a3754423978a60c9317c58a424e3D', 0.0]]
6: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, reward=False, aura_staked=None, decimals=True)
Description: function returns underlying token for given wallet on Balancer protocol
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance, staked_balance, locked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Balancer f6 = Balancer.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x7B50775383d3D6f0215A8F290f2C9e2eEBBEceb2', 'latest', ETHEREUM) print(f6)
output: [['0xdAC17F958D2ee523a2206206994597C13D831ec7', 1.847331235617916e-12, 0.0, 0.0], ['0x6B175474E89094C44Da98b954EedeAC495271d0F', 1.8079866128717203e-12, 0.0, 0.0], ['0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 1.7579658914113204e-12, 0.0, 0.0]]
7: pool_balances(lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns pool balances on Balancer protocol
# Output: a list with 1 element: # 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Balancer f7 = Balancer.pool_balances('0x7B50775383d3D6f0215A8F290f2C9e2eEBBEceb2', 'latest', ETHEREUM) print(f7)
output: [['0xdAC17F958D2ee523a2206206994597C13D831ec7', 1396069.6262515152], ['0x6B175474E89094C44Da98b954EedeAC495271d0F', 1366336.012581301], ['0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 1328534.2340286463]]
8: swap_fees(lptoken_address, block_start, block_end, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns the swap fees for given lptoken on Balancer protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Balancer f8 = Balancer.swap_fees('0x7B50775383d3D6f0215A8F290f2C9e2eEBBEceb2', 16374265, 'latest', ETHEREUM) print(f8)
output: {'swaps': [{'block': 16376941, 'tokenIn': '0x9210F1204b5a24742Eba12f710636D76240dF3d0', 'amountIn': 0.8095032036253991}, {'block': 16378850, 'tokenIn': '0x804CdB9116a10bB78768D3252355a1b18067bF8f', 'amountIn': 0.9885184780730925}]}
-
-
Bancor
Bancor
Defined in Bancor.py
1: underlying(token_address, wallet, block, blockchain, web3=None, execution=1, index=0, decimals=True, reward=False)
Description: function returns the underlying token from bancor protocol for given wallet
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Bancor f1 = Bancor.underlying('0x36FAbE4cAeF8c190550b6f93c306A5644E7dCef6', '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f1)
output: [['0x903bEF1736CDdf2A537176cf3C64579C3867A881', 41633.599736141], ['0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C', 0.0]]
2: underlying_all(wallet, block, blockchain, web3=None, execution=1, index=0, decimals=True, reward=False)
Description: function returns all underlying tokens for given wallet
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Bancor f2 = Bancor.underlying_all('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f2)
output: None
-
-
Convex
Convex
Defined in Convex.py
1: get_pool_info(lptoken_address, block)
Description: function returns pool related info for given lp token
# Output: pool_info method return a list with the following data: # [0] lptoken address, [1] token address, [2] gauge address, [3] crvRewards address, [4] stash adress, [5] shutdown bool
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Convex f1 = Convex.get_pool_info('0x9fC689CCaDa600B6DF723D9E47D84d76664a1F23', 'latest') print(f1)
output: ['0x9fC689CCaDa600B6DF723D9E47D84d76664a1F23', '0xA1c3492b71938E144ad8bE4c2fB6810b01A43dD8', '0xBC89cd85491d81C6AD2954E6d0362Ee29fCa8F53', '0x8B55351ea358e5Eda371575B031ee24F462d503e', '0x0000000000000000000000000000000000000000', False]
2: get_rewards(web3, rewarder_contract, wallet, block, blockchain, decimals=True)
Description: function returns rewards for given wallet on Conexx protocol
# Output: # 1 - Tuples: [token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Convex web3 = get_node(ETHEREUM, 'latest', 0) f1 = get_contract('0xf34DFF761145FF0B05e917811d488B441F33a968', ETHEREUM) f2 = Convex.get_rewards(web3, f1, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f2)
output: ['0xD533a949740bb3306d119CC777fa900bA034cd52', 1376.4851165071896]
3: get_extra_rewards(web3, crv_rewards_contract, wallet, block, blockchain, decimals=True)
Description: function returns extra rewards by convex protocol for given wallet
# 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Convex web3 = get_node(ETHEREUM, 'latest', 0) f1 = get_contract('0xf34DFF761145FF0B05e917811d488B441F33a968', ETHEREUM) f3 = Convex.get_extra_rewards(web3, f1, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f3)
output: []
3: get_cvx_mint_amount(web3, crv_earned, block, blockchain, decimals=True)
** Help needed **
Description: function returns
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Convex
output: []
4: get_all_rewards(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, crv_rewards_contract=None)
Description: function returns all rewards for given wallet on Convex protocol
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Convex f1 = get_contract('0xf34DFF761145FF0B05e917811d488B441F33a968', ETHEREUM) f4 = Convex.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'f1', 'latest', ETHEREUM) print(f4)
output: None
5: get_locked(wallet, block, blockchain, web3=None, execution=1, index=0, reward=False, decimals=True)
Description: function returns locked tokens for given wallet on Convex protocol
# Output: # 1 - List of Tuples: [cvx_token_address, locked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Convex f5 = Convex.get_locked('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f5)
output: [['0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B', 8943.594875319563]]
6: get_staked(wallet, block, blockchain, web3=None, execution=1, index=0, reward=False, decimals=True)
Description: function returns staked token for given wallet on Convex protocol
# Output: # 1 - List of Tuples: [cvx_token_address, staked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Convex f6 = Convex.get_staked('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f6)
output: [['0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B', 0.0]]
7: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, reward=False, decimals=True, no_curve_underlying=False)
Description: function returns underlying token for given wallet on Convex protocol
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance, staked_balance] | [liquidity_token_address, staked_balance] -> depending on 'no_curve_underlying' value # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Convex f7 = Convex.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x9fC689CCaDa600B6DF723D9E47D84d76664a1F23', 'latest', ETHEREUM) print(f7)
output: [['0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643', 0.0], ['0x39AA39c021dfbaE8faC545936693aC917d5E7563', 0.0], ['0xdAC17F958D2ee523a2206206994597C13D831ec7', 0.0]]
8: pool_balances(lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns pool balance for given lp token on Convex protocol
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Convex f8 = Convex.pool_balances('0x9fC689CCaDa600B6DF723D9E47D84d76664a1F23', 'latest', ETHEREUM) print(f8)
output: [['0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643', 5627718.31410783], ['0x39AA39c021dfbaE8faC545936693aC917d5E7563', 5115086.87914827], ['0xdAC17F958D2ee523a2206206994597C13D831ec7', 117437.410424]]
9: update_db()
Description: function updates the Convex db
*** Help Needed ***
-
-
Curve
Curve
Defined in Curve.py
1: get_registry_contract(web3, id, block, blockchain)
Dexcription: function returns registry contract object using given id and blockchain
# id = 0 -> Registry for Regular Pools # id = 3 -> Registry for Factory Pools # id = 5 -> Registry for Crypto V2 Pools # id = 6 -> Registry for Crypto Factory Pools
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve web3 = get_node(ETHEREUM, 'latest', 0) f1 = Curve.get_registry_contract(web3, 3, 'latest', ETHEREUM) print(f1)
output: <web3._utils.datatypes.Contract object at 0x7fece881a980>
2: get_pool_gauge_address(web3, pool_address, lptoken_address, block, blockchain)
Description: function returns pool gauge address on Curve protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve web3 = get_node(XDAI, 'latest', 0) web3 = get_node(XDAI, 'latest', 0) f2 = Curve.get_pool_gauge_address(web3, '0x7f90122BF0700F9E7e1F688fe926940E8839F353', '0x1337BedC9D22ecbe766dF105c9623922A27963EC', 'latest', XDAI) print(f2)
output: 0xB721Cc32160Ab0da2614CC6aB16eD822Aeebc101
3: get_gauge_version(gauge_address, block, blockchain, web3=None, execution=1, index=0, only_version=True)
Description: function returns gauge version for given gauge on Curve protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve f3 = Curve.get_gauge_version('0x1891E46859DBf78EeEfb652425755494eE8aD7bf', 'latest', XDAI) print(f3)
output: ChildGauge
4: get_pool_address(web3, lptoken_address, block, blockchain)
Description: function returns pool address for given lptoken on Curve protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve web3 = get_node(XDAI, 'latest', 0) f4 = Curve.get_pool_address(web3, '0x1337BedC9D22ecbe766dF105c9623922A27963EC', 'latest', XDAI) print(f4)
output: 0x7f90122BF0700F9E7e1F688fe926940E8839F353
5: get_pool_data(web3, minter, block, blockchain):
Description: function returns pool data for Curver protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve web3 = get_node(ETHEREUM, 'latest', 0) f5 = Curve.get_pool_data(web3, '0xD51a44d3FaE010294C616388b506AcdA1bfAAE46', 'latest', ETHEREUM) print(f5)
output: {'contract': <web3._utils.datatypes.Contract object at 0x7f283c7f67d0>, 'is_metapool': False, 'coins': {0: '0xdAC17F958D2ee523a2206206994597C13D831ec7', 1: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', 2: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'}}
6: get_lptoken_data(lptoken_address, block, blockchain, web3=None, execution=1, index=0)
Description: function returns lp token data
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve f6 = Curve.get_lptoken_data('0xc4AD29ba4B3c580e6D59105FFf484999997675Ff', 'latest', ETHEREUM) print(f6)
output: {'contract': <web3._utils.datatypes.Contract object at 0x7f5b1cbea770>, 'minter': '0xD51a44d3FaE010294C616388b506AcdA1bfAAE46', 'decimals': 18, 'totalSupply': 182450506161827209744987}
7: get_all_rewards(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, gauge_address=None)
Description: function returns all the rewards for the given wallet and lp token on Curve protocol
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve f7 = Curve.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xc4AD29ba4B3c580e6D59105FFf484999997675Ff', 'latest', ETHEREUM) print(f7)
output: [['0xD533a949740bb3306d119CC777fa900bA034cd52', 0.0]]
8: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, reward=False, decimals=True, convex_staked=None, gauge_address=None)
Description: function returns underlying tokens for given wallet with given lptoken on Curve protocol
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance, staked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve f8 = Curve.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x1337BedC9D22ecbe766dF105c9623922A27963EC', 'latest', XDAI ) print(f8)
output: [['0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 0.0, 0.0], ['0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 0.0, 0.0], ['0x4ECaBa5870353805a9F068101A40E0f32ed605C6', 0.0, 0.0]]
9: underlying_amount(lptoken_amount, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description:
** Help Needed **
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve
output:
10: pool_balances(lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, meta=False)
Description: function returns pool balances of given lptoken on Curve protocol
# Output: a list with 1 elements: # 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve f10 = Curve.pool_balances('0x1337BedC9D22ecbe766dF105c9623922A27963EC', 'latest', XDAI) print(f10)
output: [['0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 3097529.0538003724], ['0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 3073195.827396], ['0x4ECaBa5870353805a9F068101A40E0f32ed605C6', 3086394.257995]]
11: swap_fees(lptoken_address, block_start, block_end, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns swap fees for given lp token for given range on Curve protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Curve f11 = Curve.swap_fees('0x1337BedC9D22ecbe766dF105c9623922A27963EC', 25913602, 'latest', XDAI) print(f11)
output: {'swaps': [{'block': 25913682, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.0019992133127874276}, {'block': 25913701, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.007333559800511542}, {'block': 25913721, 'tokenOut': '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 'amountOut': 0.6397394164}, {'block': 25913783, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.0008607565751133651}, {'block': 25913910, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.037022720405197725}, {'block': 25913948, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.039984303471116825}, {'block': 25913970, 'tokenOut': '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 'amountOut': 0.4002363776}, {'block': 25914114, 'tokenOut': '0x4ECaBa5870353805a9F068101A40E0f32ed605C6', 'amountOut': 0.007996171600000001}, {'block': 25914144, 'tokenOut': '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 'amountOut': 0.0066172976}, {'block': 25914200, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.0014729267096921916}, {'block': 25914330, 'tokenOut': '0x4ECaBa5870353805a9F068101A40E0f32ed605C6', 'amountOut': 0.0039983932}, {'block': 25914416, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.008602286827199044}, {'block': 25914750, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.022511488698351036}, {'block': 25914759, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.006614704715056072}, {'block': 25914759, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.6997249291194675}, {'block': 25915143, 'tokenOut': '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 'amountOut': 0.13503600880000002}, {'block': 25915224, 'tokenOut': '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 'amountOut': 0.11770507120000001}, {'block': 25915235, 'tokenOut': '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 'amountOut': 0.117932982}, {'block': 25915309, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.021514701714473644}, {'block': 25915340, 'tokenOut': '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 'amountOut': 0.005720752000000001}, {'block': 25915455, 'tokenOut': '0x4ECaBa5870353805a9F068101A40E0f32ed605C6', 'amountOut': 1.499395634}, {'block': 25915655, 'tokenOut': '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 'amountOut': 0.05997549320000001}, {'block': 25915684, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.00030144913310451685}, {'block': 25915782, 'tokenOut': '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', 'amountOut': 0.0219822164}, {'block': 25915803, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.02242247669985942}, {'block': 25915834, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.0004494915495654226}, {'block': 25915864, 'tokenOut': '0x4ECaBa5870353805a9F068101A40E0f32ed605C6', 'amountOut': 0.0843659144}, {'block': 25915973, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.02079185759339624}, {'block': 25916016, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.09113021136366664}, {'block': 25916018, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.001970104549943838}, {'block': 25916024, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.0011432944757581813}, {'block': 25916028, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.0014962398019174262}, {'block': 25916156, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.2998824374160615}, {'block': 25916435, 'tokenOut': '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 'amountOut': 0.0006173702201516521}]}
-
-
Elk
Elk
Defined in Elk.py
1: get_lptoken_data(lptoken_address, block, blockchain, web3=None, execution=1, index=0)
Description: function returns lp token data on ELK protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Elk f1 = Elk.get_lptoken_data('0xA27E5775317F3f301B5b08BabCdE0a20FEAE7f09', 'latest', ETHEREUM) print(f1)
output: {'contract': <web3._utils.datatypes.Contract object at 0x7fb03eef26b0>, 'decimals': 18, 'totalSupply': 3079557346471436960125, 'token0': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'token1': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'reserves': [29056721408238148310, 347561671694311785474636, 1673509307], 'kLast': 0, 'virtualTotalSupply': 3079557346471436960125}
2: get_pool_address(web3, token0, token1, block, blockchain)
Description: function returns pool addres based on given token pair on Elk protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Elk web3 = get_node(ETHEREUM, 'latest', 0) f2 = Elk.get_pool_address(web3, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'latest', ETHEREUM) print(f2)
output: 0xF220eA963D27Ebe782f09403017B29692A4fC4aE
3: get_elk_rewards(web3, pool_contract, wallet, block, blockchain, decimals=True)
Description: function returns elk rewards for given pool address for given wallet
# Output: # 1 - Tuple: [elk_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Elk web3 = get_node(ETHEREUM, 'latest', 0) f2 = get_contract('0xF220eA963D27Ebe782f09403017B29692A4fC4aE', ETHEREUM) f3 = Elk.get_elk_rewards(web3, f2, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f3)
output: ['0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 0.0]
4: get_booster_rewards(web3, pool_contract, wallet, block, blockchain, decimals=True)
Description: function returns booster rewards on given pool address for given wallet
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Elk web3 = get_node(ETHEREUM, 'latest', 0) f3 = get_contract('0xF220eA963D27Ebe782f09403017B29692A4fC4aE', ETHEREUM) f4 = Elk.get_booster_rewards(web3, f3, '0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f4)
output: None
5: get_all_rewards(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, pool_contract=None)
Description: function returns all rewards for given wallet for given lp token
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Elk f5 = Elk.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xF220eA963D27Ebe782f09403017B29692A4fC4aE', 'latest', ETHEREUM) print(f5)
output: None
6: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, reward=False)
Description: function returns underlying tokens for given wallet for given lp token on Elk protocol
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance, staked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Elk f6 = Elk.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xA27E5775317F3f301B5b08BabCdE0a20FEAE7f09', 'latest', ETHEREUM) print(f6)
output: [['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 0.0, 0.0], ['0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 0.0, 0.0]]
7: pool_balances(lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function retirns pool balances for given lp token
# 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Elk f7 = Elk.pool_balances('0xA27E5775317F3f301B5b08BabCdE0a20FEAE7f09', 'latest', ETHEREUM) print(f7)
output: [['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 29.056721408238147], ['0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 347561.6716943118]]
8: swap_fees(lptoken_address, block_start, block_end, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns swap fees for given lp token
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Elk f8 = Elk.swap_fees('0xA27E5775317F3f301B5b08BabCdE0a20FEAE7f09', 16380015, 'latest', ETHEREUM) print(f8)
output: {'swaps': [{'block': 16381797, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 2.889438460326057}, {'block': 16382996, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 3e-09}, {'block': 16385571, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.00255}, {'block': 16385667, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.0009}, {'block': 16385691, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 9e-06}, {'block': 16385812, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.00015}, {'block': 16385831, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 26.723058285543605}, {'block': 16385839, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.00017571833246287513}, {'block': 16385938, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 6e-05}, {'block': 16385957, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 3.6e-05}, {'block': 16385975, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 12.83912818935761}, {'block': 16386009, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 0.39853215112316875}, {'block': 16386450, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 31.327314122523138}, {'block': 16386451, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.0014496276567174053}, {'block': 16386524, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 36.478903268343565}, {'block': 16386527, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.0018}, {'block': 16386537, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.0005028085391423697}, {'block': 16386559, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 23.07109673165644}, {'block': 16386561, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.0015010243909154}, {'block': 16387375, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 1.2028675361808711e-05}, {'block': 16387414, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 2.957184093901322}, {'block': 16388603, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 7.1615954570745695}, {'block': 16388771, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 1.5e-05}, {'block': 16388955, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 6.3083888292692265}, {'block': 16388990, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.0007353592629198234}, {'block': 16389072, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.00021921}, {'block': 16389072, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.00255}, {'block': 16389072, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 2.65335036}, {'block': 16389108, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 9.0}, {'block': 16389299, 'token': '0xeEeEEb57642040bE42185f49C52F7E9B38f8eeeE', 'amount': 11.890786090090941}]}
-
-
Honeyswap
Honeyswap
Defined in Honeyswap.py
1: get_lptoken_data(lptoken_address, block, blockchain, web3=None, execution=1, index=0)
Description: function returns lp token data on Honeyswap protoocl
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Honeyswap f1 = Honeyswap.get_lptoken_data('0xCd9652F006EFDE64f07030F10A1945EAD8AC1855', 'latest', ETHEREUM) print(f1)
output: {'contract': <web3._utils.datatypes.Contract object at 0x7fba31e8a710>, 'decimals': 18, 'totalSupply': 108503144715306467026, 'token0': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'token1': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'reserves': [763270497078084747756, 15742597871023746342, 1607901903], 'kLast': 0, 'virtualTotalSupply': 1.3020377365836775e+20}
2: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns underlying tokens for given wallet with given lptoken
# Output: a list with 1 element: # 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Honeyswap f2 = Honeyswap.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xCd9652F006EFDE64f07030F10A1945EAD8AC1855', 'latest', ETHEREUM) print(f2)
output: [['0x1957d368f6038F09faaE020d485b35718E0Eed1A', 0.0], ['0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 0.0]]
3: pool_balances(lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns pool balances for given lp token on Honeyswap protocol
# Output: a list with 1 element: # 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Honeyswap f3 = Honeyswap.pool_balances('0xCd9652F006EFDE64f07030F10A1945EAD8AC1855', 'latest', ETHEREUM) print(f3)
output: [['0x1957d368f6038F09faaE020d485b35718E0Eed1A', 763.2704970780848], ['0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 15.742597871023746]]
4: swap_fees(lptoken_address, block_start, block_end, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: fucntion returns swap fees for given lp token for give reange of blocks
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Honeyswap f4 = Honeyswap.swap_fees('0xCd9652F006EFDE64f07030F10A1945EAD8AC1855', 0, 'latest', ETHEREUM) print(f4)
output: {'swaps': [{'block': 11134367, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.0005262109004007418}, {'block': 11134380, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0038122294599445485}, {'block': 11134649, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.000497428365687157}, {'block': 11134961, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.004008351883662104}, {'block': 11134984, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.025735010568652947}, {'block': 11135972, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.23927241967672228}, {'block': 11135972, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.001371294269959149}, {'block': 11136386, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.00149518324360386}, {'block': 11138426, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 1.5}, {'block': 11138426, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0005880163841135043}, {'block': 11141757, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.003}, {'block': 11143948, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0009482496689891964}, {'block': 11153516, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0009999}, {'block': 11153523, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0015}, {'block': 11153530, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0005001}, {'block': 11153581, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0018}, {'block': 11168389, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0020655702056233145}, {'block': 11210669, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.005054900815379415}, {'block': 11211315, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.005111990858317916}, {'block': 11211817, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.005679169733007941}, {'block': 11212191, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0165}, {'block': 11212438, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.018518323978912336}, {'block': 11213214, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.16961917796935855}, {'block': 11213827, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.023760662104344098}, {'block': 11216926, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.008840951952023836}, {'block': 11216935, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.010587407899320654}, {'block': 11216941, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.012907693813954431}, {'block': 11216952, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.016084013197213927}, {'block': 11216959, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.02059631880854048}, {'block': 11216965, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.02731565993218982}, {'block': 11216969, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.033512834207083994}, {'block': 11216969, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.04565053353647096}, {'block': 11216973, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.03537631473540627}, {'block': 11218589, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.02682485834232684}, {'block': 11229905, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.05504515223226972}, {'block': 11240721, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.16473663231733446}, {'block': 11243062, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.024}, {'block': 11246252, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 0.3}, {'block': 11247278, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.015323293667631526}, {'block': 11428790, 'token': '0xC483ad6F9B80B38691E95b708DE1d46721366ce3', 'amount': 0.0011079232513274775}, {'block': 11447567, 'token': '0x1957d368f6038F09faaE020d485b35718E0Eed1A', 'amount': 1.5}]}
-
-
Maker
Maker
Defined in Maker.py
1: get_vault_data(vault_id, block, web3=None, execution=1, index=0)
Description: function returns valut data for given valut id
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Maker f1 = Maker.get_vault_data(1, 'latest') print(f1)
output: {'mat': 1.45, 'gem': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'dai': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'ink': 0.0, 'art': 0.0, 'Art': 193027523.3855285, 'rate': 1.0835304604763405, 'spot': 963.8172413793103, 'line': 368907736.31731033, 'dust': 15000.0}
2: underlying(vault_id, block, web3=None, execution=1, index=0)
Description: function returns underlying tokens for given wallet for given vault id on maker protocol
# Output: # 1 - Tuple: [[collateral_address, collateral_amount], [debt_address, -debt_amount]]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Maker f2 = Maker.underlying(1, 'latest') print(f2)
output: [['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 0.0], ['0x6B175474E89094C44Da98b954EedeAC495271d0F', -0.0]]
-
-
Qidao
QiDao
Defined in QiDao.py
1: get_vault_address(collateral_address, blockchain)
Description: function returns vault address based on given collateral address
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import QiDao f1 = QiDao.get_vault_address('0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', XDAI) print(f1)
output: 0x014A177E9642d1b4E970418f894985dC1b85657f
2: get_vault_data(vault_id, collateral_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns vault data based on given vault id and collateral address
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import QiDao f2 = QiDao.get_vault_data(1, '0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', 'latest', XDAI) print(f2)
output: {'collateral_address': '0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', 'collateral_amount': 0.0, 'collateral_token_usd_value': 96.15, 'debt_address': '0x3F56e0c36d275367b8C502090EDF38289b3dEa0d', 'debt_amount': 0.0, 'debt_token_usd_value': 0.9920834072195736, 'debt_usd_value': 0, 'collateral_ratio': None, 'available_debt_amount': 203205.79297252028, 'liquidation_ratio': 130, 'liquidation_price': None}
3: underlying(vault_id, collateral_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns underlying tokens for given vault id and collateral address
# Output: # 1 - Tuple: [[collateral_address, collateral_amount], [debt_address, -debt_amount]]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import QiDao f3 = QiDao.underlying(1, '0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', 'latest', XDAI) print(f3)
output: [['0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', 0.0], ['0x3F56e0c36d275367b8C502090EDF38289b3dEa0d', 0.0]]
-
-
Reflexer
Reflexer
Defined in Reflexer.py
1: lptoken_underlying(lptoken_address, amount, block, blockchain)
Description: fucntion returns underlying tokens for given lp token on Reflexer protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Reflexer f1 = Reflexer.lptoken_underlying('0xd6F3768E62Ef92a9798E5A8cEdD2b78907cEceF9', 10000, 'latest', ETHEREUM) print(f1)
output: [['0x6243d8cea23066d098a15582d81a598b4e8391f4', 51479.35989733311], ['0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', 524.5602730745637]] [['0x6243d8cea23066d098a15582d81a598b4e8391f4', 51479.35989733311], ['0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', 524.5602730745637]] [['0x6243d8cea23066d098a15582d81a598b4e8391f4', 115095.22732025111], ['0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', 1172.7881619564894]]
2: pool_balance(lptoken_address, block, blockchain)
Description: fucntion returns pool balance for given lp token
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Reflexer f2 = Reflexer.pool_balance('0xd6F3768E62Ef92a9798E5A8cEdD2b78907cEceF9', 'latest', ETHEREUM) print(f2)
output: [['0x6243d8cea23066d098a15582d81a598b4e8391f4', 51479.35989733311], ['0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', 524.5602730745637]] [['0x6243d8cea23066d098a15582d81a598b4e8391f4', 51479.35989733311], ['0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', 524.5602730745637]] [['0x6243d8cea23066d098a15582d81a598b4e8391f4', 129190.50613850323], ['0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', 1316.4151091584395]]
3: balance_of_lptoken_underlying(address, lptoken_address, block, blockchain)
Description: fucntion returns balance of underlying tokens for given lp token
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Reflexer f3 = Reflexer.balance_of_lptoken_underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xd6F3768E62Ef92a9798E5A8cEdD2b78907cEceF9', 'latest', ETHEREUM) print(f3)
output: [['0x6243d8cea23066d098a15582d81a598b4e8391f4', 0.0], ['0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', 0.0]]
4: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0)
Description: funstion returns underlying tokens for given wallet and lp token on Reflexer protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Reflexer f4 = Reflexer.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xd6F3768E62Ef92a9798E5A8cEdD2b78907cEceF9', 'latest', ETHEREUM) print(f4)
output: [['0x6243d8cea23066d098a15582d81a598b4e8391f4', 51479.35989733311], ['0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', 524.5602730745637]]
-
-
Sushiswap
Sushiswap
Defined in Sushiswap.py
1: get_chef_contract(web3, block, blockchain, v1=False)
Description: function returns chef contract object for given blockchain
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap web3 = get_node(ETHEREUM, 'latest', 0) f1 = SushiSwap.get_chef_contract(web3, 'latest', ETHEREUM) print(f1)
output: <web3._utils.datatypes.Contract object at 0x7fd83f1167d0>
2: get_pool_info(web3, lptoken_address, block, blockchain, use_db=True)
Description: function returns pool info for given lp token
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap web3 = get_node(ETHEREUM, 'latest', 0) f2 = SushiSwap.get_pool_info(web3, '0x06da0fd433C1A5d7a4faa01111c044910A184553', 'latest', ETHEREUM) print(f2)
output: {'chef_contract': <web3._utils.datatypes.Contract object at 0x7f9f8e17e5f0>, 'pool_info': {'poolId': 0, 'allocPoint': 3000}, 'totalAllocPoint': 960240}
3: get_lptoken_data(lptoken_address, block, blockchain, web3=None, execution=1, index=0)
Description: function returns lp roken data on Sushiswap protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap f3 = SushiSwap.get_lptoken_data('0x397FF1542f962076d0BFE58eA045FfA2d347ACa0', 'latest', ETHEREUM) print(f3)
output: {'contract': <web3._utils.datatypes.Contract object at 0x7fa695232590>, 'decimals': 18, 'totalSupply': 319998674813332077, 'token0': '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 'token1': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'reserves': [20433998700546, 14330389229987097177780, 1673554595], 'kLast': 292817359902509000116725434578391616, 'virtualTotalSupply': 3.199995668134856e+17}
4: get_virtual_total_supply(lptoken_address, block, blockchain, web3=None, execution=1, index=0)
Description: function returns virtual total supply for given lp token
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap f4 = SushiSwap.get_virtual_total_supply('0x397FF1542f962076d0BFE58eA045FfA2d347ACa0', 'latest', ETHEREUM) print(f4)
output: 3.199995668134856e+17
5: get_rewarder_contract(web3, block, blockchain, chef_contract, pool_id)
Description: function returns rewarder contracy for given chef contract
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap web3 = get_node(ETHEREUM, 'latest', 0) f1 = SushiSwap.get_chef_contract(web3, 'latest', ETHEREUM) f5 = SushiSwap.get_rewarder_contract(web3, 'latest', ETHEREUM, f1, 1) print(f5)
output: <web3._utils.datatypes.Contract object at 0x7f86c5aceaa0>
6: get_sushi_rewards(web3, wallet, chef_contract, pool_id, block, blockchain, decimals=True)
Description: function returns sushi rewards for given wallet
# Output: # 1 - Tuple: [sushi_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap web3 = get_node(ETHEREUM, 'latest', 0) f1 = SushiSwap.get_chef_contract(web3, 'latest', ETHEREUM) f6 = SushiSwap.get_sushi_rewards(web3, '0x849D52316331967b6fF1198e5E32A0eB168D039d', f1, 1, 'latest', ETHEREUM) print(f6)
output: ['0x6B3595068778DD592e39A122f4f5a5cF09C90fE2', 0.0]
7: get_rewards(web3, wallet, chef_contract, pool_id, block, blockchain, decimals=True)
Description: function retuens rewards for given wallet on Sushiswap protocol
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap web3 = get_node(ETHEREUM, 'latest', 0) f1 = SushiSwap.get_chef_contract(web3, 'latest', ETHEREUM) f7 = SushiSwap.get_rewards(web3, '0x849D52316331967b6fF1198e5E32A0eB168D039d', f1, 1, 'latest', ETHEREUM) print(f7)
output: [['0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B', 0.0]]
8: get_all_rewards(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, pool_info=None)
Description: function returns all the rewards for given wallet and lp token
# 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap f8 = SushiSwap.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x397FF1542f962076d0BFE58eA045FfA2d347ACa0', 'latest', ETHEREUM) print(f8)
output: [['0x6B3595068778DD592e39A122f4f5a5cF09C90fE2', 0.0]]
9: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, reward=False)
Description: fucntion returns undrlying tokens for given wallet and lptoken
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance, staked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap f9 = SushiSwap.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x397FF1542f962076d0BFE58eA045FfA2d347ACa0', 'latest', ETHEREUM) print(f9)
output: [['0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 0.0, 0.0], ['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 0.0, 0.0]]
10: pool_balances(lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns pool balances for given lp token
# Output: a list with 1 element: # 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap f10 = SushiSwap.pool_balances('0x397FF1542f962076d0BFE58eA045FfA2d347ACa0', 'latest', ETHEREUM) print(f10)
output: [['0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 20198588.559822], ['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 14145.074969400264]]
11: swap_fees(lptoken_address, block_start, block_end, blockchain, web3=None, execution=1, index=0, decimals=True)
description: function returns swap fees for given lp token and given block range
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap f11 = SushiSwap.swap_fees('0x397FF1542f962076d0BFE58eA045FfA2d347ACa0', 16392251, 'latest', ETHEREUM) print(f11)
output: {'swaps': [{'block': 16393260, 'token': '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 'amount': 0.349082604}, {'block': 16393261, 'token': '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 'amount': 0.15}, {'block': 16393262, 'token': '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 'amount': 59.582524791000004}, {'block': 16393330, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 7.5e-05}]}
12: get_wallet_by_tx(lptoken_address, block, blockchain, web3=None, execution=1, index=0, signature=DEPOSIT_EVENT_SIGNATURE)
Description: function returns wallet by signature
# 'signature' = signature of the type of transaction that will be searched for
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap f12 = SushiSwap.get_wallet_by_tx('0x397FF1542f962076d0BFE58eA045FfA2d347ACa0', 'latest', ETHEREUM) print(f12)
output: None
13: get_rewards_per_unit(lptoken_address, blockchain, web3=None, execution=1, index=0, block='latest')
Description: function returns rewards per unit for given lp token
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import SushiSwap f13 = SushiSwap.get_rewards_per_unit('0x397FF1542f962076d0BFE58eA045FfA2d347ACa0', ETHEREUM) print(f13)
output: [{'sushi_address': '0x6B3595068778DD592e39A122f4f5a5cF09C90fE2', 'sushiPerBlock': 7.81054736315921e+17}]
14: update_db()
Description: function updates the db
-
-
Swapr
Swapr
Defined in Swapr.py
1: get_staking_rewards_contract(web3, block, blockchain)
Description: function returns stacking rewards contract
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Swapr web3 = get_node(ETHEREUM, 'latest', 0) f1 = Swapr.get_staking_rewards_contract(web3, 'latest', ETHEREUM) print(f1)
output: <web3._utils.datatypes.Contract object at 0x7fecf9dd2710>
2: get_distribution_contracts(web3, lptoken_address, staking_rewards_contract, campaigns, block, blockchain)
Description: function returns disctribution contracts for given lp token
** Help Needed **
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Swapr web3 = get_node(ETHEREUM, 'latest', 0) f1 = Swapr.get_staking_rewards_contract(web3, 'latest', ETHEREUM) f2 = Swapr.get_distribution_contracts(web3, '0x7515Be43D16f871588ADc135d58a9c30A71Eb34F', f1, 1, 'latest', ETHEREUM) print(f2)
output:
3: get_lptoken_data(lptoken_address, block, blockchain, web3=None, execution=1, index=0)
Description: function returns lp token data
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Swapr f3 = Swapr.get_lptoken_data('0x7515Be43D16f871588ADc135d58a9c30A71Eb34F', 'latest', ETHEREUM) print(f3)
output: {'contract': <web3._utils.datatypes.Contract object at 0x7fc6a413e6e0>, 'decimals': 18, 'totalSupply': 8788345579684989628399, 'token0': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'token1': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'reserves': [367338598438067871621998, 257554709560248473048, 1673559707], 'kLast': 0, 'virtualTotalSupply': 1.0546014695621988e+22}
4: get_all_rewards(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, campaigns=1, distribution_contracts=[])
Description: function returns all rewards for given wallet and lp token
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Swapr f4 = Swapr.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x7515Be43D16f871588ADc135d58a9c30A71Eb34F', 'latest', ETHEREUM) print(f4)
output: None
5: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, reward=False, campaigns=1)
Description: function returns underlying tokens for given wallet and lp token
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance, staked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Swapr f5 = Swapr.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x7515Be43D16f871588ADc135d58a9c30A71Eb34F', 'latest', ETHEREUM) print(f5)
output: None
6: pool_balances(lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns pool balance for given lp token
# Output: a list with 1 element: # 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Swapr f6 = Swapr.pool_balances('0x7515Be43D16f871588ADc135d58a9c30A71Eb34F', 'latest', ETHEREUM) print(f6)
output: [['0x6B175474E89094C44Da98b954EedeAC495271d0F', 367338.5984380679], ['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 257.55470956024845]]
7: swap_fees(lptoken_address, block_start, block_end, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns swap fees for given lp token and block range
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Swapr f7 = Swapr.swap_fees('0x7515Be43D16f871588ADc135d58a9c30A71Eb34F', 16392504, 'latest', ETHEREUM) print(f7)
output: {'swaps': [{'block': 16392554, 'token': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'amount': 0.3533967616636148}, {'block': 16392693, 'token': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'amount': 0.8042712308268711}, {'block': 16392942, 'token': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'amount': 1.3125}, {'block': 16392986, 'token': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'amount': 1.12284669760275}, {'block': 16393054, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 4.3810185944715885e-05}, {'block': 16393185, 'token': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'amount': 0.13697197835428987}, {'block': 16393190, 'token': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'amount': 0.1027289837657174}, {'block': 16393338, 'token': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'amount': 0.2434762712795}, {'block': 16393463, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.00035039806149557873}, {'block': 16393467, 'token': '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'amount': 0.000173850319209059}]}
-
-
Symmetric
Symmetric
Defined in Symmetric.py
1: get_vault_contract(web3, block, blockchain)
Description: function returns valut contract for given blockchain
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric web3 = get_node(XDAI, 'latest', 0) f1 = Symmetric.get_vault_contract(web3, 'latest', XDAI) print(f1)
output: <web3._utils.datatypes.Contract object at 0x7fa761bb27a0>
2: get_chef_contract(web3, block, blockchain)
Description: function returns chef contract for given blockchain on Symmetric protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric web3 = get_node(XDAI, 'latest', 0) f2 = Symmetric.get_chef_contract(web3, 'latest', XDAI) print(f2)
output: <web3._utils.datatypes.Contract object at 0x7fa9fbafe830>
3: get_pool_info(web3, lptoken_address, block, blockchain)
Description: function returns pool info for given lp token
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric web3 = get_node(XDAI, 'latest', 0) f3 = Symmetric.get_pool_info(web3, '0x8B78873717981F18C9B8EE67162028BD7479142b', 'latest', XDAI) print(f3)
output: {'chef_contract': <web3._utils.datatypes.Contract object at 0x7f560927a830>, 'pool_info': {'poolId': 0, 'allocPoint': 0}, 'totalAllocPoint': 98}
4: get_lptoken_data(lptoken_address, block, blockchain, web3=None, execution=1, index=0)
Description: function returns lp token data for given lp token
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric web3 = get_node(XDAI, 'latest', 0) f4 = Symmetric.get_lptoken_data('0x8B78873717981F18C9B8EE67162028BD7479142b', 'latest', XDAI) print(f4)
output: {'contract': <web3._utils.datatypes.Contract object at 0x7f1285a66740>, 'poolId': b'\x8bx\x877\x17\x98\x1f\x18\xc9\xb8\xeeg\x16 (\xbdty\x14+\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'decimals': 18, 'totalSupply': 612664746701529997}
5: get_rewarder_contract(web3, block, blockchain, chef_contract, pool_id)
Description: function returns rewarder contract for given chef contract and pool id
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric web3 = get_node(XDAI, 'latest', 0) f2 = Symmetric.get_chef_contract(web3, 'latest', XDAI) f5 = Symmetric.get_rewarder_contract(web3, 'latest', XDAI, f2, 0) print(f5)
output: <web3._utils.datatypes.Contract object at 0x7f69a936aaa0>
6: get_symm_rewards(web3, wallet, chef_contract, pool_id, block, blockchain, decimals=True)
Description: function returns symm rewards for given wallet and chef contract
# Output: # 1 - Tuple: [symm_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric web3 = get_node(XDAI, 'latest', 0) f2 = Symmetric.get_chef_contract(web3, 'latest', XDAI) f6 = Symmetric.get_symm_rewards(web3, '0x849D52316331967b6fF1198e5E32A0eB168D039d', f2, 0, 'latest', XDAI, 0) print(f6)
output: ['0xC45b3C1c24d5F54E7a2cF288ac668c74Dd507a84', 0.0]
7: get_rewards(web3, wallet, chef_contract, pool_id, block, blockchain, decimals=True)
Description: function returns rewards for given wallet and chef contract and pool id
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric web3 = get_node(XDAI, 'latest', 0) f2 = Symmetric.get_chef_contract(web3, 'latest', XDAI) f7 = Symmetric.get_rewards(web3, '0x849D52316331967b6fF1198e5E32A0eB168D039d', f2, 0, 'latest', XDAI, 0) print(f7)
output: [['0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', 0.0]]
8: get_all_rewards(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, pool_info=None)
Description: function returns all rewards for given wallet on given lp token fo Symmetric protocol
# Output: # 1 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric f8 = Symmetric.get_all_rewards('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x8B78873717981F18C9B8EE67162028BD7479142b', 'latest', XDAI) print(f8)
output: [['0xC45b3C1c24d5F54E7a2cF288ac668c74Dd507a84', 0.0], ['0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', 0.0]]
9: underlying(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, reward=False)
Description: function returns underlying tokens for given wallet and lp token on Symmetric protocol
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance, staked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric f9 = Symmetric.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x8B78873717981F18C9B8EE67162028BD7479142b', 'latest', XDAI) print(f9)
output: [['0xC45b3C1c24d5F54E7a2cF288ac668c74Dd507a84', 0.0, 0.0], ['0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 0.0, 0.0]]
10: pool_balances(lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
description: function returns pool balances for given lp token on Symmetric protocol
# Output: a list with 1 element # 1 - List of Tuples: [liquidity_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric f10 = Symmetric.pool_balances('0x8B78873717981F18C9B8EE67162028BD7479142b', 'latest', XDAI) print(f10)
output: [['0xC45b3C1c24d5F54E7a2cF288ac668c74Dd507a84', 0.5824447991127851], ['0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 0.023928716865637658]]
11: get_rewards_per_unit(lptoken_address, blockchain, web3=None, execution=1, index=0, block='latest')
Description: function returns rewards per units for given lp token
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric f11 = Symmetric.get_rewards_per_unit('0x8B78873717981F18C9B8EE67162028BD7479142b', XDAI) print(f11)
output: [{'symm_address': '0xC45b3C1c24d5F54E7a2cF288ac668c74Dd507a84', 'symmPerSecond': 0.0}, {'reward_address': '0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb', 'rewardPerSecond': 0.0}]
12: update_db()
Description: function updates the db
13: underlyingv1(wallet, lptoken_address, block, blockchain, web3=None, execution=1, index=0, decimals=True, reward=False)
Description: function returns underlying tokens for given wallet and lp token for symmetric v1 protocol
# Output: a list with 2 elements: # 1 - List of Tuples: [liquidity_token_address, balance, staked_balance] # 2 - List of Tuples: [reward_token_address, balance]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric f13 = Symmetric.underlyingv1('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0x8B78873717981F18C9B8EE67162028BD7479142b', 'latest', XDAI) print(f13)
output: 0 612664746701529997 [['0xC45b3C1c24d5F54E7a2cF288ac668c74Dd507a84', 0.0, 0.0], ['0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', 0.0, 0.0]]
14: swap_fees(lptoken_address, block_start, block_end, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns swap fees for given lp token for given range
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Symmetric f14 = Symmetric.swap_fees('0x65b0e9418e102a880c92790f001a9c5810b0ef32', 25928795, 'latest', XDAI) print(f14)
output: {'swaps': [{'block': 25930778, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.010421660802460526}, {'block': 25930780, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.007520257123154599}, {'block': 25930784, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.008243855399208456}, {'block': 25930789, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.007877870087106005}, {'block': 25930797, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.006428455971430291}, {'block': 25930802, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.006066430265895466}, {'block': 25930804, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.006064083055418988}, {'block': 25930810, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.006061810233426429}, {'block': 25930831, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.006061737207627279}, {'block': 25930833, 'token': '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e', 'amount': 0.006059392721465463}]}
-
-
UniswapV3
UniswapV3
Defined in UniswapV3.py
1: get_rate_uniswap_v3(token_src, token_dst, block, blockchain, web3=None, execution=1, index=0, fee=100)
Description: function returns
*** Help Needed ***
-
Example
output:
2: underlying(wallet, nftid, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns underlying tokens for given wallter and nft id
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import UniswapV3 f2 = UniswapV3.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', 214704, 'latest', ETHEREUM) print(f2)
output: [['0x6810e776880C02933D47DB1b9fc05908e5386b96', 0], ['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 0]]
3: allnfts(wallet, block, blockchain, web3=None, execution=1, index=0)
Description: function returns all nfts for given wallet on UniswapV3 protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import UniswapV3 f3 = UniswapV3.allnfts('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f3)
output: [185085, 186529, 189493, 214704, 214707, 214716, 218573, 220361, 217714, 286920, 339884, 346143, 358770]
3: get_fee(nftid, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns fees for given nft id on UniswapV3 protocol
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import UniswapV3 f4 = UniswapV3.get_fee(346143, 'latest', ETHEREUM) print(f4)
output: [['0x6810e776880C02933D47DB1b9fc05908e5386b96', 0.0], ['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 0.0]]
-
-
Unit
Unit
Defined in Unit.py
1: get_vault_address(blockchain)
Description: function returns vault address for given blockchain
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Unit f1 = Unit.get_vault_address(ETHEREUM) print(f1)
output: 0xb1cFF81b9305166ff1EFc49A129ad2AfCd7BCf19
2: get_cdp_registry_address(blockchain)
Description: function returns cdp registry address for given blockchain
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Unit f2 = Unit.get_cdp_registry_address(ETHEREUM) print(f2)
output: 0x1a5Ff58BC3246Eb233fEA20D32b79B5F01eC650c
3: get_cdp_manager_address(blockchain)
Description: function returns cdp manager for given blockchain
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Unit f3 = Unit.get_cdp_manager_address(ETHEREUM) print(f3)
output: 0x69FB4D4e3404Ea023F940bbC547851681e893a91
4: get_cdp_viewer_address(blockchain)
Description: function retunrs cdp viewer address for given blockchain
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Unit f4 = Unit.get_cdp_viewer_address(ETHEREUM) print(f4)
output: 0x68AF7bD6F3e2fb480b251cb1b508bbb406E8e21D
5: get_cdp_viewer_data(wallet, collateral_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns cdp viewer data for given wallet and collateral address
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Unit f5 = Unit.get_cdp_viewer_data('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'latest', ETHEREUM) print(f5)
output: {}
6: get_cdp_data(wallet, collateral_address, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns cdp data for given wallet and collateral address
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Unit f6 = Unit.get_cdp_data('0x849D52316331967b6fF1198e5E32A0eB168D039d', '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'latest', ETHEREUM) print(f6)
output: {}
7: underlying(wallet, block, blockchain, web3=None, execution=1, index=0, decimals=True)
Description: function returns underlying tokens for given wallet on Unit protocol
# Output: a list with N elements, where N = number of CDPs for the wallet: # 1 - List of Tuples: [[collateral_addressN, collateral_amountN], [debt_addressN, -debt_amountN]]
-
Example
from defi_protocols import * from defi_protocols.functions import * from defi_protocols import Unit f7 = Unit.underlying('0x849D52316331967b6fF1198e5E32A0eB168D039d', 'latest', ETHEREUM) print(f7)
output: []
-
💙 Contributing
PR's are welcome !
Please open a pull request in dev branch if you want to contribute to this awesome protocols!
Found a Bug ? Create an Issue.
💖 Like this project ?
Leave a ⭐ If you think this project is cool.
Follow use on twitter
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
Built Distribution
File details
Details for the file defi_protocols-0.0.9.tar.gz
.
File metadata
- Download URL: defi_protocols-0.0.9.tar.gz
- Upload date:
- Size: 167.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78c6870ea488eb9ece241204175de8e7921677dd5c96a65db02ae4a3f71edae0 |
|
MD5 | f3eccee5c4800d333235d6a0495c41be |
|
BLAKE2b-256 | ceeac109e65a1c0da7a6d47a1eadc5f5c1fdc04ae2ec23defab349a692671c86 |
File details
Details for the file defi_protocols-0.0.9-py3-none-any.whl
.
File metadata
- Download URL: defi_protocols-0.0.9-py3-none-any.whl
- Upload date:
- Size: 175.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 583acd4d1621b02fa9534934dae231144a1c1b1f36456c4f852d62aed42a7a0d |
|
MD5 | 3db643a0a3840c9c9c7cbd79ce3bbeee |
|
BLAKE2b-256 | ed1fe376261c750292e560ef954046017bebe3413e1623ee0024041ea6428f47 |