fix: an unknown-scale token reads differently on Send than on the confirmation screen, and the fee error promises a retry that cannot help #377

Open
opened 2026-08-23 21:19:20 +02:00 by clawbot · 0 comments
Collaborator

Two consequences of the unknown-scale handling settled in #349, raised by its final review (#367 (comment)). Both pre-existing text or unreconciled paths rather than defects that PR introduced.

1. Two consecutive screens disagree

updateSendBalance() (src/popup/views/send.js:166) was not reconciled with the resolution that landed. For a token whose explorer decimals disagree across addresses, the Send screen shows Current balance: 5.0 NOVEL and the confirmation screen it leads directly to says unknown (NOVEL).

Each is individually defensible — the Send figure matches the balance list, which is deliberate — but a user moving between two consecutive screens sees the same holding described two ways, which is exactly what the repo's Display Consistency rule exists to prevent.

2. The fee error promises a retry that cannot work

src/popup/index.html:697 reads "The network fee could not be estimated… Please go back and try again." When the cause is a missing token scale, no amount of going back and retrying can clear it — the estimate fails for a reason the user cannot act on. Pre-existing string; it is now reachable in a state where it is actively misleading.

Not in milestone 1.0.0: both are wording and consistency, the path is fail-closed, and nothing is misstated about an amount.

Definition of done

  • The Send screen and the confirmation screen describe an unknown-scale holding the same way.
  • The fee-unknown message names the real cause when the scale is missing, and does not promise a retry that cannot help.
  • Test on the disagreement fixture (two addresses reporting different decimals for the same token), asserting both screens and the message. Fails against current head — state the mutation and observed result.
  • make check green.
Two consequences of the unknown-scale handling settled in https://git.eeqj.de/sneak/AutistMask/issues/349, raised by its final review (https://git.eeqj.de/sneak/AutistMask/pulls/367#issuecomment-69395). Both pre-existing text or unreconciled paths rather than defects that PR introduced. ## 1. Two consecutive screens disagree `updateSendBalance()` (`src/popup/views/send.js:166`) was not reconciled with the resolution that landed. For a token whose explorer `decimals` disagree across addresses, the Send screen shows `Current balance: 5.0 NOVEL` and the confirmation screen it leads directly to says `unknown (NOVEL)`. Each is individually defensible — the Send figure matches the balance list, which is deliberate — but a user moving between two consecutive screens sees the same holding described two ways, which is exactly what the repo's Display Consistency rule exists to prevent. ## 2. The fee error promises a retry that cannot work `src/popup/index.html:697` reads "The network fee could not be estimated… Please go back and try again." When the cause is a missing token scale, no amount of going back and retrying can clear it — the estimate fails for a reason the user cannot act on. Pre-existing string; it is now reachable in a state where it is actively misleading. Not in milestone 1.0.0: both are wording and consistency, the path is fail-closed, and nothing is misstated about an amount. ## Definition of done - [ ] The Send screen and the confirmation screen describe an unknown-scale holding the same way. - [ ] The fee-unknown message names the real cause when the scale is missing, and does not promise a retry that cannot help. - [ ] Test on the disagreement fixture (two addresses reporting different `decimals` for the same token), asserting both screens and the message. Fails against current head — state the mutation and observed result. - [ ] `make check` green.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#377