From 8f4a8b18ef9f6c3a91f6e2600a43a45812b1b98c Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 24 Feb 2026 09:59:10 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../api/express/models/response/SwapPair.kt | 6 +++++- .../tangem/data/swap/DefaultSwapRepositoryV2.kt | 14 ++++++++------ .../swap/converters/SwapPairInfoConverter.kt | 6 +++--- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/SwapPair.kt b/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/SwapPair.kt index 9b96730278..21f255653b 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/SwapPair.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/express/models/response/SwapPair.kt @@ -24,7 +24,11 @@ data class SwapPairProvider( @Json(name = "rateTypes") val rateTypes: List, -) +) { + fun hasOnlyFixedRateType(): Boolean { + return rateTypes.isNotEmpty() && rateTypes.all { it == RateType.FIXED } + } +} @JsonClass(generateAdapter = false) enum class RateType { diff --git a/data/swap/src/main/java/com/tangem/data/swap/DefaultSwapRepositoryV2.kt b/data/swap/src/main/java/com/tangem/data/swap/DefaultSwapRepositoryV2.kt index b229533df3..080f06bacf 100644 --- a/data/swap/src/main/java/com/tangem/data/swap/DefaultSwapRepositoryV2.kt +++ b/data/swap/src/main/java/com/tangem/data/swap/DefaultSwapRepositoryV2.kt @@ -94,9 +94,10 @@ internal class DefaultSwapRepositoryV2 @Inject constructor( currencyStatus.currency.network.backendId == pair.to.network } - val mappedProviders = pair.providers.mapNotNull { - expressProviders[it.providerId] - }.filterYieldSupplyProvider(statusFrom) + val mappedProviders = pair.providers + .filterNot { it.hasOnlyFixedRateType() } + .mapNotNull { expressProviders[it.providerId] } + .filterYieldSupplyProvider(statusFrom) if (statusFrom != null && statusTo != null && mappedProviders.isNotEmpty()) { SwapPairModel( @@ -151,9 +152,10 @@ internal class DefaultSwapRepositoryV2 @Inject constructor( val currencyStatusFrom = createSendWithSwapCryptoCurrencyStatus(statusFromDeferred.await()) val currencyStatusTo = createSendWithSwapCryptoCurrencyStatus(statusToDeferred.await()) - val mappedProvider = pair.providers.mapNotNull { - mappedProviders[it.providerId] - }.filterYieldSupplyProvider(currencyStatusFrom) + val mappedProvider = pair.providers + .filterNot { it.hasOnlyFixedRateType() } + .mapNotNull { mappedProviders[it.providerId] } + .filterYieldSupplyProvider(currencyStatusFrom) if (currencyStatusFrom != null && currencyStatusTo != null && mappedProvider.isNotEmpty()) { SwapPairModel( diff --git a/features/swap/data/src/main/java/com/tangem/feature/swap/converters/SwapPairInfoConverter.kt b/features/swap/data/src/main/java/com/tangem/feature/swap/converters/SwapPairInfoConverter.kt index 1080578a05..414a2649d7 100644 --- a/features/swap/data/src/main/java/com/tangem/feature/swap/converters/SwapPairInfoConverter.kt +++ b/features/swap/data/src/main/java/com/tangem/feature/swap/converters/SwapPairInfoConverter.kt @@ -25,9 +25,9 @@ class SwapPairInfoConverter : Converter