From c49502dcd37e0f1ded883b393a2566d0fc18808e Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 19 Feb 2024 16:39:08 +0000 Subject: [PATCH] Updated on 2026-08-14 --- .../common/analytics/events/WalletConnect.kt | 26 ++++++++++------ .../data/WalletConnectRepositoryImpl.kt | 3 +- .../domain/models/WalletConnectError.kt | 30 +++++++++++++------ 3 files changed, 40 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt index 13c04ec76f..ed47afa57c 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/WalletConnect.kt @@ -1,7 +1,6 @@ package com.tangem.tap.common.analytics.events import com.tangem.core.analytics.models.AnalyticsEvent -import com.tangem.tap.common.extensions.filterNotNull /** [REDACTED_AUTHOR] @@ -42,17 +41,22 @@ sealed class WalletConnect( val methodName: String, val blockchain: String, val errorCode: String? = null, + val errorDescription: String? = null, ) { fun toParamsMap(): Map { val validation = if (errorCode == null) Validation.SUCCESS.param else Validation.FAIL.param - return mapOf( - AnalyticsParam.DAPP_NAME to dAppName, - AnalyticsParam.DAPP_URL to dAppUrl, - AnalyticsParam.METHOD_NAME to methodName, - AnalyticsParam.BLOCKCHAIN to blockchain, - AnalyticsParam.VALIDATION to validation, - if (errorCode != null) AnalyticsParam.ERROR_CODE to errorCode else null to null, - ).filterNotNull() + val code = errorCode ?: SUCCESS_CODE + return buildMap { + put(AnalyticsParam.DAPP_NAME, dAppName) + put(AnalyticsParam.DAPP_URL, dAppUrl) + put(AnalyticsParam.METHOD_NAME, methodName) + put(AnalyticsParam.BLOCKCHAIN, blockchain) + put(AnalyticsParam.VALIDATION, validation) + put(AnalyticsParam.ERROR_CODE, code) + if (errorDescription != null) { + put(AnalyticsParam.ERROR_DESCRIPTION, errorDescription) + } + } } } @@ -60,4 +64,8 @@ sealed class WalletConnect( SUCCESS("Success"), FAIL("Fail"), } + + companion object { + private const val SUCCESS_CODE = "0" + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/WalletConnectRepositoryImpl.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/WalletConnectRepositoryImpl.kt index ab1355fae2..4f37c03839 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/WalletConnectRepositoryImpl.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/WalletConnectRepositoryImpl.kt @@ -352,7 +352,8 @@ class WalletConnectRepositoryImpl @Inject constructor( dAppUrl = session?.url ?: "", methodName = requestData.method, blockchain = requestData.blockchain, - errorCode = WalletConnectError.ValidationError.toString(), + errorCode = WalletConnectError.ValidationError.error, + errorDescription = it.throwable.message, ) }, ) diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/models/WalletConnectError.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/models/WalletConnectError.kt index ca01b701a7..efb5215bd7 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/models/WalletConnectError.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/models/WalletConnectError.kt @@ -1,12 +1,24 @@ package com.tangem.tap.domain.walletconnect2.domain.models -sealed class WalletConnectError : Exception() { - data class ApprovalErrorMissingNetworks(val missingChains: List) : WalletConnectError() - data class ApprovalErrorAddNetwork(val networks: List) : WalletConnectError() - data class ApprovalErrorUnsupportedNetwork(val unsupportedNetworks: List) : WalletConnectError() - data class ExternalApprovalError(override val message: String?) : WalletConnectError() - object WrongUserWallet : WalletConnectError() - object UnsupportedMethod : WalletConnectError() - object SigningError : WalletConnectError() - object ValidationError : WalletConnectError() +sealed class WalletConnectError(val error: String) : Exception() { + data class ApprovalErrorMissingNetworks( + val missingChains: List, + ) : WalletConnectError("ApprovalErrorMissingNetworks") + + data class ApprovalErrorAddNetwork( + val networks: List, + ) : WalletConnectError("ApprovalErrorAddNetwork") + + data class ApprovalErrorUnsupportedNetwork( + val unsupportedNetworks: List, + ) : WalletConnectError("ApprovalErrorUnsupportedNetwork") + + data class ExternalApprovalError( + override val message: String?, + ) : WalletConnectError("ExternalApprovalError") + + object WrongUserWallet : WalletConnectError("WrongUserWallet") + object UnsupportedMethod : WalletConnectError("UnsupportedMethod") + object SigningError : WalletConnectError("SigningError") + object ValidationError : WalletConnectError("ValidationError") } \ No newline at end of file