Tick
Contains functions for managing tick processes and relevant calculations
Functions#
tickSpacingToMaxLiquidityPerTick#
function tickSpacingToMaxLiquidityPerTick( int24 tickSpacing ) internal pure returns (uint128)Derives max liquidity per tick from given tick spacing
Executed within the pool constructor
Parameters:#
| Name | Type | Description |
|---|---|---|
tickSpacing | int24 | The amount of required tick separation, realized in multiples of tickSpacing e.g., a tickSpacing of 3 requires ticks to be initialized every 3rd tick i.e., ..., -6, -3, 0, 3, 6, ... |
Return Values:#
| Type | Description |
|---|---|
| uint128 | max liquidity per tick |
getFeeGrowthInside#
function getFeeGrowthInside( mapping(int24 => struct Tick.Info) self, int24 tickLower, int24 tickUpper, int24 tickCurrent, uint256 feeGrowthGlobal0X128, uint256 feeGrowthGlobal1X128 ) internal view returns (uint256 feeGrowthInside0X128, uint256 feeGrowthInside1X128)Retrieves fee growth data
Parameters:#
| Name | Type | Description |
|---|---|---|
self | mapping(int24 => struct Tick.Info) | The mapping containing all tick information for initialized ticks |
tickLower | int24 | The lower tick boundary of the position |
tickUpper | int24 | The upper tick boundary of the position |
tickCurrent | int24 | The current tick |
feeGrowthGlobal0X128 | uint256 | The all-time global fee growth, per unit of liquidity, in token0 |
feeGrowthGlobal1X128 | uint256 | The all-time global fee growth, per unit of liquidity, in token1 |
Return Values:#
| Name | Type | Description |
|---|---|---|
feeGrowthInside0X128 | uint256 | The all-time fee growth in token0, per unit of liquidity, inside the position's tick boundaries |
feeGrowthInside1X128 | uint256 | The all-time fee growth in token1, per unit of liquidity, inside the position's tick boundaries |
update#
function update( mapping(int24 => struct Tick.Info) self, int24 tick, int24 tickCurrent, int128 liquidityDelta, uint256 feeGrowthGlobal0X128, uint256 feeGrowthGlobal1X128, bool upper, uint128 maxLiquidity ) internal returns (bool flipped)Updates a tick and returns true if the tick was flipped from initialized to uninitialized, or vice versa
Parameters:#
| Name | Type | Description |
|---|---|---|
self | mapping(int24 => struct Tick.Info) | The mapping containing all tick information for initialized ticks |
tick | int24 | The tick that will be updated |
tickCurrent | int24 | The current tick |
liquidityDelta | int128 | A new amount of liquidity to be added (subtracted) when tick is crossed from left to right (right to left) |
feeGrowthGlobal0X128 | uint256 | The all-time global fee growth, per unit of liquidity, in token0 |
feeGrowthGlobal1X128 | uint256 | The all-time global fee growth, per unit of liquidity, in token1 |
upper | bool | true for updating a position's upper tick, or false for updating a position's lower tick |
maxLiquidity | uint128 | The maximum liquidity allocation for a single tick |
Return Values:#
| Name | Type | Description |
|---|---|---|
flipped | bool | Whether the tick was flipped from initialized to uninitialized, or vice versa |
clear#
function clear( mapping(int24 => struct Tick.Info) self, int24 tick ) internalClears tick data
Parameters:#
| Name | Type | Description |
|---|---|---|
self | mapping(int24 => struct Tick.Info) | The mapping containing all initialized tick information for initialized ticks |
tick | int24 | The tick that will be cleared |
cross#
function cross( mapping(int24 => struct Tick.Info) self, int24 tick, uint256 feeGrowthGlobal0X128, uint256 feeGrowthGlobal1X128 ) internal returns (int128 liquidityNet)Transitions to next tick as needed by price movement
Parameters:#
| Name | Type | Description |
|---|---|---|
self | mapping(int24 => struct Tick.Info) | The mapping containing all tick information for initialized ticks |
tick | int24 | The destination tick of the transition |
feeGrowthGlobal0X128 | uint256 | The all-time global fee growth, per unit of liquidity, in token0 |
feeGrowthGlobal1X128 | uint256 | The all-time global fee growth, per unit of liquidity, in token1 |
Return Values:#
| Name | Type | Description |
|---|---|---|
liquidityNet | int128 | The amount of liquidity added (subtracted) when tick is crossed from left to right (right to left) |