IRioLRTOperatorDelegator
Functions
initialize
Initializes the contract by delegating to the provided EigenLayer operator.
Parameters
token
address
The address of the liquid restaking token.
operator
address
The operator's address.
delegationManager
The primary delegation contract for EigenLayer.
eigenPod
The operator delegator's EigenPod.
getEigenPodShares
Returns the number of shares in the operator delegator's EigenPod.
getETHQueuedForWithdrawal
The amount of ETH queued for withdrawal from EigenLayer, in wei.
getETHUnderManagement
Returns the total amount of ETH under management by the operator delegator.
This includes EigenPod shares (verified validator balances minus queued withdrawals) and ETH in the operator delegator's EigenPod.
verifyWithdrawalCredentials
Verifies withdrawal credentials of validator(s) owned by this operator. It also verifies the effective balance of the validator(s).
Parameters
oracleTimestamp
uint64
The Beacon Chain timestamp whose state root the proof
will be proven against.
stateRootProof
IBeaconChainProofs.StateRootProof
Proves a beaconStateRoot
against a block root fetched from the oracle.
validatorIndices
uint40[]
The list of indices of the validators being proven, refer to consensus specs.
validatorFieldsProofs
bytes[]
Proofs against the beaconStateRoot
for each validator in validatorFields
.
validatorFields
bytes32[][]
The fields of the "Validator Container", refer to consensus specs.
stakeERC20
Approve EigenLayer to spend an ERC20 token, then stake it into an EigenLayer strategy.
Parameters
strategy
address
The strategy to stake the tokens into.
token
address
The token to stake.
amount
uint256
The amount of tokens to stake.
stakeETH
Stake ETH via the operator delegator's EigenPod, using the provided validator information.
Parameters
validatorCount
uint256
The number of validators to deposit into.
pubkeyBatch
bytes
Batched validator public keys.
signatureBatch
bytes
Batched validator signatures.
queueWithdrawalForUserSettlement
Queues a withdrawal of the specified amount of shares
from the given strategy
to the withdrawal queue, intended for settling user withdrawals.
Parameters
strategy
address
The strategy from which to withdraw.
shares
uint256
The amount of shares to withdraw.
queueWithdrawalForOperatorExit
Queues a withdrawal of the specified amount of shares
from the given strategy
to the deposit pool, specifically for facilitating operator exits.
Parameters
strategy
address
The strategy from which to withdraw.
shares
uint256
The amount of shares to withdraw.
completeQueuedWithdrawal
Completes a queued withdrawal of the specified queuedWithdrawal
for the given asset
.
Parameters
queuedWithdrawal
IDelegationManager.Withdrawal
The withdrawal to complete.
asset
address
The asset to withdraw.
middlewareTimesIndex
uint256
The index of the middleware times to use for the withdrawal.
Errors
INVALID_EARNINGS_RECEIVER
Thrown when the earnings receiver is not set to the reward distributor.
INVALID_DELEGATION_APPROVER
Thrown when the delegation approver is not the zero address.
INVALID_STAKER_OPT_OUT_BLOCKS
Thrown when the operator's staker opt out blocks is below the minimum.
INVALID_VALIDATOR_COUNT
Thrown when the validator count is 0
or does not match the provided ETH value.
INVALID_ASSET_FOR_BEACON_CHAIN_STRATEGY
Thrown when the asset provided for the beacon chain strategy is not valid.
INVALID_PUBLIC_KEYS_BATCH_LENGTH
Thrown when the public keys batch length does not match the validator count.
Parameters
actual
uint256
The actual length of the batch.
expected
uint256
The expected length of the batch.
INVALID_SIGNATURES_BATCH_LENGTH
Thrown when the signatures batch length does not match the validator count.
Parameters
actual
uint256
The actual length of the batch.
expected
uint256
The expected length of the batch.
INSUFFICIENT_EXCESS_FULL_WITHDRAWAL_ETH
Thrown when there isn't enough excess full withdrawal ETH to initiate a scrape from the EigenPod.
UNAUTHORIZED_CLAIMER
Thrown when the calling account is not authorized to claim a withdrawal.
ONLY_REGISTRY_OWNER
Thrown when the caller is not the owner of the operator registry contract.
Last updated