diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt index 27bc6e7e13..45653eeeea 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt @@ -9,7 +9,6 @@ import com.tangem.common.core.TangemError import com.tangem.common.core.TangemSdkError import com.tangem.common.deserialization.WalletDataDeserializer import com.tangem.common.extensions.* -import com.tangem.common.map import com.tangem.common.tlv.Tlv import com.tangem.common.tlv.TlvDecoder import com.tangem.crypto.CryptoUtils @@ -145,11 +144,11 @@ internal class ScanProductTask( card = cardDto, session = session, ) { scanResponseResult -> - callback( - scanResponseResult.map { scanResponse -> - scanResponse.copy(visaCardActivationStatus = result.data) - }, - ) + // callback( + // scanResponseResult.map { scanResponse -> + // scanResponse.copy(visaCardActivationStatus = result.data) + // }, + // ) } } is CompletionResult.Failure -> { diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/utils/Mapper.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/utils/Mapper.kt index ea08934377..2b08bba4a9 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/utils/Mapper.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/utils/Mapper.kt @@ -10,7 +10,7 @@ internal val UserWallet.sensitiveInformation: UserWalletSensitiveInformation get() = when (this) { is UserWallet.Cold -> UserWalletSensitiveInformation( wallets = scanResponse.card.wallets, - visaCardActivationStatus = scanResponse.visaCardActivationStatus, + // visaCardActivationStatus = scanResponse.visaCardActivationStatus, mobileWallets = null, ) is UserWallet.Hot -> UserWalletSensitiveInformation( @@ -30,7 +30,7 @@ internal val UserWallet.publicInformation: UserWalletPublicInformation card = scanResponse.card.copy( wallets = emptyList(), ), - visaCardActivationStatus = null, + // visaCardActivationStatus = null, ), hasBackupError = hasBackupError, hotWalletId = null, @@ -80,7 +80,7 @@ internal fun UserWallet.updateWith(sensitiveInformation: UserWalletSensitiveInfo card = scanResponse.card.copy( wallets = requireNotNull(sensitiveInformation.wallets), ), - visaCardActivationStatus = sensitiveInformation.visaCardActivationStatus, + // visaCardActivationStatus = sensitiveInformation.visaCardActivationStatus, ), ) } @@ -113,7 +113,7 @@ internal fun UserWallet.lock(): UserWallet = when (this) { card = scanResponse.card.copy( wallets = emptyList(), ), - visaCardActivationStatus = null, + // visaCardActivationStatus = null, ), ) } diff --git a/app/src/main/java/com/tangem/tap/domain/visa/VisaCardScanHandler.kt b/app/src/main/java/com/tangem/tap/domain/visa/VisaCardScanHandler.kt index 931d258b38..2e96094cf1 100644 --- a/app/src/main/java/com/tangem/tap/domain/visa/VisaCardScanHandler.kt +++ b/app/src/main/java/com/tangem/tap/domain/visa/VisaCardScanHandler.kt @@ -10,6 +10,7 @@ import com.tangem.common.extensions.toHexString import com.tangem.core.error.ext.tangemError import com.tangem.datasource.local.visa.VisaAuthTokenStorage import com.tangem.domain.card.common.visa.VisaWalletPublicKeyUtility +import com.tangem.domain.visa.model.VisaCardActivationStatus import com.tangem.domain.visa.error.VisaActivationError import com.tangem.domain.visa.error.VisaApiError import com.tangem.domain.visa.error.VisaCardScanError diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt index ec4e9e12ab..521d22b51a 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt @@ -4,7 +4,6 @@ import com.tangem.domain.card.common.util.cardTypesResolver import com.tangem.domain.card.common.util.twinsIsTwinned import com.tangem.domain.models.scan.CardDTO import com.tangem.domain.models.scan.ScanResponse -import com.tangem.domain.visa.model.VisaCardActivationStatus import com.tangem.tap.common.extensions.inject import com.tangem.tap.features.demo.DemoHelper import com.tangem.tap.proxy.redux.DaggerGraphState @@ -20,9 +19,10 @@ object OnboardingHelper { return when { response.cardTypesResolver.isVisaWallet() -> { - if (response.visaCardActivationStatus == null) error("Visa card activation status is null") - - response.visaCardActivationStatus !is VisaCardActivationStatus.Activated + // if (response.visaCardActivationStatus == null) error("Visa card activation status is null") + // + // response.visaCardActivationStatus !is VisaCardActivationStatus.Activated + return true } response.cardTypesResolver.isTangemTwins() -> { diff --git a/core/datasource/build.gradle.kts b/core/datasource/build.gradle.kts index 88c906000b..2633b0dc89 100644 --- a/core/datasource/build.gradle.kts +++ b/core/datasource/build.gradle.kts @@ -41,6 +41,7 @@ dependencies { implementation(projects.domain.nft.models) implementation(projects.domain.walletConnect.models) implementation(projects.domain.yieldSupply.models) + implementation(projects.domain.visa.models) /** Tangem libraries */ implementation(tangemDeps.blockchain) diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/MoshiModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/MoshiModule.kt index 1da93e6b44..c1e4a4f7dc 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/MoshiModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/MoshiModule.kt @@ -11,8 +11,6 @@ import com.tangem.datasource.local.config.providers.models.ProviderModel import com.tangem.datasource.local.network.entity.NetworkStatusDM import com.tangem.datasource.utils.SerializeNullsFactory import com.tangem.domain.models.scan.serialization.* -import com.tangem.domain.visa.model.VisaActivationRemoteState -import com.tangem.domain.visa.model.VisaCardActivationStatus import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -40,8 +38,8 @@ class MoshiModule { .add(BigIntegerAdapter()) .add(LocalDateAdapter()) .add(DateTimeAdapter()) - .add(VisaActivationRemoteState.jsonAdapter) - .add(VisaCardActivationStatus.jsonAdapter) + // .add(VisaActivationRemoteState.jsonAdapter) + // .add(VisaCardActivationStatus.jsonAdapter) .add( NamePolymorphicAdapterFactory.of(NetworkStatusDM::class.java) .withSubtype(NetworkStatusDM.Verified::class.java, "amounts") @@ -86,8 +84,8 @@ class MoshiModule { val typedAdapters = MoshiJsonConverter.getTangemSdkTypedAdapters() return Moshi.Builder().apply { - add(VisaActivationRemoteState.jsonAdapter) - add(VisaCardActivationStatus.jsonAdapter) + // add(VisaActivationRemoteState.jsonAdapter) + // add(VisaCardActivationStatus.jsonAdapter) adapters.forEach { this.add(it) } typedAdapters.forEach { add(it.key, it.value) } addLast(KotlinJsonAdapterFactory()) diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaApiRequestMaker.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaApiRequestMaker.kt index 7eb6f6e5fb..04aa38e0d9 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaApiRequestMaker.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaApiRequestMaker.kt @@ -54,7 +54,7 @@ internal class VisaApiRequestMaker @Inject constructor( userWalletsStore.update(userWalletId) { userWallet -> userWallet.requireColdWallet().copy( scanResponse = userWallet.scanResponse.copy( - visaCardActivationStatus = VisaCardActivationStatus.RefreshTokenExpired, + // visaCardActivationStatus = VisaCardActivationStatus.RefreshTokenExpired, ), ) } @@ -65,9 +65,9 @@ internal class VisaApiRequestMaker @Inject constructor( userWalletsStore.update(userWalletId) { userWallet -> userWallet.requireColdWallet().copy( scanResponse = userWallet.scanResponse.copy( - visaCardActivationStatus = VisaCardActivationStatus.Activated( - visaAuthTokens = newTokens, - ), + // visaCardActivationStatus = VisaCardActivationStatus.Activated( + // visaAuthTokens = newTokens, + // ), ), ) } @@ -93,8 +93,9 @@ internal class VisaApiRequestMaker @Inject constructor( @Throws private fun getAuthTokens(userWalletId: UserWalletId): VisaAuthTokens { val userWallet = findVisaUserWallet(userWalletId) - val status = userWallet.requireColdWallet().scanResponse.visaCardActivationStatus - ?: error("Visa card activation status not found") + // val status = userWallet.requireColdWallet().scanResponse.visaCardActivationStatus + // ?: error("Visa card activation status not found") + val status: VisaCardActivationStatus = TODO("Fix visaCardActivationStatus retrieval") if (status is VisaCardActivationStatus.RefreshTokenExpired) { throw RefreshTokenExpiredException() diff --git a/domain/card/build.gradle.kts b/domain/card/build.gradle.kts index 8fd9a047e4..a7eff175d4 100644 --- a/domain/card/build.gradle.kts +++ b/domain/card/build.gradle.kts @@ -22,6 +22,7 @@ dependencies { implementation(projects.domain.models) implementation(projects.domain.tokens.models) implementation(projects.domain.wallets.models) + implementation(projects.domain.visa.models) implementation(deps.timber) diff --git a/domain/models/build.gradle.kts b/domain/models/build.gradle.kts index fa609f56f6..f2d3d5a0cf 100644 --- a/domain/models/build.gradle.kts +++ b/domain/models/build.gradle.kts @@ -10,7 +10,6 @@ tasks.withType().configureEach { } dependencies { - api(projects.domain.visa.models) api(projects.domain.core) api(projects.core.utils) diff --git a/domain/models/src/main/kotlin/com/tangem/domain/models/scan/ScanResponse.kt b/domain/models/src/main/kotlin/com/tangem/domain/models/scan/ScanResponse.kt index 44caa2dc29..1b545dc1bb 100644 --- a/domain/models/src/main/kotlin/com/tangem/domain/models/scan/ScanResponse.kt +++ b/domain/models/src/main/kotlin/com/tangem/domain/models/scan/ScanResponse.kt @@ -5,7 +5,6 @@ import com.squareup.moshi.JsonClass import com.tangem.common.card.WalletData import com.tangem.common.extensions.ByteArrayKey import com.tangem.domain.models.scan.serialization.ScanResponseAsStringSerializer -import com.tangem.domain.visa.model.VisaCardActivationStatus import com.tangem.operations.backup.PrimaryCard import com.tangem.operations.derivation.ExtendedPublicKeysMap import kotlinx.serialization.Serializable @@ -21,7 +20,7 @@ data class ScanResponse( @Json(name = "productType") val productType: ProductType, @Json(name = "walletData") val walletData: WalletData?, @Json(name = "secondTwinPublicKey") val secondTwinPublicKey: String? = null, - @Json(name = "visaCardActivationStatus") val visaCardActivationStatus: VisaCardActivationStatus? = null, + // @Json(name = "visaCardActivationStatus") val visaCardActivationStatus: VisaCardActivationStatus? = null, @Json(name = "derivedKeys") val derivedKeys: Map = mapOf(), @Json(name = "primaryCard") val primaryCard: PrimaryCard? = null, ) diff --git a/domain/models/src/main/kotlin/com/tangem/domain/models/scan/serialization/ScanResponseAsStringSerializer.kt b/domain/models/src/main/kotlin/com/tangem/domain/models/scan/serialization/ScanResponseAsStringSerializer.kt index 62431daf4f..17a25655e1 100644 --- a/domain/models/src/main/kotlin/com/tangem/domain/models/scan/serialization/ScanResponseAsStringSerializer.kt +++ b/domain/models/src/main/kotlin/com/tangem/domain/models/scan/serialization/ScanResponseAsStringSerializer.kt @@ -4,8 +4,6 @@ import com.squareup.moshi.Moshi import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory import com.tangem.common.json.TangemSdkAdapter import com.tangem.domain.models.scan.ScanResponse -import com.tangem.domain.visa.model.VisaActivationRemoteState -import com.tangem.domain.visa.model.VisaCardActivationStatus import kotlinx.serialization.KSerializer import kotlinx.serialization.descriptors.PrimitiveKind import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor @@ -24,8 +22,8 @@ internal object ScanResponseAsStringSerializer : KSerializer { .add(TangemSdkAdapter.DateAdapter()) .add(TangemSdkAdapter.DerivationNodeAdapter()) .add(TangemSdkAdapter.FirmwareVersionAdapter()) // For PrimaryCard model - .add(VisaActivationRemoteState.jsonAdapter) - .add(VisaCardActivationStatus.jsonAdapter) + // .add(VisaActivationRemoteState.jsonAdapter) + // .add(VisaCardActivationStatus.jsonAdapter) .addLast(KotlinJsonAdapterFactory()) .build() diff --git a/domain/visa/models/build.gradle.kts b/domain/visa/models/build.gradle.kts index 2de3acff50..e528d11260 100644 --- a/domain/visa/models/build.gradle.kts +++ b/domain/visa/models/build.gradle.kts @@ -12,4 +12,7 @@ dependencies { implementation(deps.kotlin.serialization) implementation(deps.jodatime) implementation(projects.core.error) + + /** Domain models */ + implementation(projects.domain.models) } \ No newline at end of file diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/model/OnboardingVisaAccessCodeModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/model/OnboardingVisaAccessCodeModel.kt index b80bb62fda..b921e0641d 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/model/OnboardingVisaAccessCodeModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/accesscode/model/OnboardingVisaAccessCodeModel.kt @@ -14,11 +14,11 @@ import com.tangem.core.error.UniversalError import com.tangem.core.error.ext.universalError import com.tangem.core.ui.utils.showErrorDialog import com.tangem.domain.visa.error.VisaApiError -import com.tangem.domain.visa.model.VisaCardActivationStatus import com.tangem.domain.visa.model.VisaCardId import com.tangem.domain.visa.model.VisaCustomerWalletDataToSignRequest import com.tangem.domain.visa.repository.VisaActivationRepository import com.tangem.domain.visa.datasource.VisaAuthRemoteDataSource +import com.tangem.domain.visa.model.VisaActivationInput import com.tangem.features.onboarding.v2.visa.impl.child.accesscode.OnboardingVisaAccessCodeComponent import com.tangem.features.onboarding.v2.visa.impl.child.accesscode.ui.state.OnboardingVisaAccessCodeUM import com.tangem.features.onboarding.v2.visa.impl.child.welcome.model.analytics.OnboardingVisaAnalyticsEvent @@ -57,11 +57,12 @@ internal class OnboardingVisaAccessCodeModel @Inject constructor( ), ) - private val activationInput = when (val status = params.scanResponse.visaCardActivationStatus) { - is VisaCardActivationStatus.NotStartedActivation -> status.activationInput - is VisaCardActivationStatus.ActivationStarted -> status.activationInput - else -> error("Visa activation status is not set or incorrect for this step") - } + private val activationInput: VisaActivationInput = TODO("Fix visaCardActivationStatus retrieval") + // when (val status = params.scanResponse.visaCardActivationStatus) { + // is VisaCardActivationStatus.NotStartedActivation -> status.activationInput + // is VisaCardActivationStatus.ActivationStarted -> status.activationInput + // else -> error("Visa activation status is not set or incorrect for this step") + // } private val _uiState = MutableStateFlow(getInitialState()) diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/inprogress/model/OnboardingVisaInProgressModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/inprogress/model/OnboardingVisaInProgressModel.kt index 1786357959..3e7fbaa01c 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/inprogress/model/OnboardingVisaInProgressModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/child/inprogress/model/OnboardingVisaInProgressModel.kt @@ -12,15 +12,15 @@ import com.tangem.core.ui.utils.showErrorDialog import com.tangem.datasource.local.visa.VisaAuthTokenStorage import com.tangem.datasource.local.visa.VisaOTPStorage import com.tangem.domain.models.scan.ScanResponse +import com.tangem.domain.models.wallet.UserWallet +import com.tangem.domain.visa.datasource.VisaAuthRemoteDataSource import com.tangem.domain.visa.error.VisaActivationError import com.tangem.domain.visa.model.VisaActivationRemoteState import com.tangem.domain.visa.model.VisaAuthTokens import com.tangem.domain.visa.model.VisaCardActivationStatus import com.tangem.domain.visa.model.VisaCardId import com.tangem.domain.visa.repository.VisaActivationRepository -import com.tangem.domain.visa.datasource.VisaAuthRemoteDataSource import com.tangem.domain.wallets.builder.ColdUserWalletBuilder -import com.tangem.domain.models.wallet.UserWallet import com.tangem.domain.wallets.usecase.SaveWalletUseCase import com.tangem.features.onboarding.v2.visa.impl.child.inprogress.OnboardingVisaInProgressComponent.Config import com.tangem.features.onboarding.v2.visa.impl.child.inprogress.OnboardingVisaInProgressComponent.Params @@ -180,13 +180,15 @@ internal class OnboardingVisaInProgressModel @Inject constructor( onDone.emit(Params.DoneEvent.Activated) } + @Suppress("UnusedPrivateProperty") private suspend fun createUserWallet(scanResponse: ScanResponse, authTokens: VisaAuthTokens): UserWallet = withContext(dispatchers.io) { val newActivationStatus = VisaCardActivationStatus.Activated(visaAuthTokens = authTokens) requireNotNull( value = coldUserWalletBuilderFactory.create( - scanResponse = scanResponse.copy(visaCardActivationStatus = newActivationStatus), + // scanResponse = scanResponse.copy(visaCardActivationStatus = newActivationStatus), + scanResponse = scanResponse, ).build(), lazyMessage = { "User wallet not created" }, ) diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/model/OnboardingVisaModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/model/OnboardingVisaModel.kt index 4de22cecd9..c5df13cdd0 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/model/OnboardingVisaModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/visa/impl/model/OnboardingVisaModel.kt @@ -10,10 +10,6 @@ import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.ParamsContainer import com.tangem.domain.card.common.visa.VisaUtilities import com.tangem.domain.card.common.visa.VisaWalletPublicKeyUtility -import com.tangem.domain.visa.model.VisaActivationRemoteState -import com.tangem.domain.visa.model.VisaCardActivationStatus -import com.tangem.domain.visa.model.VisaCardWalletDataToSignRequest -import com.tangem.domain.visa.model.VisaCustomerWalletDataToSignRequest import com.tangem.domain.models.wallet.UserWallet import com.tangem.domain.models.wallet.isLocked import com.tangem.domain.wallets.usecase.GetWalletsUseCase @@ -143,74 +139,75 @@ internal class OnboardingVisaModel @Inject constructor( } private fun initializeRoute(): OnboardingVisaRoute { - return when (val activationStatus = params.scanResponse.visaCardActivationStatus) { - is VisaCardActivationStatus.ActivationStarted -> { - when (val remoteState = activationStatus.remoteState) { - is VisaActivationRemoteState.CardWalletSignatureRequired -> { - if (activationStatus.activationInput.isAccessCodeSet) { - OnboardingVisaRoute.WelcomeBack( - activationInput = activationStatus.activationInput, - dataToSignByCardWalletRequest = VisaCardWalletDataToSignRequest( - activationOrderInfo = remoteState.activationOrderInfo, - cardWalletAddress = activationStatus.cardWalletAddress, - ), - ) - } else { - OnboardingVisaRoute.AccessCode - } - } - is VisaActivationRemoteState.CustomerWalletSignatureRequired -> { - remoteState.getRoute(activationStatus) - } - VisaActivationRemoteState.PaymentAccountDeploying -> { - OnboardingVisaRoute.InProgress(from = OnboardingVisaRoute.InProgress.From.Approve) - } - VisaActivationRemoteState.WaitingForActivationFinishing -> { - OnboardingVisaRoute.InProgress(from = OnboardingVisaRoute.InProgress.From.PinCode) - } - is VisaActivationRemoteState.AwaitingPinCode -> { - OnboardingVisaRoute.PinCode( - activationOrderInfo = remoteState.activationOrderInfo, - pinCodeValidationError = false, - ) - } - VisaActivationRemoteState.Activated, - VisaActivationRemoteState.BlockedForActivation, - VisaActivationRemoteState.Failed, - -> error("Activation status is not correct for onboarding flow") - } - } - is VisaCardActivationStatus.NotStartedActivation -> OnboardingVisaRoute.Welcome - else -> error("Visa activation status is not correct for onboarding flow") - } + TODO("Fix visaCardActivationStatus retrieval") + // return when (val activationStatus = params.scanResponse.visaCardActivationStatus) { + // is VisaCardActivationStatus.ActivationStarted -> { + // when (val remoteState = activationStatus.remoteState) { + // is VisaActivationRemoteState.CardWalletSignatureRequired -> { + // if (activationStatus.activationInput.isAccessCodeSet) { + // OnboardingVisaRoute.WelcomeBack( + // activationInput = activationStatus.activationInput, + // dataToSignByCardWalletRequest = VisaCardWalletDataToSignRequest( + // activationOrderInfo = remoteState.activationOrderInfo, + // cardWalletAddress = activationStatus.cardWalletAddress, + // ), + // ) + // } else { + // OnboardingVisaRoute.AccessCode + // } + // } + // is VisaActivationRemoteState.CustomerWalletSignatureRequired -> { + // remoteState.getRoute(activationStatus) + // } + // VisaActivationRemoteState.PaymentAccountDeploying -> { + // OnboardingVisaRoute.InProgress(from = OnboardingVisaRoute.InProgress.From.Approve) + // } + // VisaActivationRemoteState.WaitingForActivationFinishing -> { + // OnboardingVisaRoute.InProgress(from = OnboardingVisaRoute.InProgress.From.PinCode) + // } + // is VisaActivationRemoteState.AwaitingPinCode -> { + // OnboardingVisaRoute.PinCode( + // activationOrderInfo = remoteState.activationOrderInfo, + // pinCodeValidationError = false, + // ) + // } + // VisaActivationRemoteState.Activated, + // VisaActivationRemoteState.BlockedForActivation, + // VisaActivationRemoteState.Failed, + // -> error("Activation status is not correct for onboarding flow") + // } + // } + // is VisaCardActivationStatus.NotStartedActivation -> OnboardingVisaRoute.Welcome + // else -> error("Visa activation status is not correct for onboarding flow") + // } } - private fun VisaActivationRemoteState.CustomerWalletSignatureRequired.getRoute( - activationStatus: VisaCardActivationStatus.ActivationStarted, - ): OnboardingVisaRoute { - val foundWalletCardId = tryToFindExistingWalletCardId(this.activationOrderInfo.customerWalletAddress) - val request = VisaCustomerWalletDataToSignRequest( - orderId = this.activationOrderInfo.orderId, - cardWalletAddress = activationStatus.cardWalletAddress, - customerWalletAddress = this.activationOrderInfo.customerWalletAddress, - ) - val preparationDataForApprove = PreparationDataForApprove( - customerWalletAddress = this.activationOrderInfo.customerWalletAddress, - request = request, - ) - - return if (foundWalletCardId != null) { - OnboardingVisaRoute.TangemWalletApproveOption( - preparationDataForApprove = preparationDataForApprove, - foundWalletCardId = foundWalletCardId, - allowNavigateBack = false, - ) - } else { - OnboardingVisaRoute.ChooseWallet( - preparationDataForApprove = preparationDataForApprove, - ) - } - } + // private fun VisaActivationRemoteState.CustomerWalletSignatureRequired.getRoute( + // activationStatus: VisaCardActivationStatus.ActivationStarted, + // ): OnboardingVisaRoute { + // val foundWalletCardId = tryToFindExistingWalletCardId(this.activationOrderInfo.customerWalletAddress) + // val request = VisaCustomerWalletDataToSignRequest( + // orderId = this.activationOrderInfo.orderId, + // cardWalletAddress = activationStatus.cardWalletAddress, + // customerWalletAddress = this.activationOrderInfo.customerWalletAddress, + // ) + // val preparationDataForApprove = PreparationDataForApprove( + // customerWalletAddress = this.activationOrderInfo.customerWalletAddress, + // request = request, + // ) + // + // return if (foundWalletCardId != null) { + // OnboardingVisaRoute.TangemWalletApproveOption( + // preparationDataForApprove = preparationDataForApprove, + // foundWalletCardId = foundWalletCardId, + // allowNavigateBack = false, + // ) + // } else { + // OnboardingVisaRoute.ChooseWallet( + // preparationDataForApprove = preparationDataForApprove, + // ) + // } + // } private fun tryToFindExistingWalletCardId(targetAddress: String): String? { val wallets = getWalletsUseCase.invokeSync().filter { it.isLocked.not() } diff --git a/features/tangempay/details/api/build.gradle.kts b/features/tangempay/details/api/build.gradle.kts index 7d64c9e77f..11df34c60d 100644 --- a/features/tangempay/details/api/build.gradle.kts +++ b/features/tangempay/details/api/build.gradle.kts @@ -15,6 +15,7 @@ dependencies { /** Domain */ implementation(projects.domain.models) + implementation(projects.domain.visa.models) /** Compose */ implementation(deps.compose.runtime)