View Source Uniswap.Tick.Math (Uniswap v0.0.2-dev)

Math library for computing sqrt prices from ticks and vice versa

Summary

Functions

Return the nearest bigger valid tick with respect to the tick spacing

Returns the nearest smaller valid tick with respect to the tick spacing

Calculates sqrt(1.0001^tick) * 2^96

Same as sqrt_ratio_at_tick/1 but raises on errors

Same as tick_at_sqrt_ratio/1 but raises on errors

Base for tick calculatio: 1.0001

Functions

Link to this function

next_valid_tick(tick, tick_spacing)

View Source

Return the nearest bigger valid tick with respect to the tick spacing

Examples

iex> Uniswap.Tick.Math.next_valid_tick(53, 10)
60

iex> Uniswap.Tick.Math.next_valid_tick(59, 10)
60

iex> Uniswap.Tick.Math.next_valid_tick(90, 10)
90

iex> Uniswap.Tick.Math.next_valid_tick(-90, 10)
-90

iex> Uniswap.Tick.Math.next_valid_tick(0, 10)
0

iex> Uniswap.Tick.Math.next_valid_tick(-54, 10)
-50

iex> Uniswap.Tick.Math.next_valid_tick(22, 8)
24
Link to this function

prev_valid_tick(tick, tick_spacing)

View Source

Returns the nearest smaller valid tick with respect to the tick spacing

Examples

iex> Uniswap.Tick.Math.prev_valid_tick(53, 10)
50

iex> Uniswap.Tick.Math.prev_valid_tick(59, 10)
50

iex> Uniswap.Tick.Math.prev_valid_tick(90, 10)
90

iex> Uniswap.Tick.Math.prev_valid_tick(-90, 10)
-90

iex> Uniswap.Tick.Math.prev_valid_tick(0, 10)
0

iex> Uniswap.Tick.Math.prev_valid_tick(-54, 10)
-60

iex> Uniswap.Tick.Math.prev_valid_tick(22, 8)
16
Link to this function

sqrt_ratio_at_tick(tick)

View Source

Calculates sqrt(1.0001^tick) * 2^96

Link to this function

sqrt_ratio_at_tick!(tick)

View Source

Same as sqrt_ratio_at_tick/1 but raises on errors

Link to this function

tick_at_sqrt_ratio(sqrt_ratio)

View Source

Calculates reverse of sqrt_ratio_at_tick/1.

IMPORTANT: This function is not precision safe and is using floating point calculation. Do not use in prod!

Link to this function

tick_at_sqrt_ratio!(tick)

View Source

Same as tick_at_sqrt_ratio/1 but raises on errors

Base for tick calculatio: 1.0001