From b28720df71faddfe1552233d5979e367ab0f812a Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 21 Mar 2024 17:56:30 +0800 Subject: [PATCH] Updated on 2026-08-14 --- .../paging/TxHistoryPagingSource.kt | 12 +--------- .../DefaultWalletManagersFacade.kt | 23 ++++++++++--------- .../walletmanager/WalletManagersFacade.kt | 8 ++----- 3 files changed, 15 insertions(+), 28 deletions(-) diff --git a/data/txhistory/src/main/kotlin/com/tangem/data/txhistory/repository/paging/TxHistoryPagingSource.kt b/data/txhistory/src/main/kotlin/com/tangem/data/txhistory/repository/paging/TxHistoryPagingSource.kt index 2709c26dfc..d534e238ec 100644 --- a/data/txhistory/src/main/kotlin/com/tangem/data/txhistory/repository/paging/TxHistoryPagingSource.kt +++ b/data/txhistory/src/main/kotlin/com/tangem/data/txhistory/repository/paging/TxHistoryPagingSource.kt @@ -2,10 +2,8 @@ package com.tangem.data.txhistory.repository.paging import androidx.paging.PagingSource import androidx.paging.PagingState -import com.tangem.blockchain.common.Blockchain import com.tangem.data.common.cache.CacheRegistry import com.tangem.datasource.local.txhistory.TxHistoryItemsStore -import com.tangem.domain.common.extensions.fromNetworkId import com.tangem.domain.tokens.model.CryptoCurrency import com.tangem.domain.txhistory.models.Page import com.tangem.domain.txhistory.models.PaginationWrapper @@ -82,17 +80,9 @@ internal class TxHistoryPagingSource( } private suspend fun PaginationWrapper.addRecentTransactions(): PaginationWrapper { - val blockchain = Blockchain.fromNetworkId(sourceParams.currency.network.backendId) - - if (blockchain == null) { - Timber.e("Blockchain not found") - return this - } - val recentItems = walletManagersFacade.getRecentTransactions( userWalletId = sourceParams.userWalletId, - blockchain = blockchain, - derivationPath = sourceParams.currency.network.derivationPath.value, + currency = sourceParams.currency, ) .filterUnconfirmedTransaction() .filterIfTxAlreadyAdded(apiItems = items) diff --git a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/DefaultWalletManagersFacade.kt b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/DefaultWalletManagersFacade.kt index 15b93ba08e..276758748b 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/DefaultWalletManagersFacade.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/DefaultWalletManagersFacade.kt @@ -520,27 +520,28 @@ class DefaultWalletManagersFacade( override suspend fun getRecentTransactions( userWalletId: UserWalletId, - blockchain: Blockchain, - derivationPath: String?, + currency: CryptoCurrency, ): List { - val walletManager = getOrCreateWalletManager( - userWalletId = userWalletId, - blockchain = blockchain, - derivationPath = derivationPath, - ) - val feePaidCurrency = blockchain.feePaidCurrency() + val walletManager = getOrCreateWalletManager(userWalletId = userWalletId, network = currency.network) if (walletManager == null) { - Timber.e("Unable to get a wallet manager for blockchain: $blockchain") + Timber.e("Unable to get a wallet manager for blockchain: ${currency.network.id}") return emptyList() } val transactionDataConverter = TransactionDataToTxHistoryItemConverter( walletAddresses = SdkAddressToAddressConverter.convertList(walletManager.wallet.addresses).toSet(), - feePaidCurrency = feePaidCurrency, + feePaidCurrency = walletManager.wallet.blockchain.feePaidCurrency(), ) - return walletManager.wallet.recentTransactions.mapNotNull(transactionDataConverter::convert) + return walletManager.wallet.recentTransactions + .filter { transaction -> + when (currency) { + is CryptoCurrency.Coin -> transaction.amount.type is AmountType.Coin + is CryptoCurrency.Token -> transaction.contractAddress == currency.contractAddress + } + } + .mapNotNull(transactionDataConverter::convert) } override suspend fun tokenBalance( diff --git a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/WalletManagersFacade.kt b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/WalletManagersFacade.kt index 543ef9006e..4636317765 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/WalletManagersFacade.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/WalletManagersFacade.kt @@ -227,12 +227,8 @@ interface WalletManagersFacade { network: Network, ): SimpleResult - /** Get recent transactions of [userWalletId] for [blockchain] with [derivationPath] */ - suspend fun getRecentTransactions( - userWalletId: UserWalletId, - blockchain: Blockchain, - derivationPath: String?, - ): List + /** Get recent transactions of [userWalletId] for [currency] */ + suspend fun getRecentTransactions(userWalletId: UserWalletId, currency: CryptoCurrency): List @Suppress("LongParameterList") suspend fun tokenBalance(