Constructor calls _disableInitializers()
Uniswap (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 #
V2 and V3 core contracts are not OZ-proxy implementation contracts. _disableInitializers() is an OZ UUPS/Transparent proxy pattern irrelevant to directly-deployed immutable contracts. Not applicable to either version.
Detail #
_disableInitializers() is called in constructors of implementation contracts behind OZ UUPS or Transparent proxies to prevent the implementation contract itself from being initialized by an attacker. Since V2 and V3 AMM contracts are directly deployed without any proxy layer, this pattern does not apply.
Sources #
- GitHubUniswapV3Pool.sol — no proxy pattern, _disableInitializers N/AUniswapV3Pool.sol — directly deployed, no proxyretrieved 2026-05-12
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 →