★ Public initialize() without initializer modifier
Curve Finance's assessment for RD-F-022 — scored not_applicable on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
Curve is a Vyper codebase with no Solidity initialize()/initializer modifier pattern. All contracts use Vyper __init__() constructors called once at deployment. No proxy-with-separate-initializable-implementation pattern. This factor is structurally not applicable for Vyper non-proxy contracts. Confirmed across CurveStableSwapNG.vy, CurveTricryptoOptimizedWETH.vy, VotingEscrow.vy, ERC20CRV.vy.
Sources #
- GitHubCurveStableSwapNG.vy source inspectionCurveStableSwapNG.vy — __init__ constructor, no initialize()retrieved 2026-04-28
- VotingEscrow.vy source inspectionVotingEscrow.vy — __init__ constructor, no initialize()retrieved 2026-04-28
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 →