UniV3Relayer
Inherits: IBaseOracle, IUniV3Relayer
This contracts consults a UniswapV3Pool TWAP and transforms the result into a standard IBaseOracle feed
The quote obtained from the pool query is transformed into an 18 decimals format
State Variables
uniV3Pool
Address of the UniswapV3Pool used to consult the TWAP
address public uniV3Pool;
baseToken
Address of the base token used to consult the quote from
address public baseToken;
quoteToken
Address of the token used as a quote reference
address public quoteToken;
symbol
Symbol of the quote: token / baseToken (e.g. 'ETH / USD')
string public symbol;
baseAmount
The amount in wei of the base token used to consult the pool for a quote
uint128 public baseAmount;
multiplier
The multiplier used to convert the quote into an 18 decimals format
uint256 public multiplier;
quotePeriod
The length of the TWAP used to consult the pool
uint32 public quotePeriod;
Functions
constructor
constructor(address _uniV3Factory, address _baseToken, address _quoteToken, uint24 _feeTier, uint32 _quotePeriod);
Parameters
Name | Type | Description |
---|---|---|
_uniV3Factory | address | |
_baseToken | address | Address of the base token used to consult the quote |
_quoteToken | address | Address of the token used as a quote reference |
_feeTier | uint24 | Fee tier of the pool used to consult the quote |
_quotePeriod | uint32 | Length in seconds of the TWAP used to consult the pool |
getResultWithValidity
Fetch the latest oracle result and whether it is valid or not
Method will return invalid if the pool doesn't have enough history
function getResultWithValidity() external view returns (uint256 _result, bool _validity);
read
Fetch the latest oracle result
This method may revert with 'OLD!' if the pool doesn't have enough cardinality or initialized history
function read() external view returns (uint256 _result);
_parseResult
Parses the result from the aggregator into 18 decimals format
function _parseResult(uint256 _quoteResult) internal view returns (uint256 _result);