Updated on 2026-08-14

This commit is contained in:
Tangem 2024-02-19 16:39:08 +00:00
parent 304d4b32a6
commit c49502dcd3
3 changed files with 40 additions and 19 deletions

View file

@ -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<String, String> {
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"
}
}

View file

@ -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,
)
},
)

View file

@ -1,12 +1,24 @@
package com.tangem.tap.domain.walletconnect2.domain.models
sealed class WalletConnectError : Exception() {
data class ApprovalErrorMissingNetworks(val missingChains: List<String>) : WalletConnectError()
data class ApprovalErrorAddNetwork(val networks: List<String>) : WalletConnectError()
data class ApprovalErrorUnsupportedNetwork(val unsupportedNetworks: List<String>) : 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<String>,
) : WalletConnectError("ApprovalErrorMissingNetworks")
data class ApprovalErrorAddNetwork(
val networks: List<String>,
) : WalletConnectError("ApprovalErrorAddNetwork")
data class ApprovalErrorUnsupportedNetwork(
val unsupportedNetworks: List<String>,
) : 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")
}