Constructor calls _disableInitializers()
Balancer (v2 + v3)'s assessment for RD-F-023 — scored not_applicable on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
Balancer v2 and v3 core contracts do not use OZ Initializable upgradeable proxy pattern. _disableInitializers() is an OZ 4.x+ pattern for implementation contracts behind UUPS proxies. Since neither v2 nor v3 pools/Vault use OZ upgradeable proxy pattern, this factor does not apply.
Sources #
- GitHubv3 VaultExtension: onlyVaultDelegateCall, hardcoded delegatecallhttps://github.com/balancer/balancer-v3-monorepo/blob/main/pkg/vault/contracts/VaultExtension.solretrieved 2026-05-05
- v2 Vault.sol: constructor pattern, no initializehttps://github.com/balancer/balancer-v2-monorepo/blob/master/pkg/vault/contracts/Vault.solretrieved 2026-05-05
Methodology #
Determine whether implementation contract constructors call `_disableInitializers()` to prevent re-initialization of the implementation directly.
See the full factor methodology and distribution across all protocols →
rubric_version v1.7.0 protocol balancer factor RD-F-023 score not_applicable collected_at 2026-05-05 12:41:36