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_TYPEFunctions ​
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_);
