FluidGenericOracleBase ​
Inherits: OracleError, GenericOracleStructs, ChainlinkSourceReader, FluidSourceReader, FluidDebtSourceReader
generic configurable Oracle Base combines up to 4 hops from sources such as
- an existing IFluidOracle (e.g. ContractRate)
- Redstone
- Chainlink
State Variables ​
_SOURCE1 ​
solidity
address internal immutable _SOURCE1;_SOURCE1_INVERT ​
solidity
bool internal immutable _SOURCE1_INVERT;_SOURCE1_MULTIPLIER ​
solidity
uint256 internal immutable _SOURCE1_MULTIPLIER;_SOURCE1_DIVISOR ​
solidity
uint256 internal immutable _SOURCE1_DIVISOR;_SOURCE1_TYPE ​
solidity
SourceType internal immutable _SOURCE1_TYPE;_SOURCE2 ​
solidity
address internal immutable _SOURCE2;_SOURCE2_INVERT ​
solidity
bool internal immutable _SOURCE2_INVERT;_SOURCE2_MULTIPLIER ​
solidity
uint256 internal immutable _SOURCE2_MULTIPLIER;_SOURCE2_DIVISOR ​
solidity
uint256 internal immutable _SOURCE2_DIVISOR;_SOURCE2_TYPE ​
solidity
SourceType internal immutable _SOURCE2_TYPE;_SOURCE3 ​
solidity
address internal immutable _SOURCE3;_SOURCE3_INVERT ​
solidity
bool internal immutable _SOURCE3_INVERT;_SOURCE3_MULTIPLIER ​
solidity
uint256 internal immutable _SOURCE3_MULTIPLIER;_SOURCE3_DIVISOR ​
solidity
uint256 internal immutable _SOURCE3_DIVISOR;_SOURCE3_TYPE ​
solidity
SourceType internal immutable _SOURCE3_TYPE;_SOURCE4 ​
solidity
address internal immutable _SOURCE4;_SOURCE4_INVERT ​
solidity
bool internal immutable _SOURCE4_INVERT;_SOURCE4_MULTIPLIER ​
solidity
uint256 internal immutable _SOURCE4_MULTIPLIER;_SOURCE4_DIVISOR ​
solidity
uint256 internal immutable _SOURCE4_DIVISOR;_SOURCE4_TYPE ​
solidity
SourceType internal immutable _SOURCE4_TYPE;_SOURCE5 ​
solidity
address internal immutable _SOURCE5;_SOURCE5_INVERT ​
solidity
bool internal immutable _SOURCE5_INVERT;_SOURCE5_MULTIPLIER ​
solidity
uint256 internal immutable _SOURCE5_MULTIPLIER;_SOURCE5_DIVISOR ​
solidity
uint256 internal immutable _SOURCE5_DIVISOR;_SOURCE5_TYPE ​
solidity
SourceType internal immutable _SOURCE5_TYPE;Functions ​
constructor ​
solidity
constructor(OracleHopSource[] memory sources_);_verifyOracleHopSource ​
verifies a hop source config
solidity
function _verifyOracleHopSource(OracleHopSource memory source_) internal view virtual;_readSource ​
reads the exchange rate for a hop source
solidity
function _readSource(address source_, SourceType sourceType_, bool isOperate_)
internal
view
virtual
returns (uint256 rate_);_getExchangeRateForHop ​
gets the exchange rate for a single configured hop
solidity
function _getExchangeRateForHop(uint256 curHopsRate_, bool isOperate_, OracleHopSource memory source_)
internal
view
virtual
returns (uint256 rate_);_getHopsExchangeRate ​
gets the exchange rate combined for all configured hops
solidity
function _getHopsExchangeRate(bool isOperate_) internal view returns (uint256 rate_);getHopExchangeRates ​
Returns the exchange rate for each hop.
solidity
function getHopExchangeRates()
public
view
returns (
uint256 rateSource1Operate_,
uint256 rateSource1Liquidate_,
uint256 rateSource2Operate_,
uint256 rateSource2Liquidate_,
uint256 rateSource3Operate_,
uint256 rateSource3Liquidate_,
uint256 rateSource4Operate_,
uint256 rateSource4Liquidate_,
uint256 rateSource5Operate_,
uint256 rateSource5Liquidate_
);Returns
| Name | Type | Description |
|---|---|---|
rateSource1Operate_ | uint256 | The exchange rate for hop 1 during operate. |
rateSource1Liquidate_ | uint256 | The exchange rate for hop 1 during liquidate. |
rateSource2Operate_ | uint256 | The exchange rate for hop 2 during operate. |
rateSource2Liquidate_ | uint256 | The exchange rate for hop 2 during liquidate. |
rateSource3Operate_ | uint256 | The exchange rate for hop 3 during operate. |
rateSource3Liquidate_ | uint256 | The exchange rate for hop 3 during liquidate. |
rateSource4Operate_ | uint256 | The exchange rate for hop 4 during operate. |
rateSource4Liquidate_ | uint256 | The exchange rate for hop 4 during liquidate. |
rateSource5Operate_ | uint256 | The exchange rate for hop 5 during operate. |
rateSource5Liquidate_ | uint256 | The exchange rate for hop 5 during liquidate. |
getOracleHopSources ​
Returns the configured OracleHopSources
solidity
function getOracleHopSources() public view returns (OracleHopSource[] memory sources_);
