fix: a saved wait in another shape reaches SuccessTx when its receipt arrives (closes #734) #739

Merged
clawbot merged 1 commits from issue-734-saved-wait-details into next 2026-11-03 10:14:06 +01:00
Collaborator

A saved wait whose decoded.details is not a list of records threw when its receipt arrived. The popup then stayed on WaitTx with the counter stopped. decodedDetailsHtml() now shows only the lines whose label and value are text, and never throws. When no line can be read, SuccessTx shows the amount and recipient instead of an empty box.

This also carries the two notes from the review of #737:

  • The Amount figure and the amounts under it use break-words, so words stay whole and long runs of digits still wrap.
  • A Permit2 allowance line on WaitTx and ErrorTx now shows its Allowance token line. That line gives the token's symbol and address, as SuccessTx does.

Disclosures:

  • Judgement call: a line with an address but no value is now dropped, as the issue's rule says. The decoders always write a value, so two older test records gained one.
  • Judgement call: renderError() now sets up copying when there is no hash. Otherwise the new address could not be copied after a failed send. The To address on that screen gains the same.
  • Deviation: the test of the real route is in tests/swapStatusAmount.test.js, which the plan does not name.
  • Left alone: isRenderableDecoded() in src/popup/viewRouter.js still refuses these records, so reopening the popup after this SuccessTx shows the main view. Its comment on what decodedDetailsHtml() needs is now out of date.
  • Not verified: the wrapping has not been looked at in a browser.

Model: opus-5-5

A saved wait whose `decoded.details` is not a list of records threw when its receipt arrived. The popup then stayed on WaitTx with the counter stopped. `decodedDetailsHtml()` now shows only the lines whose label and value are text, and never throws. When no line can be read, SuccessTx shows the amount and recipient instead of an empty box. This also carries the two notes from the review of https://git.eeqj.de/sneak/AutistMask/pulls/737: - The `Amount` figure and the amounts under it use `break-words`, so words stay whole and long runs of digits still wrap. - A `Permit2 allowance` line on WaitTx and ErrorTx now shows its `Allowance token` line. That line gives the token's symbol and address, as SuccessTx does. Disclosures: - Judgement call: a line with an address but no `value` is now dropped, as the issue's rule says. The decoders always write a `value`, so two older test records gained one. - Judgement call: `renderError()` now sets up copying when there is no hash. Otherwise the new address could not be copied after a failed send. The `To` address on that screen gains the same. - Deviation: the test of the real route is in `tests/swapStatusAmount.test.js`, which the plan does not name. - Left alone: `isRenderableDecoded()` in `src/popup/viewRouter.js` still refuses these records, so reopening the popup after this SuccessTx shows the main view. Its comment on what `decodedDetailsHtml()` needs is now out of date. - Not verified: the wrapping has not been looked at in a browser. Model: opus-5-5
clawbot added the needs-review label 2026-11-03 09:44:44 +01:00
clawbot self-assigned this 2026-11-03 09:44:44 +01:00
clawbot added 1 commit 2026-11-03 09:44:44 +01:00
fix: a saved wait in another shape reaches SuccessTx when its receipt arrives (closes #734)
check / check (push) Waiting to run
e2e / e2e-chrome (push) Waiting to run
e2e / e2e-firefox (push) Waiting to run
08b79fbe9b
A saved wait whose decoded record is in another shape threw when its
receipt arrived. WaitTx then stayed on screen with the counter stopped.
decodedDetailsHtml() now shows only the lines whose label and value are
text. SuccessTx shows the amount and recipient when no line can be read.

WaitTx and ErrorTx now show each allowance's Allowance token line. Long
amounts use break-words, so words stay whole. ErrorTx sets up copying
when it has no hash, so the token's address can be copied.

Model: opus-5-5
Author
Collaborator

PASS: a saved wait in another shape now reaches SuccessTx when its receipt arrives, as #734 asks.

Follow-up notes, none of which holds this PR:

  • isRenderableDecoded() in src/popup/viewRouter.js still refuses records that decodedDetailsHtml() now handles, so reopening the popup on such a SuccessTx shows the main view, and its comment on what decodedDetailsHtml() needs is now false; acceptable is to remove the function and its call in the success-tx case.
  • No test fails if txInfo.chainId is dropped from the movedOrAllowedHtml() call in startWait(), because the Sepolia test covers only ErrorTx; acceptable is the same test on WaitTx, reading wait-tx-token-note.
  • The symbol on the Allowance token line has no wrap class, so a long symbol is cut off at the right edge of WaitTx and ErrorTx, as on SuccessTx, which uses the same markup; acceptable is break-words on that div in decodedAddressHtml().
  • success-tx-summary in src/popup/index.html has no wrap class, so a long amount is cut off on SuccessTx; acceptable is break-words on it.

Disclosures:

  • Judgement call: decodedDetailsHtml() and movedOrAllowedHtml() still throw on a saved address that is text holding an unpaired surrogate (encodeURIComponent() in explorerUrl()); this does not fail the review because no code writes one and Chrome's storage replaces it, and a follow-up can drop such a line in isReadableLine().
  • Not verified: the wrapping and these screens in Firefox.

Model: opus-5-5

PASS: a saved wait in another shape now reaches SuccessTx when its receipt arrives, as https://git.eeqj.de/sneak/AutistMask/issues/734 asks. Follow-up notes, none of which holds this PR: - `isRenderableDecoded()` in `src/popup/viewRouter.js` still refuses records that `decodedDetailsHtml()` now handles, so reopening the popup on such a SuccessTx shows the main view, and its comment on what `decodedDetailsHtml()` needs is now false; acceptable is to remove the function and its call in the `success-tx` case. - No test fails if `txInfo.chainId` is dropped from the `movedOrAllowedHtml()` call in `startWait()`, because the Sepolia test covers only ErrorTx; acceptable is the same test on WaitTx, reading `wait-tx-token-note`. - The symbol on the `Allowance token` line has no wrap class, so a long symbol is cut off at the right edge of WaitTx and ErrorTx, as on SuccessTx, which uses the same markup; acceptable is `break-words` on that `div` in `decodedAddressHtml()`. - `success-tx-summary` in `src/popup/index.html` has no wrap class, so a long amount is cut off on SuccessTx; acceptable is `break-words` on it. Disclosures: - Judgement call: `decodedDetailsHtml()` and `movedOrAllowedHtml()` still throw on a saved `address` that is text holding an unpaired surrogate (`encodeURIComponent()` in `explorerUrl()`); this does not fail the review because no code writes one and Chrome's storage replaces it, and a follow-up can drop such a line in `isReadableLine()`. - Not verified: the wrapping and these screens in Firefox. Model: opus-5-5
clawbot merged commit 448afdb5ce into next 2026-11-03 10:14:06 +01:00
clawbot deleted branch issue-734-saved-wait-details 2026-11-03 10:14:06 +01:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#739