From a08145498ca01e495d60d11dd8e05afa8d631c27 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 20 Aug 2025 15:57:02 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../domain/walletconnect/WalletConnectSdkHelper.kt | 9 ++------- .../tangem/core/analytics/models/AnalyticsParam.kt | 9 +++++++-- .../java/com/tangem/core/analytics/models/Basic.kt | 4 +++- .../network/ethereum/WcEthSendTransactionUseCase.kt | 13 +++++++++++++ 4 files changed, 25 insertions(+), 10 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 ffb1dbb2b0..9df63ef08a 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 @@ -13,9 +13,6 @@ import com.tangem.common.CompletionResult import com.tangem.common.extensions.hexToBytes import com.tangem.common.extensions.toDecompressedPublicKey import com.tangem.common.extensions.toHexString -import com.tangem.core.analytics.Analytics -import com.tangem.core.analytics.models.Basic -import com.tangem.core.analytics.models.Basic.TransactionSent.MemoType import com.tangem.data.walletconnect.network.ethereum.LegacySdkHelper import com.tangem.domain.models.wallet.UserWallet import com.tangem.operations.sign.SignHashCommand @@ -42,7 +39,6 @@ import org.json.JSONArray import org.json.JSONObject import timber.log.Timber import java.math.BigDecimal -import com.tangem.core.analytics.models.AnalyticsParam as CoreAnalyticsParam @Suppress("LargeClass") class WalletConnectSdkHelper { @@ -227,8 +223,6 @@ class WalletConnectSdkHelper { ) return when (result) { is Result.Success -> { - val sentFrom = CoreAnalyticsParam.TxSentFrom.WalletConnect - Analytics.send(Basic.TransactionSent(sentFrom = sentFrom, memoType = MemoType.Null)) val hash = result.data.hash if (hash.startsWith(HEX_PREFIX)) { hash @@ -394,7 +388,8 @@ class WalletConnectSdkHelper { signature = signedHash, hash = hashToSign, publicKey = wallet.publicKey.blockchainKey.toDecompressedPublicKey(), - ).asRSVLegacyEVM().toHexString().formatHex().lowercase() // use lowercase because some dapps cant handle UPPERCASE + ).asRSVLegacyEVM().toHexString().formatHex() + .lowercase() // use lowercase because some dapps cant handle UPPERCASE } } is CompletionResult.Failure -> { diff --git a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt index 8eed0785bc..08021ec348 100644 --- a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt +++ b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt @@ -112,7 +112,12 @@ sealed class AnalyticsParam { val permissionType: String, ) : TxSentFrom("Approve"), TxData - data object WalletConnect : TxSentFrom("WalletConnect") + data class WalletConnect( + override val blockchain: String, + override val token: String, + override val feeType: FeeType?, + ) : TxSentFrom("WalletConnect"), TxData + data object Sell : TxSentFrom("Sell") data class NFT( @@ -125,7 +130,7 @@ sealed class AnalyticsParam { sealed interface TxData { val blockchain: String val token: String - val feeType: FeeType + val feeType: FeeType? } sealed class FeeType(val value: String) { diff --git a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt index 110391778a..875cf24182 100644 --- a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt +++ b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt @@ -55,7 +55,9 @@ sealed class Basic( if (sentFrom is AnalyticsParam.TxData) { this[AnalyticsParam.BLOCKCHAIN] = sentFrom.blockchain this[AnalyticsParam.TOKEN_PARAM] = sentFrom.token - this[AnalyticsParam.FEE_TYPE] = sentFrom.feeType.value + sentFrom.feeType?.value?.let { + this[AnalyticsParam.FEE_TYPE] = it + } } if (sentFrom is AnalyticsParam.TxSentFrom.Approve) { this[AnalyticsParam.PERMISSION_TYPE] = sentFrom.permissionType diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthSendTransactionUseCase.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthSendTransactionUseCase.kt index 5358c3a317..e82c497072 100644 --- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthSendTransactionUseCase.kt +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthSendTransactionUseCase.kt @@ -7,6 +7,9 @@ import com.tangem.blockchain.common.TransactionData import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.extensions.formatHex import com.tangem.core.analytics.api.AnalyticsEventHandler +import com.tangem.core.analytics.models.AnalyticsParam.TxSentFrom +import com.tangem.core.analytics.models.Basic +import com.tangem.core.analytics.models.Basic.TransactionSent.MemoType import com.tangem.data.walletconnect.respond.WcRespondService import com.tangem.data.walletconnect.sign.BaseWcSignUseCase import com.tangem.data.walletconnect.sign.SignCollector @@ -86,6 +89,16 @@ internal class WcEthSendTransactionUseCase @AssistedInject constructor( emit(state.toResult(parseSendError(error).left())) } .getOrNull() ?: return + analytics.send( + Basic.TransactionSent( + sentFrom = TxSentFrom.WalletConnect( + blockchain = network.name, + token = network.currencySymbol, + feeType = null, + ), + memoType = MemoType.Null, + ), + ) val respondResult = respondService.respond(rawSdkRequest, hash.formatHex()) emit(state.toResult(respondResult)) }