From 9c5d35adbeaa9c8a3f57f9e82bb764a71ca975c7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 7 Dec 2021 16:28:46 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../walletconnect/WalletConnectSdkHelper.kt | 3 ++- .../walletconnect/WalletConnectMiddleware.kt | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt index 739a1c621d..152bdd04d7 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt @@ -10,6 +10,7 @@ import com.tangem.blockchain.extensions.* import com.tangem.common.CompletionResult import com.tangem.common.core.TangemSdkError import com.tangem.common.extensions.hexToBytes +import com.tangem.crypto.CryptoUtils import com.tangem.operations.sign.SignHashCommand import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.extensions.toFormattedString @@ -216,7 +217,7 @@ class WalletConnectSdkHelper { is CompletionResult.Success -> { val hash = result.data.signature return EthereumUtils.prepareSignedMessageData( - hash, hashToSign, publicKey + hash, hashToSign, CryptoUtils.decompressPublicKey(wallet.walletPublicKey) ) } is CompletionResult.Failure -> { diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt index cca999bf87..2c1aab1596 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt @@ -164,22 +164,28 @@ class WalletConnectMiddleware { val card = scanResponse.card val factory = store.state.globalState.tapWalletManager.walletManagerFactory + val wcBlockchain = if (scanResponse.card.isTestCard) { + Blockchain.EthereumTestnet + } else { + Blockchain.Ethereum + } + return if (store.state.globalState.scanResponse?.card?.cardId == card.cardId) { - store.state.walletState.getWalletManager(Blockchain.Ethereum) - ?: factory.makeWalletManagerForApp(scanResponse, Blockchain.Ethereum) + store.state.walletState.getWalletManager(wcBlockchain) + ?: factory.makeWalletManagerForApp(scanResponse, wcBlockchain) ?.also { walletManager -> store.dispatch(WalletAction.MultiWallet.AddWalletManagers(walletManager)) store.dispatch(WalletAction.MultiWallet.AddBlockchain(walletManager.wallet.blockchain)) } } else { if (currenciesRepository.loadCardCurrencies(card.cardId)?.blockchains?.contains( - Blockchain.Ethereum) == true + wcBlockchain) == true ) { - factory.makeWalletManagerForApp(scanResponse, Blockchain.Ethereum) + factory.makeWalletManagerForApp(scanResponse, wcBlockchain) } else { - factory.makeWalletManagerForApp(scanResponse, Blockchain.Ethereum) + factory.makeWalletManagerForApp(scanResponse, wcBlockchain) ?.also { - currenciesRepository.saveAddedBlockchain(card.cardId, Blockchain.Ethereum) + currenciesRepository.saveAddedBlockchain(card.cardId, wcBlockchain) } } }