From 904d69af90336f0a334e3a1cb55a2a6a5e3eaf5e Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 11 Dec 2024 21:41:39 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../java/com/tangem/tap/di/ActivityModule.kt | 6 +- .../exchangeServices/DefaultRampManager.kt | 8 +-- .../ExchangeServiceLoaderModule.kt | 6 +- ...ader.kt => DefaultExpressServiceLoader.kt} | 21 ++---- ...rviceLoader.kt => ExpressServiceLoader.kt} | 8 +-- .../tangem/data/tokens/di/TokensDataModule.kt | 6 +- .../repository/DefaultCurrenciesRepository.kt | 68 +++++++++++++++---- .../tokens/FetchCardTokenListUseCase.kt | 14 +++- .../tokens/FetchCurrencyStatusUseCase.kt | 9 ++- .../tokens/repository/CurrenciesRepository.kt | 12 +++- .../repository/MockCurrenciesRepository.kt | 10 ++- 11 files changed, 112 insertions(+), 56 deletions(-) rename core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/{DefaultSwapServiceLoader.kt => DefaultExpressServiceLoader.kt} (79%) rename core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/{SwapServiceLoader.kt => ExpressServiceLoader.kt} (69%) diff --git a/app/src/main/java/com/tangem/tap/di/ActivityModule.kt b/app/src/main/java/com/tangem/tap/di/ActivityModule.kt index e61ff4a8d6..85d5a6630b 100644 --- a/app/src/main/java/com/tangem/tap/di/ActivityModule.kt +++ b/app/src/main/java/com/tangem/tap/di/ActivityModule.kt @@ -1,7 +1,7 @@ package com.tangem.tap.di import com.tangem.blockchainsdk.utils.ExcludedBlockchains -import com.tangem.datasource.exchangeservice.swap.SwapServiceLoader +import com.tangem.datasource.exchangeservice.swap.ExpressServiceLoader import com.tangem.datasource.local.token.ExpressAssetsStore import com.tangem.domain.card.ScanCardUseCase import com.tangem.domain.card.repository.CardSdkConfigRepository @@ -49,7 +49,7 @@ internal object ActivityModule { @Singleton fun provideDefaultRampManager( appStateHolder: AppStateHolder, - swapServiceLoader: SwapServiceLoader, + expressServiceLoader: ExpressServiceLoader, currenciesRepository: CurrenciesRepository, getNetworkCoinStatusUseCase: GetNetworkCoinStatusUseCase, excludedBlockchains: ExcludedBlockchains, @@ -61,7 +61,7 @@ internal object ActivityModule { exchangeService = appStateHolder.exchangeService, buyService = Provider { requireNotNull(appStateHolder.buyService) }, sellService = Provider { requireNotNull(appStateHolder.sellService) }, - swapServiceLoader = swapServiceLoader, + expressServiceLoader = expressServiceLoader, currenciesRepository = currenciesRepository, getNetworkCoinStatusUseCase = getNetworkCoinStatusUseCase, excludedBlockchains = excludedBlockchains, diff --git a/app/src/main/java/com/tangem/tap/network/exchangeServices/DefaultRampManager.kt b/app/src/main/java/com/tangem/tap/network/exchangeServices/DefaultRampManager.kt index 8617e45745..46c87ba9b5 100644 --- a/app/src/main/java/com/tangem/tap/network/exchangeServices/DefaultRampManager.kt +++ b/app/src/main/java/com/tangem/tap/network/exchangeServices/DefaultRampManager.kt @@ -3,7 +3,7 @@ package com.tangem.tap.network.exchangeServices import com.tangem.blockchainsdk.utils.ExcludedBlockchains import com.tangem.datasource.api.express.models.TangemExpressValues.EMPTY_CONTRACT_ADDRESS_VALUE import com.tangem.datasource.api.express.models.response.Asset -import com.tangem.datasource.exchangeservice.swap.SwapServiceLoader +import com.tangem.datasource.exchangeservice.swap.ExpressServiceLoader import com.tangem.datasource.local.token.ExpressAssetsStore import com.tangem.domain.exchange.RampStateManager import com.tangem.domain.models.scan.ScanResponse @@ -25,7 +25,7 @@ internal class DefaultRampManager( private val exchangeService: ExchangeService?, private val buyService: Provider, private val sellService: Provider, - private val swapServiceLoader: SwapServiceLoader, + private val expressServiceLoader: ExpressServiceLoader, private val currenciesRepository: CurrenciesRepository, private val getNetworkCoinStatusUseCase: GetNetworkCoinStatusUseCase, private val dispatchers: CoroutineDispatcherProvider, @@ -92,12 +92,12 @@ internal class DefaultRampManager( } override fun getSwapInitializationStatus(userWalletId: UserWalletId): Flow { - return swapServiceLoader.getInitializationStatus(userWalletId) + return expressServiceLoader.getInitializationStatus(userWalletId) } private suspend fun getExchangeableFlag(userWalletId: UserWalletId, cryptoCurrency: CryptoCurrency): Boolean { return withContext(dispatchers.io) { - val asset = swapServiceLoader.getInitializationStatus(userWalletId) + val asset = expressServiceLoader.getInitializationStatus(userWalletId) .value .getOrNull() ?.find { cryptoCurrency.findAssetPredicate(it) } diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/exchangeservice/ExchangeServiceLoaderModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/exchangeservice/ExchangeServiceLoaderModule.kt index 03ab7fa98a..d9ae44675f 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/exchangeservice/ExchangeServiceLoaderModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/exchangeservice/ExchangeServiceLoaderModule.kt @@ -1,7 +1,7 @@ package com.tangem.datasource.di.exchangeservice -import com.tangem.datasource.exchangeservice.swap.DefaultSwapServiceLoader -import com.tangem.datasource.exchangeservice.swap.SwapServiceLoader +import com.tangem.datasource.exchangeservice.swap.DefaultExpressServiceLoader +import com.tangem.datasource.exchangeservice.swap.ExpressServiceLoader import dagger.Binds import dagger.Module import dagger.hilt.InstallIn @@ -14,5 +14,5 @@ internal interface ExchangeServiceLoaderModule { @Binds @Singleton - fun bindSwapServiceLoader(defaultSwapServiceLoader: DefaultSwapServiceLoader): SwapServiceLoader + fun bindExpressServiceLoader(defaultExpressServiceLoader: DefaultExpressServiceLoader): ExpressServiceLoader } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/DefaultSwapServiceLoader.kt b/core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/DefaultExpressServiceLoader.kt similarity index 79% rename from core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/DefaultSwapServiceLoader.kt rename to core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/DefaultExpressServiceLoader.kt index 90a267cc3d..c2818ecd87 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/DefaultSwapServiceLoader.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/DefaultExpressServiceLoader.kt @@ -2,11 +2,9 @@ package com.tangem.datasource.exchangeservice.swap import com.tangem.datasource.api.common.response.getOrThrow import com.tangem.datasource.api.express.TangemExpressApi -import com.tangem.datasource.api.express.models.TangemExpressValues.EMPTY_CONTRACT_ADDRESS_VALUE import com.tangem.datasource.api.express.models.request.AssetsRequestBody import com.tangem.datasource.api.express.models.request.LeastTokenInfo import com.tangem.datasource.api.express.models.response.Asset -import com.tangem.datasource.api.tangemTech.models.UserTokensResponse import com.tangem.datasource.local.token.ExpressAssetsStore import com.tangem.domain.core.lce.Lce import com.tangem.domain.core.utils.lceContent @@ -23,39 +21,32 @@ import javax.inject.Inject typealias InitializationStatusFlow = MutableStateFlow>> /** - * Default implementation of [SwapServiceLoader] + * Default implementation of [ExpressServiceLoader] * * @property tangemExpressApi express api * @property expressAssetsStore local storage * [REDACTED_AUTHOR] */ -internal class DefaultSwapServiceLoader @Inject constructor( +internal class DefaultExpressServiceLoader @Inject constructor( private val tangemExpressApi: TangemExpressApi, private val expressAssetsStore: ExpressAssetsStore, private val dispatchers: CoroutineDispatcherProvider, -) : SwapServiceLoader { +) : ExpressServiceLoader { private val initializationStatuses = MutableStateFlow>(value = emptyMap()) - override suspend fun update(userWalletId: UserWalletId, userTokens: UserTokensResponse) { + override suspend fun update(userWalletId: UserWalletId, userTokens: List) { withContext(dispatchers.io) { val initializationStatus = getInitializationStatusInternal(userWalletId) initializationStatus.update { lceLoading() } try { - val tokensList = userTokens.tokens.map { - LeastTokenInfo( - contractAddress = it.contractAddress ?: EMPTY_CONTRACT_ADDRESS_VALUE, - network = it.networkId, - ) - } - - if (tokensList.isNotEmpty()) { + if (userTokens.isNotEmpty()) { val response = tangemExpressApi.getAssets( - body = AssetsRequestBody(tokensList = tokensList), + body = AssetsRequestBody(tokensList = userTokens), ).getOrThrow() expressAssetsStore.store(userWalletId, response) diff --git a/core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/SwapServiceLoader.kt b/core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/ExpressServiceLoader.kt similarity index 69% rename from core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/SwapServiceLoader.kt rename to core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/ExpressServiceLoader.kt index 0bee5e6d0b..72e59dba3a 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/SwapServiceLoader.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/exchangeservice/swap/ExpressServiceLoader.kt @@ -1,20 +1,20 @@ package com.tangem.datasource.exchangeservice.swap +import com.tangem.datasource.api.express.models.request.LeastTokenInfo import com.tangem.datasource.api.express.models.response.Asset -import com.tangem.datasource.api.tangemTech.models.UserTokensResponse import com.tangem.domain.core.lce.Lce import com.tangem.domain.wallets.models.UserWalletId import kotlinx.coroutines.flow.StateFlow /** - * Swap service loader + * Express service loader * [REDACTED_AUTHOR] */ -interface SwapServiceLoader { +interface ExpressServiceLoader { /** Update service using [userWalletId] and [userTokens] */ - suspend fun update(userWalletId: UserWalletId, userTokens: UserTokensResponse) + suspend fun update(userWalletId: UserWalletId, userTokens: List) /** Get initialization status by [userWalletId] */ fun getInitializationStatus(userWalletId: UserWalletId): StateFlow>> diff --git a/data/tokens/src/main/kotlin/com/tangem/data/tokens/di/TokensDataModule.kt b/data/tokens/src/main/kotlin/com/tangem/data/tokens/di/TokensDataModule.kt index 3a211c70b8..4250ccab0e 100644 --- a/data/tokens/src/main/kotlin/com/tangem/data/tokens/di/TokensDataModule.kt +++ b/data/tokens/src/main/kotlin/com/tangem/data/tokens/di/TokensDataModule.kt @@ -4,7 +4,7 @@ import com.tangem.blockchainsdk.utils.ExcludedBlockchains import com.tangem.data.common.cache.CacheRegistry import com.tangem.data.tokens.repository.* import com.tangem.datasource.api.tangemTech.TangemTechApi -import com.tangem.datasource.exchangeservice.swap.SwapServiceLoader +import com.tangem.datasource.exchangeservice.swap.ExpressServiceLoader import com.tangem.datasource.local.network.NetworksStatusesStore import com.tangem.datasource.local.preferences.AppPreferencesStore import com.tangem.datasource.local.quote.QuotesStore @@ -31,7 +31,7 @@ internal object TokensDataModule { walletManagersFacade: WalletManagersFacade, cacheRegistry: CacheRegistry, dispatchers: CoroutineDispatcherProvider, - swapServiceLoader: SwapServiceLoader, + expressServiceLoader: ExpressServiceLoader, excludedBlockchains: ExcludedBlockchains, ): CurrenciesRepository { return DefaultCurrenciesRepository( @@ -41,7 +41,7 @@ internal object TokensDataModule { cacheRegistry = cacheRegistry, appPreferencesStore = appPreferencesStore, dispatchers = dispatchers, - swapServiceLoader = swapServiceLoader, + expressServiceLoader = expressServiceLoader, excludedBlockchains = excludedBlockchains, ) } diff --git a/data/tokens/src/main/kotlin/com/tangem/data/tokens/repository/DefaultCurrenciesRepository.kt b/data/tokens/src/main/kotlin/com/tangem/data/tokens/repository/DefaultCurrenciesRepository.kt index b1b23ef78b..a5d7aa511a 100644 --- a/data/tokens/src/main/kotlin/com/tangem/data/tokens/repository/DefaultCurrenciesRepository.kt +++ b/data/tokens/src/main/kotlin/com/tangem/data/tokens/repository/DefaultCurrenciesRepository.kt @@ -14,9 +14,11 @@ import com.tangem.data.tokens.utils.CustomTokensMerger import com.tangem.data.tokens.utils.UserTokensBackwardCompatibility import com.tangem.datasource.api.common.response.ApiResponseError import com.tangem.datasource.api.common.response.getOrThrow +import com.tangem.datasource.api.express.models.TangemExpressValues.EMPTY_CONTRACT_ADDRESS_VALUE +import com.tangem.datasource.api.express.models.request.LeastTokenInfo import com.tangem.datasource.api.tangemTech.TangemTechApi import com.tangem.datasource.api.tangemTech.models.UserTokensResponse -import com.tangem.datasource.exchangeservice.swap.SwapServiceLoader +import com.tangem.datasource.exchangeservice.swap.ExpressServiceLoader import com.tangem.datasource.local.preferences.AppPreferencesStore import com.tangem.datasource.local.preferences.PreferencesKeys import com.tangem.datasource.local.preferences.utils.getObject @@ -48,7 +50,7 @@ internal class DefaultCurrenciesRepository( private val walletManagersFacade: WalletManagersFacade, private val cacheRegistry: CacheRegistry, private val appPreferencesStore: AppPreferencesStore, - private val swapServiceLoader: SwapServiceLoader, + private val expressServiceLoader: ExpressServiceLoader, private val dispatchers: CoroutineDispatcherProvider, excludedBlockchains: ExcludedBlockchains, ) : CurrenciesRepository { @@ -95,7 +97,7 @@ internal class DefaultCurrenciesRepository( response = updatedResponse, ) - fetchExchangeableUserMarketCoinsByIds(userWalletId, updatedResponse) + fetchExpressAssetsByNetworkIds(userWalletId, updatedResponse) } } @@ -117,7 +119,7 @@ internal class DefaultCurrenciesRepository( userWalletId = userWalletId, response = updatedResponse, ) - fetchExchangeableUserMarketCoinsByIds(userWalletId, updatedResponse) + fetchExpressAssetsByNetworkIds(userWalletId, updatedResponse) } } @@ -214,21 +216,33 @@ internal class DefaultCurrenciesRepository( } } - override suspend fun getSingleCurrencyWalletPrimaryCurrency(userWalletId: UserWalletId): CryptoCurrency { + override suspend fun getSingleCurrencyWalletPrimaryCurrency( + userWalletId: UserWalletId, + refresh: Boolean, + ): CryptoCurrency { return withContext(dispatchers.io) { val userWallet = getUserWallet(userWalletId) ensureIsCorrectUserWallet(userWallet, isMultiCurrencyWalletExpected = false) - cardCurrenciesFactory.createPrimaryCurrencyForSingleCurrencyCard(userWallet.scanResponse) + val currency = cardCurrenciesFactory.createPrimaryCurrencyForSingleCurrencyCard(userWallet.scanResponse) + fetchExpressAssetsByNetworkIds(userWalletId, listOf(currency), refresh) + currency } } - override suspend fun getSingleCurrencyWalletWithCardCurrencies(userWalletId: UserWalletId): List { + override suspend fun getSingleCurrencyWalletWithCardCurrencies( + userWalletId: UserWalletId, + refresh: Boolean, + ): List { return withContext(dispatchers.io) { val userWallet = getUserWallet(userWalletId) ensureIsCorrectUserWallet(userWallet, isMultiCurrencyWalletExpected = false) - cardCurrenciesFactory.createCurrenciesForSingleCurrencyCardWithToken(userWallet.scanResponse) + val currencies = cardCurrenciesFactory.createCurrenciesForSingleCurrencyCardWithToken( + userWallet.scanResponse, + ) + fetchExpressAssetsByNetworkIds(userWalletId, currencies, refresh) + currencies } } @@ -243,6 +257,8 @@ internal class DefaultCurrenciesRepository( val currency = cardCurrenciesFactory.createCurrenciesForSingleCurrencyCardWithToken(userWallet.scanResponse) .find { it.id == id } requireNotNull(currency) { "Unable to find currency with provided ID: $id" } + fetchExpressAssetsByNetworkIds(userWalletId, listOf(currency)) + currency } } @@ -553,7 +569,7 @@ internal class DefaultCurrenciesRepository( value = compatibleUserTokensResponse, ) - fetchExchangeableUserMarketCoinsByIds(userWalletId, compatibleUserTokensResponse) + fetchExpressAssetsByNetworkIds(userWalletId, compatibleUserTokensResponse) } private suspend fun checkIsEmptyDemoWallet(userWallet: UserWallet): Boolean { @@ -572,13 +588,37 @@ internal class DefaultCurrenciesRepository( pushTokens(userWalletId, response) } - private suspend fun fetchExchangeableUserMarketCoinsByIds( - userWalletId: UserWalletId, - userTokens: UserTokensResponse, - ) { - swapServiceLoader.update(userWalletId, userTokens) + private suspend fun fetchExpressAssetsByNetworkIds(userWalletId: UserWalletId, userTokens: UserTokensResponse) { + val tokens = userTokens.tokens.map { token -> + LeastTokenInfo( + contractAddress = token.contractAddress ?: EMPTY_CONTRACT_ADDRESS_VALUE, + network = token.networkId, + ) + } + expressServiceLoader.update(userWalletId, tokens) } + private suspend fun fetchExpressAssetsByNetworkIds( + userWalletId: UserWalletId, + cryptoCurrencies: List, + refresh: Boolean = false, + ) { + val tokens = cryptoCurrencies.map { currency -> + val tokenCurrency = currency as? CryptoCurrency.Token + LeastTokenInfo( + contractAddress = tokenCurrency?.contractAddress ?: EMPTY_CONTRACT_ADDRESS_VALUE, + network = currency.network.backendId, + ) + } + cacheRegistry.invokeOnExpire( + key = getAssetsCacheKey(userWalletId), + skipCache = refresh, + block = { expressServiceLoader.update(userWalletId, tokens) }, + ) + } + + private fun getAssetsCacheKey(userWalletId: UserWalletId): String = "assets_cache_key_${userWalletId.stringValue}" + private suspend fun handleFetchTokensError(userWallet: UserWallet, e: ApiResponseError): UserTokensResponse { val userWalletId = userWallet.walletId val response = appPreferencesStore.getObjectSyncOrNull( diff --git a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/FetchCardTokenListUseCase.kt b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/FetchCardTokenListUseCase.kt index e40ecd7e98..0fc9607d48 100644 --- a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/FetchCardTokenListUseCase.kt +++ b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/FetchCardTokenListUseCase.kt @@ -25,7 +25,7 @@ class FetchCardTokenListUseCase( suspend operator fun invoke(userWalletId: UserWalletId, refresh: Boolean = false): Either { return either { - val currencies = fetchCurrencies(userWalletId = userWalletId) + val currencies = fetchCurrencies(userWalletId = userWalletId, refresh = refresh) coroutineScope { val fetchStatuses = async { @@ -53,9 +53,17 @@ class FetchCardTokenListUseCase( } } - private suspend fun Raise.fetchCurrencies(userWalletId: UserWalletId): List { + private suspend fun Raise.fetchCurrencies( + userWalletId: UserWalletId, + refresh: Boolean = false, + ): List { return catch( - block = { currenciesRepository.getSingleCurrencyWalletWithCardCurrencies(userWalletId = userWalletId) }, + block = { + currenciesRepository.getSingleCurrencyWalletWithCardCurrencies( + userWalletId = userWalletId, + refresh = refresh, + ) + }, catch = { raise(TokenListError.DataError(it)) }, ) } diff --git a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/FetchCurrencyStatusUseCase.kt b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/FetchCurrencyStatusUseCase.kt index 7b631669e7..b5a73a5ac3 100644 --- a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/FetchCurrencyStatusUseCase.kt +++ b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/FetchCurrencyStatusUseCase.kt @@ -65,7 +65,7 @@ class FetchCurrencyStatusUseCase( refresh: Boolean = false, ): Either { return either { - val currency = getPrimaryCurrency(userWalletId) + val currency = getPrimaryCurrency(userWalletId, refresh) fetchCurrencyStatus(userWalletId, currency, refresh) } @@ -102,8 +102,11 @@ class FetchCurrencyStatusUseCase( } } - private suspend fun Raise.getPrimaryCurrency(userWalletId: UserWalletId): CryptoCurrency { - return catch({ currenciesRepository.getSingleCurrencyWalletPrimaryCurrency(userWalletId) }) { + private suspend fun Raise.getPrimaryCurrency( + userWalletId: UserWalletId, + refresh: Boolean = false, + ): CryptoCurrency { + return catch({ currenciesRepository.getSingleCurrencyWalletPrimaryCurrency(userWalletId, refresh) }) { raise(CurrencyStatusError.DataError(it)) } } diff --git a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/repository/CurrenciesRepository.kt b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/repository/CurrenciesRepository.kt index 66af3545ce..b3a7846497 100644 --- a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/repository/CurrenciesRepository.kt +++ b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/repository/CurrenciesRepository.kt @@ -86,21 +86,29 @@ interface CurrenciesRepository { * Retrieves the primary cryptocurrency for a specific single-currency user wallet. * * @param userWalletId The unique identifier of the user wallet. + * @param refresh Indicates whether to force a refresh of the status data. * @return The primary cryptocurrency associated with the user wallet. * @throws DataError.UserWalletError.WrongUserWallet If multi-currency user wallet * ID provided. */ - suspend fun getSingleCurrencyWalletPrimaryCurrency(userWalletId: UserWalletId): CryptoCurrency + suspend fun getSingleCurrencyWalletPrimaryCurrency( + userWalletId: UserWalletId, + refresh: Boolean = false, + ): CryptoCurrency /** * Retrieves the cryptocurrencies for a specific single-currency user wallet with tokens on the card. * * @param userWalletId The unique identifier of the user wallet. + * @param refresh Indicates whether to force a refresh of the status data. * @return The primary cryptocurrency associated with the user wallet. * @throws DataError.UserWalletError.WrongUserWallet If multi-currency user wallet * ID provided. */ - suspend fun getSingleCurrencyWalletWithCardCurrencies(userWalletId: UserWalletId): List + suspend fun getSingleCurrencyWalletWithCardCurrencies( + userWalletId: UserWalletId, + refresh: Boolean = false, + ): List /** * Retrieves the cryptocurrency for a specific single-currency user old wallet diff --git a/domain/tokens/src/test/kotlin/com/tangem/domain/tokens/repository/MockCurrenciesRepository.kt b/domain/tokens/src/test/kotlin/com/tangem/domain/tokens/repository/MockCurrenciesRepository.kt index d51f5710d8..6f9e9811af 100644 --- a/domain/tokens/src/test/kotlin/com/tangem/domain/tokens/repository/MockCurrenciesRepository.kt +++ b/domain/tokens/src/test/kotlin/com/tangem/domain/tokens/repository/MockCurrenciesRepository.kt @@ -70,11 +70,17 @@ internal class MockCurrenciesRepository( return tokens.first().getOrElse { e -> throw e } } - override suspend fun getSingleCurrencyWalletPrimaryCurrency(userWalletId: UserWalletId): CryptoCurrency { + override suspend fun getSingleCurrencyWalletPrimaryCurrency( + userWalletId: UserWalletId, + refresh: Boolean, + ): CryptoCurrency { return token.getOrElse { e -> throw e } } - override suspend fun getSingleCurrencyWalletWithCardCurrencies(userWalletId: UserWalletId): List { + override suspend fun getSingleCurrencyWalletWithCardCurrencies( + userWalletId: UserWalletId, + refresh: Boolean, + ): List { return tokens.first().getOrElse { e -> throw e } }