From 704a872eabb2565405dbb11fb1a8c0ad27b342c1 Mon Sep 17 00:00:00 2001 From: Nabarun Date: Mon, 16 Jun 2025 17:16:25 +0530 Subject: [PATCH] Implement hooks for adding custom network to wallet --- packages/frontend/public/network.json | 11 +++ .../create/ApproveTransactionModal.tsx | 14 ++- .../projects/create/CheckBalanceIframe.tsx | 20 ++-- .../shared/auth/AutoSignInIFrameModal.tsx | 5 +- packages/frontend/src/constants.ts | 11 +++ packages/frontend/src/hooks/useAddNetwork.ts | 92 +++++++++++++++++++ 6 files changed, 138 insertions(+), 15 deletions(-) create mode 100644 packages/frontend/public/network.json create mode 100644 packages/frontend/src/hooks/useAddNetwork.ts diff --git a/packages/frontend/public/network.json b/packages/frontend/public/network.json new file mode 100644 index 00000000..c7e2ea08 --- /dev/null +++ b/packages/frontend/public/network.json @@ -0,0 +1,11 @@ +{ + "chainId": "laconic-testnet-2", + "networkName": "laconicd testnet-2", + "namespace": "cosmos", + "rpcUrl": "https://laconicd-sapo.laconic.com", + "blockExplorerUrl": "", + "nativeDenom": "alnt", + "addressPrefix": "laconic", + "coinType": 118, + "gasPrice": 0.001 +} diff --git a/packages/frontend/src/components/projects/create/ApproveTransactionModal.tsx b/packages/frontend/src/components/projects/create/ApproveTransactionModal.tsx index 25a86fdf..1e7603fa 100644 --- a/packages/frontend/src/components/projects/create/ApproveTransactionModal.tsx +++ b/packages/frontend/src/components/projects/create/ApproveTransactionModal.tsx @@ -6,6 +6,8 @@ import { VITE_LACONICD_CHAIN_ID, VITE_WALLET_IFRAME_URL, } from 'utils/constants'; +import { REQUEST_WALLET_ACCOUNTS, WALLET_ACCOUNTS_DATA } from '../../../constants'; +import { useAddNetwork } from '../../../hooks/useAddNetwork'; const ApproveTransactionModal = ({ setAccount, @@ -16,11 +18,13 @@ const ApproveTransactionModal = ({ setIsDataReceived: (isReceived: boolean) => void; isVisible: boolean; }) => { + const { setIframe, isNetworkAvailable } = useAddNetwork(); + useEffect(() => { const handleMessage = (event: MessageEvent) => { if (event.origin !== VITE_WALLET_IFRAME_URL) return; - if (event.data.type === 'WALLET_ACCOUNTS_DATA') { + if (event.data.type === WALLET_ACCOUNTS_DATA) { setIsDataReceived(true); if (event.data.data.length === 0) { @@ -53,13 +57,17 @@ const ApproveTransactionModal = ({ iframe.contentWindow.postMessage( { - type: 'REQUEST_WALLET_ACCOUNTS', + type: REQUEST_WALLET_ACCOUNTS, chainId: VITE_LACONICD_CHAIN_ID, }, VITE_WALLET_IFRAME_URL, ); }, []); + useEffect(() => { + getDataFromWallet() + }, [isNetworkAvailable, getDataFromWallet]) + return (