From 318835f397cb39787fa8926b12e9938ab840be1f Mon Sep 17 00:00:00 2001 From: clawbot <35+clawbot@noreply.example.org> Date: Mon, 19 Oct 2026 15:33:23 +0000 Subject: [PATCH] fix: refusing a From address the wallet does not hold moves nothing (closes #609) Sign & Send wrote its refusal of a From address the selected wallet does not hold onto the password error line, which reserves one line. The sentence runs to about three, so it pushed Sign & Send down. The refusal now has its own box above the password field, its sentence fixed in index.html, holding its space from the first paint and only made visible, as https://git.eeqj.de/sneak/AutistMask/issues/583 did for the other refusals. Drawing the screen and each press hide it again. A Chrome test writes the other wallet into the stored selection, reopens the popup onto the screen, presses Sign & Send and checks that nothing was broadcast and nothing moved. Model: opus-5-5 --- README.md | 18 ++++-- src/popup/index.html | 14 ++++- src/popup/views/confirmTx.js | 8 +-- tests/addressKey.test.js | 20 +++++- tests/e2e/run.js | 119 +++++++++++++++++++++++++++++++++++ 5 files changed, 162 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index c325f27..c388a34 100644 --- a/README.md +++ b/README.md @@ -433,7 +433,11 @@ previously correct by reading only. It also covers a send that Sign & Send refuses for its network fee: the stub node quotes an ordinary fee while the confirmation screen is drawn and one over the bound when Sign & Send asks again, and the refusal must broadcast nothing -and leave the password field and Sign & Send where they were. +and leave the password field and Sign & Send where they were. It checks the same +for a send refused because the selected wallet does not hold its From address: +with the confirmation screen showing a send from the HD wallet, the key wallet +is selected by writing it straight into extension storage, as another popup +selecting it would save it, and the popup is reopened onto that screen. It also covers both ways the wait for a sent transaction's receipt ends on the error screen: lookups that still find no receipt 60 seconds after the broadcast, @@ -1814,9 +1818,10 @@ view would leave a wallet one click from deletion. estimated, and it says the wallet does not know how many decimal places the token uses and that the transaction cannot be sent; for any other failure it asks the user to go back and try again - - Two more reserved error boxes, made visible when "Sign & Send" refuses a - send because the active network changed or because of its gas limit or fee - (see Transitions), so the refusal moves nothing + - Three more reserved error boxes, made visible when "Sign & Send" refuses a + send because the active network changed, because the selected wallet does + not hold the From address, or because of its gas limit or fee (see + Transitions), so the refusal moves nothing - Password: an inline field on this screen, not a modal, with its own error line - "Sign & Send" button (disabled if errors, while the balance is being read, @@ -1860,8 +1865,9 @@ view would leave a wallet one click from deletion. - "Sign & Send" signs as the From address above, not as whichever address is selected: the two are saved separately, so the popup can reopen onto this screen with another address selected. When the selected wallet does not - hold the From address → full-sentence error on the password error line, - nothing sent (no screen change) + hold the From address → nothing is signed; "The selected wallet does not + hold the From address above, so nothing was sent. Please go back and send + again." in its own box, no screen change - "Sign & Send" (correct password, but the From address's key is refused, see Data Model) → nothing is signed → **ErrorTx** saying why - "Back" → **Send** diff --git a/src/popup/index.html b/src/popup/index.html index 89e3fac..ba3197f 100644 --- a/src/popup/index.html +++ b/src/popup/index.html @@ -697,9 +697,10 @@ id="confirm-fee-unknown-error" class="mb-2 border border-border border-dashed p-2 text-xs invisible" > - +