OracleManagerV1

Kiln

Oracle Manager (v1)

This contract handles the inputs provided by the oracleThe Oracle contract is plugged to this contract and is in charge of pushingdata whenever a new report has been deemed valid. The report consists in twovalues: the sum of all balances of all deposited validators and the count ofvalidators that have been activated on the consensus layer.

Methods

getCLValidatorCount

function getCLValidatorCount() external view returns (uint256)

Get CL validator count (the amount of validator reported by the oracles)

Returns

NameTypeDescription

_0

uint256

The CL validator count

getCLValidatorTotalBalance

function getCLValidatorTotalBalance() external view returns (uint256)

Get CL validator total balance

Returns

NameTypeDescription

_0

uint256

The CL Validator total balance

getOracle

function getOracle() external view returns (address)

Get oracle address

Returns

NameTypeDescription

_0

address

The oracle address

setConsensusLayerData

function setConsensusLayerData(uint256 _validatorCount, uint256 _validatorTotalBalance, bytes32 _roundId, uint256 _maxIncrease) external nonpayable

Sets the validator count and validator total balance sum reported by the oracle

Can only be called by the oracle addressThe round id is a blackbox value that should only be used to identify unique reportsWhen a report is performed, River computes the amount of fees that can be pulledfrom the execution layer fee recipient. This amount is capped by the max allowedincrease provided during the report.If the total asset balance increases (from the reported total balance and the pulled funds)we then compute the share that must be taken for the collector on the positive delta.The execution layer fees are taken into account here because they are the product ofnode operator's work, just like consensus layer fees, and both should be handled in thesame manner, as a single revenue stream for the users and the collector.

Parameters

NameTypeDescription

_validatorCount

uint256

The number of active validators on the consensus layer

_validatorTotalBalance

uint256

The balance sum of the active validators on the consensus layer

_roundId

bytes32

An identifier for this update

_maxIncrease

uint256

The maximum allowed increase in the total balance

setOracle

function setOracle(address _oracleAddress) external nonpayable

Set the oracle address

Parameters

NameTypeDescription

_oracleAddress

address

Address of the oracle

Events

ConsensusLayerDataUpdate

event ConsensusLayerDataUpdate(uint256 validatorCount, uint256 validatorTotalBalance, bytes32 roundId)

The consensus layer data provided by the oracle has been updated

Parameters

NameTypeDescription

validatorCount

uint256

undefined

validatorTotalBalance

uint256

undefined

roundId

bytes32

undefined

SetOracle

event SetOracle(address indexed oracleAddress)

The stored oracle address changed

Parameters

NameTypeDescription

oracleAddress indexed

address

undefined

Errors

InvalidValidatorCountReport

error InvalidValidatorCountReport(uint256 providedValidatorCount, uint256 depositedValidatorCount)

The reported validator count is invalid

Parameters

NameTypeDescription

providedValidatorCount

uint256

The received validator count value

depositedValidatorCount

uint256

The number of deposits performed by the system

InvalidZeroAddress

error InvalidZeroAddress()

The address is zero

Unauthorized

error Unauthorized(address caller)

The operator is unauthorized for the caller

Parameters

NameTypeDescription

caller

address

Address performing the call

Last updated