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

Last updated