Increase Liquidity
Increase Liquidity Within The Current Range
Make sure to go through the first guide before continuing to this section
This example assumes the contract already has custody of the NFT.
We cannot change the boundaries of a given liquidity position using the Pegasys v3 protocol;
increaseLiquidity
can only increase the liquidity of a position.In production,
amount0Min
andamount1Min
should be adjusted to create slippage protections.
/// @notice Increases liquidity in the current range
/// @dev Pool must be initialized already to add liquidity
/// @param tokenId The id of the erc721 token
/// @param amount0 The amount to add of token0
/// @param amount1 The amount to add of token1
function increaseLiquidityCurrentRange(
uint256 tokenId,
uint256 amountAdd0,
uint256 amountAdd1
)
external
returns (
uint128 liquidity,
uint256 amount0,
uint256 amount1
)
{
INonfungiblePositionManager.IncreaseLiquidityParams memory params =
INonfungiblePositionManager.IncreaseLiquidityParams({
tokenId: tokenId,
amount0Desired: amountAdd0,
amount1Desired: amountAdd1,
amount0Min: 0,
amount1Min: 0,
deadline: block.timestamp
});
(liquidity, amount0, amount1) = nonfungiblePositionManager.increaseLiquidity(params);
}