diff --git a/src/popup/views/addressToken.js b/src/popup/views/addressToken.js index 211f144..21d9310 100644 --- a/src/popup/views/addressToken.js +++ b/src/popup/views/addressToken.js @@ -87,6 +87,7 @@ function show() { // Determine token symbol and balance let symbol, amount, price; + const knownToken = TOKEN_BY_ADDRESS.get(tokenId.toLowerCase()); if (tokenId === "ETH") { symbol = "ETH"; amount = parseFloat(addr.balance || "0"); @@ -95,7 +96,14 @@ function show() { const tb = (addr.tokenBalances || []).find( (t) => t.address.toLowerCase() === tokenId.toLowerCase(), ); - symbol = tb ? tb.symbol : "?"; + const tracked = (state.trackedTokens || []).find( + (t) => t.address.toLowerCase() === tokenId.toLowerCase(), + ); + symbol = + (tb && tb.symbol) || + (tracked && tracked.symbol) || + (knownToken && knownToken.symbol) || + "?"; amount = tb ? parseFloat(tb.balance || "0") : 0; price = getPrice(symbol); } @@ -138,13 +146,32 @@ function show() { const tb = (addr.tokenBalances || []).find( (t) => t.address.toLowerCase() === tokenId.toLowerCase(), ); - const tokenName = tb && tb.name ? escapeHtml(tb.name) : null; - const tokenSymbol = tb && tb.symbol ? escapeHtml(tb.symbol) : null; - const tokenDecimals = tb && tb.decimals != null ? tb.decimals : null; + const tracked = (state.trackedTokens || []).find( + (t) => t.address.toLowerCase() === tokenId.toLowerCase(), + ); + const rawName = + (tb && tb.name) || + (tracked && tracked.name) || + (knownToken && knownToken.name) || + null; + const rawSymbol = + (tb && tb.symbol) || + (tracked && tracked.symbol) || + (knownToken && knownToken.symbol) || + null; + const tokenName = rawName ? escapeHtml(rawName) : null; + const tokenSymbol = rawSymbol ? escapeHtml(rawSymbol) : null; + const tokenDecimals = + tb && tb.decimals != null + ? tb.decimals + : tracked && tracked.decimals != null + ? tracked.decimals + : knownToken && knownToken.decimals != null + ? knownToken.decimals + : null; const tokenHolders = tb && tb.holders != null ? tb.holders : null; const dot = addressDotHtml(tokenId); const tokenLink = `https://etherscan.io/token/${escapeHtml(tokenId)}`; - const knownToken = TOKEN_BY_ADDRESS.get(tokenId.toLowerCase()); const projectUrl = knownToken && knownToken.url ? knownToken.url : null; let infoHtml = `