Updated on 2026-08-14

This commit is contained in:
Tangem 2024-10-23 14:58:44 +03:00
parent 34a17e2c65
commit b1ced989ae
8 changed files with 26 additions and 20 deletions

View file

@ -2,6 +2,7 @@ package com.tangem.features.staking.impl.analytics
import com.tangem.core.analytics.models.AnalyticsEvent
import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.domain.staking.model.stakekit.StakingError
import com.tangem.domain.staking.model.stakekit.action.StakingActionType
internal sealed class StakingAnalyticsEvents(
@ -147,14 +148,18 @@ internal sealed class StakingAnalyticsEvents(
data object ButtonExplore : StakingAnalyticsEvents(event = "Button - Explore")
data class StakingError(
data class StakekitError(
val token: String,
val errorType: String,
val stakeKitError: StakingError,
) : StakingAnalyticsEvents(
event = "Errors",
params = mapOf(
AnalyticsParam.TOKEN_PARAM to token,
"ErrorType" to errorType,
AnalyticsParam.ERROR_TYPE to if (stakeKitError is StakingError.UnknownError) {
stakeKitError.message ?: "Unknown"
} else {
stakeKitError.javaClass.simpleName
},
),
)

View file

@ -135,7 +135,7 @@ internal class StakingFeeTransactionLoader @AssistedInject constructor(
}
if (result.isNullOrEmpty()) {
onStakingFeeError(StakingError.UnknownError)
onStakingFeeError(StakingError.UnknownError())
return
}

View file

@ -84,7 +84,7 @@ internal class StakingTransactionSender @AssistedInject constructor(
)
if (fullTransactionsData.isNullOrEmpty()) {
onConstructError(StakingError.UnknownError)
onConstructError(StakingError.UnknownError())
return
}
@ -199,9 +199,9 @@ internal class StakingTransactionSender @AssistedInject constructor(
),
).getOrElse {
analyticsEventHandler.send(
StakingAnalyticsEvents.StakingError(
token = state.cryptoCurrencyName,
errorType = it.javaClass.simpleName,
StakingAnalyticsEvents.StakekitError(
token = state.cryptoCurrencySymbol,
stakeKitError = it,
),
)
onConstructError(it)
@ -257,9 +257,9 @@ internal class StakingTransactionSender @AssistedInject constructor(
)
.onLeft { error ->
analyticsEventHandler.send(
StakingAnalyticsEvents.StakingError(
token = stateController.value.cryptoCurrencyName,
errorType = error.javaClass.simpleName,
StakingAnalyticsEvents.StakekitError(
token = stateController.value.cryptoCurrencySymbol,
stakeKitError = error,
),
)
saveUnsubmittedHashUseCase.invoke(

View file

@ -299,9 +299,9 @@ internal class StakingViewModel @Inject constructor(
},
onStakingFeeError = { error ->
analyticsEventHandler.send(
StakingAnalyticsEvents.StakingError(
StakingAnalyticsEvents.StakekitError(
value.cryptoCurrencySymbol,
error.javaClass.simpleName,
error,
),
)
stateController.update(AddStakingErrorTransformer())
@ -338,9 +338,9 @@ internal class StakingViewModel @Inject constructor(
onConstructError = { error ->
Timber.e(error.toString())
analyticsEventHandler.send(
StakingAnalyticsEvents.StakingError(
StakingAnalyticsEvents.StakekitError(
token = value.cryptoCurrencySymbol,
errorType = error.javaClass.simpleName,
stakeKitError = error,
),
)
stakingEventFactory.createStakingErrorAlert(error)