All pages
Powered by GitBook
1 of 1

Loading...

RiverV1

Alluvial Finance Inc.

River (v1)

This contract merges all the manager contracts and implements all the virtual methods stitching all components together.

  1. Operators add BLS Public Keys of validators running in their infrastructure.

  2. User deposits ETH to the system and gets LsTokens minted in exchange.

  3. Upon deposit, the system verifies if the User is allowed to deposit by querying the Allowlist.

  4. When the system has enough funds to deposit validators, keys are pulled from the Operators Registry.

  5. The deposit data is computed and the validators are funded via the OfficialDeposit contract.

  6. Oracles report the total balance of the running validators and the total count of running validators.

  7. The running validators propose blocks that reward the EL Fee Recipient. The funds are pulled back in the system.

Methods

DEPOSIT_SIZE

Size of a deposit in ETH

Returns

Name
Type
Description

PUBLIC_KEY_LENGTH

Size of a BLS Public key in bytes

Returns

Name
Type
Description

SIGNATURE_LENGTH

Size of a BLS Signature in bytes

Returns

Name
Type
Description

_DEPOSIT_SIZE

Size of a deposit in ETH

Returns

Name
Type
Description

acceptAdmin

Accept the transfer of ownership

Only callable by the pending admin. Resets the pending admin if successful.

allowance

Retrieve the allowance value for a spender

Parameters

Name
Type
Description

Returns

Name
Type
Description

approve

Approves an account for future spendings

An approved account can use transferFrom to transfer funds on behalf of the token owner

Parameters

Name
Type
Description

Returns

Name
Type
Description

balanceOf

Retrieve the balance of an account

Parameters

Name
Type
Description

Returns

Name
Type
Description

balanceOfUnderlying

Retrieve the underlying asset balance of an account

Parameters

Name
Type
Description

Returns

Name
Type
Description

claimRedeemRequests

Claims several redeem requests

Parameters

Name
Type
Description

Returns

Name
Type
Description

decimals

Retrieve the decimal count

Returns

Name
Type
Description

decreaseAllowance

Decrease allowance to another account

Parameters

Name
Type
Description

Returns

Name
Type
Description

deposit

Explicit deposit method to mint on msg.sender

depositAndTransfer

Explicit deposit method to mint on msg.sender and transfer to _recipient

Parameters

Name
Type
Description

depositToConsensusLayerWithDepositRoot

Deposits current balance to the Consensus Layer by batches of 32 ETH

Parameters

Name
Type
Description

getAdmin

Retrieves the current admin address

Returns

Name
Type
Description

getAllowlist

Retrieve the allowlist address

Returns

Name
Type
Description

getBalanceToDeposit

Returns the amount of ETH not yet committed for deposit

Returns

Name
Type
Description

getBalanceToRedeem

Retrieve the current balance to redeem

Returns

Name
Type
Description

getCLSpec

Retrieve the current cl spec

Returns

Name
Type
Description

getCLValidatorCount

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

Returns

Name
Type
Description

getCLValidatorTotalBalance

Get CL validator total balance

Returns

Name
Type
Description

getCollector

Retrieve the collector address

Returns

Name
Type
Description

getCommittedBalance

Returns the amount of ETH committed for deposit

Returns

Name
Type
Description

getCoverageFund

Retrieve the coverage fund

Returns

Name
Type
Description

getCurrentEpochId

Retrieve the current epoch id based on block timestamp

Returns

Name
Type
Description

getCurrentFrame

Retrieve the current frame details

Returns

Name
Type
Description

getDailyCommittableLimits

Retrieve the configured daily committable limits

Returns

Name
Type
Description

getDepositedValidatorCount

Get the deposited validator count (the count of deposits made by the contract)

Returns

Name
Type
Description

getELFeeRecipient

Retrieve the execution layer fee recipient

Returns

Name
Type
Description

getExpectedEpochId

Retrieve expected epoch id

Returns

Name
Type
Description

getFrameFirstEpochId

Retrieve the first epoch id of the frame of the provided epoch id

Parameters

Name
Type
Description

Returns

Name
Type
Description

getGlobalFee

Get the current global fee

Returns

Name
Type
Description

getKeeper

Get the keeper address

Returns

Name
Type
Description

getLastCompletedEpochId

Retrieve the last completed epoch id

Returns

