From 2be1217ad758e62494eb5a945944bb6216506f5d Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Oct 2024 12:12:13 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../models/response/ExchangeStatusResponse.kt | 3 +++ .../feature/swap/DefaultSwapRepository.kt | 5 +++-- ...enDetailsSwapTransactionsStateConverter.kt | 22 ++++++++++++------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/ExchangeStatusResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/ExchangeStatusResponse.kt index 7682c70d4f..a56308d255 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/ExchangeStatusResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/ExchangeStatusResponse.kt @@ -64,6 +64,9 @@ enum class ExchangeStatus { @Json(name = "tx-failed") TxFailed, + @Json(name = "paused") + Paused, + @Json(name = "unknown") Unknown, } diff --git a/features/swap/data/src/main/java/com/tangem/feature/swap/DefaultSwapRepository.kt b/features/swap/data/src/main/java/com/tangem/feature/swap/DefaultSwapRepository.kt index bf614cd4a1..0548a65ea7 100644 --- a/features/swap/data/src/main/java/com/tangem/feature/swap/DefaultSwapRepository.kt +++ b/features/swap/data/src/main/java/com/tangem/feature/swap/DefaultSwapRepository.kt @@ -169,14 +169,15 @@ internal class DefaultSwapRepository( return withContext(coroutineDispatcher.io) { either { catch( - { + block = { exchangeStatusConverter.convert( tangemExpressApi .getExchangeStatus(txId) .getOrThrow(), ) }, - { + catch = { + Timber.e("getExchangeStatus error: $it") raise(UnknownError(it.message)) }, ) diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSwapTransactionsStateConverter.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSwapTransactionsStateConverter.kt index c5db7b099d..57de8e0000 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSwapTransactionsStateConverter.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsSwapTransactionsStateConverter.kt @@ -25,6 +25,7 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.PersistentList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toPersistentList +import timber.log.Timber import java.math.BigDecimal import java.util.Locale @@ -115,7 +116,10 @@ internal class TokenDetailsSwapTransactionsStateConverter( refundToken: CryptoCurrency?, isRefundTerminalStatus: Boolean, ): SwapTransactionsState { - if (statusModel == null || tx.activeStatus == statusModel.status) return tx + if (statusModel == null || tx.activeStatus == statusModel.status) { + Timber.e("UpdateTxStatus isn't required. Current status isn't changed") + return tx + } val hasFailed = tx.hasFailed || statusModel.status == ExchangeStatus.Failed val notifications = getNotification(statusModel.status, statusModel.txExternalUrl, refundToken) val showProviderLink = getShowProviderLink(notifications, statusModel) @@ -217,13 +221,15 @@ internal class TokenDetailsSwapTransactionsStateConverter( isPaused = isPaused, ), ) - add( - sendStep( - isSending = isSending, - isSendingDone = isSendingDone, - isRefunded = isRefunded, - ), - ) + if (!isPaused) { + add( + sendStep( + isSending = isSending, + isSendingDone = isSendingDone, + isRefunded = isRefunded, + ), + ) + } } } }.toPersistentList()