5 UniswapV2Pair问题 function mint(address to) external lock returns (uint liquidity)

liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);

这个为什么要取最小值

请先 登录 后评论

最佳答案 2022-06-26 13:38

amount0 101 reserve0 1000

amount0 20 reserve0 200

total 200000

101 200000 / 1000 = 20200 20 200000 / 200 = 20000

当取 数字更大的时,会导致 用户凭空多获得了 代币。 取其中较小的数字,是保护 pool 和其他人的的利益.

请先 登录 后评论

其它 0 个回答

  • 0 关注
  • 0 收藏,1892 浏览
  • zero 提出于 2022-06-24 14:43