RioLRTOperatorRegistry

Git Source

Inherits: OwnableUpgradeable, UUPSUpgradeable, RioLRTCore, RioLRTOperatorRegistryStorageV1

State Variables

strategyManager

The primary entry and exit-point for funds into and out of EigenLayer.

IStrategyManager public immutable strategyManager;

operatorDelegatorBeacon

The operator delegator beacon contract.

address public immutable operatorDelegatorBeacon;

Functions

onlyOperatorManager

Require that the caller is the operator's manager.

modifier onlyOperatorManager(uint8 operatorId);

Parameters

onlyOperatorManagerOrSecurityDaemon

Require that the caller is the operator's manager OR the security daemon's wallet that has been configured by the security council.

modifier onlyOperatorManagerOrSecurityDaemon(uint8 operatorId);

Parameters

onlyOperatorManagerOrProofUploader

Require that the caller is the operator's manager OR the proof uploader

modifier onlyOperatorManagerOrProofUploader(uint8 operatorId);

Parameters

constructor

constructor(address issuer_, address strategyManager_, address operatorDelegatorBeacon_) RioLRTCore(issuer_);

Parameters

initialize

Initializes the contract.

function initialize(address initialOwner, address token_) external initializer;

Parameters

operatorCount

Returns the total number of operators in the registry.

function operatorCount() external view returns (uint8);

activeOperatorCount

Returns the total number of active operators in the registry.

function activeOperatorCount() external view returns (uint8);

minStakerOptOutBlocks

The minimum acceptable delay between an operator signaling intent to register

function minStakerOptOutBlocks() external view returns (uint24);

securityDaemon

The security daemon, which is responsible for removal of duplicate or invalid validator keys.

function securityDaemon() external view returns (address);

validatorKeyReviewPeriod

The amount of time (in seconds) before uploaded validator keys are considered "vetted".

function validatorKeyReviewPeriod() external view returns (uint24);

getOperatorDetails

Returns the operator details for the provided operator ID.

function getOperatorDetails(uint8 operatorId) external view returns (OperatorPublicDetails memory);

Parameters

getOperatorShareDetails

Returns the operator's share details for the provided operator ID and strategy.

function getOperatorShareDetails(uint8 operatorId, address strategy)
    external
    view
    returns (OperatorShareDetails memory);

Parameters

addOperator

Adds a new operator to the registry, deploying a delegator contract and delegating to the provided operator address.

function addOperator(OperatorConfig calldata config) external onlyOwner returns (uint8 operatorId, address delegator);

Parameters

activateOperator

Activates an operator.

function activateOperator(uint8 operatorId) external onlyOwner;

Parameters

deactivateOperator

Deactivates an operator, exiting all remaining stake to the deposit pool.

function deactivateOperator(uint8 operatorId) external onlyOwner;

Parameters

setOperatorStrategyShareCaps

Sets the operator's strategy share allocation caps.

function setOperatorStrategyShareCaps(uint8 operatorId, StrategyShareCap[] calldata newStrategyShareCaps)
    external
    onlyOwner;

Parameters

setOperatorValidatorCap

Sets the operator's maximum active validator cap.

function setOperatorValidatorCap(uint8 operatorId, uint40 newValidatorCap) external onlyOwner;

Parameters

setSecurityDaemon

Sets the security daemon to a new account (newSecurityDaemon).

function setSecurityDaemon(address newSecurityDaemon) external onlyOwner;

Parameters

setProofUploader

Sets the proof uploader to a new account (newProofUploader).

function setProofUploader(address newProofUploader) external onlyOwner;

Parameters

setMinStakerOptOutBlocks

Sets the minimum acceptable delay between an operator signaling intent to register

function setMinStakerOptOutBlocks(uint24 newMinStakerOptOutBlocks) external onlyOwner;

Parameters

setValidatorKeyReviewPeriod

Sets the amount of time (in seconds) before uploaded validator keys are considered "vetted".

