Updated on 2026-08-14

This commit is contained in:
Tangem 2022-10-27 12:00:47 +05:00
parent c4de2ccd5f
commit 89eb1cae70
4 changed files with 42 additions and 25 deletions

View file

@ -17,6 +17,7 @@ import com.tangem.network.api.paymentology.RegisterKYCRequest
import com.tangem.network.api.paymentology.RegisterWalletRequest
import com.tangem.network.api.paymentology.RegisterWalletResponse
import com.tangem.network.api.paymentology.RegistrationResponse
import com.tangem.network.api.paymentology.tryExtractError
import com.tangem.operations.attestation.AttestWalletKeyResponse
import com.tangem.tap.common.extensions.safeUpdate
import com.tangem.tap.domain.getFirstToken
@ -61,13 +62,15 @@ class SaltPayActivationManager(
}
suspend fun checkRegistration(): Result<RegistrationResponse.Item> {
val registrationResponse = paymentologyService.checkRegistration(cardId, cardPublicKey).successOr { return it }
val response: RegistrationResponse = paymentologyService.checkRegistration(cardId, cardPublicKey)
.successOr { return it }
.tryExtractError<RegistrationResponse>()
.successOr { return it }
return try {
if (!registrationResponse.success || registrationResponse.results.isEmpty()) {
throw SaltPayActivationError.EmptyResponse(registrationResponse.error)
}
Result.Success(registrationResponse.results[0])
if (response.results.isEmpty()) throw SaltPayActivationError.EmptyResponse
Result.Success(response.results[0])
} catch (ex: SaltPayActivationError) {
Result.Failure(ex)
}
@ -75,6 +78,8 @@ class SaltPayActivationManager(
suspend fun requestAttestationChallenge(): Result<AttestationResponse> {
return paymentologyService.requestAttestationChallenge(cardId, cardPublicKey)
.successOr { return it }
.tryExtractError()
}
suspend fun sendTransactions(
@ -97,8 +102,9 @@ class SaltPayActivationManager(
cardSignature = attestResponse.cardSignature ?: byteArrayOf(),
pin = pinCode,
)
return paymentologyService.registerWallet(request)
.successOr { return it }
.tryExtractError()
}
suspend fun getAmountToClaim(): Result<Amount> {

View file

@ -37,8 +37,8 @@ sealed class SaltPayActivationError(
object NeedPin : SaltPayActivationError(3)
object NoGas : SaltPayActivationError(5) //
class EmptyResponse(message: String?) : SaltPayActivationError(6, message)
class CardNotFound(message: String?) : SaltPayActivationError(8, message)
object EmptyResponse : SaltPayActivationError(6)
object CardNotFound : SaltPayActivationError(8)
class CardDisabled(message: String?) : SaltPayActivationError(9, message)
class CardNotPassed(message: String?) : SaltPayActivationError(10, message)
object EmptyDynamicAttestResponse : SaltPayActivationError(11)

View file

@ -99,11 +99,6 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App
return@launch
}
if (!attestationResponse.success) {
onError(SaltPayActivationError.CardNotFound(attestationResponse.error))
return@launch
}
val registrationResponse = tangemSdkManager.runTaskAsync(
runnable = saltPayManager.makeRegistrationTask(attestationResponse.challenge!!),
cardId = saltPayManager.cardId,