Remove configured networks on reset (#105)

This commit is contained in:
shreerang6921 2024-04-19 11:34:19 +05:30 committed by Nabarun Gogoi
parent cd03fb6e84
commit 1172e67f5f
3 changed files with 29 additions and 14 deletions

View File

@ -26,7 +26,7 @@ const SelectNetworkType = ({
<Text
style={{
fontWeight: 'bold',
marginBottom: 10,
marginVertical: 10,
}}>
Select Network Type
</Text>

View File

@ -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 = () => {
<Text style={styles.LoadingText}>Loading...</Text>
<ActivityIndicator size="large" color="#0000ff" />
</View>
) : isWalletCreated ? (
) : isWalletCreated && selectedNetwork ? (
<>
<NetworkDropdown updateNetwork={updateNetwork} />
<View style={styles.accountComponent}>

View File

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