Commit 9d7c607
authored
fix: use decodeAuthorizationSignature util from transaction-controller (#29717)
## **Description**
Replace local EIP-7702 authorization signature decoding with the
`decodeAuthorizationSignature` util from
`@metamask/transaction-controller` (added in
[core#8656](MetaMask/core#8656)). The util
produces RLP-canonical hex (no leading zero nibbles, `0x0` for zero),
which the Sentinel relay and public RPCs require. The local copies
under-canonicalised: `delegation.ts` did nothing,
`delegation-7702-publish.ts` only stripped a single leading zero.
## **Changelog**
CHANGELOG entry: Fixed an issue where EIP-7702 authorization signatures
with leading zero bytes in `r` or `s` could be rejected by relays and
public RPCs.
## **Related issues**
Fixes:
[CONF-1133](https://consensyssoftware.atlassian.net/browse/CONF-1133)
<!--
## **Manual testing steps**
## **Screenshots/Recordings**
### **Before**
### **After**
-->
## **Pre-merge author checklist**
- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.
## **Pre-merge reviewer checklist**
- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
[CONF-1133]:
https://consensyssoftware.atlassian.net/browse/CONF-1133?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Medium Risk**
> Touches EIP-7702 authorization encoding used for relay/RPC submission;
small change but in a transaction-critical path and could affect
signature validity if the upstream util behavior differs.
>
> **Overview**
> Replaces two local EIP-7702 authorization signature parsing
implementations with `decodeAuthorizationSignature` from
`@metamask/transaction-controller`.
>
> This removes custom `r`/`s`/`yParity` slicing/normalization (and
related helpers/imports) so authorization lists use the shared,
canonical decoding expected by relays and public RPCs.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
8202337. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->1 parent 1c7df7f commit 9d7c607
2 files changed
Lines changed: 6 additions & 31 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
22 | | - | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
271 | 272 | | |
272 | 273 | | |
273 | 274 | | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | | - | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
41 | | - | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| |||
433 | 433 | | |
434 | 434 | | |
435 | 435 | | |
436 | | - | |
| 436 | + | |
437 | 437 | | |
438 | 438 | | |
439 | 439 | | |
| |||
458 | 458 | | |
459 | 459 | | |
460 | 460 | | |
461 | | - | |
462 | | - | |
463 | | - | |
464 | | - | |
465 | | - | |
466 | | - | |
467 | | - | |
468 | | - | |
469 | | - | |
470 | | - | |
471 | | - | |
472 | | - | |
473 | | - | |
474 | 461 | | |
475 | 462 | | |
476 | 463 | | |
| |||
0 commit comments