fix: Sign & Send refuses a transfer reviewed on another network (closes #524)
check / check (push) Successful in 6m46s
e2e / e2e-chrome (push) Successful in 6m42s
e2e / e2e-firefox (push) Successful in 3m16s

Settings is reachable from the confirmation screen, and Back from it only
unhides the screen as it was drawn. Sign & Send took the network at the
click, so a transfer reviewed on Sepolia went out on mainnet after a switch
in between. show() now records the chain id of the network it draws for.
Sign & Send refuses with a message on the screen when the active network
differs, and the send carries that chain id, so ethers will not populate it
for a provider on any other network.

Model: opus-5-5
This commit is contained in:
2026-10-14 06:49:16 +00:00
parent 83f3549d37
commit 447eb2e70c
3 changed files with 286 additions and 5 deletions
+6
View File
@@ -1641,6 +1641,12 @@ view would leave a wallet one click from deletion.
the contract's own answer is read at signing time only to be compared with
it, and a disagreement is a refusal rather than a preference for either
value (`src/shared/transferAmount.js`)
- "Sign & Send" after the active network was switched in Settings while this
screen was open → nothing is signed; "The active network changed after
this transaction was reviewed, so it was not sent. Please go back and
review it again." in the errors box, no screen change. The transaction
carries the chain id of the network the screen was shown for, so it cannot
be signed for another
- "Sign & Send" (wrong password) → "Wrong password." on the password error
line, no screen change
- "Back" → **Send**