Updated on 2026-08-14

This commit is contained in:
Tangem 2023-02-03 23:42:40 +03:00
parent 7c882e6898
commit 337a839644
2 changed files with 15 additions and 2 deletions

View file

@ -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<Unit> {
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)
}

View file

@ -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)