智能合约是DAPP的核心组成部分,它是一种自执行的计算机代码,It can ensure that any transaction is validated and executed.智能合约提供了一种区块链上的可编程机制,通过编写代码,将一系列的条件和操作映射到智能合约中,To achieve management and control of data and transactions on the blockchain.
function burn(
int24 tickLower,
int24 tickUpper,
uint128 amount
)external override lock returns(uint256 amount0,uint256 amount1){
//先计算出需要移除的token数
(Position.Info storage position,int256 amount0Int,int256 amount1Int)=
_modifyPosition(
ModifyPositionParams({
owner:msg.sender,
tickLower:tickLower,
tickUpper:tickUpper,
liquidityDelta:-int256(amount).toInt128()
})
);
amount0=uint256(-amount0Int);
amount1=uint256(-amount1Int);
//注意这里,移除流动性后,将移出的token数记录到了position.tokensOwed上
if(amount0>0||amount1>0){
(position.tokensOwed0,position.tokensOwed1)=(
position.tokensOwed0+uint128(amount0),
position.tokensOwed1+uint128(amount1)
);
}
emit Burn(msg.sender,tickLower,tickUpper,amount,amount0,amount1);
}