TickMath
this library is used in Fluid Vault protocol for optimiziation.
"tick" supports between -32767 and 32767. "ratioX96" supports between 37075072 and 169307877264527972847801929085841449095838922544595
MIN_TICK
int24 MIN_TICK
The minimum tick that can be passed in getRatioAtTick. 1.0015**-32767
MAX_TICK
int24 MAX_TICK
The maximum tick that can be passed in getRatioAtTick. 1.0015**32767
FACTOR00
uint256 FACTOR00
FACTOR01
uint256 FACTOR01
FACTOR02
uint256 FACTOR02
FACTOR03
uint256 FACTOR03
FACTOR04
uint256 FACTOR04
FACTOR05
uint256 FACTOR05
FACTOR06
uint256 FACTOR06
FACTOR07
uint256 FACTOR07
FACTOR08
uint256 FACTOR08
FACTOR09
uint256 FACTOR09
FACTOR10
uint256 FACTOR10
FACTOR11
uint256 FACTOR11
FACTOR12
uint256 FACTOR12
FACTOR13
uint256 FACTOR13
FACTOR14
uint256 FACTOR14
FACTOR15
uint256 FACTOR15
MIN_RATIOX96
uint256 MIN_RATIOX96
The minimum value that can be returned from getRatioAtTick. Equivalent to getRatioAtTick(MIN_TICK). ~ Equivalent to (1 << 96) * (1.0015**-32767)
MAX_RATIOX96
uint256 MAX_RATIOX96
The maximum value that can be returned from getRatioAtTick. Equivalent to getRatioAtTick(MAX_TICK).
~ Equivalent to (1 << 96) * (1.0015**32767)
, rounding etc. leading to minor difference
ZERO_TICK_SCALED_RATIO
uint256 ZERO_TICK_SCALED_RATIO
_1E26
uint256 _1E26
getRatioAtTick
function getRatioAtTick(int256 tick) internal pure returns (uint256 ratioX96)
ratioX96 = (1.0015^tick) * 2^96
Throws if |tick| > max tick
Parameters
Name | Type | Description |
---|---|---|
tick | int256 | The input tick for the above formula |
Return Values
Name | Type | Description |
---|---|---|
ratioX96 | uint256 | ratio = (debt amount/collateral amount) |
getTickAtRatio
function getTickAtRatio(uint256 ratioX96) internal pure returns (int256 tick, uint256 perfectRatioX96)
ratioX96 = (1.0015^tick) * 2^96
Throws if ratioX96 > max ratio || ratioX96 < min ratio
Parameters
Name | Type | Description |
---|---|---|
ratioX96 | uint256 | The input ratio; ratio = (debt amount/collateral amount) |
Return Values
Name | Type | Description |
---|---|---|
tick | int256 | The output tick for the above formula. Returns in round down form. if tick is 123.23 then 123, if tick is -123.23 then returns -124 |
perfectRatioX96 | uint256 | perfect ratio for the above tick |