From 1172e67f5fd93209e38c48bf7d982c2f6a5cd3c8 Mon Sep 17 00:00:00 2001 From: shreerang6921 <68148922+shreerang6921@users.noreply.github.com> Date: Fri, 19 Apr 2024 11:34:19 +0530 Subject: [PATCH] Remove configured networks on reset (#105) --- src/components/SelectNetworkType.tsx | 2 +- src/screens/HomeScreen.tsx | 24 +++++++++++++++++++----- src/utils/accounts.ts | 17 +++++++++-------- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/components/SelectNetworkType.tsx b/src/components/SelectNetworkType.tsx index 32234c7..e26558f 100644 --- a/src/components/SelectNetworkType.tsx +++ b/src/components/SelectNetworkType.tsx @@ -26,7 +26,7 @@ const SelectNetworkType = ({ Select Network Type diff --git a/src/screens/HomeScreen.tsx b/src/screens/HomeScreen.tsx index 453e29b..91df6bc 100644 --- a/src/screens/HomeScreen.tsx +++ b/src/screens/HomeScreen.tsx @@ -32,7 +32,8 @@ const HomeScreen = () => { const { accounts, setAccounts, currentIndex, setCurrentIndex } = useAccounts(); - const { networksData, selectedNetwork, setSelectedNetwork } = useNetworks(); + const { networksData, selectedNetwork, setSelectedNetwork, setNetworksData } = + useNetworks(); const { setActiveSessions } = useWalletConnect(); const navigation = @@ -86,15 +87,21 @@ const HomeScreen = () => { fetchAccounts(); setWalletDialog(true); setPhrase(mnemonic); + setSelectedNetwork(networksData[0]); } }; - const confirmResetWallet = async () => { - await resetWallet(); + const confirmResetWallet = useCallback(async () => { + const updatedNetworks = networksData.filter( + networkData => networkData.isDefault, + ); + setNetworksData(updatedNetworks); + setSelectedNetwork(undefined); setIsWalletCreated(false); setIsWalletCreating(false); setAccounts([]); setCurrentIndex(0); + await resetWallet(updatedNetworks); const sessions = web3wallet!.getActiveSessions(); Object.keys(sessions).forEach(async sessionId => { @@ -106,7 +113,14 @@ const HomeScreen = () => { setActiveSessions({}); hideResetDialog(); - }; + }, [ + networksData, + setAccounts, + setActiveSessions, + setCurrentIndex, + setNetworksData, + setSelectedNetwork, + ]); const updateNetwork = (networkData: NetworksDataState) => { setSelectedNetwork(networkData); @@ -128,7 +142,7 @@ const HomeScreen = () => { Loading... - ) : isWalletCreated ? ( + ) : isWalletCreated && selectedNetwork ? ( <> diff --git a/src/utils/accounts.ts b/src/utils/accounts.ts index 0eff299..e46cca0 100644 --- a/src/utils/accounts.ts +++ b/src/utils/accounts.ts @@ -186,13 +186,13 @@ const retrieveAccounts = async ( `accountIndices/${currentNetworkData.namespace}:${currentNetworkData.chainId}`, ); const accountIndices = accountIndicesServer && accountIndicesServer.password; - - const loadedAccounts = accountIndices - ? await retrieveAccountsForNetwork( - `${currentNetworkData.namespace}:${currentNetworkData.chainId}`, - accountIndices, - ) - : undefined; + const loadedAccounts = + accountIndices !== false + ? await retrieveAccountsForNetwork( + `${currentNetworkData.namespace}:${currentNetworkData.chainId}`, + accountIndices, + ) + : undefined; return loadedAccounts; }; @@ -225,12 +225,13 @@ const retrieveSingleAccount = async ( return loadedAccounts.find(account => account.address === address); }; -const resetWallet = async () => { +const resetWallet = async (networks: NetworksDataState[]) => { try { await Promise.all([ resetInternetCredentials('mnemonicServer'), resetKeyServers(EIP155), resetKeyServers(COSMOS), + setInternetCredentials('networks', '_', JSON.stringify(networks)), ]); } catch (error) { console.error('Error resetting wallet:', error);