Name
Type
Description

getLastConsensusLayerReport

Retrieve the last consensus layer report

Returns

Name
Type
Description

getMetadataURI

Retrieve the metadata uri string value

Returns

Name
Type
Description

getOperatorsRegistry

Retrieve the operators registry

Returns

Name
Type
Description

getOracle

Get oracle address

Returns

Name
Type
Description

getPendingAdmin

Retrieve the current pending admin address

Returns

Name
Type
Description

getRedeemManager

Retrieve the redeem manager

Returns

Name
Type
Description

getReportBounds

Retrieve the report bounds

Returns

Name
Type
Description

getTime

Retrieve the block timestamp

Returns

Name
Type
Description

getWithdrawalCredentials

Retrieve the withdrawal credentials

Returns

Name
Type
Description

increaseAllowance

Increase allowance to another account

Parameters

Name
Type
Description

Returns

Name
Type
Description

initRiverV1

Initializes the River system

Parameters

Name
Type
Description

initRiverV1_1

Initialized version 1.1 of the River System

Parameters

Name
Type
Description

initRiverV1_2

Initializes version 1.2 of the River System

isValidEpoch

Verifies if the provided epoch is valid

Parameters

Name
Type
Description

Returns

Name
Type
Description

name

Retrieve the token name

Returns

Name
Type
Description

proposeAdmin

Proposes a new address as admin

This security prevents setting an invalid address as an admin. The pending admin has to claim its ownership of the contract, and prove that the new address is able to perform regular transactions.

Parameters

Name
Type
Description

requestRedeem

Performs a redeem request on the redeem manager

Parameters

Name
Type
Description

Returns

Name
Type
Description

resolveRedeemRequests

Resolves the provided redeem requests by calling the redeem manager

Parameters

Name
Type
Description

Returns

Name
Type
Description

sendCLFunds

Input for consensus layer funds, containing both exit and skimming

sendCoverageFunds

Input for coverage funds

sendELFees

Input for execution layer fee earnings

sendRedeemManagerExceedingFunds

Input for the redeem manager funds

setAllowlist

Changes the allowlist address

Parameters

Name
Type
Description

setCLSpec

Parameters

Name
Type
Description

setCollector

Changes the collector address

Parameters

Name
Type
Description

setConsensusLayerData

Parameters

Name
Type
Description

setCoverageFund

Changes the coverage fund

Parameters

Name
Type
Description

setDailyCommittableLimits

Parameters

Name
Type
Description

setELFeeRecipient

Changes the execution layer fee recipient

Parameters

Name
Type
Description

setGlobalFee

Changes the global fee parameter

Parameters

Name
Type
Description

setKeeper

Parameters

Name
Type
Description

setMetadataURI

Sets the metadata uri string value

Parameters

Name
Type
Description

setOracle

Set the oracle address

Parameters

Name
Type
Description

setReportBounds

Parameters

Name
Type
Description

sharesFromUnderlyingBalance

Retrieve the shares count from an underlying asset amount

Parameters

Name
Type
Description

Returns

Name
Type
Description

symbol

Retrieve the token symbol

Returns

Name
Type
Description

totalSupply

Retrieve the total token supply

Returns

Name
Type
Description

totalUnderlyingSupply

Retrieve the total underlying asset supply

Returns

Name
Type
Description

transfer

Performs a transfer from the message sender to the provided account

Parameters

Name
Type
Description

Returns

Name
Type
Description

transferFrom

Performs a transfer between two recipients

Parameters

Name
Type
Description

Returns

Name
Type
Description

underlyingBalanceFromShares

Retrieve the underlying asset balance from an amount of shares

Parameters

Name
Type
Description

Returns

Name
Type
Description

version

Retrieves the version of the contract

Returns

Name
Type
Description

Events

Approval

Emitted when the allowance of a spender for an owner is set by a call to {approve}. value is the new allowance.

Parameters

Name
Type
Description

ConsensusLayerDataUpdate

The consensus layer data provided by the oracle has been updated

Parameters

Name
Type
Description

Initialize

Emitted when the contract is properly initialized

Parameters

Name
Type
Description

ProcessedConsensusLayerReport

The provided report has been processed

Parameters

Name
Type
Description

PulledCLFunds

Emitted when funds are pulled from the CL recipient

Parameters

Name
Type
Description

