PairDetails
Documentation for eth_defi.uniswap_v2.pair.PairDetails Python class.
- class PairDetails
Bases:
objectUniswap v2 trading pair info.
An example usage how to get the latest price of a pair on PancakeSwap. The PairDetails class will do an automatic conversion of prices to human-readable, decimal format:
from web3 import Web3, HTTPProvider from eth_defi.chain import install_chain_middleware from eth_defi.uniswap_v2.pair import fetch_pair_details web3 = Web3(HTTPProvider("https://bsc-dataseed.bnbchain.org")) print(f"Connected to chain {web3.eth.chain_id}") # BNB Chain does its own things install_chain_middleware(web3) # Find pair addresses on TradingStrategy.ai # https://tradingstrategy.ai/trading-view/binance/pancakeswap-v2/bnb-busd pair_address = "0x58f876857a02d6762e0101bb5c46a8c1ed44dc16" wbnb = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c" busd = "0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56" # PancakeSwap has this low level encoded token0/token1 as BNB/BUSD # in human-readable token order # and we do not need to swap around reverse_token_order = False pair = fetch_pair_details( web3, pair_address, reverse_token_order, ) assert pair.token0.address == wbnb assert pair.token1.address == busd price = pair.get_current_mid_price() # Assume 1 BUSD = 1 USD print(f"The current price of PancakeSwap BNB/BUSD is {price:.4f} USD")
Attributes summary
contracttoken0token1reverse_token_orderGet pair contract address
Get pair contract address, all lowercase.
Methods summary
__init__(contract, token0, token1[, ...])convert_price_to_human(reserve0, reserve1[, ...])Convert the price obtained through Sync event
Get human-ordered base token.
Return the price in this pool.
Get human-ordered quote token.
- __init__(contract, token0, token1, reverse_token_order=None)
- Parameters
contract (web3.contract.contract.Contract) –
token0 (eth_defi.token.TokenDetails) –
token1 (eth_defi.token.TokenDetails) –
- Return type
None
- property address: eth_typing.evm.HexAddress
Get pair contract address
- property checksum_free_address: str
Get pair contract address, all lowercase.
- convert_price_to_human(reserve0, reserve1, reverse_token_order=None)
Convert the price obtained through Sync event
- get_base_token()
Get human-ordered base token.
- Return type
- get_current_mid_price()
Return the price in this pool.
Calls getReserves() over JSON-RPC and calculate the current price basede on the pair reserves.
See https://docs.uniswap.org/contracts/v2/reference/smart-contracts/pair#getreserves
- Returns
Quote token / base token price in human digestible form
- Return type
- get_quote_token()
Get human-ordered quote token.
- Return type