Role separation: upgrade ≠ fee ≠ oracle
SUNSwap (sun.io)'s assessment for RD-F-035 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
V4 partial role separation: CLPoolManagerOwner manages pool manager ownership/pause; separate ProtocolFeeController manages fees (Ownable2Step). setProtocolFeeController() callable by CLPoolManagerOwner owner. V3 setOwner() consolidates all roles in one address. V1/V2 immutable single-owner factories. No oracle config role (DEX has no oracle admin). Partial separation in V4 but incomplete (same deployer owns both CLPoolManagerOwner and ProtocolFeeController).
Sources #
- GitHubSUNSwap V4 contract architecture — partial role separationsunswap-v4-core: CLPoolManagerOwner.sol separate from ProtocolFeeController.sol; same deployer TU3rMHyWHzeEJBReWLzHko728hbz6MtfNg owns bothretrieved 2026-05-17
Methodology #
Determine whether the upgrade role, fee-collection role, and oracle-config role are assigned to distinct addresses.
See the full factor methodology and distribution across all protocols →