Set default network data on app start
This commit is contained in:
@@ -1,8 +1,9 @@
|
|||||||
import React, { createContext, useContext, useEffect, useState } from 'react';
|
import React, { createContext, useContext, useEffect, useState } from 'react';
|
||||||
|
|
||||||
import { NetworksDataState } from '../types';
|
import { NetworksDataState } from '../types';
|
||||||
import { retrieveNetworksData, storeNetworkData } from '../utils/accounts';
|
import { retrieveNetworksData } from '../utils/accounts';
|
||||||
import { DEFAULT_NETWORKS, EIP155 } from '../utils/constants';
|
import { DEFAULT_NETWORKS, EIP155 } from '../utils/constants';
|
||||||
|
import { setInternetCredentials } from '../utils/key-store';
|
||||||
|
|
||||||
const NetworksContext = createContext<{
|
const NetworksContext = createContext<{
|
||||||
networksData: NetworksDataState[];
|
networksData: NetworksDataState[];
|
||||||
@@ -27,22 +28,34 @@ const useNetworks = () => {
|
|||||||
return networksContext;
|
return networksContext;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const DEFAULT_NETWORKS_DATA = DEFAULT_NETWORKS.map((defaultNetwork, index) => (
|
||||||
|
{
|
||||||
|
...defaultNetwork,
|
||||||
|
networkId: index.toString()
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
const NetworksProvider = ({ children }: { children: React.ReactNode }) => {
|
const NetworksProvider = ({ children }: { children: React.ReactNode }) => {
|
||||||
const [networksData, setNetworksData] = useState<NetworksDataState[]>([]);
|
const [networksData, setNetworksData] = useState<NetworksDataState[]>(DEFAULT_NETWORKS_DATA);
|
||||||
const [networkType, setNetworkType] = useState<string>(EIP155);
|
const [networkType, setNetworkType] = useState<string>(EIP155);
|
||||||
const [selectedNetwork, setSelectedNetwork] = useState<NetworksDataState>();
|
const [selectedNetwork, setSelectedNetwork] = useState<NetworksDataState>();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
const retrievedNetworks = await retrieveNetworksData();
|
let retrievedNetworks = await retrieveNetworksData();
|
||||||
|
|
||||||
if (retrievedNetworks.length === 0) {
|
if (retrievedNetworks.length === 0) {
|
||||||
for (const defaultNetwork of DEFAULT_NETWORKS) {
|
setInternetCredentials(
|
||||||
await storeNetworkData(defaultNetwork);
|
'networks',
|
||||||
}
|
'_',
|
||||||
|
JSON.stringify(DEFAULT_NETWORKS_DATA),
|
||||||
|
);
|
||||||
|
|
||||||
|
retrievedNetworks = DEFAULT_NETWORKS_DATA;
|
||||||
}
|
}
|
||||||
const retrievedNewNetworks = await retrieveNetworksData();
|
|
||||||
setNetworksData(retrievedNewNetworks);
|
setNetworksData(retrievedNetworks);
|
||||||
setSelectedNetwork(retrievedNewNetworks[0]);
|
setSelectedNetwork(retrievedNetworks[0]);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (networksData.length === 0) {
|
if (networksData.length === 0) {
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
import { COSMOS_TESTNET_CHAINS } from './wallet-connect/COSMOSData';
|
import { COSMOS_TESTNET_CHAINS } from './wallet-connect/COSMOSData';
|
||||||
import { EIP155_CHAINS } from './wallet-connect/EIP155Data';
|
import { EIP155_CHAINS } from './wallet-connect/EIP155Data';
|
||||||
|
import { NetworksFormData } from '../types';
|
||||||
|
|
||||||
export const EIP155 = 'eip155';
|
export const EIP155 = 'eip155';
|
||||||
export const COSMOS = 'cosmos';
|
export const COSMOS = 'cosmos';
|
||||||
export const DEFAULT_NETWORKS = [
|
|
||||||
|
export const DEFAULT_NETWORKS: NetworksFormData[] = [
|
||||||
{
|
{
|
||||||
chainId: 'laconic-testnet-2',
|
chainId: 'laconic-testnet-2',
|
||||||
networkName: 'laconicd testnet-2',
|
networkName: 'laconicd testnet-2',
|
||||||
|
|||||||
Reference in New Issue
Block a user