function setValidatorKeyReviewPeriod(uint24 newValidatorKeyReviewPeriod) external onlyOwner;

Parameters

setOperatorEarningsReceiver

Sets an operator's earnings receiver.

function setOperatorEarningsReceiver(uint8 operatorId, address newEarningsReceiver)
    external
    onlyOperatorManager(operatorId);

Parameters

setOperatorPendingManager

Sets an operator's pending manager.

function setOperatorPendingManager(uint8 operatorId, address newPendingManager)
    external
    onlyOperatorManager(operatorId);

Parameters

confirmOperatorManager

Confirms an operator's pending manager.

function confirmOperatorManager(uint8 operatorId) external;

Parameters

verifyWithdrawalCredentials

Verifies withdrawal credentials of validator(s) owned by the provided operator's EigenPod. It also verifies the effective balance of the validator(s).

function verifyWithdrawalCredentials(
    uint8 operatorId,
    uint64 oracleTimestamp,
    IBeaconChainProofs.StateRootProof calldata stateRootProof,
    uint40[] calldata validatorIndices,
    bytes[] calldata validatorFieldsProofs,
    bytes32[][] calldata validatorFields
) external onlyOperatorManagerOrProofUploader(operatorId);

Parameters

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.

function addValidatorDetails(
    uint8 operatorId,
    uint256 validatorCount,
    bytes calldata publicKeys,
    bytes calldata signatures
) external onlyOperatorManager(operatorId);

Parameters

removeValidatorDetails

Removes pending or confirmed validator details (public keys and signatures) from storage for the provided operator.

function removeValidatorDetails(uint8 operatorId, uint256 fromIndex, uint256 validatorCount)
    external
    onlyOperatorManagerOrSecurityDaemon(operatorId);

Parameters

reportOutOfOrderValidatorExits

Reports validator exits that occur prior to instruction by the protocol.

function reportOutOfOrderValidatorExits(uint8 operatorId, uint256 fromIndex, uint256 validatorCount) external;

Parameters

syncStrategyShares

Syncs the stored strategy share allocations for the provided operator IDs with EigenLayer.

function syncStrategyShares(uint8[] memory operatorIds, address strategy) external;

Parameters

allocateStrategyShares

Allocates a specified amount of shares for the provided strategy to the operators with the lowest utilization.

function allocateStrategyShares(address strategy, uint256 sharesToAllocate)
    external
    onlyDepositPool
    returns (uint256 sharesAllocated, OperatorStrategyAllocation[] memory allocations);

Parameters

allocateETHDeposits

Allocates a specified amount of ETH deposits to the operators with the lowest utilization.

function allocateETHDeposits(uint256 depositsToAllocate)
    external
    onlyDepositPool
    returns (uint256 depositsAllocated, OperatorETHAllocation[] memory allocations);

Parameters

deallocateStrategyShares

Deallocates a specified amount of shares for the provided strategy from the operators with the highest utilization.

function deallocateStrategyShares(address strategy, uint256 sharesToDeallocate)
    external
    onlyCoordinator
    returns (uint256 sharesDeallocated, OperatorStrategyDeallocation[] memory deallocations);

Parameters

deallocateETHDeposits

Deallocates a specified amount of ETH deposits from the operators with the highest utilization.

function deallocateETHDeposits(uint256 depositsToDeallocate)
    external
    onlyCoordinator
    returns (uint256 depositsDeallocated, OperatorETHDeallocation[] memory deallocations);

Parameters

_hashValidatorBLSPubKey

Hashes a validator's BLS public key and returns the hash.

function _hashValidatorBLSPubKey(bytes memory pubKey) internal pure returns (bytes32 pubKeyHash);

Parameters

_authorizeUpgrade

Allows the owner to upgrade the operator registry implementation.

function _authorizeUpgrade(address newImplementation) internal override onlyOwner;

Parameters

Last updated