Constructor calls _disableInitializers()
Axelar Network's assessment for RD-F-023 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
Axelar uses a custom proxy pattern (not OZ UUPS/Transparent) where the onlyProxy modifier in Implementation.sol provides equivalent protection to _disableInitializers(). The constructor of AxelarGateway does not call _disableInitializers(); neither does AxelarGasService or InterchainTokenService. The custom onlyProxy guard achieves similar protection but via a different mechanism. Yellow: functionally protected but deviates from the OZ recommended pattern which this factor measures.
Sources #
- GitHubImplementation.sol Constructor PatternImplementation.sol: constructor stores implementationAddress; onlyProxy uses this for guardretrieved 2026-05-17
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 →