Alluvial Finance Inc.
Oracle Interface (v1)
This interface exposes methods to handle the input from the allowed oracle members.Highly inspired by Lido's implementation.
Adds new address as oracle member, giving the ability to push cl reports.
Only callable by the adminstratorModifying the quorum clears all the reporting data
_newOracleMember
address
Address of the new member
_newQuorum
uint256
New quorum value
Retrieve member report status
_0
uint256
The raw report status value
Retrieve the last reported epoch id
The Oracle contracts expects reports on an epoch id >= that the returned value
_0
uint256
The last reported epoch id
Retrieve member report status
_oracleMember
address
Address of member to check
_0
bool
True if member has reported
Retrieve the list of oracle members
_0
address[]
The oracle members
Retrieve the current quorum
_0
uint256
The current quorum
Retrieve the details of a report variant
_idx
uint256
The index of the report variant
_0
ReportsVariants.ReportVariantDetails
The report variant details
Retrieve report variants count
_0
uint256
The count of report variants
Retrieve River address
_0
address
The address of River
Initializes the oracle
_river
address
Address of the River contract, able to receive oracle input data after quorum is met
_administratorAddress
address
Address able to call administrative methods
_epochsPerFrame
uint64
CL spec parameter. Number of epochs in a frame.
_slotsPerEpoch
uint64
CL spec parameter. Number of slots in one epoch.
_secondsPerSlot
uint64
CL spec parameter. Number of seconds between slots.
_genesisTime
uint64
CL spec parameter. Timestamp of the genesis slot.
_annualAprUpperBound
uint256
CL bound parameter. Maximum apr allowed for balance increase. Delta between updates is extrapolated on a year time frame.
_relativeLowerBound
uint256
CL bound parameter. Maximum relative balance decrease.
Initializes the oracle
Returns true if address is member
Performs a naive search, do not call this on-chain, used as an off-chain helper
_memberAddress
address
Address of the member
_0
bool
True if address is a member
Removes an address from the oracle members.
Only callable by the adminstratorModifying the quorum clears all the reporting dataRemaining members that have already voted should vote again for the same frame.
_oracleMember
address
Address to remove
_newQuorum
uint256
New quorum value
_report
IOracleManagerV1.ConsensusLayerReport
undefined
Changes the address of an oracle member
Only callable by the adminitrator or the member itselfCannot use an address already in use
_oracleMember
address
Address to change
_newAddress
address
New address for the member
Edits the quorum required to forward cl data to River
Modifying the quorum clears all the reporting data
_newQuorum
uint256
New quorum parameter
A member has been added to the oracle member list
member indexed
address
The address of the member
Cleared reporting data
A member has been removed from the oracle member list
member indexed
address
The address of the member
An oracle member performed a report
member indexed
address
The oracle member
variant indexed
bytes32
The variant of the report
report
IOracleManagerV1.ConsensusLayerReport
The raw report structure
voteCount
uint256
The vote count
quorum
uint256
undefined
The report bounds have been changed
annualAprUpperBound
uint256
The maximum allowed apr. 10% means increases in balance extrapolated to a year should not exceed 10%.
relativeLowerBound
uint256
The maximum allowed balance decrease as a relative % of the total balance
The last reported epoch has changed
lastReportedEpoch
uint256
undefined
A member address has been edited
oldAddress indexed
address
The previous member address
newAddress indexed
address
The new member address
The storage quorum value has been changed
newQuorum
uint256
The new quorum value
The storage river address value has been changed
_river
address
The new river address
The consensus layer spec has been changed
epochsPerFrame
uint64
The number of epochs inside a frame (225 = 24 hours)
slotsPerEpoch
uint64
The number of slots inside an epoch (32 on ethereum mainnet)
secondsPerSlot
uint64
The time between two slots (12 seconds on ethereum mainnet)
genesisTime
uint64
The timestamp of block #0
The address is already in use by an oracle member
newAddress
address
The address already in use
The member already reported on the given epoch id
epochId
uint256
The epoch id provided as input
member
address
The oracle member
The provided epoch is too old compared to the expected epoch id
providedEpochId
uint256
The epoch id provided as input
minExpectedEpochId
uint256
The minimum epoch id expected
Thrown when the reported epoch is invalid
epoch
uint256
The invalid epoch
Thrown when the report indexs fetched is out of bounds
index
uint256
Requested index
length
uint256
Size of the variant array