★ Public initialize() without initializer modifier
Liquity V1 + V2 (LUSD / BOLD)'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 initialize() function exists in v1 or v2 core contracts. v2 uses constructor-based immutable initialization; AddressesRegistry uses setAddresses() + _renounceOwnership(). v1 uses setAddresses() + _renounceOwnership(). No proxy pattern, no initializer risk.
Sources #
- GitHubLiquity v2 AddressesRegistry.sol sourcev2 AddressesRegistry — setAddresses() calls _renounceOwnership() at endretrieved 2026-05-16
- Liquity v2 BorrowerOperations.sol sourcev2 BorrowerOperations constructor — no initialize(), immutable variables set in constructorretrieved 2026-05-16
- Liquity v1 BorrowerOperations.sol sourcev1 BorrowerOperations.sol — setAddresses + renounceOwnership pattern, no initialize()retrieved 2026-05-16
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 →
rubric_version v1.7.0 protocol liquity factor RD-F-022 score green collected_at 2026-05-16 10:35:50