PulledCoverageFunds

Funds have been pulled from the Coverage Fund

Parameters

Name
Type
Description

PulledELFees

Funds have been pulled from the Execution Layer Fee Recipient

Parameters

Name
Type
Description

PulledRedeemManagerExceedingEth

Emitted when funds are pulled from the redeem manager

Parameters

Name
Type
Description

ReportedRedeemManager

Emitted when the redeem manager received a withdraw event report

Parameters

Name
Type
Description

RewardsEarned

The system underlying supply increased. This is a snapshot of the balances for accounting purposes

Parameters

Name
Type
Description

SetAdmin

The admin address changed

Parameters

Name
Type
Description

SetAllowlist

The stored Allowlist has been changed

Parameters

Name
Type
Description

SetBalanceCommittedToDeposit

Emitted when the balance committed to deposit

Parameters

Name
Type
Description

SetBalanceToDeposit

Emitted when the balance to deposit is updated

Parameters

Name
Type
Description

SetBalanceToRedeem

Emitted when the balance to redeem is updated

Parameters

Name
Type
Description

SetBounds

The Report Bounds are changed

Parameters

Name
Type
Description

SetCollector

The stored Collector has been changed

Parameters

Name
Type
Description

SetCoverageFund

The stored Coverage Fund has been changed

Parameters

Name
Type
Description

SetDepositContractAddress

The stored deposit contract address changed

Parameters

Name
Type
Description

SetDepositedValidatorCount

Emitted when the deposited validator count is updated

Parameters

Name
Type
Description

SetELFeeRecipient

The stored Execution Layer Fee Recipient has been changed

Parameters

Name
Type
Description

SetGlobalFee

The stored Global Fee has been changed

Parameters

Name
Type
Description

SetMaxDailyCommittableAmounts

Emitted when the daily committable limits are changed

Parameters

Name
Type
Description

SetMetadataURI

The stored Metadata URI string has been changed

Parameters

Name
Type
Description

SetOperatorsRegistry

The stored Operators Registry has been changed

Parameters

Name
Type
Description

SetOracle

The stored oracle address changed

Parameters

Name
Type
Description

SetPendingAdmin

The pending admin address changed

Parameters

Name
Type
Description

SetRedeemManager

Emitted when the redeem manager address is changed

Parameters

Name
Type
Description

SetSpec

The Consensus Layer Spec is changed

Parameters

Name
Type
Description

SetTotalSupply

Emitted when the total supply is changed

Parameters

Name
Type
Description

SetWithdrawalCredentials

The stored withdrawal credentials changed

Parameters

Name
Type
Description

Transfer

Emitted when value tokens are moved from one account (from) to another (to). Note that value may be zero.

Parameters

Name
Type
Description

UserDeposit

User deposited ETH in the system

Parameters

Name
Type
Description

Errors

AllowanceTooLow

Allowance too low to perform operation

Parameters

Name
Type
Description

BalanceTooLow

Balance too low to perform operation

Denied

The access was denied

Parameters

Name
Type
Description

EmptyDeposit

And empty deposit attempt was made

ErrorOnDeposit

An error occurred during the deposit

InconsistentPublicKeys

The length of the BLS Public key is invalid during deposit

InconsistentSignatures

The length of the BLS Signature is invalid during deposit

InvalidArgument

The argument was invalid

InvalidCall

The call was invalid

InvalidDecreasingValidatorsExitedBalance

The total exited balance decreased

Parameters

Name
Type
Description

InvalidDecreasingValidatorsSkimmedBalance

The total skimmed balance decreased

Parameters

Name
Type
Description

InvalidDepositRoot

Invalid deposit root

InvalidEmptyString

The string is empty

InvalidEpoch

Thrown when an invalid epoch was reported

Parameters

Name
Type
Description

InvalidFee

The fee is invalid

InvalidInitialization

An error occurred during the initialization

Parameters

Name
Type
Description

InvalidPublicKeyCount

The received count of public keys to deposit is invalid

InvalidPulledClFundsAmount

Thrown when the amount received from the Withdraw contract doe not match the requested amount

Parameters

Name
Type
Description

InvalidSignatureCount

The received count of signatures to deposit is invalid

InvalidValidatorCountReport

The reported validator count is invalid

Parameters

Name
Type
Description

InvalidWithdrawalCredentials

