From be56fd039a7f78faade5de6e9527e68300b68a74 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 30 Nov 2023 17:51:22 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/datasource/api/express/TangemExpressApi.kt | 2 ++ .../java/com/tangem/feature/swap/SwapRepositoryImpl.kt | 4 ++++ .../tangem/feature/swap/domain/SwapInteractorImpl.kt | 10 +++++++--- .../com/tangem/feature/swap/domain/SwapRepository.kt | 2 ++ .../com/tangem/feature/swap/ui/SwapScreenContent.kt | 6 ++++++ 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/express/TangemExpressApi.kt b/core/datasource/src/main/java/com/tangem/datasource/api/express/TangemExpressApi.kt index b5ef12459c..b78d485fa6 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/express/TangemExpressApi.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/express/TangemExpressApi.kt @@ -32,6 +32,7 @@ interface TangemExpressApi { @Query("toNetwork") toNetwork: String, @Query("fromAmount") fromAmount: String, @Query("fromDecimals") fromDecimals: Int, + @Query("toDecimals") toDecimals: Int, @Query("providerId") providerId: String, @Query("rateType") rateType: String, ): ApiResponse @@ -44,6 +45,7 @@ interface TangemExpressApi { @Query("toNetwork") toNetwork: String, @Query("fromAmount") fromAmount: String, @Query("fromDecimals") fromDecimals: Int, + @Query("toDecimals") toDecimals: Int, @Query("providerId") providerId: String, @Query("rateType") rateType: String, @Query("toAddress") toAddress: String, diff --git a/features/swap/data/src/main/java/com/tangem/feature/swap/SwapRepositoryImpl.kt b/features/swap/data/src/main/java/com/tangem/feature/swap/SwapRepositoryImpl.kt index 338fafe196..90358d75df 100644 --- a/features/swap/data/src/main/java/com/tangem/feature/swap/SwapRepositoryImpl.kt +++ b/features/swap/data/src/main/java/com/tangem/feature/swap/SwapRepositoryImpl.kt @@ -168,6 +168,7 @@ internal class SwapRepositoryImpl @Inject constructor( toNetwork: String, fromAmount: String, fromDecimals: Int, + toDecimals: Int, providerId: String, rateType: RateType, ): AggregatedSwapDataModel { @@ -180,6 +181,7 @@ internal class SwapRepositoryImpl @Inject constructor( toNetwork = toNetwork, fromAmount = fromAmount, fromDecimals = fromDecimals, + toDecimals = toDecimals, providerId = providerId, rateType = rateType.name.lowercase(), ).getOrThrow() @@ -208,6 +210,7 @@ internal class SwapRepositoryImpl @Inject constructor( toNetwork: String, fromAmount: String, fromDecimals: Int, + toDecimals: Int, providerId: String, rateType: RateType, toAddress: String, @@ -221,6 +224,7 @@ internal class SwapRepositoryImpl @Inject constructor( toNetwork = toNetwork, fromAmount = fromAmount, fromDecimals = fromDecimals, + toDecimals = toDecimals, providerId = providerId, rateType = rateType.name.lowercase(), toAddress = toAddress, 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 b4e0208243..685e925ce8 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 @@ -270,6 +270,7 @@ internal class SwapInteractorImpl @Inject constructor( toNetwork = toToken.currency.network.backendId, fromAmount = amount.toStringWithRightOffset(), fromDecimals = amount.decimals, + toDecimals = toToken.currency.decimals, providerId = provider.providerId, rateType = RateType.FLOAT, ) @@ -462,6 +463,7 @@ internal class SwapInteractorImpl @Inject constructor( toNetwork = currencyToGet.currency.network.backendId, fromAmount = amount.toStringWithRightOffset(), fromDecimals = amount.decimals, + toDecimals = currencyToGet.currency.decimals, providerId = swapProvider.providerId, rateType = RateType.FLOAT, toAddress = currencyToGet.value.networkAddress?.defaultAddress ?: "", @@ -652,6 +654,7 @@ internal class SwapInteractorImpl @Inject constructor( fromAmount = amount.toStringWithRightOffset(), fromDecimals = amount.decimals, providerId = provider.providerId, + toDecimals = toToken.decimals, rateType = RateType.FLOAT, ) @@ -707,7 +710,7 @@ internal class SwapInteractorImpl @Inject constructor( swapAmount = amount, quotesLoadedState = swapState, isAllowedToSpend = isAllowedToSpend, - spenderAddress = requireNotNull(quoteModel.allowanceContract) { "Allowance contract is null" }, + spenderAddress = quoteModel.allowanceContract, ) state.copy( preparedSwapConfigState = state.preparedSwapConfigState.copy( @@ -776,6 +779,7 @@ internal class SwapInteractorImpl @Inject constructor( toNetwork = toToken.currency.network.backendId, fromAmount = amount.toStringWithRightOffset(), fromDecimals = amount.decimals, + toDecimals = toToken.currency.decimals, providerId = provider.providerId, rateType = RateType.FLOAT, toAddress = toToken.value.networkAddress?.defaultAddress ?: "", @@ -907,7 +911,7 @@ internal class SwapInteractorImpl @Inject constructor( fromTokenStatus: CryptoCurrencyStatus, swapAmount: SwapAmount, quotesLoadedState: SwapState.QuotesLoadedState, - spenderAddress: String, + spenderAddress: String?, isAllowedToSpend: Boolean, ): SwapState.QuotesLoadedState { val fromToken = fromTokenStatus.currency @@ -934,7 +938,7 @@ internal class SwapInteractorImpl @Inject constructor( derivationPath = derivationPath, fromToken = fromToken, swapAmount = swapAmount, - spenderAddress = spenderAddress, + spenderAddress = requireNotNull(spenderAddress) { "Spender address is null" }, ) val feeData = try { transactionManager.getFee( diff --git a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapRepository.kt b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapRepository.kt index c96bb13b19..9f90d4dc3d 100644 --- a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapRepository.kt +++ b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapRepository.kt @@ -25,6 +25,7 @@ interface SwapRepository { toNetwork: String, fromAmount: String, fromDecimals: Int, + toDecimals: Int, providerId: String, rateType: RateType, ): AggregatedSwapDataModel @@ -72,6 +73,7 @@ interface SwapRepository { toNetwork: String, fromAmount: String, fromDecimals: Int, + toDecimals: Int, providerId: String, rateType: RateType, toAddress: String, diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt index 95fd4ce997..cd6c2ea2fa 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt @@ -294,6 +294,12 @@ private fun SwapWarnings(warnings: List) { config = warning.notificationConfig, ) } + is SwapWarning.GeneralWarning -> { + Notification( + config = warning.notificationConfig, + iconTint = TangemTheme.colors.icon.warning, + ) + } else -> {} } SpacerH8()