fix: suppress USD display on testnet networks (#142)
All checks were successful
check / check (push) Successful in 24s
All checks were successful
check / check (push) Successful in 24s
## Summary Fixes USD prices still showing on the main view when connected to a testnet (e.g. Sepolia). The root cause was stale mainnet prices lingering in the in-memory price cache after switching networks. ### Root Cause PR #137 correctly made `refreshPrices()` skip fetching on testnets, but the cached prices from a prior mainnet session remained in the `prices` object. All display functions (`getPrice()`, `getAddressValueUsd()`, etc.) used whatever was cached without checking which network was active. ### Changes - **`src/shared/prices.js`** - `refreshPrices()` now clears the price cache when on a testnet instead of silently returning - New `clearPrices()` function empties the cache and resets the fetch timestamp - `getPrice()` returns null on testnets (defense-in-depth) - `getAddressValueUsd()`, `getWalletValueUsd()`, `getTotalValueUsd()` return null on testnets - **`src/popup/views/settings.js`** - Network switcher immediately clears prices when switching to a testnet, so the UI updates without waiting for the next refresh cycle closes #139 Co-authored-by: clawbot <clawbot@noreply.git.eeqj.de> Reviewed-on: #142 Co-authored-by: clawbot <clawbot@noreply.example.org> Co-committed-by: clawbot <clawbot@noreply.example.org>
This commit was merged in pull request #142.
This commit is contained in:
@@ -2,6 +2,7 @@ const { $, showView, showFlash, escapeHtml } = require("./helpers");
|
||||
const { applyTheme } = require("../theme");
|
||||
const { state, saveState, currentNetwork } = require("../../shared/state");
|
||||
const { NETWORKS, SUPPORTED_CHAIN_IDS } = require("../../shared/networks");
|
||||
const { onChainSwitch } = require("../../shared/chainSwitch");
|
||||
const { log, debugFetch } = require("../../shared/log");
|
||||
const deleteWallet = require("./deleteWallet");
|
||||
|
||||
@@ -220,14 +221,9 @@ function init(ctx) {
|
||||
if (networkSelect) {
|
||||
networkSelect.addEventListener("change", async () => {
|
||||
const newId = networkSelect.value;
|
||||
const net = NETWORKS[newId];
|
||||
if (!net) return;
|
||||
state.networkId = newId;
|
||||
state.rpcUrl = net.defaultRpcUrl;
|
||||
state.blockscoutUrl = net.defaultBlockscoutUrl;
|
||||
const net = await onChainSwitch(newId);
|
||||
$("settings-rpc").value = state.rpcUrl;
|
||||
$("settings-blockscout").value = state.blockscoutUrl;
|
||||
await saveState();
|
||||
showFlash("Switched to " + net.name + ".");
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user