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);