docs: the sentences the rewrite reviews left as follow-up notes (closes #723) #745

Merged
clawbot merged 1 commits from issue-723-docs-follow-up into next 2026-11-03 13:06:18 +01:00
2 changed files with 63 additions and 34 deletions
+30 -13
View File
@@ -89,9 +89,13 @@ Load it:
2. Turn on "Developer mode". 2. Turn on "Developer mode".
3. Click "Load unpacked". 3. Click "Load unpacked".
4. Pick `dist/chrome/`. 4. Pick `dist/chrome/`.
- Firefox: open `about:debugging#/runtime/this-firefox`, click "Load Temporary - Firefox:
Add-on" and pick `dist/firefox/manifest.json`. A temporary add-on is unloaded 1. Open `about:debugging#/runtime/this-firefox`.
when Firefox exits. Read Installing on Firefox below before relying on it. 2. Click "Load Temporary Add-on".
3. Pick `dist/firefox/manifest.json`.
A temporary add-on is unloaded when Firefox exits. Read Installing on Firefox
below before relying on it.
The user guide, [`docs/README.md`](docs/README.md), explains how to use the The user guide, [`docs/README.md`](docs/README.md), explains how to use the
wallet. The release procedure is in [`docs/RELEASE.md`](docs/RELEASE.md). wallet. The release procedure is in [`docs/RELEASE.md`](docs/RELEASE.md).
@@ -375,12 +379,18 @@ Three rules follow from the worker being stopped:
worker stopping. Such a connection ends when the browser closes, when the worker stopping. Such a connection ends when the browser closes, when the
active address changes, or when the site is removed in Settings. active address changes, or when the site is removed in Settings.
Two things live only in the worker's memory and are lost when it stops: pending These things live only in the worker's memory and are lost when it stops:
approvals and the record of broadcast nonces. An approval, and the site's
request waiting on it, exist nowhere else. So while any approval is pending, the - pending approvals;
worker calls `runtime.getPlatformInfo()` every 20 seconds. Chrome counts that - the record of broadcast nonces;
call as activity and keeps the worker running. The timer stops itself once - the timer that keeps the worker running while an approval is pending;
nothing is pending. - the record of the one open transaction approval;
- the job that sets up the alarms at every start, while it runs.
An approval, and the site's request waiting on it, exist nowhere else. So while
any approval is pending, the worker calls `runtime.getPlatformInfo()` every 20
seconds. Chrome counts that call as activity and keeps the worker running. The
timer stops itself once nothing is pending.
Alarms the code no longer handles are listed in `OBSOLETE_ALARMS` and cleared on Alarms the code no longer handles are listed in `OBSOLETE_ALARMS` and cleared on
every start. The worker fetches nothing when it starts. every start. The worker fetches nothing when it starts.
@@ -903,7 +913,8 @@ not change. A flash message refuses:
- a token already tracked; - a token already tracked;
- an address on the scam list; - an address on the scam list;
- a contract that fails the lookup. - a contract that fails the lookup;
- a token that fakes a known symbol.
A network switch before the lookup answers adds nothing, and a flash message A network switch before the lookup answers adds nothing, and a flash message
says so. says so.
@@ -1224,8 +1235,12 @@ holds for a new address, and for every address after a network switch. While it
is `null`: is `null`:
- the balance lists show "quantity unknown"; - the balance lists show "quantity unknown";
- Home's ETH balance reads `unknown (ETH)`; - Home's ETH balance reads `unknown (ETH)` on mainnet and `unknown (SepoliaETH)`
- Send reads `Current balance: unknown (ETH)`, and "Max" fills in nothing; on Sepolia;
- with ETH selected, Send reads `Current balance: unknown (ETH)` on mainnet and
`Current balance: unknown (SepoliaETH)` on Sepolia;
- with ETH selected, "Max" fills in nothing and shows the flash message "This
token's balance is unknown.";
- "Send" is not refused for a zero balance; - "Send" is not refused for a zero balance;
- the address has no total; - the address has no total;
- DeleteAddress shows its warning. - DeleteAddress shows its warning.
@@ -1725,7 +1740,9 @@ The `Makefile` targets are thin shims over `script/`:
- `script/bootstrap`: install the dependencies. Node and yarn come from the - `script/bootstrap`: install the dependencies. Node and yarn come from the
system when present. Otherwise node comes from a pinned nvm install and yarn system when present. Otherwise node comes from a pinned nvm install and yarn
from corepack. Fails when node cannot find a package named in `package.json`. from corepack. When corepack and nvm are both missing, yarn comes from
`npm install -g`. Fails when node cannot find a package named in
`package.json`.
- `script/setup`: `script/bootstrap`, then the git pre-commit hook. - `script/setup`: `script/bootstrap`, then the git pre-commit hook.
- `script/test`: build the `test` stage of the `Dockerfile` with `--no-cache`. - `script/test`: build the `test` stage of the `Dockerfile` with `--no-cache`.
The stage runs the jest suite, stopped at 90 seconds and rerun verbose on The stage runs the jest suite, stopped at 90 seconds and rerun verbose on
+33 -21
View File
@@ -60,7 +60,8 @@ settings.
- "Check recipients on Etherscan". Etherscan is a block explorer website. With - "Check recipients on Etherscan". Etherscan is a block explorer website. With
the setting on, the wallet fetches the recipient's Etherscan page each time the setting on, the wallet fetches the recipient's Etherscan page each time
you review a send. The wallet warns when Etherscan labels the address as you review a send. The wallet warns when Etherscan labels the address as
phishing, scam, exploiter or wallet drainer. Only the recipient's address is phishing, scam, exploiter or wallet drainer. A wallet drainer is a contract
that empties a wallet once given permission. Only the recipient's address is
sent. The Etherscan server cannot be changed. sent. The Etherscan server cannot be changed.
Each time a site's request opens a window, the wallet checks the site against a Each time a site's request opens a window, the wallet checks the site against a
@@ -211,10 +212,18 @@ allowed or denied for it.
Getting the address back is not easy. "+" computes only addresses that this Getting the address back is not easy. "+" computes only addresses that this
wallet has never listed. The removed address was listed once, so "+" skips it. wallet has never listed. The removed address was listed once, so "+" skips it.
The way back is to delete the whole wallet and import its backup again. After The way back is to delete the whole wallet and import its backup again. The
the import, the scan lists the address again if it holds ETH or has sent a import lists the wallet's first address, then scans for used addresses. An
transaction. Otherwise "+" may reach it again, because the new wallet has never address is used when it holds ETH or has sent a transaction. A read that fails
listed it. during the scan counts the address as unused. The scan stops after five unused
addresses in a row. When the scan finds two or more used addresses, the wallet
lists those instead. The wallet does not list the removed address when:
- the scan finds two or more used addresses, and the address is not among them;
- the scan finds fewer than two, and the address is not the first.
When the wallet does not list the address, "+" may reach it again, because the
new wallet has never listed it.
### Deleting a wallet ### Deleting a wallet
@@ -245,9 +254,11 @@ else is treated as spam and hidden. Turning "Use Blockscout" off removes every
untracked token from the lists at once. untracked token from the lists at once.
The balance list and the send screen hide a token that carries a well-known The balance list and the send screen hide a token that carries a well-known
symbol, `ETH` included, but comes from another contract. A token that fakes a symbol but comes from another contract. `ETH` and `SepoliaETH` are well-known
known symbol cannot be tracked ("Not added: this token fakes a known symbol."), symbols on every network. The symbols of the built-in list are well-known on
and is never listed at zero. See Scam protection. Ethereum Mainnet only. A token that fakes a known symbol cannot be tracked ("Not
added: this token fakes a known symbol."), and is never listed at zero. See Scam
protection.
### Tracking a token ### Tracking a token
@@ -263,8 +274,9 @@ From Settings, under Tracked Tokens, click "+ Add token". That screen offers the
top 10 tokens as buttons, the top 100 in a dropdown, and a contract address top 10 tokens as buttons, the top 100 in a dropdown, and a contract address
field. The two lists are offered on Ethereum Mainnet only. field. The two lists are offered on Ethereum Mainnet only.
A line for the new token reads `quantity unknown` until a refresh has read its While "Show tracked tokens with zero balance" is on, a line for the new token
balance. reads `quantity unknown` until a refresh has read its balance. With that setting
off, the token has no line until a refresh has read its balance.
A token is tracked on the network that it was added on. Settings lists the A token is tracked on the network that it was added on. Settings lists the
tracked tokens of the active network, each with an `[x]` button that stops tracked tokens of the active network, each with an `[x]` button that stops
@@ -274,7 +286,8 @@ The wallet refuses to track:
- a token that is already tracked; - a token that is already tracked;
- an address on its scam list; - an address on its scam list;
- a contract that does not answer as an ERC-20 token. - a contract that does not answer as an ERC-20 token;
- a token that fakes a known symbol.
### The token screen ### The token screen
@@ -602,11 +615,11 @@ Blockscout reports no holder count for a token, the history and the send screen
still show it. While "Use Blockscout" is off, no holder count is known. still show it. While "Use Blockscout" is off, no holder count is known.
Fraud contracts. When the wallet detects a fake token transfer, it adds the Fraud contracts. When the wallet detects a fake token transfer, it adds the
token's contract to a list that it keeps. While "Hide transactions from detected token's contract to a list. A network switch empties the list. While "Hide
fraud contracts" is on, the history hides transfers from the contracts on that transactions from detected fraud contracts" is on, the history hides transfers
list. The send screen never offers those tokens. Turning "Hide fake tokens from the contracts on that list. The send screen never offers those tokens.
impersonating a known symbol" off also stops new contracts being added to the Turning "Hide fake tokens impersonating a known symbol" off also stops new
list. contracts being added to the list.
Dust transactions. Scammers send tiny amounts of ETH from an address that Dust transactions. Scammers send tiny amounts of ETH from an address that
resembles one you have dealt with, so that the similar address lands in your resembles one you have dealt with, so that the similar address lands in your
@@ -616,11 +629,10 @@ threshold starts at 100,000 gwei, which is 0.0001 ETH. A threshold of 0 hides
nothing. nothing.
Known scam addresses. The wallet ships a list of addresses known for fraud, Known scam addresses. The wallet ships a list of addresses known for fraud,
including phishing addresses and wallet drainers. A wallet drainer is a contract including phishing addresses and wallet drainers. Sending to a listed address
that empties a wallet once given permission. Sending to a listed address raises raises a warning on the confirmation screen, and a listed address cannot be
a warning on the confirmation screen, and a listed address cannot be tracked as tracked as a token. The list holds only addresses involved in fraud; it is not a
a token. The list holds only addresses involved in fraud; it is not a sanctions sanctions list.
list.
Addresses and hashes are shown in full, because address poisoning relies on Addresses and hashes are shown in full, because address poisoning relies on
shortened ones. The only shortened address is the label of a token with no known shortened ones. The only shortened address is the label of a token with no known