RiverV1
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.
Methods
DEPOSIT_SIZE
function DEPOSIT_SIZE() external view returns (uint256)
Size of a deposit in ETH
Returns
_0
uint256
undefined
PUBLIC_KEY_LENGTH
function PUBLIC_KEY_LENGTH() external view returns (uint256)
Size of a BLS Public key in bytes
Returns
_0
uint256
undefined
SIGNATURE_LENGTH
function SIGNATURE_LENGTH() external view returns (uint256)
Size of a BLS Signature in bytes
Returns
_0
uint256
undefined
_DEPOSIT_SIZE
function _DEPOSIT_SIZE() external view returns (uint256)
Size of a deposit in ETH
Returns
_0
uint256
undefined
acceptAdmin
function acceptAdmin() external nonpayable
Accept the transfer of ownership
Only callable by the pending admin. Resets the pending admin if successful.
allowance
function allowance(address _owner, address _spender) external view returns (uint256)
Retrieve the allowance value for a spender
Parameters
_owner
address
Address that issued the allowance
_spender
address
Address that received the allowance
Returns
_0
uint256
The allowance in shares for a given spender
approve
function approve(address _spender, uint256 _value) external nonpayable returns (bool)
Approves an account for future spendings
An approved account can use transferFrom to transfer funds on behalf of the token owner
Parameters
_spender
address
Address that is allowed to spend the tokens
_value
uint256
The allowed amount in shares, will override previous value
Returns
_0
bool
True if success
balanceOf
function balanceOf(address _owner) external view returns (uint256)
Retrieve the balance of an account
Parameters
_owner
address
Address to be checked
Returns
_0
uint256
The balance of the account in shares
balanceOfUnderlying
function balanceOfUnderlying(address _owner) external view returns (uint256)
Retrieve the underlying asset balance of an account
Parameters
_owner
address
Address to be checked
Returns
_0
uint256
The underlying balance of the account
claimRedeemRequests
function claimRedeemRequests(uint32[] _redeemRequestIds, uint32[] _withdrawalEventIds) external nonpayable returns (uint8[] claimStatuses)
Claims several redeem requests
Parameters
_redeemRequestIds
uint32[]
The list of redeem requests to claim
_withdrawalEventIds
uint32[]
The list of resolved withdrawal event ids
Returns
claimStatuses
uint8[]
The operation status results
decimals
function decimals() external pure returns (uint8)
Retrieve the decimal count
Returns
_0
uint8
The decimal count
decreaseAllowance
function decreaseAllowance(address _spender, uint256 _subtractableValue) external nonpayable returns (bool)
Decrease allowance to another account
Parameters
_spender
address
Spender that receives the allowance
_subtractableValue
uint256
Amount of shares to subtract
Returns
_0
bool
True if success
deposit
function deposit() external payable
Explicit deposit method to mint on msg.sender
depositAndTransfer
function depositAndTransfer(address _recipient) external payable
Explicit deposit method to mint on msg.sender and transfer to _recipient
Parameters
_recipient
address
Address receiving the minted LsETH
depositToConsensusLayerWithDepositRoot
function depositToConsensusLayerWithDepositRoot(uint256 _maxCount, bytes32 _depositRoot) external nonpayable
Deposits current balance to the Consensus Layer by batches of 32 ETH
Parameters
_maxCount
uint256
The maximum amount of validator keys to fund
_depositRoot
bytes32
The root of the deposit tree
getAdmin
function getAdmin() external view returns (address)
Retrieves the current admin address
Returns
_0
address
The admin address
getAllowlist
function getAllowlist() external view returns (address)
Retrieve the allowlist address
Returns
_0
address
The allowlist address
getBalanceToDeposit
function getBalanceToDeposit() external view returns (uint256)
Returns the amount of ETH not yet committed for deposit
Returns
_0
uint256
The amount of ETH not yet committed for deposit
getBalanceToRedeem
function getBalanceToRedeem() external view returns (uint256)
Retrieve the current balance to redeem
Returns
_0
uint256
The current balance to redeem
getCLSpec
function getCLSpec() external view returns (struct CLSpec.CLSpecStruct)
Retrieve the current cl spec
Returns
_0
CLSpec.CLSpecStruct
The Consensus Layer Specification
getCLValidatorCount
function getCLValidatorCount() external view returns (uint256)
Get CL validator count (the amount of validator reported by the oracles)
Returns
_0
uint256
The CL validator count
getCLValidatorTotalBalance
function getCLValidatorTotalBalance() external view returns (uint256)
Get CL validator total balance
Returns
_0
uint256
The CL Validator total balance
getCollector
function getCollector() external view returns (address)
Retrieve the collector address
Returns
_0
address
The collector address
getCommittedBalance
function getCommittedBalance() external view returns (uint256)
Returns the amount of ETH committed for deposit
Returns
_0
uint256
The amount of ETH committed for deposit
getCoverageFund
function getCoverageFund() external view returns (address)
Retrieve the coverage fund
Returns
_0
address
The coverage fund address
getCurrentEpochId
function getCurrentEpochId() external view returns (uint256)
Retrieve the current epoch id based on block timestamp
Returns
_0
uint256
The current epoch id
getCurrentFrame
function getCurrentFrame() external view returns (uint256 _startEpochId, uint256 _startTime, uint256 _endTime)
Retrieve the current frame details
Returns
_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
getDailyCommittableLimits
function getDailyCommittableLimits() external view returns (struct DailyCommittableLimits.DailyCommittableLimitsStruct)
Retrieve the configured daily committable limits
Returns
_0
DailyCommittableLimits.DailyCommittableLimitsStruct
The daily committable limits structure
getDepositedValidatorCount
function getDepositedValidatorCount() external view returns (uint256)
Get the deposited validator count (the count of deposits made by the contract)
Returns
_0
uint256
The deposited validator count
getELFeeRecipient
function getELFeeRecipient() external view returns (address)
Retrieve the execution layer fee recipient
Returns
_0
address
The execution layer fee recipient address
getExpectedEpochId
function getExpectedEpochId() external view returns (uint256)
Retrieve expected epoch id
Returns
_0
uint256
The current expected epoch id
getFrameFirstEpochId
function getFrameFirstEpochId(uint256 _epochId) external view returns (uint256)
Retrieve the first epoch id of the frame of the provided epoch id
Parameters
_epochId
uint256
Epoch id used to get the frame
Returns
_0
uint256
The first epoch id of the frame containing the given epoch id
getGlobalFee
function getGlobalFee() external view returns (uint256)
Get the current global fee
Returns
_0
uint256
The global fee
getKeeper
function getKeeper() external view returns (address)
Get the keeper address
Returns
_0
address
The keeper address
getLastCompletedEpochId
function getLastCompletedEpochId() external view returns (uint256)
Retrieve the last completed epoch id
Returns
_0
uint256
The last completed epoch id
getLastConsensusLayerReport
function getLastConsensusLayerReport() external view returns (struct IOracleManagerV1.StoredConsensusLayerReport)
Retrieve the last consensus layer report
Returns
_0
IOracleManagerV1.StoredConsensusLayerReport
The stored consensus layer report
getMetadataURI
function getMetadataURI() external view returns (string)
Retrieve the metadata uri string value
Returns
_0
string
The metadata uri string value
getOperatorsRegistry
function getOperatorsRegistry() external view returns (address)
Retrieve the operators registry
Returns
_0
address
The operators registry address
getOracle
function getOracle() external view returns (address)
Get oracle address
Returns
_0
address
The oracle address
getPendingAdmin
function getPendingAdmin() external view returns (address)
Retrieve the current pending admin address
Returns
_0
address
The pending admin address
getRedeemManager
function getRedeemManager() external view returns (address)
Retrieve the redeem manager
Returns
_0
address
The redeem manager address
getReportBounds
function getReportBounds() external view returns (struct ReportBounds.ReportBoundsStruct)
Retrieve the report bounds
Returns
_0
ReportBounds.ReportBoundsStruct
The report bounds
getTime
function getTime() external view returns (uint256)
Retrieve the block timestamp
Returns
_0
uint256
The current timestamp from the EVM context
getWithdrawalCredentials
function getWithdrawalCredentials() external view returns (bytes32)
Retrieve the withdrawal credentials
Returns
_0
bytes32
The withdrawal credentials
increaseAllowance
function increaseAllowance(address _spender, uint256 _additionalValue) external nonpayable returns (bool)
Increase allowance to another account
Parameters
_spender
address
Spender that receives the allowance
_additionalValue
uint256
Amount of shares to add
Returns
_0
bool
True if success
initRiverV1
function initRiverV1(address _depositContractAddress, address _elFeeRecipientAddress, bytes32 _withdrawalCredentials, address _oracleAddress, address _systemAdministratorAddress, address _allowlistAddress, address _operatorRegistryAddress, address _collectorAddress, uint256 _globalFee) external nonpayable
Initializes the River system
Parameters
_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
The address of the Oracle contract
_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
initRiverV1_1
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
Initialized version 1.1 of the River System
Parameters
_redeemManager
address
The redeem manager address
_epochsPerFrame
uint64
The amounts of epochs in a frame
_slotsPerEpoch
uint64
The slots inside an epoch
_secondsPerSlot
uint64
The seconds inside a slot
_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
initRiverV1_2
function initRiverV1_2() external nonpayable
Initializes version 1.2 of the River System
isValidEpoch
function isValidEpoch(uint256 _epoch) external view returns (bool)
Verifies if the provided epoch is valid
Parameters
_epoch
uint256
undefined
Returns
_0
bool
True if valid
name
function name() external pure returns (string)
Retrieve the token name
Returns
_0
string
The token name
proposeAdmin
function proposeAdmin(address _newAdmin) external nonpayable
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
_newAdmin
address
New admin address
requestRedeem
function requestRedeem(uint256 _lsETHAmount, address _recipient) external nonpayable returns (uint32 _redeemRequestId)
Performs a redeem request on the redeem manager
Parameters
_lsETHAmount
uint256
The amount of LsETH to redeem
_recipient
address
The address that will own the redeem request
Returns
_redeemRequestId
uint32
The ID of the newly created redeem request
resolveRedeemRequests
function resolveRedeemRequests(uint32[] _redeemRequestIds) external view returns (int64[] withdrawalEventIds)
Resolves the provided redeem requests by calling the redeem manager
Parameters
_redeemRequestIds
uint32[]
The list of redeem requests to resolve
Returns
withdrawalEventIds
int64[]
The list of matching withdrawal events, or error codes
sendCLFunds
function sendCLFunds() external payable
Input for consensus layer funds, containing both exit and skimming
sendCoverageFunds
function sendCoverageFunds() external payable
Input for coverage funds
sendELFees
function sendELFees() external payable
Input for execution layer fee earnings
sendRedeemManagerExceedingFunds
function sendRedeemManagerExceedingFunds() external payable
Input for the redeem manager funds
setAllowlist
function setAllowlist(address _newAllowlist) external nonpayable
Changes the allowlist address
Parameters
_newAllowlist
address
New address for the allowlist
setCLSpec
function setCLSpec(CLSpec.CLSpecStruct _newValue) external nonpayable
Parameters
_newValue
CLSpec.CLSpecStruct
undefined
setCollector
function setCollector(address _newCollector) external nonpayable
Changes the collector address
Parameters
_newCollector
address
New address for the collector
setConsensusLayerData
function setConsensusLayerData(IOracleManagerV1.ConsensusLayerReport _report) external nonpayable
Parameters
_report
IOracleManagerV1.ConsensusLayerReport
undefined
setCoverageFund
function setCoverageFund(address _newCoverageFund) external nonpayable
Changes the coverage fund
Parameters
_newCoverageFund
address
New address for the fund
setDailyCommittableLimits
function setDailyCommittableLimits(DailyCommittableLimits.DailyCommittableLimitsStruct _dcl) external nonpayable
Parameters
_dcl
DailyCommittableLimits.DailyCommittableLimitsStruct
undefined
setELFeeRecipient
function setELFeeRecipient(address _newELFeeRecipient) external nonpayable
Changes the execution layer fee recipient
Parameters
_newELFeeRecipient
address
New address for the recipient
setGlobalFee
function setGlobalFee(uint256 _newFee) external nonpayable
Changes the global fee parameter
Parameters
_newFee
uint256
New fee value
setKeeper
function setKeeper(address _keeper) external nonpayable
Parameters
_keeper
address
undefined
setMetadataURI
function setMetadataURI(string _metadataURI) external nonpayable
Sets the metadata uri string value
Parameters
_metadataURI
string
The new metadata uri string value
setOracle
function setOracle(address _oracleAddress) external nonpayable
Set the oracle address
Parameters
_oracleAddress
address
Address of the oracle
setReportBounds
function setReportBounds(ReportBounds.ReportBoundsStruct _newValue) external nonpayable
Parameters
_newValue
ReportBounds.ReportBoundsStruct
undefined
sharesFromUnderlyingBalance
function sharesFromUnderlyingBalance(uint256 _underlyingAssetAmount) external view returns (uint256)
Retrieve the shares count from an underlying asset amount
Parameters
_underlyingAssetAmount
uint256
Amount of underlying asset to convert
Returns
_0
uint256
The amount of shares worth the underlying asset amount
symbol
function symbol() external pure returns (string)
Retrieve the token symbol
Returns
_0
string
The token symbol
totalSupply
function totalSupply() external view returns (uint256)
Retrieve the total token supply
Returns
_0
uint256
The total supply in shares
totalUnderlyingSupply
function totalUnderlyingSupply() external view returns (uint256)
Retrieve the total underlying asset supply
Returns
_0
uint256
The total underlying asset supply
transfer
function transfer(address _to, uint256 _value) external nonpayable returns (bool)
Performs a transfer from the message sender to the provided account
Parameters
_to
address
Address receiving the tokens
_value
uint256
Amount of shares to be sent
Returns
_0
bool
True if success
transferFrom
function transferFrom(address _from, address _to, uint256 _value) external nonpayable returns (bool)
Performs a transfer between two recipients
Parameters
_from
address
Address sending the tokens
_to
address
Address receiving the tokens
_value
uint256
Amount of shares to be sent
Returns
_0
bool
True if success
underlyingBalanceFromShares
function underlyingBalanceFromShares(uint256 _shares) external view returns (uint256)
Retrieve the underlying asset balance from an amount of shares
Parameters
_shares
uint256
Amount of shares to convert
Returns
_0
uint256
The underlying asset balance represented by the shares
version
function version() external pure returns (string)
Retrieves the version of the contract
Returns
_0
string
Version of the contract
Events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Emitted when the allowance of a spender
for an owner
is set by a call to {approve}. value
is the new allowance.
Parameters
owner indexed
address
undefined
spender indexed
address
undefined
value
uint256
undefined
ConsensusLayerDataUpdate
event ConsensusLayerDataUpdate(uint256 validatorCount, uint256 validatorTotalBalance, bytes32 roundId)
The consensus layer data provided by the oracle has been updated
Parameters
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
Initialize
event Initialize(uint256 version, bytes cdata)
Emitted when the contract is properly initialized
Parameters
version
uint256
New version of the contracts
cdata
bytes
Complete calldata that was used during the initialization
ProcessedConsensusLayerReport
event ProcessedConsensusLayerReport(IOracleManagerV1.ConsensusLayerReport report, IOracleManagerV1.ConsensusLayerDataReportingTrace trace)
The provided report has been processed
Parameters
report
IOracleManagerV1.ConsensusLayerReport
The report that was provided
trace
IOracleManagerV1.ConsensusLayerDataReportingTrace
The trace structure providing more insights on internals
PulledCLFunds
event PulledCLFunds(uint256 pulledSkimmedEthAmount, uint256 pullExitedEthAmount)
Emitted when funds are pulled from the CL recipient
Parameters
pulledSkimmedEthAmount
uint256
The amount of skimmed ETH pulled
pullExitedEthAmount
uint256
The amount of exited ETH pulled
PulledCoverageFunds
event PulledCoverageFunds(uint256 amount)
Funds have been pulled from the Coverage Fund
Parameters
amount
uint256
The amount pulled
PulledELFees
event PulledELFees(uint256 amount)
Funds have been pulled from the Execution Layer Fee Recipient
Parameters
amount
uint256
The amount pulled
PulledRedeemManagerExceedingEth
event PulledRedeemManagerExceedingEth(uint256 amount)
Emitted when funds are pulled from the redeem manager
Parameters
amount
uint256
The amount pulled
ReportedRedeemManager
event ReportedRedeemManager(uint256 redeemManagerDemand, uint256 suppliedRedeemManagerDemand, uint256 suppliedRedeemManagerDemandInEth)
Emitted when the redeem manager received a withdraw event report
Parameters
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
RewardsEarned
event RewardsEarned(address indexed _collector, uint256 _oldTotalUnderlyingBalance, uint256 _oldTotalSupply, uint256 _newTotalUnderlyingBalance, uint256 _newTotalSupply)
The system underlying supply increased. This is a snapshot of the balances for accounting purposes
Parameters
_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
New total ETH balance under management by River
_newTotalSupply
uint256
New total supply in shares
SetAdmin
event SetAdmin(address indexed admin)
The admin address changed
Parameters
admin indexed
address
New admin address
SetAllowlist
event SetAllowlist(address indexed allowlist)
The stored Allowlist has been changed
Parameters
allowlist indexed
address
The new Allowlist
SetBalanceCommittedToDeposit
event SetBalanceCommittedToDeposit(uint256 oldAmount, uint256 newAmount)
Emitted when the balance committed to deposit
Parameters
oldAmount
uint256
The old balance committed to deposit
newAmount
uint256
The new balance committed to deposit
SetBalanceToDeposit
event SetBalanceToDeposit(uint256 oldAmount, uint256 newAmount)
Emitted when the balance to deposit is updated
Parameters
oldAmount
uint256
The old balance to deposit
newAmount
uint256
The new balance to deposit
SetBalanceToRedeem
event SetBalanceToRedeem(uint256 oldAmount, uint256 newAmount)
Emitted when the balance to redeem is updated
Parameters
oldAmount
uint256
The old balance to redeem
newAmount
uint256
The new balance to redeem
SetBounds
event SetBounds(uint256 annualAprUpperBound, uint256 relativeLowerBound)
The Report Bounds are changed
Parameters
annualAprUpperBound
uint256
The reporting upper bound
relativeLowerBound
uint256
The reporting lower bound
SetCollector
event SetCollector(address indexed collector)
The stored Collector has been changed
Parameters
collector indexed
address
The new Collector
SetCoverageFund
event SetCoverageFund(address indexed coverageFund)
The stored Coverage Fund has been changed
Parameters
coverageFund indexed
address
The new Coverage Fund
SetDepositContractAddress
event SetDepositContractAddress(address indexed depositContract)
The stored deposit contract address changed
Parameters
depositContract indexed
address
Address of the deposit contract
SetDepositedValidatorCount
event SetDepositedValidatorCount(uint256 oldDepositedValidatorCount, uint256 newDepositedValidatorCount)
Emitted when the deposited validator count is updated
Parameters
oldDepositedValidatorCount
uint256
The old deposited validator count value
newDepositedValidatorCount
uint256
The new deposited validator count value
SetELFeeRecipient
event SetELFeeRecipient(address indexed elFeeRecipient)
The stored Execution Layer Fee Recipient has been changed
Parameters
elFeeRecipient indexed
address
The new Execution Layer Fee Recipient
SetGlobalFee
event SetGlobalFee(uint256 fee)
The stored Global Fee has been changed
Parameters
fee
uint256
The new Global Fee
SetMaxDailyCommittableAmounts
event SetMaxDailyCommittableAmounts(uint256 minNetAmount, uint256 maxRelativeAmount)
Emitted when the daily committable limits are changed
Parameters
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
SetMetadataURI
event SetMetadataURI(string metadataURI)
The stored Metadata URI string has been changed
Parameters
metadataURI
string
The new Metadata URI string
SetOperatorsRegistry
event SetOperatorsRegistry(address indexed operatorRegistry)
The stored Operators Registry has been changed
Parameters
operatorRegistry indexed
address
The new Operators Registry
SetOracle
event SetOracle(address indexed oracleAddress)
The stored oracle address changed
Parameters
oracleAddress indexed
address
The new oracle address
SetPendingAdmin
event SetPendingAdmin(address indexed pendingAdmin)
The pending admin address changed
Parameters
pendingAdmin indexed
address
New pending admin address
SetRedeemManager
event SetRedeemManager(address redeemManager)
Emitted when the redeem manager address is changed
Parameters
redeemManager
address
The address of the redeem manager
SetSpec
event SetSpec(uint64 epochsPerFrame, uint64 slotsPerEpoch, uint64 secondsPerSlot, uint64 genesisTime, uint64 epochsToAssumedFinality)
The Consensus Layer Spec is changed
Parameters
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
The genesis timestamp
epochsToAssumedFinality
uint64
The number of epochs before an epoch is considered final
SetTotalSupply
event SetTotalSupply(uint256 totalSupply)
Emitted when the total supply is changed
Parameters
totalSupply
uint256
undefined
SetWithdrawalCredentials
event SetWithdrawalCredentials(bytes32 withdrawalCredentials)
The stored withdrawal credentials changed
Parameters
withdrawalCredentials
bytes32
The withdrawal credentials to use for deposits
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Emitted when value
tokens are moved from one account (from
) to another (to
). Note that value
may be zero.
Parameters
from indexed
address
undefined
to indexed
address
undefined
value
uint256
undefined
UserDeposit
event UserDeposit(address indexed depositor, address indexed recipient, uint256 amount)
User deposited ETH in the system
Parameters
depositor indexed
address
Address performing the deposit
recipient indexed
address
Address receiving the minted shares
amount
uint256
Amount in ETH deposited
Errors
AllowanceTooLow
error AllowanceTooLow(address _from, address _operator, uint256 _allowance, uint256 _value)
Allowance too low to perform operation
Parameters
_from
address
Account where funds are sent from
_operator
address
Account attempting the transfer
_allowance
uint256
Current allowance
_value
uint256
Requested transfer value in shares
BalanceTooLow
error BalanceTooLow()
Balance too low to perform operation
Denied
error Denied(address account)
The access was denied
Parameters
account
address
The account that was denied
EmptyDeposit
error EmptyDeposit()
And empty deposit attempt was made
ErrorOnDeposit
error ErrorOnDeposit()
An error occurred during the deposit
InconsistentPublicKeys
error InconsistentPublicKeys()
The length of the BLS Public key is invalid during deposit
InconsistentSignatures
error InconsistentSignatures()
The length of the BLS Signature is invalid during deposit
InvalidArgument
error InvalidArgument()
The argument was invalid
InvalidCall
error InvalidCall()
The call was invalid
InvalidDecreasingValidatorsExitedBalance
error InvalidDecreasingValidatorsExitedBalance(uint256 currentValidatorsExitedBalance, uint256 newValidatorsExitedBalance)
The total exited balance decreased
Parameters
currentValidatorsExitedBalance
uint256
The current exited balance
newValidatorsExitedBalance
uint256
The new exited balance
InvalidDecreasingValidatorsSkimmedBalance
error InvalidDecreasingValidatorsSkimmedBalance(uint256 currentValidatorsSkimmedBalance, uint256 newValidatorsSkimmedBalance)
The total skimmed balance decreased
Parameters
currentValidatorsSkimmedBalance
uint256
The current exited balance
newValidatorsSkimmedBalance
uint256
The new exited balance
InvalidDepositRoot
error InvalidDepositRoot()
Invalid deposit root
InvalidEmptyString
error InvalidEmptyString()
The string is empty
InvalidEpoch
error InvalidEpoch(uint256 epoch)
Thrown when an invalid epoch was reported
Parameters
epoch
uint256
Invalid epoch
InvalidFee
error InvalidFee()
The fee is invalid
InvalidInitialization
error InvalidInitialization(uint256 version, uint256 expectedVersion)
An error occurred during the initialization
Parameters
version
uint256
The version that was attempting to be initialized
expectedVersion
uint256
The version that was expected
InvalidPublicKeyCount
error InvalidPublicKeyCount()
The received count of public keys to deposit is invalid
InvalidPulledClFundsAmount
error InvalidPulledClFundsAmount(uint256 requested, uint256 received)
Thrown when the amount received from the Withdraw contract doe not match the requested amount
Parameters
requested
uint256
The amount that was requested
received
uint256
The amount that was received
InvalidSignatureCount
error InvalidSignatureCount()
The received count of signatures to deposit is invalid
InvalidValidatorCountReport
error InvalidValidatorCountReport(uint256 providedValidatorCount, uint256 depositedValidatorCount, uint256 lastReportedValidatorCount)
The reported validator count is invalid
Parameters
providedValidatorCount
uint256
The received validator count value
depositedValidatorCount
uint256
The number of deposits performed by the system
lastReportedValidatorCount
uint256
The last reported validator count
InvalidWithdrawalCredentials
error InvalidWithdrawalCredentials()
The withdrawal credentials value is null
InvalidZeroAddress
error InvalidZeroAddress()
The address is zero
NoAvailableValidatorKeys
error NoAvailableValidatorKeys()
The internal key retrieval returned no keys
NotEnoughFunds
error NotEnoughFunds()
Not enough funds to deposit one validator
NullTransfer
error NullTransfer()
Invalid empty transfer
OnlyKeeper
error OnlyKeeper()
SliceOutOfBounds
error SliceOutOfBounds()
The slice is outside of the initial bytes bounds
SliceOverflow
error SliceOverflow()
The length overflows an uint
TotalValidatorBalanceDecreaseOutOfBound
error TotalValidatorBalanceDecreaseOutOfBound(uint256 prevTotalEthIncludingExited, uint256 postTotalEthIncludingExited, uint256 timeElapsed, uint256 relativeLowerBound)
The balance decrease is higher than the maximum allowed by the lower bound
Parameters
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
TotalValidatorBalanceIncreaseOutOfBound
error TotalValidatorBalanceIncreaseOutOfBound(uint256 prevTotalEthIncludingExited, uint256 postTotalEthIncludingExited, uint256 timeElapsed, uint256 annualAprUpperBound)
The balance increase is higher than the maximum allowed by the upper bound
Parameters
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
The upper bound value that was used
Unauthorized
error Unauthorized(address caller)
The operator is unauthorized for the caller
Parameters
caller
address
Address performing the call
UnauthorizedTransfer
error UnauthorizedTransfer(address _from, address _to)
Invalid transfer recipients
Parameters
_from
address
Account sending the funds in the invalid transfer
_to
address
Account receiving the funds in the invalid transfer
ZeroMintedShares
error ZeroMintedShares()
The computed amount of shares to mint is 0
Last updated