Updated on 2026-08-14

This commit is contained in:
Tangem 2025-12-09 17:22:28 +05:00
parent aeb60e0cec
commit f2f10fe950
23 changed files with 182 additions and 125 deletions

View file

@ -11,11 +11,6 @@ sealed class AnalyticsParam {
companion object
}
sealed class TokenBalanceState(val value: String) {
data object Empty : TokenBalanceState("Empty")
data object Full : TokenBalanceState("Full")
}
sealed class RateApp(val value: String) {
data object Liked : RateApp("Liked")
data object Disliked : RateApp("Disliked")
@ -205,8 +200,9 @@ sealed class AnalyticsParam {
Pending(value = "Pending"),
}
enum class EnsStatus(val value: String) {
EMPTY("Empty"), FULL("Full")
enum class EmptyFull(val value: String) {
Empty("Empty"),
Full("Full"),
}
enum class ProductType(val value: String) {

View file

@ -12,11 +12,85 @@ sealed class OnboardingAnalyticsEvent(
sealed class Onboarding(
event: String,
params: Map<String, String> = mapOf(),
) : OnboardingAnalyticsEvent(category = "Onboarding", event = event, params = params) {
class Started(
source: String,
) : Onboarding(
event = "Onboarding Started",
params = mapOf(
AnalyticsParam.SOURCE to source,
),
)
class Finished(
source: String,
) : Onboarding(
event = "Onboarding Finished",
params = mapOf(
AnalyticsParam.SOURCE to source,
),
)
class ButtonMobileWallet(
source: String,
) : Onboarding(
event = "Button - Mobile Wallet",
params = mapOf(
AnalyticsParam.SOURCE to source,
),
)
}
sealed class CreateWallet(
event: String,
params: Map<String, String> = mapOf(),
) : OnboardingAnalyticsEvent(category = "Onboarding / Create Wallet", event = event, params = params) {
data object ButtonCreateWallet : CreateWallet("Button - Create Wallet")
class WalletCreatedSuccessfully(
source: String,
creationType: WalletCreationType = WalletCreationType.NewSeed,
seedPhraseLength: Int? = null,
passPhraseState: AnalyticsParam.EmptyFull,
) : CreateWallet(
event = "Wallet Created Successfully",
params = buildMap {
put(AnalyticsParam.SOURCE, source)
put("Creation Type", creationType.value)
put("Passphrase", passPhraseState.value)
if (seedPhraseLength != null) {
put("Seed Phrase Length", seedPhraseLength.toString())
}
},
)
sealed class WalletCreationType(val value: String) {
data object NewSeed : WalletCreationType(value = "New Seed")
data object SeedImport : WalletCreationType(value = "Seed Import")
}
}
sealed class SeedPhrase(
event: String,
params: Map<String, String> = mapOf(),
) : OnboardingAnalyticsEvent(category = "Onboarding / Seed Phrase", event = event, params = params) {
data object CreateMobileScreenOpened : SeedPhrase("Create Mobile Screen Opened")
data object ButtonImportWallet : SeedPhrase("Button - Import Wallet")
data object ImportSeedPhraseScreenOpened : SeedPhrase("Import Seed Phrase Screen Opened")
data object ButtonImport : SeedPhrase("Button - Import")
}
sealed class Error(
event: String,
params: Map<String, String> = mapOf(),
) : OnboardingAnalyticsEvent(category = "Error", event = event, params = params) {
data class OfflineAttestationFailed(
val source: AnalyticsParam.ScreensSources,
) : Onboarding(
) : Error(
event = "Offline Attestation Failed",
params = mapOf(AnalyticsParam.SOURCE to source.value),
)