From 8622117153d8930c25180e3d8c602be452f1517b Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 11 Dec 2024 21:48:26 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../ui/notifications/NotificationsFactory.kt | 35 +++++++++++++++++++ .../domain/transaction/error/GetFeeError.kt | 1 + .../transaction/error/FeeErrorsMapper.kt | 3 ++ .../state/confirm/SendNotificationFactory.kt | 4 ++- gradle/dependencies.toml | 2 +- 5 files changed, 43 insertions(+), 2 deletions(-) diff --git a/common/ui/src/main/java/com/tangem/common/ui/notifications/NotificationsFactory.kt b/common/ui/src/main/java/com/tangem/common/ui/notifications/NotificationsFactory.kt index e14d6a9c13..adf9f08d85 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/notifications/NotificationsFactory.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/notifications/NotificationsFactory.kt @@ -42,6 +42,41 @@ object NotificationsFactory { } } + fun MutableList.addFeeUnreachableNotification( + tokenStatus: CryptoCurrencyStatus, + coinStatus: CryptoCurrencyStatus, + feeError: GetFeeError?, + onReload: () -> Unit, + onClick: (currency: CryptoCurrency) -> Unit, + ) { + when (feeError) { + is GetFeeError.BlockchainErrors.TronActivationError -> add( + NotificationUM.Warning.TronAccountNotActivated(coinStatus.currency.name), + ) + is GetFeeError.BlockchainErrors.KaspaZeroUtxo -> add( + NotificationUM.Error.TokenExceedsBalance( + networkIconId = coinStatus.currency.networkIconResId, + networkName = coinStatus.currency.name, + currencyName = tokenStatus.currency.name, + feeName = coinStatus.currency.name, + feeSymbol = coinStatus.currency.symbol, + mergeFeeNetworkName = false, + onClick = { + onClick(coinStatus.currency) + }, + ), + ) + is GetFeeError.DataError, + is GetFeeError.UnknownError, + -> add( + NotificationUM.Warning.NetworkFeeUnreachable(onReload), + ) + else -> { + /* do nothing */ + } + } + } + fun MutableList.addExceedBalanceNotification( feeAmount: BigDecimal, sendingAmount: BigDecimal, diff --git a/domain/transaction/models/src/main/kotlin/com/tangem/domain/transaction/error/GetFeeError.kt b/domain/transaction/models/src/main/kotlin/com/tangem/domain/transaction/error/GetFeeError.kt index bc57770c0f..48fd54937f 100644 --- a/domain/transaction/models/src/main/kotlin/com/tangem/domain/transaction/error/GetFeeError.kt +++ b/domain/transaction/models/src/main/kotlin/com/tangem/domain/transaction/error/GetFeeError.kt @@ -6,5 +6,6 @@ sealed class GetFeeError { sealed class BlockchainErrors : GetFeeError() { data object TronActivationError : BlockchainErrors() + data object KaspaZeroUtxo : BlockchainErrors() } } \ No newline at end of file diff --git a/domain/transaction/src/main/java/com/tangem/domain/transaction/error/FeeErrorsMapper.kt b/domain/transaction/src/main/java/com/tangem/domain/transaction/error/FeeErrorsMapper.kt index 718ccb6f9b..2bdbb7314f 100644 --- a/domain/transaction/src/main/java/com/tangem/domain/transaction/error/FeeErrorsMapper.kt +++ b/domain/transaction/src/main/java/com/tangem/domain/transaction/error/FeeErrorsMapper.kt @@ -8,6 +8,9 @@ fun Result.Failure.mapToFeeError(): GetFeeError { is BlockchainSdkError.Tron.AccountActivationError -> { GetFeeError.BlockchainErrors.TronActivationError } + is BlockchainSdkError.Kaspa.ZeroUtxoError -> { + GetFeeError.BlockchainErrors.KaspaZeroUtxo + } else -> GetFeeError.DataError(this.error) } } \ No newline at end of file diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/confirm/SendNotificationFactory.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/confirm/SendNotificationFactory.kt index 15e64cde68..5716d8be03 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/confirm/SendNotificationFactory.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/confirm/SendNotificationFactory.kt @@ -153,9 +153,11 @@ internal class SendNotificationFactory( ).getOrNull() addFeeUnreachableNotification( + tokenStatus = cryptoCurrencyStatus, + coinStatus = feeCryptoCurrencyStatusProvider() ?: cryptoCurrencyStatus, feeError = feeError, - tokenName = currency.name, onReload = clickIntents::feeReload, + onClick = clickIntents::onTokenDetailsClick, ) addExceedBalanceNotification( feeAmount = feeValue, diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 4fb9818eec..cc51c50b34 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.19-882" +tangemBlockchainSdk = "release-app_5.19-883" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.19-414" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^