From faf6c2e31fcb90e3a0e6754b4f4115ede6778785 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 6 Nov 2025 12:07:02 +0100 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/domain/onramp/GetOnrampOffersUseCase.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampOffersUseCase.kt b/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampOffersUseCase.kt index 1fc0a6cf02..1055eb1b8e 100644 --- a/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampOffersUseCase.kt +++ b/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampOffersUseCase.kt @@ -67,12 +67,16 @@ class GetOnrampOffersUseCase( } private fun findRecentOffer(offers: List, transactions: List): OnrampOffer? { - val lastTransaction = transactions.maxByOrNull { it.timestamp } ?: return null - - return offers.find { offer -> - offer.quote.provider.info.name == lastTransaction.providerName && - offer.quote.paymentMethod.name == lastTransaction.paymentMethod && isRecentUsed(lastTransaction.status) + if (transactions.isEmpty()) return null + val matchingPairs = transactions.mapNotNull { transaction -> + if (!isRecentUsed(transaction.status)) return@mapNotNull null + val matchingOffer = offers.find { offer -> + offer.quote.provider.info.name == transaction.providerName && + offer.quote.paymentMethod.name == transaction.paymentMethod + } + matchingOffer?.let { it to transaction } } + return matchingPairs.maxByOrNull { (_, transaction) -> transaction.timestamp }?.first } private fun findBestRateOffer(offers: List, isGooglePayAvailable: Boolean): OnrampOffer? {