The withdrawal credentials value is null

InvalidZeroAddress

The address is zero

NoAvailableValidatorKeys

The internal key retrieval returned no keys

NotEnoughFunds

Not enough funds to deposit one validator

NullTransfer

Invalid empty transfer

OnlyKeeper

SliceOutOfBounds

The slice is outside of the initial bytes bounds

SliceOverflow

The length overflows an uint

TotalValidatorBalanceDecreaseOutOfBound

The balance decrease is higher than the maximum allowed by the lower bound

Parameters

Name
Type
Description

TotalValidatorBalanceIncreaseOutOfBound

The balance increase is higher than the maximum allowed by the upper bound

Parameters

Name
Type
Description

Unauthorized

The operator is unauthorized for the caller

Parameters

Name
Type
Description

UnauthorizedTransfer

Invalid transfer recipients

Parameters

Name
Type
Description

ZeroMintedShares

The computed amount of shares to mint is 0

_systemAdministratorAddress

address

Administrator address

_allowlistAddress

address

Address of the allowlist contract

_operatorRegistryAddress

address

Address of the operator registry

_collectorAddress

address

Address receiving the the global fee on revenue

_globalFee

uint256

Amount retained when the ETH balance increases and sent to the collector

_genesisTime

uint64

The genesis timestamp

_epochsToAssumedFinality

uint64

The number of epochs before an epoch is considered final on-chain

_annualAprUpperBound

uint256

The reporting upper bound

_relativeLowerBound

uint256

The reporting lower bound

minDailyNetCommittableAmount

uint128

undefined

maxDailyRelativeCommittableAmount

uint128

The relative daily committable limit

_newTotalSupply

uint256

New total supply in shares

epochsToAssumedFinality

uint64

The number of epochs before an epoch is considered final

_0

uint256

undefined

_0

uint256

undefined

_0

uint256

undefined

_0

uint256

undefined

_owner

address

Address that issued the allowance

_spender

address

Address that received the allowance

_0

uint256

The allowance in shares for a given spender

_spender

address

Address that is allowed to spend the tokens

_value

uint256

The allowed amount in shares, will override previous value

_0

bool

True if success

_owner

address

Address to be checked

_0

uint256

The balance of the account in shares

_owner

address

Address to be checked

_0

uint256

The underlying balance of the account

_redeemRequestIds

uint32[]

The list of redeem requests to claim

_withdrawalEventIds

uint32[]

The list of resolved withdrawal event ids

claimStatuses

uint8[]

The operation status results

_0

uint8

The decimal count

_spender

address

Spender that receives the allowance

_subtractableValue

uint256

Amount of shares to subtract

_0

bool

True if success

_recipient

address

Address receiving the minted LsETH

_maxCount

uint256

The maximum amount of validator keys to fund

_depositRoot

bytes32

The root of the deposit tree

_0

address

The admin address

_0

address

The allowlist address

_0

uint256

The amount of ETH not yet committed for deposit

_0

uint256

The current balance to redeem

_0

CLSpec.CLSpecStruct

The Consensus Layer Specification

_0

uint256

The CL validator count

_0

uint256

The CL Validator total balance

_0

address

The collector address

_0

uint256

The amount of ETH committed for deposit

_0

address

The coverage fund address

_0

uint256

The current epoch id

_startEpochId

uint256

The epoch at the beginning of the frame

_startTime

uint256

The timestamp of the beginning of the frame in seconds

_endTime

uint256

The timestamp of the end of the frame in seconds

_0

DailyCommittableLimits.DailyCommittableLimitsStruct

The daily committable limits structure

_0

uint256

The deposited validator count

_0

address

The execution layer fee recipient address

_0

uint256

The current expected epoch id

_epochId

uint256

Epoch id used to get the frame

_0

uint256

The first epoch id of the frame containing the given epoch id

_0

uint256

The global fee

_0

address

The keeper address

_0

uint256

The last completed epoch id

_0

IOracleManagerV1.StoredConsensusLayerReport

The stored consensus layer report

_0

string

The metadata uri string value

_0

address

The operators registry address

_0

address

The oracle address

_0

address

The pending admin address

_0

address

The redeem manager address

_0

ReportBounds.ReportBoundsStruct

The report bounds

_0

uint256

The current timestamp from the EVM context

_0

bytes32

