Refactor method to add accounts for network
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import { useEffect, useCallback } from "react";
|
||||
|
||||
import { addAccountsForNetwork, addNewNetwork, createWallet, getNextAccountId, isChainIdPresent, isWalletCreated } from "../utils/accounts";
|
||||
import { addNewNetwork, createWallet, checkNetworkForChainID, isWalletCreated } from "../utils/accounts";
|
||||
import { useNetworks } from "../context/NetworksContext";
|
||||
import { NETWORK_ADD_FAILED, NETWORK_ADDED_SUCCESSFULLY, NETWORK_ALREADY_EXISTS, REQUEST_ADD_NETWORK } from "../utils/constants";
|
||||
import { NETWORK_ADDED_RESPONSE, NETWORK_ADD_FAILED_RESPONSE, NETWORK_ALREADY_EXISTS_RESPONSE, REQUEST_ADD_NETWORK } from "../utils/constants";
|
||||
import { NetworksFormData } from "../types";
|
||||
import { sendMessage } from "../utils/misc";
|
||||
|
||||
@@ -25,14 +25,14 @@ const useCreateNetwork = () => {
|
||||
await createWallet(networksData);
|
||||
}
|
||||
|
||||
const isNetworkPresent = await isChainIdPresent(chainId);
|
||||
const isNetworkPresent = await checkNetworkForChainID(chainId);
|
||||
|
||||
if (!isNetworkPresent) {
|
||||
if (chainId !== networkData.chainId) {
|
||||
console.log("Network data not available.");
|
||||
if (sourceOrigin) {
|
||||
sendMessage(window.parent, NETWORK_ADD_FAILED, {
|
||||
type: NETWORK_ADD_FAILED,
|
||||
sendMessage(window.parent, NETWORK_ADD_FAILED_RESPONSE, {
|
||||
type: NETWORK_ADD_FAILED_RESPONSE,
|
||||
message: "Invalid or missing network data"
|
||||
}, sourceOrigin);
|
||||
}
|
||||
@@ -50,7 +50,7 @@ const useCreateNetwork = () => {
|
||||
addressPrefix: networkData.addressPrefix || "",
|
||||
coinType: networkData.coinType || "",
|
||||
nativeDenom: networkData.nativeDenom || "",
|
||||
gasPrice: networkData.gasPrice || String(import.meta.env.REACT_APP_DEFAULT_GAS_PRICE || ""),
|
||||
gasPrice: networkData.gasPrice || String(import.meta.env.REACT_APP_DEFAULT_GAS_PRICE),
|
||||
currencySymbol: networkData.currencySymbol || "",
|
||||
isDefault: false,
|
||||
};
|
||||
@@ -58,31 +58,20 @@ const useCreateNetwork = () => {
|
||||
const retrievedNetworksData = await addNewNetwork(resolvedNetworkData);
|
||||
setNetworksData(retrievedNetworksData);
|
||||
|
||||
// Get number of accounts in first network
|
||||
const nextAccountId = await getNextAccountId(
|
||||
`${retrievedNetworksData[0].namespace}:${retrievedNetworksData[0].chainId}`,
|
||||
);
|
||||
|
||||
const selectedNetwork = retrievedNetworksData.find(
|
||||
(network) => network.chainId === chainId,
|
||||
);
|
||||
|
||||
await addAccountsForNetwork(selectedNetwork!, nextAccountId - 1);
|
||||
|
||||
sendMessage(window.parent, NETWORK_ADDED_SUCCESSFULLY, {
|
||||
type: NETWORK_ADDED_SUCCESSFULLY,
|
||||
sendMessage(window.parent, NETWORK_ADDED_RESPONSE, {
|
||||
type: NETWORK_ADDED_RESPONSE,
|
||||
chainId
|
||||
}, sourceOrigin);
|
||||
} else {
|
||||
sendMessage(window.parent, NETWORK_ALREADY_EXISTS, {
|
||||
type: NETWORK_ALREADY_EXISTS,
|
||||
sendMessage(window.parent, NETWORK_ALREADY_EXISTS_RESPONSE, {
|
||||
type: NETWORK_ALREADY_EXISTS_RESPONSE,
|
||||
chainId
|
||||
}, sourceOrigin);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error in getOrCreateNetwork:", error);
|
||||
sendMessage(window.parent, NETWORK_ADD_FAILED, {
|
||||
type: NETWORK_ADD_FAILED,
|
||||
sendMessage(window.parent, NETWORK_ADD_FAILED_RESPONSE, {
|
||||
type: NETWORK_ADD_FAILED_RESPONSE,
|
||||
message: error instanceof Error ? error.message : "Unknown error"
|
||||
}, sourceOrigin);
|
||||
}
|
||||
@@ -91,7 +80,7 @@ const useCreateNetwork = () => {
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
const handleCreateAccounts = async (event: MessageEvent) => {
|
||||
const handleCreateNetwork = async (event: MessageEvent) => {
|
||||
if (event.data.type !== REQUEST_ADD_NETWORK) return;
|
||||
|
||||
if (!REACT_APP_ALLOWED_URLS) {
|
||||
@@ -111,9 +100,9 @@ const useCreateNetwork = () => {
|
||||
await getOrCreateNetwork(chainId, networkData, event.origin);
|
||||
};
|
||||
|
||||
window.addEventListener("message", handleCreateAccounts);
|
||||
window.addEventListener("message", handleCreateNetwork);
|
||||
return () => {
|
||||
window.removeEventListener("message", handleCreateAccounts);
|
||||
window.removeEventListener("message", handleCreateNetwork);
|
||||
};
|
||||
}, [getOrCreateNetwork]);
|
||||
};
|
||||
|
||||
@@ -13,7 +13,7 @@ import { LoadingButton } from "@mui/lab";
|
||||
|
||||
import { StackParamsList } from "../types";
|
||||
import { SelectNetworkType } from "../components/SelectNetworkType";
|
||||
import { addAccountsForNetwork, addNewNetwork, getNextAccountId } from "../utils/accounts";
|
||||
import { addNewNetwork } from "../utils/accounts";
|
||||
import { useNetworks } from "../context/NetworksContext";
|
||||
import {
|
||||
EIP155,
|
||||
@@ -139,17 +139,6 @@ const AddNetwork = () => {
|
||||
|
||||
setNetworksData(retrievedNetworksData);
|
||||
|
||||
// Get number of accounts in first network
|
||||
const nextAccountId = await getNextAccountId(
|
||||
`${retrievedNetworksData[0].namespace}:${retrievedNetworksData[0].chainId}`,
|
||||
);
|
||||
|
||||
const selectedNetwork = retrievedNetworksData.find(
|
||||
(network) => network.chainId === newNetworkData.chainId,
|
||||
);
|
||||
|
||||
await addAccountsForNetwork(selectedNetwork!, nextAccountId - 1);
|
||||
|
||||
navigation.navigate("Home");
|
||||
},
|
||||
[navigation, namespace, setNetworksData],
|
||||
|
||||
+17
-6
@@ -196,7 +196,7 @@ const addNewNetwork = async (
|
||||
}
|
||||
|
||||
const accountInfo = `${hdPath},${node.privateKey},${node.publicKey},${address}`;
|
||||
|
||||
|
||||
await Promise.all([
|
||||
setInternetCredentials(
|
||||
`accounts/${newNetworkData.namespace}:${newNetworkData.chainId}/0`,
|
||||
@@ -214,9 +214,20 @@ const addNewNetwork = async (
|
||||
"0",
|
||||
),
|
||||
]);
|
||||
|
||||
|
||||
const retrievedNetworksData = await storeNetworkData(newNetworkData);
|
||||
|
||||
// Get number of accounts in first network
|
||||
const nextAccountId = await getNextAccountId(
|
||||
`${retrievedNetworksData[0].namespace}:${retrievedNetworksData[0].chainId}`,
|
||||
);
|
||||
|
||||
const selectedNetwork = retrievedNetworksData.find(
|
||||
(network) => network.chainId === newNetworkData.chainId,
|
||||
);
|
||||
|
||||
await addAccountsForNetwork(selectedNetwork!, nextAccountId - 1);
|
||||
|
||||
return retrievedNetworksData;
|
||||
}
|
||||
|
||||
@@ -253,7 +264,7 @@ const storeNetworkData = async (
|
||||
const retrieveNetworksData = async (): Promise<NetworksDataState[]> => {
|
||||
const networks = await getInternetCredentials('networks');
|
||||
|
||||
if(!networks){
|
||||
if (!networks) {
|
||||
return [];
|
||||
}
|
||||
|
||||
@@ -434,12 +445,12 @@ const getCosmosAccountByHDPath = async (
|
||||
return { cosmosWallet, data };
|
||||
};
|
||||
|
||||
const isChainIdPresent = async (
|
||||
const checkNetworkForChainID = async (
|
||||
chainId: string,
|
||||
): Promise<boolean> => {
|
||||
const networks = await getInternetCredentials('networks');
|
||||
|
||||
if(!networks){
|
||||
if (!networks) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -471,6 +482,6 @@ export {
|
||||
updateAccountCounter,
|
||||
getCosmosAccountByHDPath,
|
||||
addNewNetwork,
|
||||
isChainIdPresent,
|
||||
checkNetworkForChainID,
|
||||
isWalletCreated
|
||||
};
|
||||
|
||||
@@ -110,6 +110,6 @@ export const ACCOUNT_PK_RESPONSE = 'ACCOUNT_PK_RESPONSE';
|
||||
export const ADD_ACCOUNT_RESPONSE = 'ADD_ACCOUNT_RESPONSE';
|
||||
export const WALLET_ACCOUNTS_DATA = 'WALLET_ACCOUNTS_DATA';
|
||||
export const IS_SUFFICIENT = 'IS_SUFFICIENT';
|
||||
export const NETWORK_ADD_FAILED = "NETWORK_ADD_FAILED";
|
||||
export const NETWORK_ADDED_SUCCESSFULLY = "NETWORK_ADDED_SUCCESSFULLY";
|
||||
export const NETWORK_ALREADY_EXISTS = "NETWORK_ALREADY_EXISTS";
|
||||
export const NETWORK_ADDED_RESPONSE = "NETWORK_ADDED_RESPONSE";
|
||||
export const NETWORK_ALREADY_EXISTS_RESPONSE = "NETWORK_ALREADY_EXISTS_RESPONSE";
|
||||
export const NETWORK_ADD_FAILED_RESPONSE = "NETWORK_ADD_FAILED_RESPONSE";
|
||||
|
||||
Reference in New Issue
Block a user