fix: consolidate chain-switching into onChainSwitch()
All checks were successful
check / check (push) Successful in 13s
All checks were successful
check / check (push) Successful in 13s
Introduces src/shared/chainSwitch.js with a single onChainSwitch() function that handles every state change required when switching networks: - Updates networkId, rpcUrl, blockscoutUrl from network config - Clears price caches (testnet tokens are worthless) - Resets lastBalanceRefresh to force immediate refresh - Clears per-address balances and token balances - Clears tokenHolderCache and fraudContracts (chain-specific) - Persists state Both callers (settings UI dropdown, background wallet_switchEthereumChain) now go through this single code path. Adding a new chain (e.g. ETC) requires only a new entry in networks.js with no per-caller wiring. Also adds defense-in-depth testnet checks in prices.js (getPrice, getAddressValueUsd, etc.) and fixes a hardcoded etherscan.io link in addressToken.js to use the network-aware explorer URL. Closes #139
This commit is contained in:
@@ -51,7 +51,7 @@ function etherscanAddressLink(address) {
|
||||
}
|
||||
|
||||
function etherscanTokenLink(tokenContract, holderAddress) {
|
||||
return `https://etherscan.io/token/${tokenContract}?a=${holderAddress}`;
|
||||
return `${currentNetwork().explorerUrl}/token/${tokenContract}?a=${holderAddress}`;
|
||||
}
|
||||
|
||||
function isoDate(timestamp) {
|
||||
@@ -168,7 +168,7 @@ function show() {
|
||||
`<a href="${addrLink}" target="_blank" rel="noopener" class="inline-flex items-center">${EXT_ICON}</a>`;
|
||||
|
||||
// USD total for this token only
|
||||
const usdVal = price ? amount * price : 0;
|
||||
const usdVal = price ? amount * price : null;
|
||||
const usdStr = formatUsd(usdVal);
|
||||
$("address-token-usd-total").innerHTML = usdStr || " ";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user