diff --git a/data/visa/src/main/kotlin/com/tangem/data/pay/flow/DefaultPaymentAccountStatusFetcher.kt b/data/visa/src/main/kotlin/com/tangem/data/pay/flow/DefaultPaymentAccountStatusFetcher.kt index 3fa879fce1..c1d78f58de 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/pay/flow/DefaultPaymentAccountStatusFetcher.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/pay/flow/DefaultPaymentAccountStatusFetcher.kt @@ -216,7 +216,6 @@ internal class DefaultPaymentAccountStatusFetcher @Inject constructor( return if (hasActiveIssueOrder) { PaymentAccountStatusValue.Inactive( source = StatusSource.ACTUAL, - cryptoCurrency = tangemPayCurrencyFactory.create(userWalletId), tariffPlan = getTangemPayTariffPlanStateUseCase( userWalletId = userWalletId, tariff = tariffPlan, @@ -229,7 +228,6 @@ internal class DefaultPaymentAccountStatusFetcher @Inject constructor( } else { PaymentAccountStatusValue.AwaitingPlanSelection( source = StatusSource.ACTUAL, - cryptoCurrency = tangemPayCurrencyFactory.create(userWalletId), tariffPlan = tariffPlan, ) } diff --git a/data/visa/src/test/kotlin/com/tangem/data/pay/converter/PaymentAccountStatusValueDMConverterTest.kt b/data/visa/src/test/kotlin/com/tangem/data/pay/converter/PaymentAccountStatusValueDMConverterTest.kt index cfdc2fe9f6..9664f76be3 100644 --- a/data/visa/src/test/kotlin/com/tangem/data/pay/converter/PaymentAccountStatusValueDMConverterTest.kt +++ b/data/visa/src/test/kotlin/com/tangem/data/pay/converter/PaymentAccountStatusValueDMConverterTest.kt @@ -108,7 +108,6 @@ internal class PaymentAccountStatusValueDMConverterTest { // GIVEN val domain = PaymentAccountStatusValue.AwaitingPlanSelection( source = StatusSource.ACTUAL, - cryptoCurrency = cryptoCurrency, tariffPlan = mockk(), ) @@ -128,7 +127,6 @@ internal class PaymentAccountStatusValueDMConverterTest { availableBalance = BigDecimal("100"), currency = "USD", ), - cryptoCurrency = cryptoCurrency, tariffPlan = mockk(), ) diff --git a/domain/models/src/main/kotlin/com/tangem/domain/models/account/PaymentAccountStatusValue.kt b/domain/models/src/main/kotlin/com/tangem/domain/models/account/PaymentAccountStatusValue.kt index 41e8ebdeaf..c11d7eba1f 100644 --- a/domain/models/src/main/kotlin/com/tangem/domain/models/account/PaymentAccountStatusValue.kt +++ b/domain/models/src/main/kotlin/com/tangem/domain/models/account/PaymentAccountStatusValue.kt @@ -107,13 +107,11 @@ sealed class PaymentAccountStatusValue { * Represents a state where KYC is approved but no tariff plan has been selected yet * * @property source The source of the status information. - * @property cryptoCurrency The crypto currency held by the account. * @property tariffPlan Current tariff plan */ @Serializable data class AwaitingPlanSelection( override val source: StatusSource, - val cryptoCurrency: CryptoCurrency.Token, val tariffPlan: TangemPayCustomerTariffPlan, ) : PaymentAccountStatusValue() @@ -122,14 +120,12 @@ sealed class PaymentAccountStatusValue { * * @property source The source of the status information. * @property fiatBalance The fiat balance of state. - * @property cryptoCurrency The crypto currency held by the account. * @property tariffPlan Current tariff plan */ @Serializable data class Inactive( override val source: StatusSource, val fiatBalance: FiatBalance, - val cryptoCurrency: CryptoCurrency.Token, val tariffPlan: TangemPayTariffPlanState, ) : PaymentAccountStatusValue() diff --git a/domain/visa/src/test/kotlin/com/tangem/domain/pay/usecase/GetCurrentTariffUseCaseTest.kt b/domain/visa/src/test/kotlin/com/tangem/domain/pay/usecase/GetCurrentTariffUseCaseTest.kt index 22723b4cfb..0f451ada78 100644 --- a/domain/visa/src/test/kotlin/com/tangem/domain/pay/usecase/GetCurrentTariffUseCaseTest.kt +++ b/domain/visa/src/test/kotlin/com/tangem/domain/pay/usecase/GetCurrentTariffUseCaseTest.kt @@ -74,7 +74,6 @@ internal class GetCurrentTariffUseCaseTest { private fun awaitingPlanSelection(source: StatusSource, tariff: TangemPayCustomerTariffPlan) = PaymentAccountStatusValue.AwaitingPlanSelection( source = source, - cryptoCurrency = mockk(), tariffPlan = tariff, ) diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/express/PreviewEmptyExpressTransactionsComponent.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/express/PreviewEmptyExpressTransactionsComponent.kt index e4c2e25cc3..944bfa2c17 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/express/PreviewEmptyExpressTransactionsComponent.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/components/express/PreviewEmptyExpressTransactionsComponent.kt @@ -38,30 +38,6 @@ internal class PreviewEmptyExpressTransactionsComponent : ExpressTransactionsCom fromSymbol = "USD", iconState = ExpressTransactionStateIconUM.None, ), - sampleOnrampUM( - txId = "preview-onramp-2", - title = "Buying USDC", - activeStatusText = "Waiting for payment", - activeStatus = OnrampStatus.Status.WaitingForPayment, - timestampAgo = "1h ago", - toAmount = "250.00", - toSymbol = "USDC", - fromAmount = "250.00", - fromSymbol = "EUR", - iconState = ExpressTransactionStateIconUM.Warning, - ), - sampleOnrampUM( - txId = "preview-onramp-3", - title = "Buying USDC", - activeStatusText = "Failed", - activeStatus = OnrampStatus.Status.Failed, - timestampAgo = "2d ago", - toAmount = "50.00", - toSymbol = "USDC", - fromAmount = "50.00", - fromSymbol = "USD", - iconState = ExpressTransactionStateIconUM.Error, - ), ) return ExpressTransactionsBlockState( transactions = sample, diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardPageModel.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardPageModel.kt index 11672b695f..161d6b115d 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardPageModel.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardPageModel.kt @@ -34,6 +34,7 @@ import com.tangem.domain.models.pay.TangemPayCard import com.tangem.domain.models.pay.TangemPayCardLimitPeriod import com.tangem.domain.models.pay.TangemPayCardState import com.tangem.domain.models.pay.isFrozen +import com.tangem.domain.pay.TangemPayCurrencyFactory import com.tangem.domain.pay.flow.PaymentAccountStatusFetcher import com.tangem.domain.pay.flow.PaymentAccountStatusSupplier import com.tangem.domain.pay.model.TangemPayTopUpData @@ -81,6 +82,7 @@ internal class TangemPayCardPageModel @Inject constructor( private val changeCardFrozenStateUseCase: ChangeCardFrozenStateUseCase, private val cardDetailsEventListener: CardDetailsEventListener, private val cardDetailsControllerFactory: TangemPayCardDetailsController.Factory, + tangemPayCurrencyFactory: TangemPayCurrencyFactory, ) : Model(), ViewPinListener, ReissueCardListener, AddFundsListener, CloseCardListener { private val params: TangemPayCardPageComponent.Params = paramsContainer.require() @@ -106,8 +108,7 @@ internal class TangemPayCardPageModel @Inject constructor( MutableStateFlow(persistentListOf()) val cardControllersState: StateFlow> = _cardControllersState - private val cryptoCurrency - get() = currentStatus.value.cryptoCurrency + private val cryptoCurrency = tangemPayCurrencyFactory.create(userWalletId) val uiState: StateFlow field = MutableStateFlow( diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt index 635c7699e9..d6d7a7946c 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt @@ -26,6 +26,7 @@ import com.tangem.domain.feedback.models.WalletMetaInfo import com.tangem.domain.models.TokenReceiveConfig import com.tangem.domain.models.account.* import com.tangem.domain.models.currency.CryptoCurrency +import com.tangem.domain.pay.TangemPayCurrencyFactory import com.tangem.domain.pay.flow.PaymentAccountStatusFetcher import com.tangem.domain.pay.flow.PaymentAccountStatusSupplier import com.tangem.domain.pay.model.TangemPayTopUpData @@ -84,6 +85,7 @@ internal class TangemPayDetailsModel @Inject constructor( private val getCashbackSummaryUseCase: GetCashbackSummaryUseCase, private val getCashbackDeactivationDismissedUseCase: GetCashbackDeactivationDismissedUseCase, private val setCashbackDeactivationDismissedUseCase: SetCashbackDeactivationDismissedUseCase, + tangemPayCurrencyFactory: TangemPayCurrencyFactory, ) : Model(), TangemPayTxHistoryUiActions, TangemPayDetailIntents, @@ -97,8 +99,7 @@ internal class TangemPayDetailsModel @Inject constructor( private val userWalletId get() = currentStatus.value.userWalletId - val cryptoCurrency - get() = currentStatus.value.cryptoCurrency + val cryptoCurrency: CryptoCurrency.Token = tangemPayCurrencyFactory.create(userWalletId) private val stateFactory = TangemPayDetailsStateFactory( onBack = router::pop, diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/utils/PaymentAccountStatusExt.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/utils/PaymentAccountStatusExt.kt index d5f47b70a5..626966330e 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/utils/PaymentAccountStatusExt.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/utils/PaymentAccountStatusExt.kt @@ -3,21 +3,11 @@ package com.tangem.features.tangempay.utils import com.tangem.domain.models.account.AccountStatus import com.tangem.domain.models.account.PaymentAccountStatusValue import com.tangem.domain.models.account.TangemPayCustomerTariffPlan -import com.tangem.domain.models.currency.CryptoCurrency import com.tangem.domain.models.wallet.UserWalletId internal val AccountStatus.Payment.userWalletId: UserWalletId get() = account.userWalletId -internal val AccountStatus.Payment.cryptoCurrency: CryptoCurrency.Token - get() = when (val v = value) { - is PaymentAccountStatusValue.Loaded -> v.cryptoCurrency - is PaymentAccountStatusValue.Deactivated -> v.cryptoCurrency - is PaymentAccountStatusValue.Inactive -> v.cryptoCurrency - is PaymentAccountStatusValue.AwaitingPlanSelection -> v.cryptoCurrency - else -> error("TangemPayDetails opened with unsupported status: $v") - } - internal val AccountStatus.Payment.customerId: String? get() = when (val v = value) { is PaymentAccountStatusValue.Loaded -> v.customerId diff --git a/features/tangempay/details/impl/src/test/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModelTest.kt b/features/tangempay/details/impl/src/test/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModelTest.kt index 1935328a5e..6a1a18c533 100644 --- a/features/tangempay/details/impl/src/test/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModelTest.kt +++ b/features/tangempay/details/impl/src/test/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModelTest.kt @@ -148,6 +148,7 @@ internal class TangemPayDetailsModelTest { getCashbackSummaryUseCase = mockk(relaxed = true), getCashbackDeactivationDismissedUseCase = mockk(relaxed = true), setCashbackDeactivationDismissedUseCase = mockk(relaxed = true), + tangemPayCurrencyFactory = mockk(relaxed = true), ) }