Skip to main content

ValidatorUtils

Git Source ↗

Includes functionality for managing the validators.

Structs

ValidatorDeposit

struct ValidatorDeposit {
bytes publicKey;
bytes signature;
bytes withdrawalCredentials;
bytes32 depositDataRoot;
uint256 depositAmount;
}

Functions

isValidManagerSignature

Function to check if the validator signature is valid

function isValidManagerSignature(
bytes32 nonce,
bytes32 domainSeparator,
address validatorsManager,
bytes calldata validators,
bytes calldata signature
) external view returns (bool);

Parameters

NameTypeDescription
noncebytes32The nonce of the validator
domainSeparatorbytes32The domain separator of the validator
validatorsManageraddressThe address of the validators manager
validatorsbytesThe validators data
signaturebytesThe signature of the validator

Returns

NameTypeDescription
<none>boolWhether the signature is valid

getValidatorDeposit

Function to get the validator registration data

function getValidatorDeposit(bytes calldata validator, bool isV1Validator)
internal
view
returns (ValidatorDeposit memory validatorDeposit);

Parameters

NameTypeDescription
validatorbytesThe validator data
isV1ValidatorboolWhether the validator is a V1 validator

Returns

NameTypeDescription
validatorDepositValidatorDepositThe validator registration data

getIsV1Validators

Function to get the type of validators

function getIsV1Validators(uint256 validatorsLength) internal pure returns (bool);

Parameters

NameTypeDescription
validatorsLengthuint256The length of the validators data

Returns

NameTypeDescription
<none>boolisV1Validators Whether the validators are V1 validators

getValidatorDeposits

Function to get the validator registrations

function getValidatorDeposits(
mapping(bytes32 publicKeyHash => bool isRegistered) storage v2Validators,
bytes calldata validators,
bool isTopUp
) external returns (ValidatorDeposit[] memory validatorDeposits);

Parameters

NameTypeDescription
v2Validatorsmapping(bytes32 publicKeyHash => bool isRegistered)The mapping of public key hashes to registration status
validatorsbytesThe validators data
isTopUpboolWhether the registration is a top-up

Returns

NameTypeDescription
validatorDepositsValidatorDeposit[]The array of validator registrations

withdrawValidators

Function to withdraw the validators

function withdrawValidators(bytes calldata validators, address validatorsWithdrawals) external;

Parameters

NameTypeDescription
validatorsbytesThe validators data
validatorsWithdrawalsaddressThe address of the validators withdrawals contract

consolidateValidator

Internal function for consolidating validators

function consolidateValidator(bytes calldata validator, address validatorsConsolidations)
internal
returns (bytes calldata fromPublicKey, bytes calldata toPublicKey, uint256 feePaid);

Parameters

NameTypeDescription
validatorbytesThe validator data
validatorsConsolidationsaddressThe address of the validators consolidations contract

consolidateValidators

Function to consolidate the validators

function consolidateValidators(
mapping(bytes32 publicKeyHash => bool isRegistered) storage v2Validators,
bytes calldata validators,
bool consolidationsApproved,
address validatorsConsolidations
) external;

Parameters

NameTypeDescription
v2Validatorsmapping(bytes32 publicKeyHash => bool isRegistered)The mapping of public key hashes to registration status
validatorsbytesThe validators data
consolidationsApprovedboolWhether the consolidations are approved
validatorsConsolidationsaddressThe address of the validators consolidations contract