fix(aegis): 0.9.1 — an unset custom RPC no longer becomes the text "undefined"
Mounting an imported TRX/ETH/SOL wallet read the optional custom RPC as String(stored || undefined), so a wallet with no override got the literal "undefined" as its server: every history and token fetch went to "undefined/v1/accounts/…" and the panel showed "undefined" under the balance. Only a real https URL overrides the network default now, and the adapter itself rejects anything that does not look like one.
This commit is contained in:
parent
8174fccba0
commit
7a71b08cf7
3 changed files with 11 additions and 3 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "aegis",
|
"id": "aegis",
|
||||||
"name": "Aegis Wallet",
|
"name": "Aegis Wallet",
|
||||||
"version": "0.9.0",
|
"version": "0.9.1",
|
||||||
"category": "plugin",
|
"category": "plugin",
|
||||||
"description": "Multi-chain wallet (BCH, BTC, TRX, ETH, SOL, SC, DGB) derived from your Theseus vault. Dapps get window.bitcoincash on .x sites; window.tronWeb / window.tronLink / window.ethereum / window.solana on any https page.",
|
"description": "Multi-chain wallet (BCH, BTC, TRX, ETH, SOL, SC, DGB) derived from your Theseus vault. Dapps get window.bitcoincash on .x sites; window.tronWeb / window.tronLink / window.ethereum / window.solana on any https page.",
|
||||||
"author": "Silent Mode",
|
"author": "Silent Mode",
|
||||||
|
|
|
||||||
|
|
@ -551,7 +551,12 @@ async function mountWallet(entry) {
|
||||||
} else if (entry.chain === "eth" || entry.chain === "trx" || entry.chain === "sol") {
|
} else if (entry.chain === "eth" || entry.chain === "trx" || entry.chain === "sol") {
|
||||||
adapter = new c.d.genericImportedAdapter.GenericImportedWallet({
|
adapter = new c.d.genericImportedAdapter.GenericImportedWallet({
|
||||||
...commonOpts, chain: entry.chain, address: entry.importedAddress,
|
...commonOpts, chain: entry.chain, address: entry.importedAddress,
|
||||||
rpcUrl: String(c.api.storage.get(`wallets/${entry.id}/rpcUrl`, "") || undefined),
|
// Only a real custom URL overrides the network default. The old
|
||||||
|
// String(x || undefined) turned an unset override into the text
|
||||||
|
// "undefined", which is truthy — so every imported TRX/ETH/SOL wallet
|
||||||
|
// without a custom RPC fetched "undefined/v1/accounts/…" and showed
|
||||||
|
// "undefined" as its server.
|
||||||
|
rpcUrl: String(c.api.storage.get(`wallets/${entry.id}/rpcUrl`, "") || "").trim() || undefined,
|
||||||
});
|
});
|
||||||
adapter.schedulePoll(20_000);
|
adapter.schedulePoll(20_000);
|
||||||
} else if (entry.chain === "sc") {
|
} else if (entry.chain === "sc") {
|
||||||
|
|
|
||||||
|
|
@ -301,7 +301,10 @@ module.exports = function makeGenericImportedAdapter() {
|
||||||
this.chain = chain;
|
this.chain = chain;
|
||||||
this.network = network;
|
this.network = network;
|
||||||
this._cfg = cfg;
|
this._cfg = cfg;
|
||||||
this._net = { ...net, rpc: rpcUrl || net.rpc };
|
// A custom RPC must look like one; anything else (empty, "undefined",
|
||||||
|
// a stray non-URL) falls back to the network default.
|
||||||
|
const customRpc = typeof rpcUrl === "string" && /^https?:\/\/\S+$/i.test(rpcUrl.trim()) ? rpcUrl.trim() : null;
|
||||||
|
this._net = { ...net, rpc: customRpc || net.rpc };
|
||||||
this.log = log;
|
this.log = log;
|
||||||
this.onChange = onChange;
|
this.onChange = onChange;
|
||||||
this._address = address;
|
this._address = address;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue