Updated on 2026-08-14

This commit is contained in:
Tangem 2023-08-08 23:50:09 +03:00
parent eab83c7675
commit 9ce639e080
21 changed files with 110 additions and 113 deletions

View file

@ -37,7 +37,7 @@ internal class DefaultCurrenciesRepository(
override suspend fun saveTokens(
userWalletId: UserWalletId,
currencies: Set<CryptoCurrency>,
currencies: List<CryptoCurrency>,
isGroupedByNetwork: Boolean,
isSortedByBalance: Boolean,
) = withContext(dispatchers.io) {
@ -64,7 +64,7 @@ internal class DefaultCurrenciesRepository(
override fun getMultiCurrencyWalletCurrencies(
userWalletId: UserWalletId,
refresh: Boolean,
): Flow<Set<CryptoCurrency>> = channelFlow {
): Flow<List<CryptoCurrency>> = channelFlow {
val userWallet = getUserWallet(userWalletId)
ensureIsCorrectUserWallet(userWallet, isMultiCurrencyWalletExpected = true)
@ -115,7 +115,7 @@ internal class DefaultCurrenciesRepository(
}
}
private fun getMultiCurrencyWalletCurrencies(userWallet: UserWallet): Flow<Set<CryptoCurrency>> {
private fun getMultiCurrencyWalletCurrencies(userWallet: UserWallet): Flow<List<CryptoCurrency>> {
return userTokensStore.get(userWallet.walletId).map { storedTokens ->
responseCurrenciesFactory.createCurrencies(
response = storedTokens,

View file

@ -90,7 +90,7 @@ internal class DefaultNetworksRepository(
val result = walletManagersFacade.update(
userWalletId = userWalletId,
networkId = networkId,
extraTokens = currencies.filterIsInstanceTo(hashSetOf()),
extraTokens = currencies.filterIsInstance<CryptoCurrency.Token>().toSet(),
)
val networkStatus = networkStatusFactory.createNetworkStatus(
networkId = networkId,
@ -103,7 +103,7 @@ internal class DefaultNetworksRepository(
}
}
private suspend fun getCurrencies(userWalletId: UserWalletId): Set<CryptoCurrency> {
private suspend fun getCurrencies(userWalletId: UserWalletId): List<CryptoCurrency> {
val userWallet = requireNotNull(userWalletsStore.getSyncOrNull(userWalletId)) {
"Unable to find user wallet with provided ID: $userWalletId"
}

View file

@ -12,7 +12,7 @@ import com.tangem.blockchain.common.Token as SdkToken
internal class CardCurrenciesFactory(private val demoConfig: DemoConfig) {
fun createDefaultCoinsForMultiCurrencyCard(card: CardDTO): Set<CryptoCurrency.Coin> {
fun createDefaultCoinsForMultiCurrencyCard(card: CardDTO): List<CryptoCurrency.Coin> {
var blockchains = if (demoConfig.isDemoCardId(card.cardId)) {
demoConfig.demoBlockchains
} else {
@ -23,7 +23,7 @@ internal class CardCurrenciesFactory(private val demoConfig: DemoConfig) {
blockchains = blockchains.mapNotNull { it.getTestnetVersion() }
}
return blockchains.mapNotNull { createCoin(it, card) }.toSet()
return blockchains.mapNotNull { createCoin(it, card) }
}
fun createPrimaryCurrencyForSingleCurrencyCard(scanResponse: ScanResponse): CryptoCurrency {

View file

@ -24,8 +24,8 @@ internal class ResponseCurrenciesFactory(private val demoConfig: DemoConfig) {
}
}
fun createCurrencies(response: UserTokensResponse, card: CardDTO): Set<CryptoCurrency> {
return response.tokens.mapNotNull { createCurrency(it, card) }.toSet()
fun createCurrencies(response: UserTokensResponse, card: CardDTO): List<CryptoCurrency> {
return response.tokens.mapNotNull { createCurrency(it, card) }
}
private fun createCurrency(responseToken: UserTokensResponse.Token, card: CardDTO): CryptoCurrency? {

View file

@ -7,7 +7,7 @@ import com.tangem.domain.tokens.model.CryptoCurrency
internal class UserTokensResponseFactory {
fun createUserTokensResponse(
currencies: Set<CryptoCurrency>,
currencies: List<CryptoCurrency>,
isGroupedByNetwork: Boolean,
isSortedByBalance: Boolean,
): UserTokensResponse {