The withdrawal credentials

_spender

address

Spender that receives the allowance

_additionalValue

uint256

Amount of shares to add

_0

bool

True if success

_depositContractAddress

address

Address to make Consensus Layer deposits

_elFeeRecipientAddress

address

Address that receives the execution layer fees

_withdrawalCredentials

bytes32

Credentials to use for every validator deposit

_oracleAddress

address

_redeemManager

address

The redeem manager address

_epochsPerFrame

uint64

The amounts of epochs in a frame

_slotsPerEpoch

uint64

The slots inside an epoch

_secondsPerSlot

uint64

_epoch

uint256

undefined

_0

bool

True if valid

_0

string

The token name

_newAdmin

address

New admin address

_lsETHAmount

uint256

The amount of LsETH to redeem

_recipient

address

The address that will own the redeem request

_redeemRequestId

uint32

The ID of the newly created redeem request

_redeemRequestIds

uint32[]

The list of redeem requests to resolve

withdrawalEventIds

int64[]

The list of matching withdrawal events, or error codes

_newAllowlist

address

New address for the allowlist

_newValue

CLSpec.CLSpecStruct

undefined

_newCollector

address

New address for the collector

_report

IOracleManagerV1.ConsensusLayerReport

undefined

_newCoverageFund

address

New address for the fund

_dcl

DailyCommittableLimits.DailyCommittableLimitsStruct

undefined

_newELFeeRecipient

address

New address for the recipient

_newFee

uint256

New fee value

_keeper

address

undefined

_metadataURI

string

The new metadata uri string value

_oracleAddress

address

Address of the oracle

_newValue

ReportBounds.ReportBoundsStruct

undefined

_underlyingAssetAmount

uint256

Amount of underlying asset to convert

_0

uint256

The amount of shares worth the underlying asset amount

_0

string

The token symbol

_0

uint256

The total supply in shares

_0

uint256

The total underlying asset supply

_to

address

Address receiving the tokens

_value

uint256

Amount of shares to be sent

_0

bool

True if success

_from

address

Address sending the tokens

_to

address

Address receiving the tokens

_value

uint256

Amount of shares to be sent

_0

bool

True if success

_shares

uint256

Amount of shares to convert

_0

uint256

The underlying asset balance represented by the shares

_0

string

Version of the contract

owner indexed

address

undefined

spender indexed

address

undefined

value

uint256

undefined

validatorCount

uint256

The new count of validators running on the consensus layer

validatorTotalBalance

uint256

The new total balance sum of all validators

roundId

bytes32

Round identifier

version

uint256

New version of the contracts

cdata

bytes

Complete calldata that was used during the initialization

report

IOracleManagerV1.ConsensusLayerReport

The report that was provided

trace

IOracleManagerV1.ConsensusLayerDataReportingTrace

The trace structure providing more insights on internals

pulledSkimmedEthAmount

uint256

The amount of skimmed ETH pulled

pullExitedEthAmount

uint256

The amount of exited ETH pulled

amount

uint256

The amount pulled

amount

uint256

The amount pulled

amount

uint256

The amount pulled

redeemManagerDemand

uint256

The total demand in LsETH of the redeem manager

suppliedRedeemManagerDemand

uint256

The amount of LsETH demand actually supplied

suppliedRedeemManagerDemandInEth

uint256

The amount in ETH of the supplied demand

_collector indexed

address

The address of the collector during this event

_oldTotalUnderlyingBalance

uint256

Old total ETH balance under management by River

_oldTotalSupply

uint256

Old total supply in shares

_newTotalUnderlyingBalance

uint256

admin indexed

address

New admin address

allowlist indexed

address

The new Allowlist

oldAmount

uint256

The old balance committed to deposit

newAmount

uint256

The new balance committed to deposit

oldAmount

uint256

The old balance to deposit

newAmount

uint256

The new balance to deposit

oldAmount

uint256

The old balance to redeem

newAmount

uint256

The new balance to redeem

annualAprUpperBound

uint256

The reporting upper bound

relativeLowerBound

uint256

The reporting lower bound

collector indexed

address

The new Collector

coverageFund indexed

address

The new Coverage Fund

depositContract indexed

address

Address of the deposit contract

oldDepositedValidatorCount

uint256

The old deposited validator count value

newDepositedValidatorCount

uint256

