From c5038eecb6b174c915b1b024995006dd162974c9 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 3 Oct 2024 18:24:35 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../utils/ManagedCryptoCurrencyFactory.kt | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/data/manage-tokens/src/main/kotlin/com/tangem/data/managetokens/utils/ManagedCryptoCurrencyFactory.kt b/data/manage-tokens/src/main/kotlin/com/tangem/data/managetokens/utils/ManagedCryptoCurrencyFactory.kt index 22ff299187..4ac4e2bdd2 100644 --- a/data/manage-tokens/src/main/kotlin/com/tangem/data/managetokens/utils/ManagedCryptoCurrencyFactory.kt +++ b/data/manage-tokens/src/main/kotlin/com/tangem/data/managetokens/utils/ManagedCryptoCurrencyFactory.kt @@ -127,20 +127,24 @@ internal class ManagedCryptoCurrencyFactory { ): ManagedCryptoCurrency? { if (coinResponse.networks.isEmpty() || !coinResponse.active) return null - val updatedNetworks = coinResponse.networks.applyL2Compatibility(coinResponse.id) - return ManagedCryptoCurrency.Token( - id = ManagedCryptoCurrency.ID(coinResponse.id), - name = coinResponse.name, - symbol = coinResponse.symbol, - iconUrl = getIconUrl(coinResponse.id, imageHost), - availableNetworks = updatedNetworks.mapNotNull { network -> + val availableNetworks = coinResponse.networks + .applyL2Compatibility(coinResponse.id) + .mapNotNull { network -> createSource( networkId = network.networkId, contractAddress = network.contractAddress, decimals = network.decimalCount?.toInt(), derivationStyleProvider = derivationStyleProvider, ) - }, + } + .ifEmpty { return null } + + return ManagedCryptoCurrency.Token( + id = ManagedCryptoCurrency.ID(coinResponse.id), + name = coinResponse.name, + symbol = coinResponse.symbol, + iconUrl = getIconUrl(coinResponse.id, imageHost), + availableNetworks = availableNetworks, addedIn = findAddedInNetworks(coinResponse.id, tokensResponse, derivationStyleProvider), ) } @@ -158,18 +162,18 @@ internal class ManagedCryptoCurrencyFactory { val network = getNetwork(blockchain, extraDerivationPath, derivationStyleProvider) ?: return null - return if (contractAddress.isNullOrBlank()) { - SourceNetwork.Main( + return when { + contractAddress.isNullOrBlank() -> SourceNetwork.Main( network = network, decimals = blockchain.decimals(), isL2Network = l2BlockchainsList.contains(blockchain), ) - } else { - SourceNetwork.Default( + network.canHandleTokens -> SourceNetwork.Default( network = network, decimals = decimals ?: return null, contractAddress = contractAddress, ) + else -> null } }