Skip to content

feat(eip2612): declare the permit surface in IEip2612 - #19

Merged
Zena-park merged 1 commit into
mainfrom
feat/ieip2612
Aug 21, 2026
Merged

feat(eip2612): declare the permit surface in IEip2612#19
Zena-park merged 1 commit into
mainfrom
feat/ieip2612

Conversation

@Zena-park

Copy link
Copy Markdown
Owner

Why

Re-audit item R-8: Eip3009 has IEip3009, Eip2612 had no counterpart, so integrators could compile against one payment module's interface but not the other's.

What

  • IEip2612 (new): is IERC20Permit (OpenZeppelin's declaration of the EIP — permit(v,r,s), nonces, DOMAIN_SEPARATOR) plus the bytes signature permit, the same ERC-1271 extension IEip3009 declares.
  • Eip2612 implements it. The only override is nonces, which NoncesUpgradeable and IERC20Permit both declare; permit/DOMAIN_SEPARATOR need no marker. (Listing IEip2612 in the override instead of IERC20Permit does not compile — checked.)
  • Test pins type(IEip2612).interfaceId to the one selector this repo declares; the EIP surface is OpenZeppelin's constant, not re-derived here.
  • README module row, CHANGELOG line.

Checks

npm run check — fmt · lint · lock:check · 140 tests; Slither 0 locally; Halmos in CI. Runtime sizes +~90 B (the nonces wrapper).

🤖 Generated with Claude Code

The counterpart of IEip3009: OpenZeppelin's IERC20Permit carries the
EIP as written -- permit with the (v, r, s) triple, nonces,
DOMAIN_SEPARATOR -- and IEip2612 extends it with the bytes-signature
permit an ERC-1271 account needs. Eip2612 implements it; the only
override is nonces, which both the nonce mixin and the interface
declare. Integrators compile against one file per payment module.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 21, 2026 15:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Zena-park
Zena-park merged commit e42f0f8 into main Aug 21, 2026
3 checks passed
@Zena-park
Zena-park deleted the feat/ieip2612 branch August 21, 2026 15:40
@Zena-park Zena-park mentioned this pull request Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants