fix: tracked tokens' balances are read through the RPC endpoint (closes #669)
refreshBalances() now reads the balance of every token tracked on the active network, at every address, with balanceOf through the same provider as the ETH balance, at the scale the screens read that token at. Blockscout's answer adds only the tokens the user has not tracked, admitted as before. A failed balanceOf keeps that token's previous row and is logged; while Blockscout fails, the untracked rows from before stay. A tracked token's row carries no decimals or holder count from the explorer. The browser test for a hostile symbol now untracks the stub token first, because a tracked token is listed under the symbol it was added with. Model: opus-5-5
This commit is contained in:
@@ -3480,6 +3480,24 @@ function hostileSymbolState(page, tokenAddress) {
|
||||
}
|
||||
|
||||
test("a token whose symbol() returns markup renders as text (#307)", async (env) => {
|
||||
// The stub token is no longer tracked from here on, so the explorer is
|
||||
// what lists it, as it lists a token airdropped to the victim. A tracked
|
||||
// token is listed from the RPC endpoint under the symbol it was added
|
||||
// with, which the hostile symbol below never reaches
|
||||
// (https://git.eeqj.de/sneak/AutistMask/issues/669).
|
||||
await env.page.click("#btn-settings");
|
||||
await visible(env.page, "#view-settings");
|
||||
await env.page.click("#settings-tracked-tokens .btn-remove-token");
|
||||
// The list is drawn again once the removal is saved.
|
||||
await env.page.waitForFunction(
|
||||
() =>
|
||||
document
|
||||
.getElementById("settings-tracked-tokens")
|
||||
.innerText.trim() === "None",
|
||||
);
|
||||
await env.page.click("#btn-settings-back");
|
||||
await visible(env.page, "#view-address");
|
||||
|
||||
env.routeOpts.ethBalanceWei = toHexWei(FUNDED_ETH_WEI);
|
||||
env.routeOpts.seedTokenBalance = true;
|
||||
env.routeOpts.tokenSymbolOverride = HOSTILE_SYMBOL;
|
||||
|
||||
Reference in New Issue
Block a user