Alluvial Finance Inc.
River (v1)
This contract merges all the manager contracts and implements all the virtual methods stitching all components together.
Operators add BLS Public Keys of validators running in their infrastructure.
User deposits ETH to the system and gets LsTokens minted in exchange.
Upon deposit, the system verifies if the User is allowed to deposit by querying the Allowlist.
When the system has enough funds to deposit validators, keys are pulled from the Operators Registry.
The deposit data is computed and the validators are funded via the OfficialDeposit contract.
Oracles report the total balance of the running validators and the total count of running validators.
The running validators propose blocks that reward the EL Fee Recipient. The funds are pulled back in the system.
Size of a deposit in ETH
Size of a BLS Public key in bytes
Size of a BLS Signature in bytes
Size of a deposit in ETH
Accept the transfer of ownership
Only callable by the pending admin. Resets the pending admin if successful.
Retrieve the allowance value for a spender
Approves an account for future spendings
An approved account can use transferFrom to transfer funds on behalf of the token owner
Retrieve the balance of an account
Retrieve the underlying asset balance of an account
Claims several redeem requests
Retrieve the decimal count
Decrease allowance to another account
Explicit deposit method to mint on msg.sender
Explicit deposit method to mint on msg.sender and transfer to _recipient
Deposits current balance to the Consensus Layer by batches of 32 ETH
Retrieves the current admin address
Retrieve the allowlist address
Returns the amount of ETH not yet committed for deposit
Retrieve the current balance to redeem
Retrieve the current cl spec
Get CL validator count (the amount of validator reported by the oracles)
Get CL validator total balance
Retrieve the collector address
Returns the amount of ETH committed for deposit
Retrieve the coverage fund
Retrieve the current epoch id based on block timestamp
Retrieve the current frame details
Retrieve the configured daily committable limits
Get the deposited validator count (the count of deposits made by the contract)
Retrieve the execution layer fee recipient
Retrieve expected epoch id
Retrieve the first epoch id of the frame of the provided epoch id
Get the current global fee
Get the keeper address
Retrieve the last completed epoch id
Retrieve the last consensus layer report
Retrieve the metadata uri string value
Retrieve the operators registry
Get oracle address
Retrieve the current pending admin address
Retrieve the redeem manager
Retrieve the report bounds
Retrieve the block timestamp
Retrieve the withdrawal credentials
Increase allowance to another account
Initializes the River system
Initialized version 1.1 of the River System
Initializes version 1.2 of the River System
Verifies if the provided epoch is valid
Retrieve the token name
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.
Performs a redeem request on the redeem manager
Resolves the provided redeem requests by calling the redeem manager
Input for consensus layer funds, containing both exit and skimming
Input for coverage funds
Input for execution layer fee earnings
Input for the redeem manager funds
Changes the allowlist address
Changes the collector address
Changes the coverage fund
Changes the execution layer fee recipient
Changes the global fee parameter
Sets the metadata uri string value
Set the oracle address
Retrieve the shares count from an underlying asset amount
Retrieve the token symbol
Retrieve the total token supply
Retrieve the total underlying asset supply
Performs a transfer from the message sender to the provided account
Performs a transfer between two recipients
Retrieve the underlying asset balance from an amount of shares
Retrieves the version of the contract
Emitted when the allowance of a spender for an owner is set by a call to {approve}. value is the new allowance.
The consensus layer data provided by the oracle has been updated
Emitted when the contract is properly initialized
The provided report has been processed
Emitted when funds are pulled from the CL recipient
Funds have been pulled from the Coverage Fund
Funds have been pulled from the Execution Layer Fee Recipient
Emitted when funds are pulled from the redeem manager
Emitted when the redeem manager received a withdraw event report
The system underlying supply increased. This is a snapshot of the balances for accounting purposes
The admin address changed
The stored Allowlist has been changed
Emitted when the balance committed to deposit
Emitted when the balance to deposit is updated
Emitted when the balance to redeem is updated
The Report Bounds are changed
The stored Collector has been changed
The stored Coverage Fund has been changed
The stored deposit contract address changed
Emitted when the deposited validator count is updated
The stored Execution Layer Fee Recipient has been changed
The stored Global Fee has been changed
Emitted when the daily committable limits are changed
The stored Metadata URI string has been changed
The stored Operators Registry has been changed
The stored oracle address changed
The pending admin address changed
Emitted when the redeem manager address is changed
The Consensus Layer Spec is changed
Emitted when the total supply is changed
The stored withdrawal credentials changed
Emitted when value tokens are moved from one account (from) to another (to). Note that value may be zero.
User deposited ETH in the system
Allowance too low to perform operation
Balance too low to perform operation
The access was denied
And empty deposit attempt was made
An error occurred during the deposit
The length of the BLS Public key is invalid during deposit
The length of the BLS Signature is invalid during deposit
The argument was invalid
The call was invalid
The total exited balance decreased
The total skimmed balance decreased
Invalid deposit root
The string is empty
Thrown when an invalid epoch was reported
The fee is invalid
An error occurred during the initialization
The received count of public keys to deposit is invalid
Thrown when the amount received from the Withdraw contract doe not match the requested amount
The received count of signatures to deposit is invalid
The reported validator count is invalid
The withdrawal credentials value is null
The address is zero
The internal key retrieval returned no keys
Not enough funds to deposit one validator
Invalid empty transfer
The slice is outside of the initial bytes bounds
The length overflows an uint
The balance decrease is higher than the maximum allowed by the lower bound
The balance increase is higher than the maximum allowed by the upper bound
The operator is unauthorized for the caller
Invalid transfer recipients
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 nonpayablefunction 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 payablefunction depositAndTransfer(address _recipient) external payablefunction depositToConsensusLayerWithDepositRoot(uint256 _maxCount, bytes32 _depositRoot) external nonpayablefunction 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 nonpayablefunction initRiverV1_1(address _redeemManager, uint64 _epochsPerFrame, uint64 _slotsPerEpoch, uint64 _secondsPerSlot, uint64 _genesisTime, uint64 _epochsToAssumedFinality, uint256 _annualAprUpperBound, uint256 _relativeLowerBound, uint128 _minDailyNetCommittableAmount_, uint128 _maxDailyRelativeCommittableAmount_) external nonpayablefunction initRiverV1_2() external nonpayablefunction isValidEpoch(uint256 _epoch) external view returns (bool)function name() external pure returns (string)function proposeAdmin(address _newAdmin) external nonpayablefunction requestRedeem(uint256 _lsETHAmount, address _recipient) external nonpayable returns (uint32 _redeemRequestId)function resolveRedeemRequests(uint32[] _redeemRequestIds) external view returns (int64[] withdrawalEventIds)function sendCLFunds() external payablefunction sendCoverageFunds() external payablefunction sendELFees() external payablefunction sendRedeemManagerExceedingFunds() external payablefunction setAllowlist(address _newAllowlist) external nonpayablefunction setCLSpec(CLSpec.CLSpecStruct _newValue) external nonpayablefunction setCollector(address _newCollector) external nonpayablefunction setConsensusLayerData(IOracleManagerV1.ConsensusLayerReport _report) external nonpayablefunction setCoverageFund(address _newCoverageFund) external nonpayablefunction setDailyCommittableLimits(DailyCommittableLimits.DailyCommittableLimitsStruct _dcl) external nonpayablefunction setELFeeRecipient(address _newELFeeRecipient) external nonpayablefunction setGlobalFee(uint256 _newFee) external nonpayablefunction setKeeper(address _keeper) external nonpayablefunction setMetadataURI(string _metadataURI) external nonpayablefunction setOracle(address _oracleAddress) external nonpayablefunction setReportBounds(ReportBounds.ReportBoundsStruct _newValue) external nonpayablefunction 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()