LiquidityAmounts
Provides functions for computing liquidity amounts from token amounts and prices
#
Functions#
getLiquidityForAmount0 function getLiquidityForAmount0( uint160 sqrtRatioAX96, uint160 sqrtRatioBX96, uint256 amount0 ) internal returns (uint128 liquidity)
Computes the amount of liquidity received for a given amount of token0 and price range
Calculates amount0 (sqrt(upper) sqrt(lower)) / (sqrt(upper) - sqrt(lower))
#
Parameters:Name | Type | Description |
---|---|---|
sqrtRatioAX96 | uint160 | A sqrt price representing the first tick boundary |
sqrtRatioBX96 | uint160 | A sqrt price representing the second tick boundary |
amount0 | uint256 | The amount0 being sent in |
#
Return Values:Name | Type | Description |
---|---|---|
liquidity | uint128 | The amount of returned liquidity |
#
getLiquidityForAmount1 function getLiquidityForAmount1( uint160 sqrtRatioAX96, uint160 sqrtRatioBX96, uint256 amount1 ) internal returns (uint128 liquidity)
Computes the amount of liquidity received for a given amount of token1 and price range
Calculates amount1 / (sqrt(upper) - sqrt(lower)).
#
Parameters:Name | Type | Description |
---|---|---|
sqrtRatioAX96 | uint160 | A sqrt price representing the first tick boundary |
sqrtRatioBX96 | uint160 | A sqrt price representing the second tick boundary |
amount1 | uint256 | The amount1 being sent in |
#
Return Values:Name | Type | Description |
---|---|---|
liquidity | uint128 | The amount of returned liquidity |
#
getLiquidityForAmounts function getLiquidityForAmounts( uint160 sqrtRatioX96, uint160 sqrtRatioAX96, uint160 sqrtRatioBX96, uint256 amount0, uint256 amount1 ) internal returns (uint128 liquidity)
Computes the maximum amount of liquidity received for a given amount of token0, token1, the current pool prices and the prices at the tick boundaries
#
Parameters:Name | Type | Description |
---|---|---|
sqrtRatioX96 | uint160 | A sqrt price representing the current pool prices |
sqrtRatioAX96 | uint160 | A sqrt price representing the first tick boundary |
sqrtRatioBX96 | uint160 | A sqrt price representing the second tick boundary |
amount0 | uint256 | The amount of token0 being sent in |
amount1 | uint256 | The amount of token1 being sent in |
#
Return Values:Name | Type | Description |
---|---|---|
liquidity | uint128 | The maximum amount of liquidity received |
#
getAmount0ForLiquidity function getAmount0ForLiquidity( uint160 sqrtRatioAX96, uint160 sqrtRatioBX96, uint128 liquidity ) internal returns (uint256 amount0)
Computes the amount of token0 for a given amount of liquidity and a price range
#
Parameters:Name | Type | Description |
---|---|---|
sqrtRatioAX96 | uint160 | A sqrt price representing the first tick boundary |
sqrtRatioBX96 | uint160 | A sqrt price representing the second tick boundary |
liquidity | uint128 | The liquidity being valued |
#
Return Values:Name | Type | Description |
---|---|---|
amount0 | uint256 | The amount of token0 |
#
getAmount1ForLiquidity function getAmount1ForLiquidity( uint160 sqrtRatioAX96, uint160 sqrtRatioBX96, uint128 liquidity ) internal returns (uint256 amount1)
Computes the amount of token1 for a given amount of liquidity and a price range
#
Parameters:Name | Type | Description |
---|---|---|
sqrtRatioAX96 | uint160 | A sqrt price representing the first tick boundary |
sqrtRatioBX96 | uint160 | A sqrt price representing the second tick boundary |
liquidity | uint128 | The liquidity being valued |
#
Return Values:Name | Type | Description |
---|---|---|
amount1 | uint256 | The amount of token1 |
#
getAmountsForLiquidity function getAmountsForLiquidity( uint160 sqrtRatioX96, uint160 sqrtRatioAX96, uint160 sqrtRatioBX96, uint128 liquidity ) internal returns (uint256 amount0, uint256 amount1)
Computes the token0 and token1 value for a given amount of liquidity, the current pool prices and the prices at the tick boundaries
#
Parameters:Name | Type | Description |
---|---|---|
sqrtRatioX96 | uint160 | A sqrt price representing the current pool prices |
sqrtRatioAX96 | uint160 | A sqrt price representing the first tick boundary |
sqrtRatioBX96 | uint160 | A sqrt price representing the second tick boundary |
liquidity | uint128 | The liquidity being valued |
#
Return Values:Name | Type | Description |
---|---|---|
amount0 | uint256 | The amount of token0 |
amount1 | uint256 | The amount of token1 |