x402
x402 copied to clipboard
fix: Use bytes signature for smart wallet EIP-3009 transfers
The facilitator's settle function was calling parseSignature() on all signatures, which failed for smart wallets with:
Error: expected valid s: 1 <= n < 115792089237316195423570985008687907852837564279074904382605163141518161494337, got 0
Solution
Use the bytes signature overload of transferWithAuthorization instead of the (v, r, s) overload for smart wallets.
Checklist
- [x] I have formatted and linted my code
- [x] All new and existing tests pass
- [x] My commits are signed (required for merge) -- you may need to rebase if you initially pushed unsigned commits
✅ Heimdall Review Status
| Requirement | Status | More Info | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Reviews |
✅
1/1
|
Denominator calculation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
| Project | Deployment | Preview | Comments | Updated (UTC) |
|---|---|---|---|---|
| x402 | Preview | Comment | Dec 4, 2025 7:35pm |
Review Error for carsonroscoe-cb @ 2025-12-03 23:35:48 UTC
User failed mfa authentication, either user does not exist or public email is not set on your github profile. \ see go/mfa-help