LimitPool
Manages limit liquidity positions.
Functions¶
mint¶
function mint(
MintParams memory params
) external lock
struct MintParams {
address to;
uint128 amount;
int24 lower;
int24 claim;
int24 upper;
bool zeroForOne;
}
lower to upper.
lower will be the lower price tick for the position.
upper will be the upper tick for the position.
Both lower and upper must be multiples of the tickSpread for the pool.
claim only need be an exact value in the case the user has already minted a position with the same lower and upper.
If this is the case, the claim tick must be the furthest tick crossed into the position.
zeroForOne as true means the LP deposits token0 and is filled with token1. zeroForOne as false means the LP deposits token1 and is filled with token0.
Parameters:
| Name | Type | Description |
|---|---|---|
to |
int24 | The recipient of the fungible position |
lower |
int24 | The lower price tick of the range |
claim |
int24 | The claim price tick of the range |
upper |
int24 | The upper price tick of the range |
amount |
uint128 | The amount of the input token to add to the Position |
zeroForOne |
bool | true for token0 => token1 and false for token1 => token0 |
Return Values:
| Name | Type | Description |
|---|---|---|
amount |
uint256 | The amount of the input token that was added to mint liquidity. |
burn¶
function burn(
BurnParams memory params
) external lock
struct BurnParams {
address to;
uint128 burnPercent;
int24 lower;
int24 claim;
int24 upper;
bool zeroForOne;
bool sync;
}
Burns liquidity from msg.sender. The token received from the burned liquidity is then sent to the address to.
burnPercent is a number no greater than 1e38 which equals 100%.
lower and upper must match a position owned by the caller.
zeroForOne will be true if the LP is trading token1 for token0 and false if the LP is trading token1 for token0.
sync should be true in most cases to receive the syncFee if available. false should only be used if the user wants to exit their LP without syncing the pool.
Parameters:
| Name | Type | Description |
|---|---|---|
to |
int24 | The recipient of the token from the burned liquidity |
burnPercent |
uint128 | The percent of the user's liquidity to be burned and collected (1e38 = 100%) |
lower |
int24 | The lower price tick of the range |
claim |
int24 | The claim price tick of the range |
upper |
int24 | The upper price tick of the range |
zeroForOne |
bool | true for token0 => token1 and false for token1 => token0 |
zeroForOne |
bool | true to allow sync and false to skip sync |
Return Values:
| Name | Type | Description |
|---|---|---|
amount0 |
uint256 | The amount of token0 collected for burning liquidity. Matches the value in the callback |
amount1 |
uint256 | The amount of token1 collected for burning liquidity. Matches the value in the callback |
swap¶
function swap(
address recipient,
bool zeroForOne,
uint256 amountIn,
uint160 priceLimit
) external override lock
Swaps token0 for token1 or token1 for token0.
Parameters:
| Name | Type | Description |
|---|---|---|
recipient |
address | The address to receive the output of the swap |
zeroForOne |
bool | The direction of the swap, true for token0 => token1, false for token1 => token0 |
amountIn |
int256 | The token amount for the swap |
priceLimit |
uint160 | The Q64.96 sqrt price limit. If zeroForOne is true, the price cannot be less than this value after the swap. If zeroForOne is false, the price cannot be greater than this value after the swap. |
data |
bytes | Raw data being passed through to the callback |
quote¶
function quote(
address recipient,
bool zeroForOne,
uint256 amountIn,
uint160 priceLimit
) external override lock
Swap token0 for token1, or token1 for token0.
Parameters:
| Name | Type | Description |
|---|---|---|
recipient |
address | The address to receive the output of the swap |
zeroForOne |
bool | The direction of the swap, true for token0 => token1, false for token1 => token0 |
amountIn |
int256 | The token amount for the swap |
priceLimit |
uint160 | The Q64.96 sqrt price limit. If zeroForOne is true, the price cannot be less than this value after the swap. If zeroForOne is false, the price cannot be greater than this value after the swap. |
data |
bytes | Raw data being passed through to the callback |
Return Values:
| Name | Type | Description |
|---|---|---|
amount0 |
uint128 | The change in the pool token0 balance |
amount1 |
uint128 | The change in the pool token1 balance |
collectProtocolFees¶
function protocolFees(
uint16 fillFee,
bool setFees
) external ownerOnly returns (
uint128 token0Fees,
uint128 token1Fees
)
Collect the protocol fees accrued by the pool.
Parameters:
| Name | Type | Description |
|---|---|---|
fillFee |
uint16 | The feet set based on fill amount |
setFees |
bool | Whether the fee should be set in this call or not |
Return Values:
| Name | Type | Description |
|---|---|---|
token0Fees |
uint128 | The protocol fee collected in token0 |
token1Fees |
uint128 | The protocol fee collected in token1 |