OracleLibrary

Provides functions to integrate with V3 pool oracle

Functions

consult

  function consult(
    address pool,
    uint32 period
  ) internal view returns (int24 arithmeticMeanTick, uint128 harmonicMeanLiquidity)

Calculates time-weighted means of tick and liquidity for a given Uniswap V3 pool

Parameters:

NameTypeDescription

pool

address

Address of Uniswap V3 pool that we want to observe

period

uint32

Number of seconds in the past to start calculating time-weighted average

Return Values:

NameTypeDescription

arithmeticMeanTick

int24

The arithmetic mean tick from (block.timestamp - secondsAgo) to block.timestamp

harmonicMeanLiquidity

uint128

The harmonic mean liquidity from (block.timestamp - secondsAgo) to block.timestamp

getQuoteAtTick

  function getQuoteAtTick(
    int24 tick,
    uint128 baseAmount,
    address baseToken,
    address quoteToken
  ) internal pure returns (uint256 quoteAmount)

Given a tick and a token amount, calculates the amount of token received in exchange

Parameters:

NameTypeDescription

tick

int24

Tick value used to calculate the quote

baseAmount

uint128

Amount of token to be converted

baseToken

address

Address of an ERC20 token contract used as the baseAmount denomination

quoteToken

address

Address of an ERC20 token contract used as the quoteAmount denomination

Return Values:

NameTypeDescription

quoteAmount

uint256

Amount of quoteToken received for baseAmount of baseToken

Last updated