The new deposited validator count value

elFeeRecipient indexed

address

The new Execution Layer Fee Recipient

fee

uint256

The new Global Fee

minNetAmount

uint256

The minimum amount that must be used as the daily committable amount

maxRelativeAmount

uint256

The maximum amount that can be used as the daily committable amount, relative to the total underlying supply

metadataURI

string

The new Metadata URI string

operatorRegistry indexed

address

The new Operators Registry

oracleAddress indexed

address

The new oracle address

pendingAdmin indexed

address

New pending admin address

redeemManager

address

The address of the redeem manager

epochsPerFrame

uint64

The number of epochs inside a frame

slotsPerEpoch

uint64

The number of slots inside an epoch

secondsPerSlot

uint64

The number of seconds inside a slot

genesisTime

uint64

totalSupply

uint256

undefined

withdrawalCredentials

bytes32

The withdrawal credentials to use for deposits

from indexed

address

undefined

to indexed

address

undefined

value

uint256

undefined

depositor indexed

address

Address performing the deposit

recipient indexed

address

Address receiving the minted shares

amount

uint256

Amount in ETH deposited

_from

address

Account where funds are sent from

_operator

address

Account attempting the transfer

_allowance

uint256

Current allowance

_value

uint256

account

address

The account that was denied

currentValidatorsExitedBalance

uint256

The current exited balance

newValidatorsExitedBalance

uint256

The new exited balance

currentValidatorsSkimmedBalance

uint256

The current exited balance

newValidatorsSkimmedBalance

uint256

The new exited balance

epoch

uint256

Invalid epoch

version

uint256

The version that was attempting to be initialized

expectedVersion

uint256

The version that was expected

requested

uint256

The amount that was requested

received

uint256

The amount that was received

providedValidatorCount

uint256

The received validator count value

depositedValidatorCount

uint256

The number of deposits performed by the system

lastReportedValidatorCount

uint256

The last reported validator count

prevTotalEthIncludingExited

uint256

The previous total balance, including all exited balance

postTotalEthIncludingExited

uint256

The post-report total balance, including all exited balance

timeElapsed

uint256

The time in seconds since last report

relativeLowerBound

uint256

The lower bound value that was used

prevTotalEthIncludingExited

uint256

The previous total balance, including all exited balance

postTotalEthIncludingExited

uint256

The post-report total balance, including all exited balance

timeElapsed

uint256

The time in seconds since last report

annualAprUpperBound

uint256

caller

address

Address performing the call

_from

address

Account sending the funds in the invalid transfer

_to

address

Account receiving the funds in the invalid transfer

The address of the Oracle contract

The seconds inside a slot

New total ETH balance under management by River

The genesis timestamp

Requested transfer value in shares

The upper bound value that was used

