Settings, then "+ Add token" (SettingsAddToken). The "Top tokens" buttons and the "top 100" list in src/popup/views/settingsAddToken.js (lines 46 and 107) add a token from the bundled list, which holds mainnet contracts, whatever network is active, with no lookup on that network. state.trackedTokens is one list for both networks, and a network switch (src/shared/chainSwitchFields.js) leaves it as it is.
What happens
On next (8e52528), release build, Chrome, with Sepolia active: press "USDC" under Top tokens. The flash says "Added USDC" and the mainnet contract 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, which is not a token on Sepolia, becomes a tracked token. Home then lists USDC 0.0000 under every Sepolia address. The other way round, a token added by contract address on Sepolia is listed under every mainnet address after switching, with its Sepolia address and a mainnet Etherscan link.
What should happen
A contract address names a token on one network only. README, SettingsAddToken: a failed contract lookup is refused with a flash message. A token should be tracked, offered and listed only on the network it was added on, and the bundled mainnet tokens should not be offered as quick picks on Sepolia.
Severity: minor
Definition of done
Tracked tokens are kept per network; switching shows only the active network's tracked tokens.
On Sepolia, SettingsAddToken offers no bundled mainnet token, and adding by contract address still works.
Model: opus-5-5
## Where
Settings, then "+ Add token" (SettingsAddToken). The "Top tokens" buttons and the "top 100" list in `src/popup/views/settingsAddToken.js` (lines 46 and 107) add a token from the bundled list, which holds mainnet contracts, whatever network is active, with no lookup on that network. `state.trackedTokens` is one list for both networks, and a network switch (`src/shared/chainSwitchFields.js`) leaves it as it is.
## What happens
On `next` (8e52528), release build, Chrome, with Sepolia active: press "USDC" under Top tokens. The flash says "Added USDC" and the mainnet contract `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`, which is not a token on Sepolia, becomes a tracked token. Home then lists `USDC 0.0000` under every Sepolia address. The other way round, a token added by contract address on Sepolia is listed under every mainnet address after switching, with its Sepolia address and a mainnet Etherscan link.
## What should happen
A contract address names a token on one network only. README, SettingsAddToken: a failed contract lookup is refused with a flash message. A token should be tracked, offered and listed only on the network it was added on, and the bundled mainnet tokens should not be offered as quick picks on Sepolia.
Severity: minor
## Definition of done
- [ ] Tracked tokens are kept per network; switching shows only the active network's tracked tokens.
- [ ] On Sepolia, SettingsAddToken offers no bundled mainnet token, and adding by contract address still works.
Model: opus-5-5
clawbot
self-assigned this 2026-10-14 04:48:37 +02:00
Plan: state.trackedTokens stays the active network's list, so none of its readers change. A network switch (applyChainSwitchFields() in src/shared/chainSwitchFields.js) puts the outgoing list away under the outgoing network and brings back the incoming network's list, or an empty one, the same way it already keeps endpoints per network. The remembered lists are saved with the rest of the state (src/shared/persistedState.js). SettingsAddToken shows the Top tokens buttons and the top-100 list only on Ethereum Mainnet, because the bundled list holds mainnet contracts; adding by contract address works on both networks. Any other screen that offers the bundled list as picks follows the same rule. README's SettingsAddToken and network-switch text is updated to match.
Model: opus-5-5
Plan: `state.trackedTokens` stays the active network's list, so none of its readers change. A network switch (`applyChainSwitchFields()` in `src/shared/chainSwitchFields.js`) puts the outgoing list away under the outgoing network and brings back the incoming network's list, or an empty one, the same way it already keeps endpoints per network. The remembered lists are saved with the rest of the state (`src/shared/persistedState.js`). SettingsAddToken shows the Top tokens buttons and the top-100 list only on Ethereum Mainnet, because the bundled list holds mainnet contracts; adding by contract address works on both networks. Any other screen that offers the bundled list as picks follows the same rule. README's SettingsAddToken and network-switch text is updated to match.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Where
Settings, then "+ Add token" (SettingsAddToken). The "Top tokens" buttons and the "top 100" list in
src/popup/views/settingsAddToken.js(lines 46 and 107) add a token from the bundled list, which holds mainnet contracts, whatever network is active, with no lookup on that network.state.trackedTokensis one list for both networks, and a network switch (src/shared/chainSwitchFields.js) leaves it as it is.What happens
On
next(8e52528), release build, Chrome, with Sepolia active: press "USDC" under Top tokens. The flash says "Added USDC" and the mainnet contract0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, which is not a token on Sepolia, becomes a tracked token. Home then listsUSDC 0.0000under every Sepolia address. The other way round, a token added by contract address on Sepolia is listed under every mainnet address after switching, with its Sepolia address and a mainnet Etherscan link.What should happen
A contract address names a token on one network only. README, SettingsAddToken: a failed contract lookup is refused with a flash message. A token should be tracked, offered and listed only on the network it was added on, and the bundled mainnet tokens should not be offered as quick picks on Sepolia.
Severity: minor
Definition of done
Model: opus-5-5
Plan:
state.trackedTokensstays the active network's list, so none of its readers change. A network switch (applyChainSwitchFields()insrc/shared/chainSwitchFields.js) puts the outgoing list away under the outgoing network and brings back the incoming network's list, or an empty one, the same way it already keeps endpoints per network. The remembered lists are saved with the rest of the state (src/shared/persistedState.js). SettingsAddToken shows the Top tokens buttons and the top-100 list only on Ethereum Mainnet, because the bundled list holds mainnet contracts; adding by contract address works on both networks. Any other screen that offers the bundled list as picks follows the same rule. README's SettingsAddToken and network-switch text is updated to match.Model: opus-5-5