Updated on 2026-08-14

This commit is contained in:
Tangem 2025-09-23 11:30:30 +03:00
parent 930ffd3261
commit e644ff7c96
19 changed files with 87 additions and 57 deletions

View file

@ -20,7 +20,7 @@ import com.tangem.domain.qrscanning.usecases.ListenToQrScanningUseCase
import com.tangem.domain.qrscanning.usecases.ParseQrCodeUseCase
import com.tangem.domain.tokens.GetCryptoCurrencyUseCase
import com.tangem.domain.tokens.GetNetworkAddressesUseCase
import com.tangem.domain.transaction.usecase.IsUtxoConsolidationAvailableUseCase
import com.tangem.domain.transaction.usecase.IsSelfSendAvailableUseCase
import com.tangem.domain.transaction.usecase.ValidateWalletAddressUseCase
import com.tangem.domain.transaction.usecase.ValidateWalletMemoUseCase
import com.tangem.domain.txhistory.usecase.GetFixedTxHistoryItemsUseCase
@ -62,7 +62,7 @@ internal class SendDestinationModel @Inject constructor(
private val getCryptoCurrencyUseCase: GetCryptoCurrencyUseCase,
private val getNetworkAddressesUseCase: GetNetworkAddressesUseCase,
private val getFixedTxHistoryItemsUseCase: GetFixedTxHistoryItemsUseCase,
private val isUtxoConsolidationAvailableUseCase: IsUtxoConsolidationAvailableUseCase,
private val isSelfSendAvailableUseCase: IsSelfSendAvailableUseCase,
private val listenToQrScanningUseCase: ListenToQrScanningUseCase,
private val parseQrCodeUseCase: ParseQrCodeUseCase,
private val analyticsEventHandler: AnalyticsEventHandler,
@ -197,7 +197,7 @@ internal class SendDestinationModel @Inject constructor(
waitForDelay(RECENT_LOAD_DELAY) { it }
}.conflate(),
) { destinationWalletList, txHistoryList ->
val isUtxoConsolidationAvailable = isUtxoConsolidationAvailableUseCase.invokeSync(
val isSelfSendAvailable = isSelfSendAvailableUseCase.invokeSync(
userWalletId = userWalletId,
network = cryptoCurrency.network,
)
@ -206,7 +206,7 @@ internal class SendDestinationModel @Inject constructor(
SendDestinationRecentListTransformer(
cryptoCurrency = cryptoCurrency,
senderAddress = senderAddresses.value.firstOrNull()?.address,
isUtxoConsolidationAvailable = isUtxoConsolidationAvailable,
isSelfSendAvailable = isSelfSendAvailable,
destinationWalletList = destinationWalletList,
txHistoryList = txHistoryList,
),

View file

@ -13,7 +13,7 @@ import kotlinx.collections.immutable.toPersistentList
internal class SendRecipientWalletListConverter(
private val senderAddress: String?,
private val isUtxoConsolidationAvailable: Boolean,
private val isSelfSendAvailable: Boolean,
) :
Converter<List<DestinationWalletUM?>, PersistentList<DestinationRecipientListUM>> {
override fun convert(value: List<DestinationWalletUM?>): PersistentList<DestinationRecipientListUM> {
@ -31,7 +31,7 @@ internal class SendRecipientWalletListConverter(
val isNotSameAddress = it.address != senderAddress
val isNotBlankAddress = it.address.isNotBlank()
isNotBlankAddress && isCoin && (isNotSameAddress || isUtxoConsolidationAvailable)
isNotBlankAddress && isCoin && (isNotSameAddress || isSelfSendAvailable)
}
.groupBy { item -> item.name }
.values.map { wallets ->

View file

@ -11,7 +11,7 @@ import com.tangem.utils.transformer.Transformer
internal class SendDestinationRecentListTransformer(
private val senderAddress: String?,
private val cryptoCurrency: CryptoCurrency,
private val isUtxoConsolidationAvailable: Boolean,
private val isSelfSendAvailable: Boolean,
private val destinationWalletList: List<DestinationWalletUM>,
private val txHistoryList: List<TxInfo>,
) : Transformer<DestinationUM> {
@ -21,7 +21,7 @@ internal class SendDestinationRecentListTransformer(
return state.copy(
wallets = SendRecipientWalletListConverter(
senderAddress = senderAddress,
isUtxoConsolidationAvailable = isUtxoConsolidationAvailable,
isSelfSendAvailable = isSelfSendAvailable,
).convert(destinationWalletList),
recent = SendRecipientHistoryListConverter(
cryptoCurrency = cryptoCurrency,