Skip to main content

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

KarpatkeyDAO/defi-protocols

Installing from repository

pip3 install git+https://github.com/KarpatkeyDAO/defi-protocols.git#egg=defi_protocols

Installing latest version available on pypi

pip3 install defi-protocols

Config

  • First you will have to modify the config.json

  • You should provide RPC endpoints and EXPLORER 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

defi_protocols-0.0.4.tar.gz (144.7 kB view hashes)

Uploaded Source

Built Distribution

defi_protocols-0.0.4-py3-none-any.whl (147.7 kB view hashes)

Uploaded Python 3

Supported by

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