Kiln
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 depositby 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 countof 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
Accept the transfer of ownership
Only callable by the pending admin. Resets the pending admin if succesful.
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
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 pending ETH
Get CL validator count (the amount of validator reported by the oracles)
Get CL validator total balance
Retrieve the collector address
Retrieve the coverage fund
Get the deposited validator count (the count of deposits made by the contract)
Retrieve the execution layer fee recipient
Get the current global fee
Retrieve the metadata uri string value
Retrieve the operators registry
Get oracle address
Retrieve the current pending admin address
Retrieve the withdrawal credentials
Increase allowance to another account
Initializes the River system
Retrieve the token name
Proposes a new address as admin
This security prevents setting an invalid address as an admin. The pendingadmin has to claim its ownership of the contract, and prove that the newaddress is able to perform regular transactions.
Input for coverage funds
Input for execution layer fee earnings
Changes the allowlist address
Changes the collector address
Sets the validator count and validator total balance sum reported by the oracle
Can only be called by the oracle addressThe round id is a blackbox value that should only be used to identify unique reportsWhen a report is performed, River computes the amount of fees that can be pulledfrom the execution layer fee recipient. This amount is capped by the max allowedincrease provided during the report.If the total asset balance increases (from the reported total balance and the pulled funds)we then compute the share that must be taken for the collector on the positive delta.The execution layer fees are taken into account here because they are the product ofnode operator's work, just like consensus layer fees, and both should be handled in thesame manner, as a single revenue stream for the users and the collector.
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
The consensus layer data provided by the oracle has been updated
A validator key got funded on the deposit contract
Emitted when the contract is properly initialized
Funds have been pulled from the Coverage Fund
Funds have been pulled from the Execution Layer Fee Recipient
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
The stored Collector has been changed
The stored Coverage Fund has been changed
The stored deposit contract address changed
The stored Execution Layer Fee Recipient has been changed
The stored Global Fee has been 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
The stored withdrawal credentials changed
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 occured 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 string is empty
The fee is invalid
An error occured during the initialization
The received count of public keys to deposit is invalid
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 operator is unauthorized for the caller
Invalid transfer recipients
The computed amount of shares to mint is 0
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
_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
_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
_0
address
The admin address
_0
address
The allowlist address
_0
uint256
The amount of pending ETH
_0
uint256
The CL validator count
_0
uint256
The CL Validator total balance
_0
address
The collector address
_0
address
The coverage fund address
_0
uint256
The deposited validator count
_0
address
The execution layer fee recipient address
_0
uint256
The global fee
_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
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
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
_0
string
The token name
_newAdmin
address
New admin address
_newAllowlist
address
New address for the allowlist
_newCollector
address
New address for the collector
_validatorCount
uint256
The number of active validators on the consensus layer
_validatorTotalBalance
uint256
The balance sum of the active validators on the consensus layer
_roundId
bytes32
An identifier for this update
_maxIncrease
uint256
The maximum allowed increase in the total balance
_newCoverageFund
address
New address for the fund
_newELFeeRecipient
address
New address for the recipient
newFee
uint256
New fee value
_metadataURI
string
The new metadata uri string value
_oracleAddress
address
Address of the oracle
_underlyingAssetAmount
uint256
Amount of underlying asset to convert
_0
uint256
The amount of shares worth the underlying asset amopunt
_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
owner indexed
address
undefined
spender indexed
address
undefined
value
uint256
undefined
validatorCount
uint256
undefined
validatorTotalBalance
uint256
undefined
roundId
bytes32
undefined
publicKey
bytes
undefined
version
uint256
undefined
cdata
bytes
undefined
amount
uint256
undefined
amount
uint256
undefined
_collector indexed
address
undefined
_oldTotalUnderlyingBalance
uint256
undefined
_oldTotalSupply
uint256
undefined
_newTotalUnderlyingBalance
uint256
undefined
_newTotalSupply
uint256
undefined
admin indexed
address
undefined
allowlist indexed
address
undefined
collector indexed
address
undefined
coverageFund indexed
address
undefined
depositContract indexed
address
undefined
elFeeRecipient indexed
address
undefined
fee
uint256
undefined
metadataURI
string
undefined
operatorRegistry indexed
address
undefined
oracleAddress indexed
address
undefined
pendingAdmin indexed
address
undefined
withdrawalCredentials
bytes32
undefined
from indexed
address
undefined
to indexed
address
undefined
value
uint256
undefined
depositor indexed
address
undefined
recipient indexed
address
undefined
amount
uint256
undefined
_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
account
address
The account that was denied
version
uint256
The version that was attempting to be initialized
expectedVersion
uint256
The version that was expected
providedValidatorCount
uint256
The received validator count value
depositedValidatorCount
uint256
The number of deposits performed by the system
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