Uniswap.Tick.Math (Uniswap v0.0.5)
View SourceMath 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
Calculates reverse of sqrt_ratio_at_tick/1
.
Same as tick_at_sqrt_ratio/1
but raises on errors
Base for tick calculatio: 1.0001
Functions
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
iex> Uniswap.Tick.Math.next_valid_tick(887_272, 10)
887_270
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
iex> Uniswap.Tick.Math.prev_valid_tick(-887_272, 10)
-887_270
iex> Uniswap.Tick.Math.prev_valid_tick(-887_270, 10)
-887_270
Calculates sqrt(1.0001^tick) * 2^96
Same as sqrt_ratio_at_tick/1
but raises on errors
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!
Same as tick_at_sqrt_ratio/1
but raises on errors
Base for tick calculatio: 1.0001