Skip to content

TickMath

Computes sqrt price for ticks of size 1.0001, i.e. sqrt(1.0001^tick) as fixed point Q64.96 numbers. Supports prices between 2-128 and 2128

Functions

getSqrtRatioAtTick

  function getSqrtRatioAtTick(
    int24 tick
  ) internal pure returns (uint160 sqrtPriceX96)

Calculates sqrt(1.0001^tick) * 2^96

Throws if |tick| > max tick

Parameters:

Name Type Description
tick int24 The input tick for the above formula

Return Values:

Name Type Description
sqrtPriceX96 uint160 A Fixed point Q64.96 number representing the sqrt of the ratio of the two assets (token1/token0)

at the given tick

getTickAtSqrtRatio

  function getTickAtSqrtRatio(
    uint160 sqrtPriceX96
  ) internal pure returns (int24 tick)

Calculates the greatest tick value such that getRatioAtTick(tick) <= ratio

Throws in case sqrtPriceX96 < MIN_SQRT_RATIO, as MIN_SQRT_RATIO is the lowest value getRatioAtTick may ever return.

Parameters:

Name Type Description
sqrtPriceX96 uint160 The sqrt ratio for which to compute the tick as a Q64.96

Return Values:

Name Type Description
tick int24 The greatest tick for which the ratio is less than or equal to the input ratio