Timelock Trade LogoTimelock Protocol

Reserve Liquidity

Reserve Liquidity from future

This can be called by the user directly, it uses msg.sender context. Users share would be burned and they will receive the V3 AMM fees upto this point.

function reserveLiquidity(bytes calldata _reserveLiquidityParam) external whenNotPaused returns (uint256);

Parameters

NameTypeDescription
_reserveLiquidityParambytesThe data required for reserving liquidity.

Returns

TypeDescription
uint256The number of shares burned.

The `_reserveLiquidityParam` parameter has to be constructed the following way:

struct BurnPositionParams {
    IUniswapV3Pool pool;
    address hook;
    int24 tickLower;
    int24 tickUpper;
    uint128 shares;
}
 
bytes memory _reserveLiquidityParam = abi.encode(
    _params.pool,
    _params.hook,
    _params.tickLower,
    _params.tickUpper,
    _params.shares
);
 
// To decode:
BurnPositionParams memory decodedParams = abi.decode(encodedData, (BurnPositionParams));

BurnPositionParams Struct

Field NameTypeDescription
poolIUniswapV3PoolThe Uniswap V3 pool contract
hookaddressThe address of the hook contract
tickLowerint24The lower tick of the position
tickUpperint24The upper tick of the position
sharesuint128The amount of shares to burn

On this page