After adding a token from an address, the address screen shows its balance as 0.0000 until reopened #516

Closed
opened 2026-10-14 04:39:29 +02:00 by clawbot · 2 comments
Collaborator

Where

AddToken, reached from "+ Token" on AddressDetail. src/popup/views/addToken.js (lines 63-70) starts ctx.doRefreshAndRender() without waiting for it and immediately re-renders AddressDetail. The refresh in src/popup/index.js (doRefreshAndRender(), lines 65-94) then re-renders only the Home wallet list, never the screen the user is on.

What happens

On next (8e52528), release build, Chrome, local chain with chain id 11155111: on an address holding 1,000,000 of a token, add that token by contract address. AddressDetail comes back listing the token as 0.0000. It still reads 0.0000 after the next refreshes, while Home already shows 1000000.0000 for the same address. Only leaving AddressDetail and opening it again shows the real balance.

What should happen

README, AddToken: "Add" re-renders AddressDetail so the new token is listed. A holding the wallet has not fetched yet should not be stated as zero; README's balance rules say an amount that is really there is never printed as 0.0000. The screen should show the fetched balance once the refresh it started returns.

Severity: minor

Definition of done

  • After adding a token from AddressDetail, the screen shows the token's fetched balance without being reopened.
  • Until the balance is fetched, the new token's line does not read 0.0000.

Model: opus-5-5

## Where AddToken, reached from "+ Token" on AddressDetail. `src/popup/views/addToken.js` (lines 63-70) starts `ctx.doRefreshAndRender()` without waiting for it and immediately re-renders AddressDetail. The refresh in `src/popup/index.js` (`doRefreshAndRender()`, lines 65-94) then re-renders only the Home wallet list, never the screen the user is on. ## What happens On `next` (8e52528), release build, Chrome, local chain with chain id 11155111: on an address holding 1,000,000 of a token, add that token by contract address. AddressDetail comes back listing the token as `0.0000`. It still reads `0.0000` after the next refreshes, while Home already shows `1000000.0000` for the same address. Only leaving AddressDetail and opening it again shows the real balance. ## What should happen README, AddToken: "Add" re-renders AddressDetail so the new token is listed. A holding the wallet has not fetched yet should not be stated as zero; README's balance rules say an amount that is really there is never printed as `0.0000`. The screen should show the fetched balance once the refresh it started returns. Severity: minor ## Definition of done - [ ] After adding a token from AddressDetail, the screen shows the token's fetched balance without being reopened. - [ ] Until the balance is fetched, the new token's line does not read `0.0000`. Model: opus-5-5
clawbot self-assigned this 2026-10-14 04:39:29 +02:00
Author
Collaborator

Plan: one PR to next. When a balance refresh returns and is written (doRefreshAndRender() in src/popup/index.js), it draws again the screen the user is on if that screen shows balances (AddressDetail, AddressToken, as well as the wallet list on Home), not only the wallet list. On AddressDetail a tracked token whose balance has not been fetched yet reads as not yet known, the way README's balance rules word an unknown balance, never 0.0000. Jest tests: add a token from AddressDetail, the line is not 0.0000 before the refresh returns and shows the fetched balance after, without reopening; each failing on next.

Model: opus-5-5

Plan: one PR to `next`. When a balance refresh returns and is written (`doRefreshAndRender()` in `src/popup/index.js`), it draws again the screen the user is on if that screen shows balances (AddressDetail, AddressToken, as well as the wallet list on Home), not only the wallet list. On AddressDetail a tracked token whose balance has not been fetched yet reads as not yet known, the way README's balance rules word an unknown balance, never `0.0000`. Jest tests: add a token from AddressDetail, the line is not `0.0000` before the refresh returns and shows the fetched balance after, without reopening; each failing on `next`. Model: opus-5-5
Author
Collaborator

Built in #664: a refresh that returns now draws the balances on AddressDetail and AddressToken again, and a token just added on AddToken reads quantity unknown until a refresh that tracked it has fetched every address. A token added by contract address on SettingsAddToken is not covered.

Model: opus-5-5

Built in https://git.eeqj.de/sneak/AutistMask/pulls/664: a refresh that returns now draws the balances on AddressDetail and AddressToken again, and a token just added on AddToken reads `quantity unknown` until a refresh that tracked it has fetched every address. A token added by contract address on SettingsAddToken is not covered. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#516