IRioLRTOperatorRegistry
Functions
initialize
Initializes the contract.
Parameters
Name | Type | Description |
---|---|---|
|
| The initial owner of the contract. |
|
| The address of the liquid restaking token. |
getOperatorDetails
Returns the operator details for the provided operator ID.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
getOperatorShareDetails
Returns the operator share cap and allocation for the provided operator ID and strategy.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| 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
Name | Type | Description |
---|---|---|
|
| The new operator's configuration. |
activateOperator
Activates an operator.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
deactivateOperator
Deactivates an operator, exiting all remaining stake to the deposit pool.
Parameters
Name | Type | Description |
---|---|---|
|
| 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
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The number of validators in the batch. |
|
| The validator public keys. |
|
| The validator signatures. |
removeValidatorDetails
Removes pending validator details (public keys and signatures) from storage for the provided operator.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The index of the first validator to remove. |
|
| The number of validator to remove. |
reportOutOfOrderValidatorExits
Reports validator exits that occur prior to instruction by the protocol.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The index of the first validator to report. |
|
| 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
Name | Type | Description |
---|---|---|
|
| The strategy to allocate the shares to. |
|
| The amount of shares to allocate. |
allocateETHDeposits
Allocates a specified amount of ETH deposits to the operators with the lowest utilization.
Parameters
Name | Type | Description |
---|---|---|
|
| 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
Name | Type | Description |
---|---|---|
|
| The strategy to deallocate the shares from. |
|
| The amount of shares to deallocate. |
deallocateETHDeposits
Deallocates a specified amount of ETH deposits from the operators with the highest utilization.
Parameters
Name | Type | Description |
---|---|---|
|
| The amount of deposits to deallocate (32 ETH each) |
Events
OperatorAdded
Emitted when a new operator is added to the registry.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The operator's contract address. |
|
| The operator's delegator contract address. |
|
| The initial manager of the operator. |
|
| The initial reward address of the operator. |
|
| The initial metadata URI of the operator. |
OperatorActivated
Emitted when an operator is activated.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
OperatorDeactivated
Emitted when an operator is deactivated.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
OperatorStrategyShareCapSet
Emitted when an operator's strategy share allocation cap is set.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The strategy whose cap was set. |
|
| The new strategy share cap for the operator. |
OperatorValidatorCapSet
Emitted when an operator's validator cap is set.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The new maximum active validator cap. |
SecurityDaemonSet
Emitted when the security daemon is set.
Parameters
Name | Type | Description |
---|---|---|
|
| The new security daemon. |
ProofUploaderSet
Emitted when the proof uploader is set.
Parameters
Name | Type | Description |
---|---|---|
|
| 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
Name | Type | Description |
---|---|---|
|
| The new validator key review period. |
OperatorStrategyExitQueued
Emitted when a strategy exit is queued for an operator.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The strategy to exit. |
|
| The number of shares to exit. |
|
| The withdrawal root for the exit. |
OperatorEarningsReceiverSet
Emitted when an operator's earnings receiver is set.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The new earnings receiver for the operator. |
OperatorPendingManagerSet
Emitted when an operator's pending manager is set.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The new pending manager of the operator. |
OperatorManagerSet
Emitted when an operator's manager is set.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The new manager of the operator. |
OperatorWithdrawalCredentialsVerified
Emitted following the verification of withdrawal credentials for one or more validators.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The Beacon Chain timestamp whose state root the |
|
| 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
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The number of validator details that were added. |
OperatorValidatorDetailsRemoved
Emitted when an operator removes pending or confirmed validator details (public keys and signatures).
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The number of validator details that were removed. |
OperatorOutOfOrderValidatorExitsReported
Emitted when out of order validator exits are reported.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| 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
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The strategy that the shares were synced for. |
|
| The previous number of shares allocated to the operator. |
|
| The new number of shares allocated to the operator. |
StrategySharesAllocated
Emitted when strategy shares have been allocated to an operator.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The strategy that the shares were allocated to. |
|
| The amount of shares allocated. |
|
| The token value of the allocated shares. |
ETHDepositsAllocated
Emitted when ETH deposits have been allocated to an operator.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The amount of deposits allocated. |
|
| The public keys of the validators that were allocated to. |
StrategySharesDeallocated
Emitted when strategy shares have been deallocated from an operator.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The strategy that the shares were deallocated from. |
|
| The amount of shares deallocated. |
|
| The token value of the deallocated shares. |
ETHDepositsDeallocated
Emitted when ETH deposits have been deallocated from an operator.
Parameters
Name | Type | Description |
---|---|---|
|
| The operator's ID. |
|
| The amount of deposits deallocated. |
|
| 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