小工具知识网

当前位置: 首页 > 行业知识 > Solidity Uniswap V2 Pair中移除流动性

行业知识

Solidity Uniswap V2 Pair中移除流动性

2026-11-10 23:05:09 来源:互联网转载

��       移除流动性与提供流动性是截然相反的一个动作。从Pool中移除流动性意味着烧销毁LP-Token,以换取pair中相应数量的Token。返回的token数量与提供的流动性是这样计算的:

        简而言之,返回的Token数量,与持有的LP-Token数量与LP-Token总供应量成正比。你的LP-Token份额越大,你在burn后从reserve获得的份额就越大。

        这就是我们实现burn函数所需要知道的:

        当有人向池提供流动性时,他们会得到 LP-token作为回报。当流动性被移除时,这些 LP-token会被兑换成池流动性并被销毁。让用户向合约发送一定数量的 LP-token,在合约中计算出用户可以获取的token后,销毁 LP-token。

function burn(address to) public returns (uint256 amount0, uint256 amount1)  {  uint256 balance0 = IERC20(token0).balanceOf(address(this));  uint256 balance1 = IERC20(token1).balanceOf(address(this));  uint256 liquidity = balanceOf[address(this)];  uint256 amount0 = (liquidity * balance0) / totalSupply;  uint256 amount1 = (liquidity * balance1) / totalSupply;  if (amount0 

上一篇:轻松掌握!下载苹果自带APP的实用秘籍揭秘!

下一篇:c++ list详解