From 65840babb151ff9577e3f84bbcb8d5bdf49801cc Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 15 Jan 2026 12:44:45 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../domain/staking/analytics/StakingAnalyticsEvent.kt | 5 +++++ .../impl/presentation/model/StakingClickIntents.kt | 2 ++ .../staking/impl/presentation/model/StakingModel.kt | 8 ++++++++ .../presentation/state/stub/StakingClickIntentsStub.kt | 2 ++ .../notifications/AddStakingNotificationsTransformer.kt | 5 ++++- 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/domain/staking/src/main/java/com/tangem/domain/staking/analytics/StakingAnalyticsEvent.kt b/domain/staking/src/main/java/com/tangem/domain/staking/analytics/StakingAnalyticsEvent.kt index e2950b602d..6784b226dd 100644 --- a/domain/staking/src/main/java/com/tangem/domain/staking/analytics/StakingAnalyticsEvent.kt +++ b/domain/staking/src/main/java/com/tangem/domain/staking/analytics/StakingAnalyticsEvent.kt @@ -167,6 +167,11 @@ sealed class StakingAnalyticsEvent( event = "Button - Activate", params = mapOf(AnalyticsParam.TOKEN_PARAM to token), ) + + data class NotEnoughFee(val token: String) : StakingAnalyticsEvent( + event = "Notice - Not Enough Fee", + params = mapOf(AnalyticsParam.TOKEN_PARAM to token), + ) } enum class StakeScreenSource { diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingClickIntents.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingClickIntents.kt index 7f0264f917..66b3ccedc6 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingClickIntents.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingClickIntents.kt @@ -75,6 +75,8 @@ internal interface StakingClickIntents : AmountScreenClickIntents { fun onActivateTonAccountNotificationShow() + fun onNotEnoughFeeNotificationShow() + fun onActivateTonAccountClick() fun onAmountReduceByFeeClick(reduceAmount: BigDecimal, notification: Class) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt index 88e9a090ad..bac16c9edc 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt @@ -1120,6 +1120,14 @@ internal class StakingModel @Inject constructor( ) } + override fun onNotEnoughFeeNotificationShow() { + analyticsEventHandler.send( + StakingAnalyticsEvent.NotEnoughFee( + token = cryptoCurrencyStatus.currency.symbol, + ), + ) + } + override fun onActivateTonAccountClick() { analyticsEventHandler.send( StakingAnalyticsEvent.ButtonActivate( diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt index 1584adb3a1..46ef8238ce 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt @@ -83,6 +83,8 @@ internal object StakingClickIntentsStub : StakingClickIntents { override fun onActivateTonAccountNotificationShow() {} + override fun onNotEnoughFeeNotificationShow() {} + override fun onActivateTonAccountClick() {} override fun onAmountReduceByFeeClick(reduceAmount: BigDecimal, notification: Class) {} diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt index 636649a4ad..6477acf20c 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt @@ -226,6 +226,7 @@ internal class AddStakingNotificationsTransformer( isSubtractionAvailable = isSubtractAvailable, cryptoCurrencyStatus = cryptoCurrencyStatus, onClick = prevState.clickIntents::openTokenDetails, + onNotEnoughFeeNotificationShow = prevState.clickIntents::onNotEnoughFeeNotificationShow, ) addTonExtraFeeErrorNotification() addExceedsBalanceNotification( @@ -233,7 +234,7 @@ internal class AddStakingNotificationsTransformer( cryptoCurrencyStatus = cryptoCurrencyStatus, shouldMergeFeeNetworkName = BlockchainUtils.isArbitrum(network.backendId), onClick = prevState.clickIntents::openTokenDetails, - onAnalyticsEvent = { /* no-op */ }, + onAnalyticsEvent = { prevState.clickIntents.onNotEnoughFeeNotificationShow() }, ) if (!BlockchainUtils.isCardano(network.rawId)) { addDustWarningNotification( @@ -298,12 +299,14 @@ internal class AddStakingNotificationsTransformer( isSubtractionAvailable: Boolean, cryptoCurrencyStatus: CryptoCurrencyStatus, onClick: (CryptoCurrency) -> Unit, + onNotEnoughFeeNotificationShow: () -> Unit, ) { val balance = cryptoCurrencyStatus.value.amount.orZero() if (!isSubtractionAvailable) return val showNotification = sendingAmount + feeAmount > balance if (showNotification) { + onNotEnoughFeeNotificationShow() val notification = if (actionType is StakingActionCommonType.Enter) { NotificationUM.Error.TotalExceedsBalance } else {