From 797d11bd8c2d910655b4d3c5bc8b5d0acee2dce9 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 18 Apr 2022 15:35:49 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/tap/domain/tokens/Currency.kt | 26 +++++++++++++++++-- .../domain/common/extensions/Blockchain.kt | 4 +-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/Currency.kt b/app/src/main/java/com/tangem/tap/domain/tokens/Currency.kt index 801a4f263e..3bd2e57ef5 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/Currency.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/Currency.kt @@ -35,7 +35,7 @@ data class Currency( val name: String, val symbol: String, val iconUrl: String, - val contracts: List? + val contracts: List ) { companion object { @@ -45,9 +45,19 @@ data class Currency( name = currency.name, symbol = currency.symbol, iconUrl = getIconUrl(currency.id), - contracts = currency.contracts?.toContracts(isTestNet) + contracts = prepareListOfContracts(currency.contracts, currency.id, isTestNet) ) } + + private fun prepareListOfContracts( + contractsFromJson: List?, + currencyId: String, + isTestNet: Boolean + ): List { + val mainNetwork = Contract.fromCurrencyId(currencyId, isTestNet) + val contracts = contractsFromJson?.toContracts(isTestNet) ?: emptyList() + return (listOfNotNull(mainNetwork) + contracts).distinct() + } } } @@ -72,6 +82,18 @@ data class Contract( ) } + fun fromCurrencyId(currencyId: String, isTestNet: Boolean): Contract? { + val networkId = if (isTestNet) currencyId + TESTNET else currencyId + val blockchain = Blockchain.fromNetworkId(networkId) ?: return null + return Contract( + networkId = networkId, + blockchain = blockchain, + address = blockchain.currency, + decimalCount = blockchain.decimals(), + iconUrl = getIconUrl(networkId) + ) + } + const val TESTNET = "-testnet" } } diff --git a/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt b/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt index 5573c8a4f0..54def43015 100644 --- a/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt +++ b/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt @@ -4,8 +4,8 @@ import com.tangem.blockchain.common.Blockchain fun Blockchain.Companion.fromNetworkId(networkId: String): Blockchain? { return when (networkId) { - "avalanche" -> Blockchain.Avalanche - "avalanche-testnet" -> Blockchain.AvalancheTestnet + "avalanche", "avalanche-2" -> Blockchain.Avalanche + "avalanche-testnet", "avalanche-2-testnet" -> Blockchain.AvalancheTestnet "binancecoin" -> Blockchain.Binance "binancecoin-testnet" -> Blockchain.BinanceTestnet "binance-smart-chain" -> Blockchain.BSC