From be206aa66a20366b9198cb52061867d7b698b83c Mon Sep 17 00:00:00 2001 From: Thibaut Bremand Date: Fri, 19 Jan 2024 19:35:39 +0100 Subject: [PATCH] Fix custom network management --- packages/constants/src/network/network.constant.ts | 1 + .../organisms/TransactionDetails/TransactionDetails.tsx | 9 ++++++++- .../src/contexts/NetworkContext/NetworkContext.tsx | 6 +++--- packages/extension/src/utils/network.ts | 3 ++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/constants/src/network/network.constant.ts b/packages/constants/src/network/network.constant.ts index 70b9d10bd..61d351669 100644 --- a/packages/constants/src/network/network.constant.ts +++ b/packages/constants/src/network/network.constant.ts @@ -34,6 +34,7 @@ export const FAUCET_XAHAU_TESTNET = 'https://xahau-test.net/accounts'; export interface NetworkNode { chain: Chain; name: Network; + customNetworkName?: string; server: string; nodes?: string[]; description: string; diff --git a/packages/extension/src/components/organisms/TransactionDetails/TransactionDetails.tsx b/packages/extension/src/components/organisms/TransactionDetails/TransactionDetails.tsx index b11e87e8d..11b303f1e 100644 --- a/packages/extension/src/components/organisms/TransactionDetails/TransactionDetails.tsx +++ b/packages/extension/src/components/organisms/TransactionDetails/TransactionDetails.tsx @@ -34,7 +34,14 @@ export const TransactionDetails: FC = ({ const mainToken = useMainToken(); const currentNetwork = useMemo(() => { - return getNetwork(chainName, networkName as Network); + try { + return getNetwork(chainName, networkName as Network); + } catch (error) { + return { + ...getNetwork(chainName, 'Custom' as Network), + customNetworkName: networkName as string + }; + } }, [chainName, networkName]); const expectedNetwork = useMemo(() => { diff --git a/packages/extension/src/contexts/NetworkContext/NetworkContext.tsx b/packages/extension/src/contexts/NetworkContext/NetworkContext.tsx index 4f414ffdd..ff16d15df 100644 --- a/packages/extension/src/contexts/NetworkContext/NetworkContext.tsx +++ b/packages/extension/src/contexts/NetworkContext/NetworkContext.tsx @@ -68,7 +68,7 @@ const NetworkProvider: FC = ({ children }) => { const connectToNetwork = async () => { const network = loadNetwork(); - setNetworkName(network.name); + setNetworkName(network.customNetworkName ?? network.name); if (chainName !== network.chain) { setChainName(network.chain); } @@ -132,7 +132,7 @@ const NetworkProvider: FC = ({ children }) => { try { const loadedNetwork = loadNetwork(); const ws = await connectToLedger(loadedNetwork.server); - setNetworkName(loadedNetwork.name); + setNetworkName(loadedNetwork.customNetworkName ?? loadedNetwork.name); setClient(ws); setIsConnectionFailed(false); } catch (err) { @@ -214,7 +214,7 @@ const NetworkProvider: FC = ({ children }) => { try { await removeNetwork(); const network = await loadNetwork(); - setNetworkName(network.name); + setNetworkName(network.customNetworkName ?? network.name); } catch (err) { Sentry.captureException(err); } diff --git a/packages/extension/src/utils/network.ts b/packages/extension/src/utils/network.ts index 11de6ae6b..761e3c4ad 100644 --- a/packages/extension/src/utils/network.ts +++ b/packages/extension/src/utils/network.ts @@ -89,7 +89,8 @@ export const loadNetwork = () => { if ('chain' in parsedData && 'name' in parsedData && 'server' in parsedData) { return { chain: parsedData.chain, - name: parsedData.name, + name: 'Custom' as Network, + customNetworkName: parsedData.name, server: parsedData.server, description: 'Custom network' };