fix: a tracked token reads quantity unknown at an address no refresh has read (closes #720)
check / check (push) Waiting to run
e2e / e2e-chrome (push) Waiting to run
e2e / e2e-firefox (push) Waiting to run

A new address, a new wallet and a network switch each leave tracked tokens
with no balance entry, so their lines read 0.0000 before any refresh had read
them.

Each of these now sets `balanceNotFetched` on the tracked tokens, and a refresh
already clears it. Their lines read `quantity unknown` until then. Addresses
that the wallet scan finds get the same. A refresh that did not read every
address the page now holds leaves the field set.

Model: opus-5-5
This commit was merged in pull request #735.
This commit is contained in:
2026-11-03 08:39:40 +01:00
parent f79390cad5
commit 4531e8bce5
13 changed files with 392 additions and 26 deletions
+17 -8
View File
@@ -1200,14 +1200,23 @@ The token's symbol comes from the same places. The bundled list answers for a
token on Ethereum Mainnet only. When none of them answers, the amount reads
`5000000000 base units (decimals unknown)`, and nothing is formatted with
guessed decimals. A holding whose decimals are unknown shows "quantity unknown"
in the balance lists. A token just added shows "quantity unknown" in place of a
zero, until a refresh has read its balance at every address. Only a whole number
from 0 to 80 counts as a token's decimals. A token's `decimals` is stored only
as a source reported it, never guessed. A `null` balance means the decimals are
unknown, never that the balance is zero. While "Use Blockscout" is off, the
bundled list and the tracked tokens may lack a token's symbol or decimals. The
approval and status screens then add a line under that token saying that
Blockscout's report is not used.
in the balance lists.
A tracked token with no stored balance at an address can show "quantity unknown"
there in place of a zero. It does so after each of these:
- the token is added;
- an address or a wallet is added;
- the network is switched.
This lasts until a refresh has read the token's balance at every address.
Only a whole number from 0 to 80 counts as a token's decimals. A token's
`decimals` is stored only as a source reported it, never guessed. A `null`
balance means the decimals are unknown, never that the balance is zero. While
"Use Blockscout" is off, the bundled list and the tracked tokens may lack a
token's symbol or decimals. The approval and status screens then add a line
under that token saying that Blockscout's report is not used.
The wallet's own ERC-20 send is encoded with the decimals the screen showed. At
signing time the contract's `decimals()` is read only to be compared with those.