From 6afae8e619dbd444fd6469a80030730b2cd61820 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 17 Oct 2025 14:27:13 +0500 Subject: [PATCH] Updated on 2026-08-14 --- core/res/src/main/res/values/strings.xml | 2 ++ .../feature/swap/domain/models/ExpressDataError.kt | 5 +++++ .../tangem/feature/swap/domain/SwapInteractorImpl.kt | 8 ++++++++ .../java/com/tangem/feature/swap/model/SwapModel.kt | 11 +---------- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 4055e42ef5..2158343988 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -538,6 +538,7 @@ Complete setup by securing the app with an access code. If you do, you\'ll need to start over. Are you sure you want to quit the activation process? + Keeps your crypto safe and offline. Slim as a credit card, safer than a bank vault. If you do, you\'ll need to start over. Recover existing wallet via Google Drive backup Google Drive backup @@ -547,6 +548,7 @@ Please back up your wallet before creating an access code. Finalize backup first Incomplete + Other methods Physical devices that securely store your private key offline. Recovery phrase Your private keys are securely encrypted and stored on your phone diff --git a/features/swap/domain/models/src/main/java/com/tangem/feature/swap/domain/models/ExpressDataError.kt b/features/swap/domain/models/src/main/java/com/tangem/feature/swap/domain/models/ExpressDataError.kt index 568214f788..1f13d0910e 100644 --- a/features/swap/domain/models/src/main/java/com/tangem/feature/swap/domain/models/ExpressDataError.kt +++ b/features/swap/domain/models/src/main/java/com/tangem/feature/swap/domain/models/ExpressDataError.kt @@ -64,4 +64,9 @@ sealed class ExpressDataError { override val code: Int = -2 override val message: String = "tooLargeSolanaTransaction" } + + data object DexActiveSupplyError : ExpressDataError() { + override val code: Int = -3 + override val message: String = "dexActiveSupplyError" + } } \ No newline at end of file diff --git a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt index 7e47fff730..bbebf6f219 100644 --- a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt +++ b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt @@ -334,6 +334,14 @@ internal class SwapInteractorImpl @AssistedInject constructor( isBalanceWithoutFeeEnough: Boolean, expressOperationType: ExpressOperationType, ): Pair { + if (fromToken.value.yieldSupplyStatus?.isActive == true) { + return provider to produceDexSwapDataError( + error = ExpressDataError.DexActiveSupplyError, + fromToken = fromToken, + amount = amount, + ) + } + val maybeQuotes = repository.findBestQuote( userWallet = userWallet, fromContractAddress = fromToken.currency.getContractAddress(), diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt index cf53aeb958..a8bb23deaf 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt @@ -1267,16 +1267,7 @@ internal class SwapModel @Inject constructor( toToken.currency.id.value } - return groupToFind.available.find { idToFind == it.currencyStatus.currency.id.value }?.providers - ?.filter { provider -> - // !!!WARNING!!! Filter out dex provider if yield supply is active - val yieldSupplyStatus = fromToken.value.yieldSupplyStatus - if (yieldSupplyStatus != null && yieldSupplyStatus.isActive) { - provider.type == ExchangeProviderType.CEX - } else { - true - } - }.orEmpty() + return groupToFind.available.find { idToFind == it.currencyStatus.currency.id.value }?.providers.orEmpty() } private fun Map.getLastLoadedSuccessStates(): SuccessLoadedSwapData {