From 374abd8a732175ee572dc8898651f7799d9f4107 Mon Sep 17 00:00:00 2001 From: "Justin R. Evans" Date: Wed, 7 Feb 2024 10:39:08 -0500 Subject: [PATCH] fix: update chain should also wrap query in try/catch --- apps/extension/src/background/chains/service.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/extension/src/background/chains/service.ts b/apps/extension/src/background/chains/service.ts index ee385b4b7c..d83710f32f 100644 --- a/apps/extension/src/background/chains/service.ts +++ b/apps/extension/src/background/chains/service.ts @@ -31,7 +31,7 @@ export class ChainsService { const nativeToken = await query.query_native_token(); defaultChain.currency.address = nativeToken || tokenAddress; } catch (e) { - console.warn(`Chain is not reachable: ${e}`); + console.warn(`Chain is unreachable: ${e}`); } } @@ -46,15 +46,17 @@ export class ChainsService { if (!chain) { throw new Error("No chain found!"); } - let { - currency: { address }, - } = chain; + + // If query fails, leave address undefined so it will be caught when chain is available + let address: string | undefined; // Attempt to fetch native token, fallback to env - if (!address) { + try { const query = new Query(chain.rpc); const nativeToken = await query.query_native_token(); address = nativeToken || tokenAddress; + } catch (e) { + console.warn(`Chain is unreachable: ${e}`); } await this.chainsStore.set(CHAINS_KEY, {