Helpful?
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 tickSpacinge.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
  ) internal
Clears 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) |