【问题标题】:Web3.py check liquidity pool balanceWeb3.py 检查流动资金池余额
【发布时间】:2022-09-28 23:37:26
【问题描述】:

在给定令牌地址的情况下,我正在尝试计算 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。 有人能帮助我吗?

  • 你能展示一下你是怎么做的吗?

标签: python web3py


【解决方案1】:

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 地址。
  • 因为你需要从智能合约内部会计中询问正确的余额。如果您不理解这一点,请研究智能合约源代码,直到您完全理解它们为止。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2021-01-06
    • 1970-01-01
    • 2016-10-21
    • 2016-03-17
    • 2021-07-28
    • 2021-05-26
    • 2022-11-07
    • 2022-08-14
    • 2022-01-05
    相关资源
    最近更新 更多