WstETHCLRS2UniV3CheckCLRSOracle

Git Source

Inherits:FluidOracle, WstETHOracleImpl, FallbackOracleImpl2, UniV3CheckCLRSOracle

Gets the exchange rate between the underlying asset and the peg asset by using:

  1. wstETH Oracle price in combination with rate from Chainlink price feeds (or Redstone as fallback). combining those two into one rate resulting in wstETH <> someToken
  2. result from 1. combined with a uniV3CheckCLRSOracle to get from someToken <> someToken2 e.g. when going from wstETH to USDC:
  3. wstETH -> stETH wstETH Oracle, stETH -> ETH Chainlink feed. 2, ETH -> USDC via UniV3 ETH <> USDC pool checked against ETH -> USDC Chainlink feed.

Functions

constructor

constructs a WstETHCLRS2UniV3CheckCLRSOracle with all inherited contracts

constructor(
    WstETHCLRS2ConstructorParams memory wstETHCLRS2Params_,
    UniV3CheckCLRSConstructorParams memory uniV3CheckCLRSParams_
)
    WstETHOracleImpl(wstETHCLRS2Params_.wstETH)
    FallbackOracleImpl2(
        wstETHCLRS2Params_.fallbackMainSource,
        wstETHCLRS2Params_.chainlinkParams,
        wstETHCLRS2Params_.redstoneOracle
    )
    UniV3CheckCLRSOracle(uniV3CheckCLRSParams_);

Parameters

NameTypeDescription
wstETHCLRS2Params_WstETHCLRS2ConstructorParamsWstETHCLRS2ConstructorParams for wstETH <> CLRS Token2 conversion
uniV3CheckCLRSParams_UniV3CheckCLRSConstructorParamsUniV3CheckCLRSOracle constructor params

getExchangeRate

function getExchangeRate() public view override(FluidOracle, UniV3CheckCLRSOracle) returns (uint256 exchangeRate_);

FALLBACK_ORACLE2_MAIN_SOURCE

which oracle to use as main source:

  • 1 = Chainlink ONLY (no fallback)
  • 2 = Chainlink with Redstone Fallback
  • 3 = Redstone with Chainlink Fallback
function FALLBACK_ORACLE2_MAIN_SOURCE() public view returns (uint8);

Structs

WstETHCLRS2ConstructorParams

struct WstETHCLRS2ConstructorParams {
    IWstETH wstETH;
    uint8 fallbackMainSource;
    ChainlinkConstructorParams chainlinkParams;
    RedstoneOracleData redstoneOracle;
}