function DEPOSIT_SIZE() external view returns (uint256)
function PUBLIC_KEY_LENGTH() external view returns (uint256)
function SIGNATURE_LENGTH() external view returns (uint256)
function _DEPOSIT_SIZE() external view returns (uint256)
function acceptAdmin() external nonpayable
function allowance(address _owner, address _spender) external view returns (uint256)
function approve(address _spender, uint256 _value) external nonpayable returns (bool)
function balanceOf(address _owner) external view returns (uint256)
function balanceOfUnderlying(address _owner) external view returns (uint256)
function claimRedeemRequests(uint32[] _redeemRequestIds, uint32[] _withdrawalEventIds) external nonpayable returns (uint8[] claimStatuses)
function decimals() external pure returns (uint8)
function decreaseAllowance(address _spender, uint256 _subtractableValue) external nonpayable returns (bool)
function deposit() external payable
function depositAndTransfer(address _recipient) external payable
function depositToConsensusLayerWithDepositRoot(uint256 _maxCount, bytes32 _depositRoot) external nonpayable
function getAdmin() external view returns (address)
function getAllowlist() external view returns (address)
function getBalanceToDeposit() external view returns (uint256)
function getBalanceToRedeem() external view returns (uint256)
function getCLSpec() external view returns (struct CLSpec.CLSpecStruct)
function getCLValidatorCount() external view returns (uint256)
function getCLValidatorTotalBalance() external view returns (uint256)
function getCollector() external view returns (address)
function getCommittedBalance() external view returns (uint256)
function getCoverageFund() external view returns (address)
function getCurrentEpochId() external view returns (uint256)
function getCurrentFrame() external view returns (uint256 _startEpochId, uint256 _startTime, uint256 _endTime)
function getDailyCommittableLimits() external view returns (struct DailyCommittableLimits.DailyCommittableLimitsStruct)
function getDepositedValidatorCount() external view returns (uint256)
function getELFeeRecipient() external view returns (address)
function getExpectedEpochId() external view returns (uint256)
function getFrameFirstEpochId(uint256 _epochId) external view returns (uint256)
function getGlobalFee() external view returns (uint256)
function getKeeper() external view returns (address)
function getLastCompletedEpochId() external view returns (uint256)
function getLastConsensusLayerReport() external view returns (struct IOracleManagerV1.StoredConsensusLayerReport)
function getMetadataURI() external view returns (string)
function getOperatorsRegistry() external view returns (address)
function getOracle() external view returns (address)
function getPendingAdmin() external view returns (address)
function getRedeemManager() external view returns (address)
function getReportBounds() external view returns (struct ReportBounds.ReportBoundsStruct)
function getTime() external view returns (uint256)
function getWithdrawalCredentials() external view returns (bytes32)
function increaseAllowance(address _spender, uint256 _additionalValue) external nonpayable returns (bool)
function initRiverV1(address _depositContractAddress, address _elFeeRecipientAddress, bytes32 _withdrawalCredentials, address _oracleAddress, address _systemAdministratorAddress, address _allowlistAddress, address _operatorRegistryAddress, address _collectorAddress, uint256 _globalFee) external nonpayable
function initRiverV1_1(address _redeemManager, uint64 _epochsPerFrame, uint64 _slotsPerEpoch, uint64 _secondsPerSlot, uint64 _genesisTime, uint64 _epochsToAssumedFinality, uint256 _annualAprUpperBound, uint256 _relativeLowerBound, uint128 _minDailyNetCommittableAmount_, uint128 _maxDailyRelativeCommittableAmount_) external nonpayable
function initRiverV1_2() external nonpayable
function isValidEpoch(uint256 _epoch) external view returns (bool)
function name() external pure returns (string)
function proposeAdmin(address _newAdmin) external nonpayable
function requestRedeem(uint256 _lsETHAmount, address _recipient) external nonpayable returns (uint32 _redeemRequestId)
function resolveRedeemRequests(uint32[] _redeemRequestIds) external view returns (int64[] withdrawalEventIds)
function sendCLFunds() external payable
function sendCoverageFunds() external payable
function sendELFees() external payable
function sendRedeemManagerExceedingFunds() external payable
function setAllowlist(address _newAllowlist) external nonpayable
function setCLSpec(CLSpec.CLSpecStruct _newValue) external nonpayable
function setCollector(address _newCollector) external nonpayable
function setConsensusLayerData(IOracleManagerV1.ConsensusLayerReport _report) external nonpayable
function setCoverageFund(address _newCoverageFund) external nonpayable
function setDailyCommittableLimits(DailyCommittableLimits.DailyCommittableLimitsStruct _dcl) external nonpayable
function setELFeeRecipient(address _newELFeeRecipient) external nonpayable
function setGlobalFee(uint256 _newFee) external nonpayable
function setKeeper(address _keeper) external nonpayable
function setMetadataURI(string _metadataURI) external nonpayable
function setOracle(address _oracleAddress) external nonpayable
function setReportBounds(ReportBounds.ReportBoundsStruct _newValue) external nonpayable
function sharesFromUnderlyingBalance(uint256 _underlyingAssetAmount) external view returns (uint256)
function symbol() external pure returns (string)
function totalSupply() external view returns (uint256)
function totalUnderlyingSupply() external view returns (uint256)
function transfer(address _to, uint256 _value) external nonpayable returns (bool)
function transferFrom(address _from, address _to, uint256 _value) external nonpayable returns (bool)
function underlyingBalanceFromShares(uint256 _shares) external view returns (uint256)
function version() external pure returns (string)
event Approval(address indexed owner, address indexed spender, uint256 value)
event ConsensusLayerDataUpdate(uint256 validatorCount, uint256 validatorTotalBalance, bytes32 roundId)
event Initialize(uint256 version, bytes cdata)
event ProcessedConsensusLayerReport(IOracleManagerV1.ConsensusLayerReport report, IOracleManagerV1.ConsensusLayerDataReportingTrace trace)
event PulledCLFunds(uint256 pulledSkimmedEthAmount, uint256 pullExitedEthAmount)
event PulledCoverageFunds(uint256 amount)
event PulledELFees(uint256 amount)
event PulledRedeemManagerExceedingEth(uint256 amount)
event ReportedRedeemManager(uint256 redeemManagerDemand, uint256 suppliedRedeemManagerDemand, uint256 suppliedRedeemManagerDemandInEth)
event RewardsEarned(address indexed _collector, uint256 _oldTotalUnderlyingBalance, uint256 _oldTotalSupply, uint256 _newTotalUnderlyingBalance, uint256 _newTotalSupply)
event SetAdmin(address indexed admin)
event SetAllowlist(address indexed allowlist)
event SetBalanceCommittedToDeposit(uint256 oldAmount, uint256 newAmount)
event SetBalanceToDeposit(uint256 oldAmount, uint256 newAmount)
event SetBalanceToRedeem(uint256 oldAmount, uint256 newAmount)
event SetBounds(uint256 annualAprUpperBound, uint256 relativeLowerBound)
event SetCollector(address indexed collector)
event SetCoverageFund(address indexed coverageFund)
event SetDepositContractAddress(address indexed depositContract)
event SetDepositedValidatorCount(uint256 oldDepositedValidatorCount, uint256 newDepositedValidatorCount)
event SetELFeeRecipient(address indexed elFeeRecipient)
event SetGlobalFee(uint256 fee)
event SetMaxDailyCommittableAmounts(uint256 minNetAmount, uint256 maxRelativeAmount)
event SetMetadataURI(string metadataURI)
event SetOperatorsRegistry(address indexed operatorRegistry)
event SetOracle(address indexed oracleAddress)
event SetPendingAdmin(address indexed pendingAdmin)
event SetRedeemManager(address redeemManager)
event SetSpec(uint64 epochsPerFrame, uint64 slotsPerEpoch, uint64 secondsPerSlot, uint64 genesisTime, uint64 epochsToAssumedFinality)
event SetTotalSupply(uint256 totalSupply)
event SetWithdrawalCredentials(bytes32 withdrawalCredentials)
event Transfer(address indexed from, address indexed to, uint256 value)
event UserDeposit(address indexed depositor, address indexed recipient, uint256 amount)
error AllowanceTooLow(address _from, address _operator, uint256 _allowance, uint256 _value)
error BalanceTooLow()
error Denied(address account)
error EmptyDeposit()
error ErrorOnDeposit()
error InconsistentPublicKeys()
error InconsistentSignatures()
error InvalidArgument()
error InvalidCall()
error InvalidDecreasingValidatorsExitedBalance(uint256 currentValidatorsExitedBalance, uint256 newValidatorsExitedBalance)
error InvalidDecreasingValidatorsSkimmedBalance(uint256 currentValidatorsSkimmedBalance, uint256 newValidatorsSkimmedBalance)
error InvalidDepositRoot()
error InvalidEmptyString()
error InvalidEpoch(uint256 epoch)
error InvalidFee()
error InvalidInitialization(uint256 version, uint256 expectedVersion)
error InvalidPublicKeyCount()
error InvalidPulledClFundsAmount(uint256 requested, uint256 received)
error InvalidSignatureCount()
error InvalidValidatorCountReport(uint256 providedValidatorCount, uint256 depositedValidatorCount, uint256 lastReportedValidatorCount)
error InvalidWithdrawalCredentials()
error InvalidZeroAddress()
error NoAvailableValidatorKeys()
error NotEnoughFunds()
error NullTransfer()
error OnlyKeeper()
error SliceOutOfBounds()
error SliceOverflow()
error TotalValidatorBalanceDecreaseOutOfBound(uint256 prevTotalEthIncludingExited, uint256 postTotalEthIncludingExited, uint256 timeElapsed, uint256 relativeLowerBound)
error TotalValidatorBalanceIncreaseOutOfBound(uint256 prevTotalEthIncludingExited, uint256 postTotalEthIncludingExited, uint256 timeElapsed, uint256 annualAprUpperBound)
error Unauthorized(address caller)
error UnauthorizedTransfer(address _from, address _to)
error ZeroMintedShares()