作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组钱包地址,我需要找到每个地址在一些流动性池中持有的代币数量。假设流动性调查针对的是代币 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/
我是一名优秀的程序员,十分优秀!