From 4cd56a1588d3bf2c3eeec03d53b7c61ef13980d2 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 15 May 2025 21:43:57 +0700 Subject: [PATCH] Updated on 2026-08-14 --- .../walletconnect/WalletConnectSdkHelper.kt | 2 +- .../network/ethereum/WcEthMessageSignUseCase.kt | 16 +++++++--------- .../data/walletconnect/sign/BaseWcSignUseCase.kt | 10 ---------- .../walletconnect/sign/WcSignUseCaseDelegate.kt | 7 +++++++ 4 files changed, 15 insertions(+), 20 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 2ac037d2ec..0d3aaef26b 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 @@ -393,7 +393,7 @@ class WalletConnectSdkHelper { signature = signedHash, hash = hashToSign, publicKey = wallet.publicKey.blockchainKey.toDecompressedPublicKey(), - ).asRSVLegacyEVM().toHexString() + ).asRSVLegacyEVM().toHexString().formatHex() } } is CompletionResult.Failure -> { diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthMessageSignUseCase.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthMessageSignUseCase.kt index b1ec5e840d..b848c5812f 100644 --- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthMessageSignUseCase.kt +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthMessageSignUseCase.kt @@ -5,6 +5,7 @@ import com.tangem.blockchain.blockchains.ethereum.EthereumUtils.toKeccak import com.tangem.blockchain.common.HEX_PREFIX import com.tangem.blockchain.common.UnmarshalHelper import com.tangem.blockchain.common.WalletManager +import com.tangem.blockchain.extensions.formatHex import com.tangem.blockchain.extensions.isAscii import com.tangem.common.extensions.hexToBytes import com.tangem.common.extensions.toDecompressedPublicKey @@ -81,15 +82,12 @@ internal class WcEthMessageSignUseCase @AssistedInject constructor( object LegacySdkHelper { private const val ETH_MESSAGE_PREFIX = "\u0019Ethereum Signed Message:\n" - internal fun prepareToSendMessageData( - signedHash: ByteArray, - hashToSign: ByteArray, - walletManager: WalletManager, - ): String = UnmarshalHelper.unmarshalSignatureExtended( - signature = signedHash, - hash = hashToSign, - publicKey = walletManager.wallet.publicKey.blockchainKey.toDecompressedPublicKey(), - ).asRSVLegacyEVM().toHexString() + fun prepareToSendMessageData(signedHash: ByteArray, hashToSign: ByteArray, walletManager: WalletManager): String = + UnmarshalHelper.unmarshalSignatureExtended( + signature = signedHash, + hash = hashToSign, + publicKey = walletManager.wallet.publicKey.blockchainKey.toDecompressedPublicKey(), + ).asRSVLegacyEVM().toHexString().formatHex() fun createMessageData(message: String): ByteArray { val messageData = try { diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sign/BaseWcSignUseCase.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sign/BaseWcSignUseCase.kt index 55ea7f8786..01c372e675 100644 --- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sign/BaseWcSignUseCase.kt +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sign/BaseWcSignUseCase.kt @@ -35,16 +35,6 @@ internal abstract class BaseWcSignUseCase : ) } - init { - analytics.send( - WcAnalyticEvents.SignatureRequestReceived( - session = context.session, - rawRequest = context.rawSdkRequest, - network = context.network, - ), - ) - } - override suspend fun onCancel(currentState: WcSignState) { defaultReject() } diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sign/WcSignUseCaseDelegate.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sign/WcSignUseCaseDelegate.kt index 55c77f3de3..68bd9a22b5 100644 --- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sign/WcSignUseCaseDelegate.kt +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sign/WcSignUseCaseDelegate.kt @@ -39,6 +39,13 @@ internal class WcSignUseCaseDelegate( operator fun invoke(initModel: SignModel) = channelFlow { val state = MutableStateFlow(WcSignState(initModel, WcSignStep.PreSign)) + analytics.send( + WcAnalyticEvents.SignatureRequestReceived( + session = context.session, + rawRequest = context.rawSdkRequest, + network = context.network, + ), + ) state .onEach { newState -> channel.send(newState) }