) 获取真实余额 Pair 的真实 balance 和 reserve 并不完全等同, 例如在添加流动性时, Router 会将用户的代币转到 pair 合约, 在交易结束之前, balance0 >...uint112(balance0);
reserve1 = uint112(balance1);
...
}
(这个函数还更新了一些统计信息, 如价格积分, 最后更新的时间戳等)
流动性添加和移除...流动性添加和移除的算法比较简单,
添加流动性计算方法是, 用户发送 token0 , token1 到 pair, pair 根据 (balance-reserve)/reserve 决定应该 mint...具体代码可以查看 UniswapV2Router02.sol 的 addLiquidity() 函数 和 UniswapV2Pair.sol 的 mint() 函数
涉及 ETH 的流动性添加和移除:...添加流动性时 Router 会将 ETH 换成 WETH, 再发送到 (WETH, token)交易对进行 mint 移除流动性时 Router 会将(WETH, token) 的 LP token 发送到