DiverSqrtPriceMath
Contains the math that uses liquidity to compute token deltas or square root of price as a Q64.96
getSTokenDelta
Gets the delta amount of Spear or Shield tokens based on the given sqrt ratios and liquidity. Computes for Spear token delta when the sqrtPrice moves from upper to lower; or Shield token delta when the sqrtPrice moves from lower to upper. For the same sqrt ratio range and liquidity, the computed delta amounts of Spear and Shield are equal.
The formula for this is spear or shield delta amount = liquidity * (sqrtRatioBX96 - sqrtRatioAX96) * (1 + 1 /(sqrtRatioAX96 * sqrtRatioBX96))
Params:
Name
Type
Description
sqrtRatioAX96
uint160
A sqrt ratio
sqrtRatioBX96
uint160
Another sqrt ratio
liquidity
uint128
The change in liquidity for which to compute the Spear or Shield token delta
roundUp
bool
Whether to round the amount up or down
Returns:
Name
Type
Description
amount
uint256
The amount of Spear or Shield token corresponding to the passed liquidityDelta between the two prices
getSTokenDelta
Helper that gets signed spear or shield token delta
Params:
Name
Type
Description
sqrtRatioAX96
uint160
A sqrt ratio
sqrtRatioBX96
uint160
Another sqrt ratio
liquidity
int128
The change in liquidity for which to compute the Spear or Shield token delta
Returns:
Name
Type
Description
amount
int256
The amount of Spear or Shield token corresponding to the passed liquidityDelta between the two prices
getNextSqrtPriceFromSpear
Gets the next sqrt ratio based on the given the Spear token delta and liquidity.
Params:
Name
Type
Description
sqrtPrice
uint160
The starting price, i.e. before accounting for the spear token delta
liquidity
uint128
The amount of usable liquidity
amount
uint256
The amount of Spear token delta to mint for the trade
unit
uint256
The token decimal unit, e.g. a token with 18 decimals has a unit of 10**18
Returns:
Name
Type
Description
nextSqrtPrice
uint160
The next sqrt ratio after minting the given amount of Spear tokens
getNextSqrtPriceFromShield
Gets the next sqrt ratio based on the given the Shield token delta and liquidity.
Params:
Name
Type
Description
sqrtPrice
uint160
The starting price, i.e. before accounting for the Shield token delta
liquidity
uint128
The amount of usable liquidity
amount
uint256
The amount of Shield token delta to mint for the trade
unit
uint256
The token decimal unit, e.g. a token with 18 decimals has a unit of 10**18
Returns:
Name
Type
Description
nextSqrtPrice
uint160
The next sqrt ratio after minting the given amount of Shield tokens
Last updated