RioLRTOperatorRegistry
Inherits: OwnableUpgradeable, UUPSUpgradeable, RioLRTCore, RioLRTOperatorRegistryStorageV1
State Variables
strategyManager
The primary entry and exit-point for funds into and out of EigenLayer.
operatorDelegatorBeacon
The operator delegator beacon contract.
Functions
onlyOperatorManager
Require that the caller is the operator's manager.
Parameters
operatorId
uint8
The operator's ID.
onlyOperatorManagerOrSecurityDaemon
Require that the caller is the operator's manager OR the security daemon's wallet that has been configured by the security council.
Parameters
operatorId
uint8
The operator's ID.
onlyOperatorManagerOrProofUploader
Require that the caller is the operator's manager OR the proof uploader
Parameters
operatorId
uint8
The operator's ID.
constructor
Parameters
issuer_
address
The LRT issuer that's authorized to deploy this contract.
strategyManager_
address
The primary entry and exit-point for funds into and out of EigenLayer.
operatorDelegatorBeacon_
address
The operator delegator beacon contract.
initialize
Initializes the contract.
Parameters
initialOwner
address
The initial owner of the contract.
token_
address
The address of the liquid restaking token.
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
securityDaemon
The security daemon, which is responsible for removal of duplicate or invalid validator keys.
validatorKeyReviewPeriod
The amount of time (in seconds) before uploaded validator keys are considered "vetted".
getOperatorDetails
Returns the operator details for the provided operator ID.
Parameters
operatorId
uint8
The operator's ID.
getOperatorShareDetails
Returns the operator's share details for the provided operator ID and strategy.
Parameters
operatorId
uint8
The operator's ID.
strategy
address
The strategy to get the share details for.
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.
setOperatorStrategyShareCaps
Sets the operator's strategy share allocation caps.
Parameters
operatorId
uint8
The operator's ID.
newStrategyShareCaps
StrategyShareCap[]
The new strategy share allocation caps.
setOperatorValidatorCap
Sets the operator's maximum active validator cap.
Parameters
operatorId
uint8
The operator's ID.
newValidatorCap
uint40
The new maximum active validator cap.
setSecurityDaemon
Sets the security daemon to a new account (newSecurityDaemon
).
Parameters
newSecurityDaemon
address
The new security daemon address.
setProofUploader
Sets the proof uploader to a new account (newProofUploader
).
Parameters
newProofUploader
address
The new proof uploader address.
setMinStakerOptOutBlocks
Sets the minimum acceptable delay between an operator signaling intent to register
Parameters
newMinStakerOptOutBlocks
uint24
The new min staker opt out blocks.
setValidatorKeyReviewPeriod
Sets the amount of time (in seconds) before uploaded validator keys are considered "vetted".
Parameters
newValidatorKeyReviewPeriod
uint24
The new validator key review period.
setOperatorEarningsReceiver
Sets an operator's earnings receiver.
Parameters
operatorId
uint8
The operator's ID.
newEarningsReceiver
address
The new reward address of the operator.
setOperatorPendingManager
Sets an operator's pending manager.
Parameters
operatorId
uint8
The operator's ID.
newPendingManager
address
The new pending manager of the operator.
confirmOperatorManager
Confirms an operator's pending manager.
Parameters
operatorId
uint8
The operator's ID.
verifyWithdrawalCredentials
Verifies withdrawal credentials of validator(s) owned by the provided operator's EigenPod. It also verifies the effective balance of the validator(s).
Parameters
operatorId
uint8
The operator's ID.
oracleTimestamp
uint64
The timestamp of the oracle that submitted the proof.
stateRootProof
IBeaconChainProofs.StateRootProof
The state root proof.
validatorIndices
uint40[]
The indices of the validators to verify.
validatorFieldsProofs
bytes[]
The validator fields proofs.
validatorFields
bytes32[][]
The validator fields.
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 or confirmed 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.
syncStrategyShares
Syncs the stored strategy share allocations for the provided operator IDs with EigenLayer.
Parameters
operatorIds
uint8[]
The operator IDs to sync.
strategy
address
The strategy to sync.
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)
_hashValidatorBLSPubKey
Hashes a validator's BLS public key and returns the hash.
Parameters
pubKey
bytes
The validator's BLS public key.
_authorizeUpgrade
Allows the owner to upgrade the operator registry implementation.
Parameters
newImplementation
address
The implementation to upgrade to.
Last updated