From 337a839644f6ac5004ffffe44621f022851ed171 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 3 Feb 2023 23:42:40 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../products/wallet/saltPay/SaltPayActivationManager.kt | 9 ++++++++- .../wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt | 8 +++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayActivationManager.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayActivationManager.kt index edcdeaf564..57ebce4491 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayActivationManager.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayActivationManager.kt @@ -7,6 +7,7 @@ import com.tangem.blockchain.common.AmountType import com.tangem.blockchain.common.BlockchainSdkError import com.tangem.blockchain.common.TransactionSigner import com.tangem.blockchain.extensions.successOr +import com.tangem.common.core.TangemSdkError import com.tangem.common.extensions.guard import com.tangem.common.extensions.isZero import com.tangem.common.services.Result @@ -125,7 +126,13 @@ class SaltPayActivationManager( suspend fun claim(amountToClaim: BigDecimal, signer: TransactionSigner): Result { gnosisRegistrator.transferFrom(amountToClaim, signer).successOr { - return Result.Failure(SaltPayActivationError.ClaimTransactionFailed) + val userCancelledError = (it.error as? BlockchainSdkError.WrappedTangemError) + ?.tangemError as? TangemSdkError.UserCancelled + + return when (userCancelledError) { + null -> Result.Failure(SaltPayActivationError.ClaimTransactionFailed) + else -> Result.Failure(userCancelledError) + } } return Result.Success(Unit) } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt index b7bcb4761b..dfdfb619b5 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt @@ -4,6 +4,7 @@ import com.tangem.Message import com.tangem.blockchain.common.Amount import com.tangem.blockchain.extensions.successOr import com.tangem.common.Filter +import com.tangem.common.core.TangemSdkError import com.tangem.common.extensions.guard import com.tangem.common.services.Result import com.tangem.core.analytics.Analytics @@ -200,7 +201,11 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App } state.saltPayManager.claim(amountToClaim.value!!, signer).successOr { dispatchOnMain(OnboardingSaltPayAction.SetStep(SaltPayActivationStep.Claim)) - onException(it.error) + if (it.error is TangemSdkError.UserCancelled) { + handleInProgress = false + } else { + onException(it.error) + } return@launch } @@ -279,6 +284,7 @@ suspend fun SaltPayActivationManager.update( val registrationResponse = checkRegistration().successOr { return it } val amountToClaim = getAmountToClaimIfNeeded(this, currentAmountToClaim) + dispatchOnMain(OnboardingSaltPayAction.SetAmountToClaim(amountToClaim)) val newStep = try { determineStep(currentStep, amountToClaim, registrationResponse)