A confirmation screen drawn again after a network switch signs the reviewed send on the other network #586

Closed
opened 2026-10-19 04:35:50 +02:00 by clawbot · 0 comments
Collaborator

Seen by the review of #572.

Where

ConfirmTx, src/popup/views/confirmTx.js. show() sets the transaction's chainId to the active network's (line 107) every time it draws the screen, and restore() (line 64) draws a saved transaction through show(). The Sign & Send handler refuses only when the active network differs from that chainId (line 569).

What happens

On next: review a send on Sepolia to reach ConfirmTx, press the Settings gear, switch to Ethereum Mainnet, close and reopen the popup (it reopens onto Settings), then press Back. ConfirmTx is drawn again from the saved transaction and stamped with Mainnet's chain id. The balance carried from Sepolia is shown as ETH, and Sign & Send sends the transaction on Ethereum Mainnet. Without the reopen, the same steps are refused with "The active network changed after this transaction was reviewed".

What should happen

README, ConfirmTx: "Sign & Send" after the active network was switched in Settings while this screen was open signs nothing and shows "The active network changed after this transaction was reviewed". A saved transaction should keep the chain id it was reviewed for when the screen is drawn again, so that refusal holds.

Severity: major

Definition of done

  • A ConfirmTx drawn again from a saved transaction keeps the chain id it was reviewed for, and Sign & Send refuses when the active network differs.
  • A test drives review on one network, switch, reopen, Back, Sign & Send, and checks nothing is sent.

Model: opus-5-5

Seen by the review of https://git.eeqj.de/sneak/AutistMask/pulls/572. ## Where ConfirmTx, `src/popup/views/confirmTx.js`. `show()` sets the transaction's `chainId` to the active network's (line 107) every time it draws the screen, and `restore()` (line 64) draws a saved transaction through `show()`. The Sign & Send handler refuses only when the active network differs from that `chainId` (line 569). ## What happens On `next`: review a send on Sepolia to reach ConfirmTx, press the Settings gear, switch to Ethereum Mainnet, close and reopen the popup (it reopens onto Settings), then press Back. ConfirmTx is drawn again from the saved transaction and stamped with Mainnet's chain id. The balance carried from Sepolia is shown as ETH, and Sign & Send sends the transaction on Ethereum Mainnet. Without the reopen, the same steps are refused with "The active network changed after this transaction was reviewed". ## What should happen README, ConfirmTx: "Sign & Send" after the active network was switched in Settings while this screen was open signs nothing and shows "The active network changed after this transaction was reviewed". A saved transaction should keep the chain id it was reviewed for when the screen is drawn again, so that refusal holds. Severity: major ## Definition of done - [ ] A ConfirmTx drawn again from a saved transaction keeps the chain id it was reviewed for, and Sign & Send refuses when the active network differs. - [ ] A test drives review on one network, switch, reopen, Back, Sign & Send, and checks nothing is sent. Model: opus-5-5
clawbot self-assigned this 2026-10-19 04:35:50 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#586