据我所知,Sushiswap收取0.3%的费用,然后分成两部分
注意,0.5%没有表示,但我认为在查看代码const BASE_FEE = new Percent(JSBI.BigInt(30), JSBI.BigInt(10000))之后情况就是如此,0.05%必须去某个地方,例如煎饼正在燃烧
现在,正如我前面提到的,费用是在前端代码JSBI.BigInt(30)中定义的。但我找不到他们在哪分这30块钱。
后端有一个代码,这个公式在Uniswap白皮书(v2)中也有说明,这可能正在起作用。他们提到了sqrt(k)增长的1/6,最初我不明白这与公式或费用分配有什么关系(嗯,我在数学方面很笨)。
我的扣除是- 1/6 (大约是1.16)乘以0.3%,他们的初始费用,你得到0.048,也就是0.05,对吗?既然国库费用也是0.05美元,情况会是这样吗?
再次检查,我做了同样的煎饼,这是收取0.2%的JSBI.BigInt(20)费用,做同样的上面你得到0.032,即0.03,他们的国库分配是0.3%。
我知道,对于有经验的开发人员来说,我可能会看到一个很大的巧合或者只是数字游戏,听起来有点愚蠢,但我会冒着风险去问--在代码中,shushiswap或uniswap在哪里? 0.3%的费用分为LP提供商和国库。
发布于 2021-05-19 11:46:45
经过调查我可以回答我的问题。
我的确是对的,国库费占总费用的1/6 (16.6%)。

准确地说,这个公式的代码位于核心存储库:
。
unction _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
address feeTo = IShuttleFactory(factory).feeTo();
feeOn = feeTo != address(0);
uint _kLast = kLast; // gas savings
if (feeOn) {
if (_kLast != 0) {
uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
uint rootKLast = Math.sqrt(_kLast);
if (rootK > rootKLast) {
uint numerator = totalSupply.mul(rootK.sub(rootKLast));
uint denominator = rootK.mul(5).add(rootKLast);
uint liquidity = numerator / denominator;
if (liquidity > 0) _mint(feeTo, liquidity);
}
}
} else if (_kLast != 0) {
kLast = 0;
}
}const BASE_FEE = new Percent(JSBI.BigInt(30), JSBI.BigInt(10000)) 的情况下
0.3元是一个总费用,这乘以1/6是0.05,他们的国库费。如果不收费,LP供应商将获得全部的0.3%,因此对交易商来说,启动该费用不会改变任何事情,他们仍将支付相同的金额,但在这种情况下,LP提供商只能得到0.25%。
https://ethereum.stackexchange.com/questions/98958
复制相似问题