Skip to content

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, optional exitRequestFallbackContract
  • vault config and address derivation version
  • exitSubmitted latch

Key Functions

  • initialize
  • executionWithdrawalCredentials
  • isBoundToPubkey
  • currentExitRequestFeeWei
  • depositProtectionReadiness
  • setExitRequestFallback
  • transferETH
  • requestExit

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.