IRioLRTOperatorRegistry
Functions
initialize
Initializes the contract.
Parameters
initialOwner
address
The initial owner of the contract.
token
address
The address of the liquid restaking token.
getOperatorDetails
Returns the operator details for the provided operator ID.
Parameters
operatorId
uint8
The operator's ID.
getOperatorShareDetails
Returns the operator share cap and allocation for the provided operator ID and strategy.
Parameters
operatorId
uint8
The operator's ID.
strategy
address
The strategy to get the share details for.
operatorCount
Returns the total number of operators in the registry.
activeOperatorCount
Returns the total number of active operators in the registry.
minStakerOptOutBlocks
The minimum acceptable delay between an operator signaling intent to register
validatorKeyReviewPeriod
The amount of time (in seconds) before uploaded validator keys are considered "vetted".
addOperator
Adds a new operator to the registry, deploying a delegator contract and delegating to the provided operator address.
Parameters
config
OperatorConfig
The new operator's configuration.
activateOperator
Activates an operator.
Parameters
operatorId
uint8
The operator's ID.
deactivateOperator
Deactivates an operator, exiting all remaining stake to the deposit pool.
Parameters
operatorId
uint8
The operator's ID.
addValidatorDetails
Adds pending validator details (public keys and signatures) to storage for the provided operator. Each added batch extends the timestamp at which the details will be considered confirmed.
Parameters
operatorId
uint8
The operator's ID.
validatorCount
uint256
The number of validators in the batch.
publicKeys
bytes
The validator public keys.
signatures
bytes
The validator signatures.
removeValidatorDetails
Removes pending validator details (public keys and signatures) from storage for the provided operator.
Parameters
operatorId
uint8
The operator's ID.
fromIndex
uint256
The index of the first validator to remove.
validatorCount
uint256
The number of validator to remove.
reportOutOfOrderValidatorExits
Reports validator exits that occur prior to instruction by the protocol.
Parameters
operatorId
uint8
The operator's ID.
fromIndex
uint256
The index of the first validator to report.
validatorCount
uint256
The number of validators to report.
allocateStrategyShares
Allocates a specified amount of shares for the provided strategy to the operators with the lowest utilization.
Parameters
strategy
address
The strategy to allocate the shares to.
sharesToAllocate
uint256
The amount of shares to allocate.
allocateETHDeposits
Allocates a specified amount of ETH deposits to the operators with the lowest utilization.
Parameters
depositsToAllocate
uint256
The amount of deposits to allocate (32 ETH each)
deallocateStrategyShares
Deallocates a specified amount of shares for the provided strategy from the operators with the highest utilization.
Parameters
strategy
address
The strategy to deallocate the shares from.
sharesToDeallocate
uint256
The amount of shares to deallocate.
deallocateETHDeposits
Deallocates a specified amount of ETH deposits from the operators with the highest utilization.
Parameters
depositsToDeallocate
uint256
The amount of deposits to deallocate (32 ETH each)
Events
OperatorAdded
Emitted when a new operator is added to the registry.
Parameters
operatorId
uint8
The operator's ID.
operator
address
The operator's contract address.
delegator
address
The operator's delegator contract address.
initialManager
address
The initial manager of the operator.
initialEarningsReceiver
address
The initial reward address of the operator.
initialMetadataURI
string
The initial metadata URI of the operator.
OperatorActivated
Emitted when an operator is activated.
Parameters
operatorId
uint8
The operator's ID.
OperatorDeactivated
Emitted when an operator is deactivated.
Parameters
operatorId
uint8
The operator's ID.
OperatorStrategyShareCapSet
Emitted when an operator's strategy share allocation cap is set.
Parameters
operatorId
uint8
The operator's ID.
strategy
address
The strategy whose cap was set.
cap
uint128
The new strategy share cap for the operator.
OperatorValidatorCapSet
Emitted when an operator's validator cap is set.
Parameters
operatorId
uint8
The operator's ID.
cap
uint40
The new maximum active validator cap.
SecurityDaemonSet
Emitted when the security daemon is set.
Parameters
securityDaemon
address
The new security daemon.
ProofUploaderSet
Emitted when the proof uploader is set.
Parameters
proofUploader
address
The new proof uploader.
MinStakerOptOutBlocksSet
Emitted when the min staker opt out blocks is set.
ValidatorKeyReviewPeriodSet
Emitted when the validator key review period is set.
Parameters
validatorKeyReviewPeriod
uint24
The new validator key review period.
OperatorStrategyExitQueued
Emitted when a strategy exit is queued for an operator.
Parameters
operatorId
uint8
The operator's ID.
strategy
address
The strategy to exit.
sharesToExit
uint256
The number of shares to exit.
withdrawalRoot
bytes32
The withdrawal root for the exit.
OperatorEarningsReceiverSet
Emitted when an operator's earnings receiver is set.
Parameters
operatorId
uint8
The operator's ID.
earningsReceiver
address
The new earnings receiver for the operator.
OperatorPendingManagerSet
Emitted when an operator's pending manager is set.
Parameters
operatorId
uint8
The operator's ID.
pendingManager
address
The new pending manager of the operator.
OperatorManagerSet
Emitted when an operator's manager is set.
Parameters
operatorId
uint8
The operator's ID.
manager
address
The new manager of the operator.
OperatorWithdrawalCredentialsVerified
Emitted following the verification of withdrawal credentials for one or more validators.
Parameters
operatorId
uint8
The operator's ID.
oracleTimestamp
uint64
The Beacon Chain timestamp whose state root the proof
will be proven against.
validatorIndices
uint40[]
The list of indices of the validators being proven, refer to consensus specs.
OperatorPendingValidatorDetailsAdded
Emitted when an operator uploads a new set of validator details (public keys and signatures).
Parameters
operatorId
uint8
The operator's ID.
validatorCount
uint256
The number of validator details that were added.
OperatorValidatorDetailsRemoved
Emitted when an operator removes pending or confirmed validator details (public keys and signatures).
Parameters
operatorId
uint8
The operator's ID.
validatorCount
uint256
The number of validator details that were removed.
OperatorOutOfOrderValidatorExitsReported
Emitted when out of order validator exits are reported.
Parameters
operatorId
uint8
The operator's ID.
validatorCount
uint256
The number of validators that were exited out of order.
StrategySharesSynced
Emitted when the number of shares allocated to an operator has been synced.
Parameters
operatorId
uint8
The operator's ID.
strategy
address
The strategy that the shares were synced for.
oldShares
uint256
The previous number of shares allocated to the operator.
newShares
uint256
The new number of shares allocated to the operator.
StrategySharesAllocated
Emitted when strategy shares have been allocated to an operator.
Parameters
operatorId
uint8
The operator's ID.
strategy
address
The strategy that the shares were allocated to.
sharesAllocated
uint256
The amount of shares allocated.
tokensAllocated
uint256
The token value of the allocated shares.
ETHDepositsAllocated
Emitted when ETH deposits have been allocated to an operator.
Parameters
operatorId
uint8
The operator's ID.
depositsAllocated
uint256
The amount of deposits allocated.
pubKeyBatch
bytes
The public keys of the validators that were allocated to.
StrategySharesDeallocated
Emitted when strategy shares have been deallocated from an operator.
Parameters
operatorId
uint8
The operator's ID.
strategy
address
The strategy that the shares were deallocated from.
sharesDeallocated
uint256
The amount of shares deallocated.
tokensDeallocated
uint256
The token value of the deallocated shares.
ETHDepositsDeallocated
Emitted when ETH deposits have been deallocated from an operator.
Parameters
operatorId
uint8
The operator's ID.
depositsDeallocated
uint256
The amount of deposits deallocated.
pubKeyBatch
bytes
The public keys of the validators that must be exited.
Errors
ONLY_OPERATOR_MANAGER
Thrown when the caller is not the operator's manager.
ONLY_OPERATOR_MANAGER_OR_SECURITY_DAEMON
Thrown when the caller is not the operator's manager OR the security daemon.
ONLY_OPERATOR_MANAGER_OR_PROOF_UPLOADER
Thrown when the caller is not the operator's manager OR the proof uploader.
ONLY_OPERATOR_PENDING_MANAGER
Thrown when the caller is not the operator's pending manager.
INVALID_OPERATOR
Thrown when the operator is address(0)
.
INVALID_MANAGER
Thrown when the manager is address(0)
.
INVALID_EARNINGS_RECEIVER
Thrown when the operator's earnings receiver is address(0)
.
INVALID_OPERATOR_DELEGATOR
Thrown when an invalid (non-existent) operator delegator contract address is provided.
INVALID_PUBLIC_KEY_LENGTH
Thrown when a validator public key length is invalid.
INVALID_PENDING_MANAGER
Thrown when the pending manager is address(0)
.
INVALID_VALIDATOR_COUNT
Thrown when the provided validator count is invalid (zero).
INVALID_INDEX
Thrown when an invalid index is provided.
VALIDATOR_NOT_EXITED
Thrown when attempting to report an out of order exit for a validator that has not exited.
MAX_OPERATOR_COUNT_EXCEEDED
Thrown when the maximum number of operators has been reached.
MAX_ACTIVE_OPERATOR_COUNT_EXCEEDED
Thrown when the maximum number of active operators has been reached.
OPERATOR_ALREADY_ACTIVE
Thrown when attempting to activate an operator that is already active.
OPERATOR_ALREADY_INACTIVE
Thrown when attempting to deactivate an operator that is already inactive.
CANNOT_EXIT_ZERO_SHARES
Thrown when attempting to queue the exit of zero shares.
NO_AVAILABLE_OPERATORS_FOR_DEALLOCATION
Thrown when there are no available operators for deallocation.
Structs
OperatorConfig
The information needed to add a new operator.
StrategyShareCap
Configuration used to track the maximum number of shares that can be allocated to an operator for a given strategy.
OperatorShareDetails
Tracks both the cap and current allocation of strategy shares for an operator.
OperatorValidatorDetails
Aggregate validator information for a single operator.
OperatorDetails
Details for a single operator.
OperatorPublicDetails
Details for a single operator, excluding the share details, so we can expose externally.
OperatorStrategyAllocation
An operator address and strategy share allocation.
OperatorETHAllocation
An operator address, ETH deposit allocation, and validator details.
OperatorStrategyDeallocation
An operator address and strategy share deallocation.
OperatorETHDeallocation
An operator address and ETH deposit deallocation.
Last updated