EIP-712 domain separator missing chainId
Uniswap (v2 + v3)'s assessment for RD-F-020 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
V3: UniswapV3Pool.sol has no EIP-712 domain separator — no signed-message patterns in core pool. Permit2 implements EIP-712 with chainId, audited by ABDK + Chainsecurity. V2: No EIP-712 in core pool. Green.
Detail #
Neither V2 nor V3 core pool contracts use EIP-712 domain separators or signed messages. Signature-related functionality is isolated to periphery (Permit2, NonfungiblePositionManager). Permit2's EIP-712 implementation includes chainId in the domain separator per the EIP-712 specification, and this was verified by ABDK and Chainsecurity in their audits.
Sources #
- GitHub
Methodology #
Determine whether the EIP-712 domain separator struct omits the `chainId` field, allowing cross-chain replay.
See the full factor methodology and distribution across all protocols →