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