Web3.py 检查流动资金池余额

我正在尝试计算给定令牌地址的 lp 地址的余额。所以我有这个功能:

web3 = Web3(Web3.HTTPProvider("https://bsc-dataseed.binance.org/"))

def CheckLiquidity(TokenAddress, web3):
   LPAddress = GetLiquidityAddress(TokenAddress) #returns the web3.toChecksumAddress()
   balance = web3.eth.get_balance(LPAddress)
   bnbBalance = web3.fromWei(balance, 'ether)

唯一的问题是,对于我尝试过的每份合同,这都会返回 0...。我还手动检查了 bsc 扫描池中的 wbnb 余额并且不是 0。有人可以帮我吗?

stack overflow Web3.py check liquidity pool balance
原文答案
author avatar

接受的答案

Web3 Ethereum Defi package 中有一个例子。

    pair = get_deployed_contract(web3, "UniswapV2Pair.json", pair_address)
    token_a, token_b, timestamp = pair.functions.getReserves().call()

    # Check we got the liquidity
    assert token_a == 10 * 10**18
    assert token_b == 17_000 * 10**18

See full example


答案:

作者头像

“这就是我昨天结束的方式。但我不明白为什么 web3.eth.get_balance() 可以很好地处理钱包地址而不是 LP 地址。”

因为该货币对持有 WETH 而不是 ETH。