From 04f47c8c95ecec8173e78214917b6dd49b95637f Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Wed, 31 Jul 2024 13:56:02 +0530 Subject: [PATCH 1/4] Prevent infinite re-render of signRequest page --- src/screens/SignRequest.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/screens/SignRequest.tsx b/src/screens/SignRequest.tsx index 2e74c00..4775797 100644 --- a/src/screens/SignRequest.tsx +++ b/src/screens/SignRequest.tsx @@ -1,6 +1,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { Image, ScrollView, View } from 'react-native'; import { ActivityIndicator, Button, Text, Appbar } from 'react-native-paper'; +import _ from 'lodash'; import { useNavigation } from '@react-navigation/native'; import { @@ -86,7 +87,7 @@ const SignRequest = ({ route }: SignRequestProps) => { return; } - if (requestAccount !== account) { + if (_.isEqual(requestAccount, account)) { setAccount(requestAccount); } if (requestMessage !== message) { -- 2.45.2 From ce462f3ad2f7a44053ffb3957ed8db6e9cf8c4ce Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Wed, 31 Jul 2024 18:59:16 +0530 Subject: [PATCH 2/4] Remove path config used for deep links --- src/index.tsx | 9 +-------- src/screens/SignRequest.tsx | 23 +++++++---------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 61d2d7c..087f562 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -15,14 +15,7 @@ import { WalletConnectProvider } from './context/WalletConnectContext'; globalThis.Buffer = Buffer; const linking = { - prefixes: ['https://wallet.laconic.com'], - config: { - screens: { - SignRequest: { - path: 'sign/:namespace/:chaindId/:address/:message', - }, - }, - }, + prefixes: ['https://wallet.laconic.com'] }; const theme = { diff --git a/src/screens/SignRequest.tsx b/src/screens/SignRequest.tsx index 4775797..3e0839d 100644 --- a/src/screens/SignRequest.tsx +++ b/src/screens/SignRequest.tsx @@ -1,7 +1,6 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { Image, ScrollView, View } from 'react-native'; import { ActivityIndicator, Button, Text, Appbar } from 'react-native-paper'; -import _ from 'lodash'; import { useNavigation } from '@react-navigation/native'; import { @@ -50,7 +49,7 @@ const SignRequest = ({ route }: SignRequestProps) => { const isCosmosSignDirect = useMemo(() => { const requestParams = route.params.requestEvent; - if (!requestParams) { + if (!requestParams?.id) { return false; } @@ -60,7 +59,7 @@ const SignRequest = ({ route }: SignRequestProps) => { const isEthSendTransaction = useMemo(() => { const requestParams = route.params.requestEvent; - if (!requestParams) { + if (!requestParams?.id) { return false; } @@ -87,21 +86,13 @@ const SignRequest = ({ route }: SignRequestProps) => { return; } - if (_.isEqual(requestAccount, account)) { - setAccount(requestAccount); - } - if (requestMessage !== message) { - setMessage(decodeURIComponent(requestMessage)); - } - if (requestNamespace !== namespace) { - setNamespace(requestNamespace); - } - if (requestChainId !== chainId) { - setChainId(requestChainId); - } + setAccount(requestAccount); + setMessage(decodeURIComponent(requestMessage)); + setNamespace(requestNamespace); + setChainId(requestChainId); setIsLoading(false); }, - [account, message, navigation, namespace, chainId], + [navigation], ); const sanitizePath = useCallback( -- 2.45.2 From 98755b9089e3754375323f64246d8026eb3b2fd9 Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Thu, 1 Aug 2024 10:48:47 +0530 Subject: [PATCH 3/4] Remove undefined default value for state variables --- src/screens/ApproveTransaction.tsx | 12 ++++++------ src/screens/ApproveTransfer.tsx | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/screens/ApproveTransaction.tsx b/src/screens/ApproveTransaction.tsx index f6a0dfe..c5b396f 100644 --- a/src/screens/ApproveTransaction.tsx +++ b/src/screens/ApproveTransaction.tsx @@ -50,9 +50,9 @@ const ApproveTransaction = ({ route }: ApproveTransactionProps) => { const [account, setAccount] = useState(); const [cosmosStargateClient, setCosmosStargateClient] = useState(); - const [cosmosGasLimit, setCosmosGasLimit] = useState(); - const [fees, setFees] = useState(); - const [txError, setTxError] = useState(); + const [cosmosGasLimit, setCosmosGasLimit] = useState(''); + const [fees, setFees] = useState(''); + const [txError, setTxError] = useState(''); const [isTxErrorDialogOpen, setIsTxErrorDialogOpen] = useState(false); const [isRequestAccepted, setIsRequestAccepted] = useState(false); @@ -197,11 +197,11 @@ const ApproveTransaction = ({ route }: ApproveTransactionProps) => { // This amount is total fees required for transaction amount: [ { - amount: fees!, + amount: fees, denom: requestedNetwork!.nativeDenom!, }, ], - gas: cosmosGasLimit!, + gas: cosmosGasLimit, }, txMsg: transactionMessage, }; @@ -299,7 +299,7 @@ const ApproveTransaction = ({ route }: ApproveTransactionProps) => { { setIsTxErrorDialogOpen(false); diff --git a/src/screens/ApproveTransfer.tsx b/src/screens/ApproveTransfer.tsx index e12d91b..9f1b25c 100644 --- a/src/screens/ApproveTransfer.tsx +++ b/src/screens/ApproveTransfer.tsx @@ -70,9 +70,9 @@ const ApproveTransfer = ({ route }: SignRequestProps) => { const [isTxLoading, setIsTxLoading] = useState(false); const [cosmosStargateClient, setCosmosStargateClient] = useState(); - const [fees, setFees] = useState(); - const [cosmosGasLimit, setCosmosGasLimit] = useState(); - const [txError, setTxError] = useState(); + const [fees, setFees] = useState(''); + const [cosmosGasLimit, setCosmosGasLimit] = useState(''); + const [txError, setTxError] = useState(''); const [isTxErrorDialogOpen, setIsTxErrorDialogOpen] = useState(false); const [ethGasPrice, setEthGasPrice] = useState(); const [ethGasLimit, setEthGasLimit] = useState(); @@ -212,7 +212,7 @@ const ApproveTransfer = ({ route }: SignRequestProps) => { // If requested chain is EVM compatible, set loading to false when ethMaxFee and ethPriorityFee have been populated (ethMaxFee !== undefined && ethMaxPriorityFee !== undefined) || // Or if requested chain is a cosmos chain, set loading to false when cosmosGasLimit has been populated - cosmosGasLimit !== undefined + !cosmosGasLimit ) { setIsLoading(false); } @@ -311,11 +311,11 @@ const ApproveTransfer = ({ route }: SignRequestProps) => { // This amount is total fees required for transaction amount: [ { - amount: fees!, + amount: fees, denom: requestedNetwork!.nativeDenom!, }, ], - gas: cosmosGasLimit!, + gas: cosmosGasLimit, }, sendMsg, memo: MEMO, @@ -655,7 +655,7 @@ const ApproveTransfer = ({ route }: SignRequestProps) => { )} { setIsTxErrorDialogOpen(false); -- 2.45.2 From 56d2b11bc85f77f6a115567512851d87f517000a Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Thu, 1 Aug 2024 11:44:44 +0530 Subject: [PATCH 4/4] Remove undefined default value only for input variables --- src/screens/ApproveTransaction.tsx | 8 ++++---- src/screens/ApproveTransfer.tsx | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/screens/ApproveTransaction.tsx b/src/screens/ApproveTransaction.tsx index c5b396f..fd74bb7 100644 --- a/src/screens/ApproveTransaction.tsx +++ b/src/screens/ApproveTransaction.tsx @@ -51,8 +51,8 @@ const ApproveTransaction = ({ route }: ApproveTransactionProps) => { const [cosmosStargateClient, setCosmosStargateClient] = useState(); const [cosmosGasLimit, setCosmosGasLimit] = useState(''); - const [fees, setFees] = useState(''); - const [txError, setTxError] = useState(''); + const [fees, setFees] = useState(); + const [txError, setTxError] = useState(); const [isTxErrorDialogOpen, setIsTxErrorDialogOpen] = useState(false); const [isRequestAccepted, setIsRequestAccepted] = useState(false); @@ -197,7 +197,7 @@ const ApproveTransaction = ({ route }: ApproveTransactionProps) => { // This amount is total fees required for transaction amount: [ { - amount: fees, + amount: fees!, denom: requestedNetwork!.nativeDenom!, }, ], @@ -299,7 +299,7 @@ const ApproveTransaction = ({ route }: ApproveTransactionProps) => { { setIsTxErrorDialogOpen(false); diff --git a/src/screens/ApproveTransfer.tsx b/src/screens/ApproveTransfer.tsx index 9f1b25c..80f88be 100644 --- a/src/screens/ApproveTransfer.tsx +++ b/src/screens/ApproveTransfer.tsx @@ -72,7 +72,7 @@ const ApproveTransfer = ({ route }: SignRequestProps) => { useState(); const [fees, setFees] = useState(''); const [cosmosGasLimit, setCosmosGasLimit] = useState(''); - const [txError, setTxError] = useState(''); + const [txError, setTxError] = useState(); const [isTxErrorDialogOpen, setIsTxErrorDialogOpen] = useState(false); const [ethGasPrice, setEthGasPrice] = useState(); const [ethGasLimit, setEthGasLimit] = useState(); @@ -655,7 +655,7 @@ const ApproveTransfer = ({ route }: SignRequestProps) => { )} { setIsTxErrorDialogOpen(false); -- 2.45.2