Tick

Manages tick processes and computes variables stored in the tick state

tickSpacingToMaxLiquidityPerTick

Derives max liquidity per tick from given tick spacing. Executed within the pool constructor.

function tickSpacingToMaxLiquidityPerTick(int24 tickSpacing)  internal  pure  returns  (uint128) 

Params:

Name

Type

Description

tickSpacing

int24

The amount of required tick separation, realized in multiples of tickSpacing

Returns:

Type

Description

uint128

Maximum liquidity per tick

getGrowthInside

Computes growth of fees, collateral, Spear and Shield deltas within a tick boundary.

function getGrowthInside(mapping(int24 => TickInfo)  storage self,  int24 tickLower,  int24 tickUpper,  int24 tickCurrent, GrowthX128 memory global)
internal
view
returns  (GrowthX128 memory inside)

Params:

Name

Type

Description

self

mapping(int24 => struct Tick.Info)

The mapping containing TickInfo. See Types

tickLower

int24

The lower tick boundary of the position

tickUpper

int24

The upper tick boundary of the position

tickCurrent

int24

The current tick

global

GrowthX128

The GrowthX128 info struct per unit of liquidity as of the last update to the pool's global state

Returns:

Name

Type

Description

inside

GrowthX128

The GrowthX128 info struct per unit of liquidity inside the tick range

update

Updates a tick and returns true if the tick was flipped from initialized to uninitialized, or vice versa.

function update(mapping(int24 => TickInfo) storage self, int24 tick, int24 tickCurrent, int128 liquidityDelta, GrowthX128 memory global, uint128 maxLiquidity, bool upper) internal returns (bool flipped)

Params:

Name

Type

Description

self

mapping(int24 => struct Tick.Info)

The mapping containing TickInfo. See Types

tick

int24

The tick that will be updated

tickCurrent

int24

The current tick

liquidityDelta

int128

The change in liquidity

global

GrowthX128

The GrowthX128 info struct per unit of liquidity as of the last update to the pool's global state

maxLiquidity

uint128

The maximum liquidity allocation for a single tick

upper

bool

Indicates whether the tick represents the upper boundary

Returns:

Name

Type

Description

flipped

bool

Whether the tick was flipped from initialized to uninitialized, or vice versa

clear

Clears tick data

function clear(mapping(int24 => TickInfo)  storage self,  int24 tick)  internal  

Params:

Name

Type

Description

self

mapping(int24 => struct Tick.Info)

The mapping containing TickInfo. See Types

tick

int24

The tick that will be cleared

cross

Transitions to next tick as needed by price movement

function cross(mapping(int24 => TickInfo) storage self, int24 tick, GrowthX128 memory global) internal returns (int128 liquidityNet)

Params:

Name

Type

Description

self

mapping(int24 => struct Tick.Info)

The mapping containing TickInfo. See Types

tick

int24

The destination tick of the transition

global

GrowthX128

The GrowthX128 info struct per unit of liquidity as of the last update to the pool's global state

Returns:

Name

Type

Description

liquidityNet

int128

The net liquidity

Last updated