Updated on 2026-08-14
This commit is contained in:
parent
f1797da7ed
commit
03d40e8a3d
19 changed files with 48 additions and 45 deletions
|
|
@ -5,7 +5,7 @@ import com.tangem.core.ui.decompose.ComposableContentComponent
|
|||
|
||||
interface OnrampSuccessComponent : ComposableContentComponent {
|
||||
|
||||
data class Params(val txId: String)
|
||||
data class Params(val externalTxId: String)
|
||||
|
||||
interface Factory : ComponentFactory<Params, OnrampSuccessComponent>
|
||||
}
|
||||
|
|
@ -54,7 +54,7 @@ internal class OnrampSuccessComponentModel @Inject constructor(
|
|||
|
||||
private fun loadData() {
|
||||
modelScope.launch {
|
||||
getOnrampTransactionUseCase(txId = params.txId)
|
||||
getOnrampTransactionUseCase(externalTxId = params.externalTxId)
|
||||
.fold(
|
||||
ifLeft = {
|
||||
Timber.e(it.toString())
|
||||
|
|
@ -72,7 +72,7 @@ internal class OnrampSuccessComponentModel @Inject constructor(
|
|||
transaction.toCurrencyId,
|
||||
).getOrElse { error("Crypto currency not found") }
|
||||
|
||||
getOnrampStatusUseCase(txId = params.txId)
|
||||
getOnrampStatusUseCase(externalTxId = params.externalTxId)
|
||||
.fold(
|
||||
ifLeft = {
|
||||
Timber.e(it.toString())
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ internal class DefaultTokenDetailsRouter(
|
|||
)
|
||||
}
|
||||
|
||||
override fun openOnrampSuccess(txId: String) {
|
||||
router.push(AppRoute.OnrampSuccess(txId))
|
||||
override fun openOnrampSuccess(externalTxId: String) {
|
||||
router.push(AppRoute.OnrampSuccess(externalTxId))
|
||||
}
|
||||
}
|
||||
|
|
@ -20,5 +20,5 @@ internal interface InnerTokenDetailsRouter : TokenDetailsRouter {
|
|||
|
||||
fun openStaking(userWalletId: UserWalletId, cryptoCurrency: CryptoCurrency, yield: Yield)
|
||||
|
||||
fun openOnrampSuccess(txId: String)
|
||||
fun openOnrampSuccess(externalTxId: String)
|
||||
}
|
||||
|
|
@ -74,7 +74,7 @@ internal class OnrampStatusFactory @AssistedInject constructor(
|
|||
val selectedTx = bottomSheetConfig.value as? ExpressTransactionStateUM.OnrampUM ?: return
|
||||
|
||||
if (selectedTx.activeStatus.isTerminal) {
|
||||
onrampRemoveTransactionUseCase(txId = selectedTx.info.txId)
|
||||
onrampRemoveTransactionUseCase(externalTxId = selectedTx.info.txExternalId)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -97,14 +97,14 @@ internal class OnrampStatusFactory @AssistedInject constructor(
|
|||
|
||||
private suspend fun List<ExpressTransactionStateUM.OnrampUM>.clearHiddenTerminal() {
|
||||
this.filter { it.activeStatus.isHidden && it.activeStatus.isTerminal }
|
||||
.forEach { onrampRemoveTransactionUseCase(txId = it.info.txId) }
|
||||
.forEach { onrampRemoveTransactionUseCase(externalTxId = it.info.txExternalId) }
|
||||
}
|
||||
|
||||
private suspend fun sendStatusUpdateAnalytics(
|
||||
onrampTx: ExpressTransactionStateUM.OnrampUM,
|
||||
statusModel: OnrampStatus,
|
||||
) {
|
||||
val txId = statusModel.txId
|
||||
val externalTxId = statusModel.externalTxId
|
||||
val status = toAnalyticStatus(statusModel.status) ?: return
|
||||
|
||||
if (statusModel.status != onrampTx.activeStatus) {
|
||||
|
|
@ -116,7 +116,7 @@ internal class OnrampStatusFactory @AssistedInject constructor(
|
|||
fiatCurrency = onrampTx.fromCurrencyCode,
|
||||
),
|
||||
)
|
||||
onrampUpdateTransactionStatusUseCase(txId, statusModel.status)
|
||||
onrampUpdateTransactionStatusUseCase(externalTxId = externalTxId, statusModel.status)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -198,9 +198,9 @@ internal class TokenDetailsViewModel @Inject constructor(
|
|||
userWallet = getUserWalletUseCase(userWalletId).getOrNull() ?: error("UserWallet not found")
|
||||
}
|
||||
|
||||
private fun onBuyCurrencyDeepLink(txId: String) {
|
||||
private fun onBuyCurrencyDeepLink(externalTxId: String) {
|
||||
if (onrampFeatureToggles.isFeatureEnabled) {
|
||||
router.openOnrampSuccess(txId)
|
||||
router.openOnrampSuccess(externalTxId)
|
||||
} else {
|
||||
val currency = cryptoCurrencyStatus?.currency ?: return
|
||||
analyticsEventsHandler.send(TokenScreenAnalyticsEvent.Bought(currency.symbol))
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ internal class WalletDeepLinksHandler @Inject constructor(
|
|||
add(
|
||||
BuyCurrencyDeepLink(
|
||||
isOnrampFeatureEnabled = onrampFeatureToggles.isFeatureEnabled,
|
||||
onReceive = { txId ->
|
||||
scope.launch { onBuyCurrencyDeepLink(txId, userWallet) }
|
||||
onReceive = { externalTxId ->
|
||||
scope.launch { onBuyCurrencyDeepLink(externalTxId, userWallet) }
|
||||
},
|
||||
),
|
||||
)
|
||||
|
|
@ -107,9 +107,9 @@ internal class WalletDeepLinksHandler @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
private suspend fun onBuyCurrencyDeepLink(txId: String, userWallet: UserWallet) {
|
||||
private suspend fun onBuyCurrencyDeepLink(externalTxId: String, userWallet: UserWallet) {
|
||||
if (onrampFeatureToggles.isFeatureEnabled) {
|
||||
clickIntents.onOnrampSuccessClick(txId)
|
||||
clickIntents.onOnrampSuccessClick(externalTxId)
|
||||
} else {
|
||||
val cryptoCurrency = getCryptoCurrencyUseCase(userWallet.walletId).getOrNull() ?: return
|
||||
analyticsEventHandler.send(TokenScreenAnalyticsEvent.Bought(cryptoCurrency.symbol))
|
||||
|
|
|
|||
|
|
@ -129,8 +129,8 @@ internal class DefaultWalletRouter(
|
|||
}
|
||||
}
|
||||
|
||||
override fun openOnrampSuccessScreen(txId: String) {
|
||||
router.push(AppRoute.OnrampSuccess(txId))
|
||||
override fun openOnrampSuccessScreen(externalTxId: String) {
|
||||
router.push(AppRoute.OnrampSuccess(externalTxId))
|
||||
}
|
||||
|
||||
override fun openUrl(url: String) {
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ internal interface InnerWalletRouter : WalletRouter {
|
|||
/** Open onboarding screen */
|
||||
fun openOnboardingScreen(scanResponse: ScanResponse, continueBackup: Boolean = false)
|
||||
|
||||
/** Open onramp success screen for [txId] */
|
||||
fun openOnrampSuccessScreen(txId: String)
|
||||
/** Open onramp success screen for [externalTxId] */
|
||||
fun openOnrampSuccessScreen(externalTxId: String)
|
||||
|
||||
/** Open transaction history website by [url] */
|
||||
fun openUrl(url: String)
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ internal interface WalletContentClickIntents {
|
|||
|
||||
fun onOrganizeTokensClick()
|
||||
|
||||
fun onOnrampSuccessClick(txId: String)
|
||||
fun onOnrampSuccessClick(externalTxId: String)
|
||||
|
||||
fun onDismissMarketsOnboarding()
|
||||
|
||||
|
|
@ -99,8 +99,8 @@ internal class WalletContentClickIntentsImplementor @Inject constructor(
|
|||
router.openOrganizeTokensScreen(userWalletId = stateHolder.getSelectedWalletId())
|
||||
}
|
||||
|
||||
override fun onOnrampSuccessClick(txId: String) {
|
||||
router.openOnrampSuccessScreen(txId = txId)
|
||||
override fun onOnrampSuccessClick(externalTxId: String) {
|
||||
router.openOnrampSuccessScreen(externalTxId = externalTxId)
|
||||
}
|
||||
|
||||
override fun onDismissMarketsOnboarding() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue