diff --git a/src/context/NetworksContext.tsx b/src/context/NetworksContext.tsx index 10c49f5..ec311e6 100644 --- a/src/context/NetworksContext.tsx +++ b/src/context/NetworksContext.tsx @@ -1,8 +1,9 @@ import React, { createContext, useContext, useEffect, useState } from 'react'; import { NetworksDataState } from '../types'; -import { retrieveNetworksData, storeNetworkData } from '../utils/accounts'; +import { retrieveNetworksData } from '../utils/accounts'; import { DEFAULT_NETWORKS, EIP155 } from '../utils/constants'; +import { setInternetCredentials } from '../utils/key-store'; const NetworksContext = createContext<{ networksData: NetworksDataState[]; @@ -27,28 +28,38 @@ const useNetworks = () => { return networksContext; }; +const DEFAULT_NETWORKS_DATA = DEFAULT_NETWORKS.map((defaultNetwork, index) => ( + { + ...defaultNetwork, + networkId: index.toString() + }) +); + const NetworksProvider = ({ children }: { children: React.ReactNode }) => { - const [networksData, setNetworksData] = useState([]); + const [networksData, setNetworksData] = useState(DEFAULT_NETWORKS_DATA); const [networkType, setNetworkType] = useState(EIP155); const [selectedNetwork, setSelectedNetwork] = useState(); useEffect(() => { const fetchData = async () => { - const retrievedNetworks = await retrieveNetworksData(); + let retrievedNetworks = await retrieveNetworksData(); + if (retrievedNetworks.length === 0) { - for (const defaultNetwork of DEFAULT_NETWORKS) { - await storeNetworkData(defaultNetwork); - } + setInternetCredentials( + 'networks', + '_', + JSON.stringify(DEFAULT_NETWORKS_DATA), + ); + + retrievedNetworks = DEFAULT_NETWORKS_DATA; } - const retrievedNewNetworks = await retrieveNetworksData(); - setNetworksData(retrievedNewNetworks); - setSelectedNetwork(retrievedNewNetworks[0]); + + setNetworksData(retrievedNetworks); + setSelectedNetwork(retrievedNetworks[0]); }; - if (networksData.length === 0) { - fetchData(); - } - }, [networksData]); + fetchData(); + }, []); useEffect(() => { setSelectedNetwork(prevSelectedNetwork => { diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 8269e8e..8d03e44 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -1,9 +1,11 @@ import { COSMOS_TESTNET_CHAINS } from './wallet-connect/COSMOSData'; import { EIP155_CHAINS } from './wallet-connect/EIP155Data'; +import { NetworksFormData } from '../types'; export const EIP155 = 'eip155'; export const COSMOS = 'cosmos'; -export const DEFAULT_NETWORKS = [ + +export const DEFAULT_NETWORKS: NetworksFormData[] = [ { chainId: 'laconic-testnet-2', networkName: 'laconicd testnet-2', diff --git a/stack/stack-orchestrator/stack/laconic-wallet-web/README.md b/stack/stack-orchestrator/stack/laconic-wallet-web/README.md index cb340d3..6e0567c 100644 --- a/stack/stack-orchestrator/stack/laconic-wallet-web/README.md +++ b/stack/stack-orchestrator/stack/laconic-wallet-web/README.md @@ -66,7 +66,7 @@ Instructions for running the `laconic-wallet-web` using [laconic-so](https://git # Deploy app URL used for checking origin of the messages for auto-sign-in route # Deploy app repo: https://git.vdb.to/cerc-io/snowballtools-base - REACT_APP_DEPLOY_APP_URL= + CERC_DEPLOY_APP_URL= ``` ## Start the deployment