From 3f6a17e340efabc804d22a375e63f1ed379d12cc Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 22 Nov 2023 11:31:08 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../feature/swap/domain/SwapInteractor.kt | 2 +- .../feature/swap/domain/SwapInteractorImpl.kt | 27 ++++++++++--------- .../feature/swap/viewmodels/SwapViewModel.kt | 2 +- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractor.kt b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractor.kt index 32e9ebdf94..c6ab0a7308 100644 --- a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractor.kt +++ b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractor.kt @@ -70,7 +70,7 @@ interface SwapInteractor { providers: List, amountToSwap: String, selectedFee: FeeType = FeeType.NORMAL, - ): SwapState + ): Map /** * Starts swap transaction, perform sign transaction 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 c851cc930a..dad225b375 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 @@ -281,11 +281,11 @@ internal class SwapInteractorImpl @Inject constructor( providers: List, amountToSwap: String, selectedFee: FeeType, - ): SwapState { + ): Map { syncWalletBalanceForTokens(networkId, listOf(fromToken, toToken)) val amountDecimal = toBigDecimalOrNull(amountToSwap) if (amountDecimal == null || amountDecimal.signum() == 0) { - return createEmptyAmountState(networkId, fromToken, toToken) + return providers.associateWith { createEmptyAmountState(networkId, fromToken, toToken) } } val amount = SwapAmount(amountDecimal, getTokenDecimals(fromToken)) val fromTokenAddress = getTokenAddress(fromToken) @@ -297,15 +297,18 @@ internal class SwapInteractorImpl @Inject constructor( } val isBalanceWithoutFeeEnough = isBalanceEnough(networkId, fromToken, amount, null) return if (isAllowedToSpend && isBalanceWithoutFeeEnough) { - loadSwapData( - networkId = networkId, - fromTokenAddress = fromTokenAddress, - toTokenAddress = toTokenAddress, - fromToken = fromToken, - toToken = toToken, - amount = amount, - selectedFee = selectedFee, - ) + // TODO + providers.associateWith { + loadSwapData( + networkId = networkId, + fromTokenAddress = fromTokenAddress, + toTokenAddress = toTokenAddress, + fromToken = fromToken, + toToken = toToken, + amount = amount, + selectedFee = selectedFee, + ) + } } else { loadQuoteData( networkId = networkId, @@ -315,7 +318,7 @@ internal class SwapInteractorImpl @Inject constructor( isAllowedToSpend = isAllowedToSpend, isBalanceWithoutFeeEnough = isBalanceWithoutFeeEnough, providers = providers, - ).entries.first().value // TODO + ) } } diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt index 987762b439..03199e51f5 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt @@ -251,7 +251,7 @@ internal class SwapViewModel @Inject constructor( providers = toProvidersList, amountToSwap = amount, selectedFee = dataState.selectedFee?.feeType ?: FeeType.NORMAL, - ) + ).entries.first().value// TODO } }, onSuccess = { swapState ->