fix: add trackedTokens fallback for symbol/name/decimals resolution
All checks were successful
check / check (push) Successful in 22s
All checks were successful
check / check (push) Successful in 22s
Extends the fallback chain to: tb → state.trackedTokens → TOKEN_BY_ADDRESS → '?' This ensures user-added custom tokens (not just hardcoded known tokens) display correct symbol, name, and decimals even when Blockscout hasn't returned balance data (e.g. zero-balance tracked tokens).
This commit is contained in:
@@ -96,7 +96,14 @@ function show() {
|
|||||||
const tb = (addr.tokenBalances || []).find(
|
const tb = (addr.tokenBalances || []).find(
|
||||||
(t) => t.address.toLowerCase() === tokenId.toLowerCase(),
|
(t) => t.address.toLowerCase() === tokenId.toLowerCase(),
|
||||||
);
|
);
|
||||||
symbol = (tb && tb.symbol) || (knownToken && knownToken.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;
|
amount = tb ? parseFloat(tb.balance || "0") : 0;
|
||||||
price = getPrice(symbol);
|
price = getPrice(symbol);
|
||||||
}
|
}
|
||||||
@@ -139,15 +146,26 @@ function show() {
|
|||||||
const tb = (addr.tokenBalances || []).find(
|
const tb = (addr.tokenBalances || []).find(
|
||||||
(t) => t.address.toLowerCase() === tokenId.toLowerCase(),
|
(t) => t.address.toLowerCase() === tokenId.toLowerCase(),
|
||||||
);
|
);
|
||||||
|
const tracked = (state.trackedTokens || []).find(
|
||||||
|
(t) => t.address.toLowerCase() === tokenId.toLowerCase(),
|
||||||
|
);
|
||||||
const rawName =
|
const rawName =
|
||||||
(tb && tb.name) || (knownToken && knownToken.name) || null;
|
(tb && tb.name) ||
|
||||||
|
(tracked && tracked.name) ||
|
||||||
|
(knownToken && knownToken.name) ||
|
||||||
|
null;
|
||||||
const rawSymbol =
|
const rawSymbol =
|
||||||
(tb && tb.symbol) || (knownToken && knownToken.symbol) || null;
|
(tb && tb.symbol) ||
|
||||||
|
(tracked && tracked.symbol) ||
|
||||||
|
(knownToken && knownToken.symbol) ||
|
||||||
|
null;
|
||||||
const tokenName = rawName ? escapeHtml(rawName) : null;
|
const tokenName = rawName ? escapeHtml(rawName) : null;
|
||||||
const tokenSymbol = rawSymbol ? escapeHtml(rawSymbol) : null;
|
const tokenSymbol = rawSymbol ? escapeHtml(rawSymbol) : null;
|
||||||
const tokenDecimals =
|
const tokenDecimals =
|
||||||
tb && tb.decimals != null
|
tb && tb.decimals != null
|
||||||
? tb.decimals
|
? tb.decimals
|
||||||
|
: tracked && tracked.decimals != null
|
||||||
|
? tracked.decimals
|
||||||
: knownToken && knownToken.decimals != null
|
: knownToken && knownToken.decimals != null
|
||||||
? knownToken.decimals
|
? knownToken.decimals
|
||||||
: null;
|
: null;
|
||||||
|
|||||||
@@ -74,8 +74,14 @@ function updateSendBalance() {
|
|||||||
(t) => t.address.toLowerCase() === token.toLowerCase(),
|
(t) => t.address.toLowerCase() === token.toLowerCase(),
|
||||||
);
|
);
|
||||||
const knownToken = TOKEN_BY_ADDRESS.get(token.toLowerCase());
|
const knownToken = TOKEN_BY_ADDRESS.get(token.toLowerCase());
|
||||||
|
const tracked = (state.trackedTokens || []).find(
|
||||||
|
(t) => t.address.toLowerCase() === token.toLowerCase(),
|
||||||
|
);
|
||||||
const symbol =
|
const symbol =
|
||||||
(tb && tb.symbol) || (knownToken && knownToken.symbol) || "?";
|
(tb && tb.symbol) ||
|
||||||
|
(tracked && tracked.symbol) ||
|
||||||
|
(knownToken && knownToken.symbol) ||
|
||||||
|
"?";
|
||||||
const bal = tb ? tb.balance || "0" : "0";
|
const bal = tb ? tb.balance || "0" : "0";
|
||||||
$("send-balance").textContent =
|
$("send-balance").textContent =
|
||||||
"Current balance: " + bal + " " + symbol;
|
"Current balance: " + bal + " " + symbol;
|
||||||
@@ -127,8 +133,14 @@ function init(_ctx) {
|
|||||||
(t) => t.address.toLowerCase() === token.toLowerCase(),
|
(t) => t.address.toLowerCase() === token.toLowerCase(),
|
||||||
);
|
);
|
||||||
const knownTk = TOKEN_BY_ADDRESS.get(token.toLowerCase());
|
const knownTk = TOKEN_BY_ADDRESS.get(token.toLowerCase());
|
||||||
|
const trackedTk = (state.trackedTokens || []).find(
|
||||||
|
(t) => t.address.toLowerCase() === token.toLowerCase(),
|
||||||
|
);
|
||||||
tokenSymbol =
|
tokenSymbol =
|
||||||
(tb && tb.symbol) || (knownTk && knownTk.symbol) || "?";
|
(tb && tb.symbol) ||
|
||||||
|
(trackedTk && trackedTk.symbol) ||
|
||||||
|
(knownTk && knownTk.symbol) ||
|
||||||
|
"?";
|
||||||
tokenBalance = tb ? tb.balance || "0" : "0";
|
tokenBalance = tb ? tb.balance || "0" : "0";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user