forked from cerc-io/laconic-wallet
Remove configured networks on reset (#105)
This commit is contained in:
parent
cd03fb6e84
commit
1172e67f5f
@ -26,7 +26,7 @@ const SelectNetworkType = ({
|
||||
<Text
|
||||
style={{
|
||||
fontWeight: 'bold',
|
||||
marginBottom: 10,
|
||||
marginVertical: 10,
|
||||
}}>
|
||||
Select Network Type
|
||||
</Text>
|
||||
|
@ -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}>
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user