defirisk.co
rubric v1.7.0

Public initialize() without initializer modifier

SUNSwap (sun.io)'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 #

SunswapV2Pair.initialize() is gated by require(msg.sender == factory). This is the standard Uniswap V2 factory-check pattern — functionally equivalent access control; factory only calls initialize() once at CREATE2 pair-creation time. No exploitable unprotected initializer.

Sources #

  • GitHub
    SunswapV2Factory sourceSunswapV2Factory.sol — createPair uses CREATE2 and calls pair.initialize(token0,token1)retrieved 2026-05-17
  • GitHub
    SunswapV2Pair sourceSunswapV2Pair.sol — require(msg.sender == factory) in initialize() confirmedretrieved 2026-05-17

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 sunswap factor RD-F-022 score green collected_at 2026-05-17 14:37:31