INonfungiblePositionManager
Wraps Bonsaiswap V3 positions in a non-fungible token interface which allows for them to be transferred and authorized.
Parameter Structs
MintParams
IncreaseLiquidityParams
DecreaseLiquidityParams
CollectParams
Functions
positions
Returns the position information associated with a given token ID.
Throws if the token ID is not valid.
Parameters:
Name | Type | Description |
---|---|---|
| uint256 | The ID of the token that represents the position |
Return Values:
Name | Type | Description |
---|---|---|
| uint96 | The nonce for permits |
| address | The address that is approved for spending |
| address | The address of the token0 for a specific pool |
| address | The address of the token1 for a specific pool |
| uint24 | The fee associated with the pool |
| int24 | The lower end of the tick range for the position |
| int24 | The higher end of the tick range for the position |
| uint128 | The liquidity of the position |
| uint256 | The fee growth of token0 as of the last action on the individual position |
| uint256 | The fee growth of token1 as of the last action on the individual position |
| uint128 | The uncollected amount of token0 owed to the position as of the last computation |
| uint128 | The uncollected amount of token1 owed to the position as of the last computation |
createAndInitializePoolIfNecessary
Creates a new pool if it does not exist, then initializes if not initialized
This method can be bundled with mint for the first mint of a pool to create, initialize a pool and mint at the same time
Parameters:
Name | Type | Description |
---|---|---|
| address | The contract address of either token0 or token1 |
| address | The contract address of the other token |
| uint24 | The fee amount of the v3 pool for the specified token pair |
| uint160 | The initial square root price of the pool as a Q64.96 value |
We use tokenA and tokenB when we are referring to unsorted, or unordered tokens
Return Values:
Name | Type | Description |
---|---|---|
| address | Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary |
mint
Creates a new position wrapped in a NFT
Call this when the pool does exist and is initialized. Note that if the pool is created but not initialized a method does not exist, i.e. the pool is assumed to be initialized.
Parameters:
Name | Type | Description |
---|---|---|
| struct INonfungiblePositionManager.MintParams | The params necessary to mint a position, encoded as |
Return Values:
Name | Type | Description |
---|---|---|
| uint256 | The ID of the token that represents the minted position |
| uint128 | The amount of liquidity for this position |
| uint256 | The amount of token0 |
| uint256 | The amount of token1 |
increaseLiquidity
Increases the amount of liquidity in a position, with tokens paid by the msg.sender
Parameters:
Name | Type | Description |
---|---|---|
| struct INonfungiblePositionManager.IncreaseLiquidityParams | tokenId The ID of the token for which liquidity is being increased, |
Return Values:
Name | Type | Description |
---|---|---|
| uint128 | The new liquidity amount as a result of the increase |
| uint256 | The amount of token0 to acheive resulting liquidity |
| uint256 | The amount of token1 to acheive resulting liquidity |
decreaseLiquidity
Decreases the amount of liquidity in a position and accounts it to the position
Parameters:
Name | Type | Description |
---|---|---|
| struct INonfungiblePositionManager.DecreaseLiquidityParams | tokenId The ID of the token for which liquidity is being decreased |
Return Values:
Name | Type | Description |
---|---|---|
| uint256 | The amount of token0 sent to recipient |
| uint256 | The amount of token1 sent to recipient |
collect
Collects up to a maximum amount of fees owed to a specific position to the recipient
Parameters:
Name | Type | Description |
---|---|---|
| struct INonfungiblePositionManager.CollectParams | tokenId The ID of the NFT for which tokens are being collected, |
Return Values:
Name | Type | Description |
---|---|---|
| uint256 | The amount of fees collected in token0 |
| uint256 | The amount of fees collected in token1 |
burn
Burns a token ID, which deletes it from the NFT contract. The token must have 0 liquidity and all tokens must be collected first.
Parameters:
Name | Type | Description |
---|---|---|
| uint256 | The ID of the token that is being burned |
Events
IncreaseLiquidity
Emitted when liquidity is increased for a position NFT
Also emitted when a token is minted
Parameters:
Name | Type | Description |
---|---|---|
| uint256 | The ID of the token for which liquidity was increased |
| uint128 | The amount by which liquidity for the NFT position was increased |
| uint256 | The amount of token0 that was paid for the increase in liquidity |
| uint256 | The amount of token1 that was paid for the increase in liquidity |
DecreaseLiquidity
Emitted when liquidity is decreased for a position NFT
Parameters:
Name | Type | Description |
---|---|---|
| uint256 | The ID of the token for which liquidity was decreased |
| uint128 | The amount by which liquidity for the NFT position was decreased |
| uint256 | The amount of token0 that was accounted for the decrease in liquidity |
| uint256 | The amount of token1 that was accounted for the decrease in liquidity |
Collect
Emitted when tokens are collected for a position NFT
The amounts reported may not be exactly equivalent to the amounts transferred, due to rounding behavior
Parameters:
Name | Type | Description |
---|---|---|
| uint256 | The ID of the token for which underlying tokens were collected |
| address | The address of the account that received the collected tokens |
| uint256 | The amount of token0 owed to the position that was collected |
| uint256 | The amount of token1 owed to the position that was collected |
Last updated