是否有可能计算由Uniswap v3流动性池赚取的全时全球费用?
使用Uniswap v3池合同,我可以检索feeGrowthGlobal0X128 & feeGrowthGlobal1X128,它表示
作为Q128.128的费用增长,在池的整个生命周期中,每单位流动性收取的token0费用
但我看不出怎么计算池赚的费用总额。
另外,feeGrowthGlobal文档的注释说:This value can overflow the uint256
这也让人困惑。当它溢出时会发生什么情况,不是有关赚取费用的信息丢失了吗?
发布于 2023-04-03 03:42:43
不确定第一个问题,但对于第二个问题:严格地说,信息可能会丢失。但是,从离链的角度来看,你可以看看这条链的历史,看看它溢出了多少次。
此外,这些变量的目的是帮助跟踪uniswap v3中滴答标记之间的费用,这就是为什么它们不在乎是否溢出。如果feeGrowthGlobal溢出,计算滴答之间费用的数学没有任何问题。
然而,为了将单位转换成象征性的费用,而不是每单位流动性的费用,我不太确定。
发布于 2023-05-13 20:32:21
不计算,它已经处于全局状态,并由uniswap v3跟踪。来自v3白皮书
全局状态还跟踪两个数字: feeGrowthGlobal0 (fg,0 )和feeGrowthGlobal1 (fg,1 )。
在你取消了游泳池合同之后
pool.feeGrowthGlobal0X128().then((f) => f.toString()),/// @inheritdoc IUniswapV3PoolState
uint256 public override feeGrowthGlobal0X128;
/// @inheritdoc IUniswapV3PoolState
uint256 public override feeGrowthGlobal1X128;https://ethereum.stackexchange.com/questions/148394
复制相似问题