★ Public initialize() without initializer modifier
Rocket Pool's assessment for RD-F-022 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
No unguarded public initialize() found. Core contracts use constructor injection (no initialize() at all). RocketMinipoolDelegate's initialise() is protected by custom onlyUninitialised modifier: require(storageState == StorageState.Uninitialised) — equivalent to OZ initializer. Saturn One RocketMegapoolDelegate and RocketMegapoolFactory use constructor-based initialization with no initialize() function.
Sources #
- GitHubRocketMinipoolDelegate.solRocketMinipoolDelegate.sol — initialise() with onlyUninitialised modifier confirmedretrieved 2026-05-04
- RocketMegapoolDelegate.solRocketMegapoolDelegate.sol — no initialize(), constructor-basedretrieved 2026-05-04
Methodology #
Determine whether any implementation contract exposes `initialize(…)` without the OpenZeppelin `initializer` modifier or equivalent initialization lock.
See the full factor methodology and distribution across all protocols →