Skip to main content

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 Pegasys V3 pool

Parameters:

NameTypeDescription
pooladdressAddress of Pegasys V3 pool that we want to observe
perioduint32Number of seconds in the past to start calculating time-weighted average

Return Values:

NameTypeDescription
arithmeticMeanTickint24The arithmetic mean tick from (block.timestamp - secondsAgo) to block.timestamp
harmonicMeanLiquidityuint128The 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
tickint24Tick value used to calculate the quote
baseAmountuint128Amount of token to be converted
baseTokenaddressAddress of an ERC20 token contract used as the baseAmount denomination
quoteTokenaddressAddress of an ERC20 token contract used as the quoteAmount denomination

Return Values:

NameTypeDescription
quoteAmountuint256Amount of quoteToken received for baseAmount of baseToken