Extend with New Facets
Upgrades follow a publish‑delay‑commit rhythm so that depositors see them coming.
Draft the facet: Import
BaseFacetInitializer
, useMoreVaultsLib
for shared storage, and guard sensitive calls with the existing role modifiers.Audit & dry‑run: Because the facet is self‑contained, diffing focuses on its selectors and storage writes, not the whole vault.
Submit via Multicall: Pack a
diamondCut
plus any config tweaks intosubmitActions
; the call is timestamped and logged.Wait out the timelock: Deposit‑side UX and bots can decode the pending batch through
getPendingActions
.Execute: A manager calls
executeActions
.DiamondCutFacet
swaps the selectors, andDiamondLoupeFacet
immediately reflects the new map for indexers.
If something looks off, a guardian can cancel with vetoActions
before the delay expire; no need to pause or migrate funds.
Last updated