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. The entry takes its holder count and decimals from Blockscout's entry for the token in the same refresh, or keeps them from before while Blockscout fails. A failed balanceOf keeps the token's previous entry, or takes Blockscout's entry when there is none, and is logged. Blockscout's answer still adds the tokens the user has not tracked, as before. 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 was merged in pull request #670.
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