From 2f8174cce3d22d722b656134ded93e10552de112 Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Tue, 10 Feb 2026 16:46:30 +0530 Subject: [PATCH 1/2] Use RPC URL from external app if the network already exists --- src/hooks/useCreateNetwork.ts | 7 ++++++- src/utils/accounts.ts | 32 +++++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/hooks/useCreateNetwork.ts b/src/hooks/useCreateNetwork.ts index e86a67e..223e375 100644 --- a/src/hooks/useCreateNetwork.ts +++ b/src/hooks/useCreateNetwork.ts @@ -1,6 +1,6 @@ import { useEffect, useCallback } from "react"; -import { addNewNetwork, createWallet, checkNetworkForChainID, isWalletCreated } from "../utils/accounts"; +import { addNewNetwork, createWallet, checkNetworkForChainID, isWalletCreated, updateNetworkRpcUrl } from "../utils/accounts"; import { useNetworks } from "../context/NetworksContext"; import { NETWORK_ADDED_RESPONSE, NETWORK_ADD_FAILED_RESPONSE, NETWORK_ALREADY_EXISTS_RESPONSE, REQUEST_ADD_NETWORK } from "../utils/constants"; import { NetworksFormData } from "../types"; @@ -52,6 +52,11 @@ const useCreateNetwork = () => { chainId }, sourceOrigin); } else { + console.log("Network already exists. Updating RPC URL"); + + const retrievedNetworksData = await updateNetworkRpcUrl(chainId, networkData.rpcUrl); + setNetworksData(retrievedNetworksData); + sendMessage(window.parent, NETWORK_ALREADY_EXISTS_RESPONSE, { type: NETWORK_ALREADY_EXISTS_RESPONSE, chainId diff --git a/src/utils/accounts.ts b/src/utils/accounts.ts index 380922f..9d5c016 100644 --- a/src/utils/accounts.ts +++ b/src/utils/accounts.ts @@ -459,6 +459,35 @@ const checkNetworkForChainID = async ( return networksData.some((network) => network.chainId === chainId); } +const updateNetworkRpcUrl = async ( + chainId: string, + rpcUrl: string, +): Promise => { + const networks = await getInternetCredentials('networks'); + + if (!networks) { + throw new Error('Networks not found'); + } + + const networksData: NetworksDataState[] = JSON.parse(networks); + + const networkIndex = networksData.findIndex((network) => network.chainId === chainId); + + if (networkIndex === -1) { + throw new Error('Network not found'); + } + + networksData[networkIndex].rpcUrl = rpcUrl; + + await setInternetCredentials( + 'networks', + '_', + JSON.stringify(networksData), + ); + + return networksData; +} + const isWalletCreated = async ( ): Promise => { const mnemonicServer = await getInternetCredentials("mnemonicServer"); @@ -483,5 +512,6 @@ export { getCosmosAccountByHDPath, addNewNetwork, checkNetworkForChainID, - isWalletCreated + isWalletCreated, + updateNetworkRpcUrl }; -- 2.45.2 From cc455cfec71e333be7eba47ef3f0fd4b043a2830 Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Tue, 17 Feb 2026 15:58:54 +0530 Subject: [PATCH 2/2] Update package version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 53cc380..e88f07d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "web-wallet", - "version": "0.1.7-zenith-0.2.3", + "version": "0.1.7-zenith-0.2.4", "private": true, "dependencies": { "@laconic-network/cosmjs-util": "^0.1.0", -- 2.45.2