SELFDESTRUCT reachable from non-admin path
Uniswap (v2 + v3)'s assessment for RD-F-011 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
V3: UniswapV3Pool.sol and UniswapV3Factory.sol — no selfdestruct or suicide calls. Pool deployer uses CREATE2 via `new UniswapV3Pool{salt:...}()` — not a selfdestruct factory. V2: UniswapV2Pair.sol and Factory — fully immutable, no admin paths, no selfdestruct. Green.
Detail #
Source inspection of UniswapV3Pool.sol confirms the absence of SELFDESTRUCT opcode reachable from any path. UniswapV3PoolDeployer.sol deploys pools via CREATE2 using the Solidity `new` keyword, which is not the same as a CREATE/selfdestruct pattern. V2 contracts (Solidity 0.5.x) are similarly free of selfdestruct; the constant-product AMM design has no need for this pattern.
Sources #
- GitHub
- UniswapV3Pool.sol — source inspection, no selfdestruct foundUniswapV3Pool.sol raw sourceretrieved 2026-05-12
Methodology #
Determine whether any deployed contract contains the SELFDESTRUCT opcode in a code path reachable from a non-admin caller.
See the full factor methodology and distribution across all protocols →