From 08af9ba20d331dbc3fb0971b4a1a4e1d399718ab Mon Sep 17 00:00:00 2001 From: pranavjadhav007 Date: Wed, 4 Jun 2025 14:12:41 +0530 Subject: [PATCH] Add nym chain in the network --- src/global.d.ts | 2 +- src/hooks/useWebViewHandler.ts | 3 ++- src/screens/ApproveTransfer.tsx | 26 +++++++++++++++++++++++--- src/types.ts | 1 + src/utils/constants.ts | 12 ++++++++++++ 5 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/global.d.ts b/src/global.d.ts index c4ef4a9..f082ff1 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -29,7 +29,7 @@ declare global { receiveSignRequestFromAndroid?: (message: string) => void; // Handles incoming transfer requests from Android - receiveTransferRequestFromAndroid?: (to: string, amount: string, namespace: String, chainId: string) => void; + receiveTransferRequestFromAndroid?: (to: string, amount: string, namespace: String, chainId: string, memo: string) => void; } } diff --git a/src/hooks/useWebViewHandler.ts b/src/hooks/useWebViewHandler.ts index 50d873b..d3f5dfb 100644 --- a/src/hooks/useWebViewHandler.ts +++ b/src/hooks/useWebViewHandler.ts @@ -75,7 +75,7 @@ export const useWebViewHandler = () => { }, [selectedNetwork, accounts, currentIndex, navigation]); // Handle incoming transfer requests - const navigateToTransfer = useCallback(async (to: string, amount: string, namespace: String, chainId: string) => { + const navigateToTransfer = useCallback(async (to: string, amount: string, namespace: String, chainId: string, memo: string) => { const chainSpecs = { namespace, chainId, @@ -117,6 +117,7 @@ export const useWebViewHandler = () => { data: '' }, accountInfo: chainAccount, + memo: memo }, }, ], diff --git a/src/screens/ApproveTransfer.tsx b/src/screens/ApproveTransfer.tsx index 763a7a1..9e60053 100644 --- a/src/screens/ApproveTransfer.tsx +++ b/src/screens/ApproveTransfer.tsx @@ -61,6 +61,8 @@ const ApproveTransfer = ({ route }: ApproveTransferProps) => { const requestEvent = route.params.requestEvent; const chainId = requestEvent?.params.chainId || route.params.chainId; const requestMethod = requestEvent?.params.request.method; + const customMemo = route.params.memo; + const finalMemo = customMemo || MEMO; const [account, setAccount] = useState(); const [isLoading, setIsLoading] = useState(true); @@ -208,6 +210,16 @@ const ApproveTransfer = ({ route }: ApproveTransferProps) => { throw new Error('Account is not valid'); } + console.log('Sending transaction request:', { + from: account.address, + to: transaction.to, + amount: transaction.value, + denom: requestedNetwork?.nativeDenom, + memo: finalMemo, + gas: cosmosGasLimit, + fees: fees + }); + if (!requestedNetwork) { throw new Error('Network not found'); } @@ -228,9 +240,11 @@ const ApproveTransfer = ({ route }: ApproveTransferProps) => { ], gas: cosmosGasLimit, }, - MEMO, + finalMemo, ); + console.log('Transaction result:', result); + // Convert BigInt values to strings before sending to Android const serializedResult = JSON.stringify(result, (key, value) => typeof value === 'bigint' ? value.toString() : value @@ -520,7 +534,7 @@ const ApproveTransfer = ({ route }: ApproveTransferProps) => { const gasEstimation = await cosmosStargateClient.simulate( transaction.from!, [sendMsg], - MEMO, + finalMemo, ); setCosmosGasLimit( @@ -538,7 +552,7 @@ const ApproveTransfer = ({ route }: ApproveTransferProps) => { } }; getCosmosGas(); - }, [cosmosStargateClient, isSufficientFunds, sendMsg, transaction]); + }, [cosmosStargateClient, isSufficientFunds, sendMsg, transaction,finalMemo]); useEffect(() => { if (balance && !isSufficientFunds) { @@ -595,6 +609,12 @@ const ApproveTransfer = ({ route }: ApproveTransferProps) => { transaction.value?.toString(), ).toString()} /> + {namespace === COSMOS && ( + + )} {namespace === EIP155 ? ( <> diff --git a/src/types.ts b/src/types.ts index 3251843..e70812b 100644 --- a/src/types.ts +++ b/src/types.ts @@ -25,6 +25,7 @@ export type StackParamsList = { transaction: PopulatedTransaction; requestEvent?: Web3WalletTypes.SessionRequest; requestSessionData?: SessionTypes.Struct; + memo?: string; }; InvalidPath: undefined; WalletConnect: undefined; diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 2eea12c..041e97b 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -52,6 +52,18 @@ export const DEFAULT_NETWORKS: NetworksFormData[] = [ gasPrice: '0.025', isDefault: true, }, + { + chainId: 'nyx', + networkName: 'Nym', + namespace: COSMOS, + rpcUrl: 'https://rpc.nymtech.net', + blockExplorerUrl: 'https://explorer.nymtech.net', + nativeDenom: 'unym', + addressPrefix: 'n', + coinType: '118', + gasPrice: '0.025', + isDefault: true, + }, ]; export const CHAINID_DEBOUNCE_DELAY = 250;