gpt4 book ai didi

blockchain - Uniswap v2 - 如何获取流动性提供者在流动性池中持有的代币数量?

转载 作者:行者123 更新时间:2023-12-03 08:02:06 27 4
gpt4 key购买 nike

我有一组钱包地址,我需要找到每个地址在一些流动性池中持有的代币数量。假设流动性调查针对的是代币 A 和 B。所以我需要找到每个地址在流动性池中拥有的代币 A 的数量。我怎样才能得到它?

需要明确的是,我不是在谈论 lp_token,而是在谈论地址所质押的代币之一。

最佳答案

流动性提供者在 Uniswap v2 池中拥有的基础代币数量与提供者在 LP 代币中所占的份额成正比。

例如,假设矿池储备有 1000 USDC,LP 代币的总供应量等于 100。那么拥有 1 LP 代币的人将有权获得 10.0 USDC游泳池。

USDC/WETH 池的 Python 代码示例:

from web3 import Web3

web3 = Web3(Web3.HTTPProvider(PROVIDER_URL))
pair = '0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc'
contract = web3.eth.contract(address=pair, abi=v2_pool_abi)

reserves = contract.functions.getReserves().call()
reserve_usdc = reserves[0]
total_supply = contract.functions.totalSupply().call()

lp_address = '0x76E2E2D4d655b83545D4c50D9521F5bc63bC5329'
lp_balance = contract.functions.balanceOf(lp_address).call()
lp_usdc = reserve_usdc * lp_balance / total_supply
usdc_decimals = 6
lp_usdc_adjusted = lp_usdc / 10 ** usdc_decimals
print(f"liquidity provider {lp_address} has {lp_usdc_adjusted} USDC in USDC/WETH pool")

关于blockchain - Uniswap v2 - 如何获取流动性提供者在流动性池中持有的代币数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73828422/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com