Skip to content

chore: address XGAS-01 signature validation semantics - #13

Merged
mialbu merged 3 commits into
mainfrom
test/10-signature-validation-semantics
May 20, 2026
Merged

chore: address XGAS-01 signature validation semantics#13
mialbu merged 3 commits into
mainfrom
test/10-signature-validation-semantics

Conversation

@mialbu

@mialbu mialbu commented May 13, 2026

Copy link
Copy Markdown
Member

Summary

Addresses XGAS-01 (#10)

Documents and tests the EIP-7702-related validation semantics of xGAS bytes-signature entrypoints that use SignatureChecker.isValidSignatureNow.

The update clarifies that bytes-signature paths intentionally follow the signer account’s current validation mode, including ERC-1271 validation when the signer has code. It also adds tests proving the distinction between encoded-signature paths and classic EIP-3009 (v, r, s) paths.

Changes

  • Documented EIP-7702 behavior for bytes-signature entrypoints.
  • Added SDK/relayer/frontend guidance for pending bytes-signature authorizations.
  • Added tests covering EOA-mode and ERC-1271-mode validation behavior.
  • Added tests proving that, when a signer has code, encoded paths follow ERC-1271 semantics while classic EIP-3009 (v, r, s) paths continue to use direct ECDSA validation.
  • Added same-signer tests using an EOA-derived address with code etched onto it to prove the same ECDSA signature material remains valid through the classic path.

Notes

No production validation logic was changed. The PR documents and tests the intended design behavior.

Add SignatureValidationSemantics tests and architecture notes for encoded-signature
validation behavior.

- add EOA and ERC-1271 encoded-path success tests
- add EIP-7702-style code-presence regression showing encoded-path rejection while
  classic (v,r,s) still succeeds
- document SignatureChecker routing, implications, and integration guidance
@mialbu
mialbu requested a review from merl111 May 13, 2026 15:37
@mialbu

mialbu commented May 13, 2026

Copy link
Copy Markdown
Member Author

The CI runs fail because the tests added in this pull request depend on the missing cancelAuthorization() function added in #12. Once #12 is pulled into main, merge main into test/10-signature-validation-semantics (this pull request) and only then make sure to make the CI pass.

FYI, @merl111

@mialbu mialbu linked an issue May 14, 2026 that may be closed by this pull request
@mialbu
mialbu merged commit f8925aa into main May 20, 2026
2 checks passed
@mialbu
mialbu deleted the test/10-signature-validation-semantics branch May 20, 2026 08:27
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.

XGAS-01 - EIP-7702-Sensitive Signature Semantics [Medium]

2 participants