CenturionWithdrawalVault¶
Source: CenturionWithdrawalVault.sol
Purpose¶
Per-validator custody vault with controller-gated operations:
- transfer ETH to beneficiaries/principal destinations through controller workflows
- request validator exits with fee handling and fallback contract support
- expose deposit-readiness view through controller
Deployment Role¶
Beacon implementation behind many CenturionBeaconProxy instances.
Key State¶
- immutable seat identity references after init:
factory,controller,validatorPubkeyHash - exit routing:
exitRequestContract, optionalexitRequestFallbackContract - vault config and address derivation version
exitSubmittedlatch
Key Functions¶
initializeexecutionWithdrawalCredentialsisBoundToPubkeycurrentExitRequestFeeWeidepositProtectionReadinesssetExitRequestFallbacktransferETHrequestExit
Access Control¶
onlyController for mutating operations, plus reentrancy guard.
Invariants¶
- exit request can be submitted once (
exitSubmitted). - validator pubkey bytes must match stored hash.
- fallback contract cannot equal primary and must have code.
- transfer path reverts on failed call.
Risks If Misconfigured¶
- incorrect controller means vault cannot be managed safely.
- bad exit request contract can block automated exit operations.
- fallback misuse can redirect operational dependency to unvetted contracts.