From e2d014420a94415f9f3da72ae1d7ddaa49ea4bc7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 13 Sep 2024 12:05:36 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../core/ui/components/rows/RowComponents.kt | 2 +- .../ResponseCryptoCurrenciesFactory.kt | 15 ++------------- .../utils/ManagedCryptoCurrencyFactory.kt | 2 ++ .../SdkTransactionHistoryItemConverter.kt | 8 ++++++++ .../utils/SdkTransactionTypeConverter.kt | 9 +++++++++ .../model/ManagedCryptoCurrency.kt | 8 +++++++- .../impl/model/BlockchainRowUMConverter.kt | 19 ++++++++++++++++++- gradle/dependencies.toml | 2 +- .../blockchainsdk/compatibility/L2Networks.kt | 2 +- .../com/tangem/lib/crypto/BlockchainUtils.kt | 6 ++++++ 10 files changed, 55 insertions(+), 18 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/rows/RowComponents.kt b/core/ui/src/main/java/com/tangem/core/ui/components/rows/RowComponents.kt index 258a153de4..78c7a724b7 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/rows/RowComponents.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/rows/RowComponents.kt @@ -78,7 +78,7 @@ internal fun RowText( ) Text( - modifier = Modifier.weight(weight = 4f, fill = false), + modifier = Modifier.weight(weight = 5f, fill = false), text = secondText, style = TangemTheme.typography.body2, color = if (isEnabled) { diff --git a/data/common/src/main/kotlin/com/tangem/data/common/currency/ResponseCryptoCurrenciesFactory.kt b/data/common/src/main/kotlin/com/tangem/data/common/currency/ResponseCryptoCurrenciesFactory.kt index 24db327e04..35b0736c8e 100644 --- a/data/common/src/main/kotlin/com/tangem/data/common/currency/ResponseCryptoCurrenciesFactory.kt +++ b/data/common/src/main/kotlin/com/tangem/data/common/currency/ResponseCryptoCurrenciesFactory.kt @@ -2,6 +2,7 @@ package com.tangem.data.common.currency import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.Token +import com.tangem.blockchainsdk.compatibility.l2BlockchainsList import com.tangem.blockchainsdk.utils.fromNetworkId import com.tangem.blockchainsdk.utils.toCoinId import com.tangem.datasource.api.tangemTech.models.UserTokensResponse @@ -91,22 +92,10 @@ class ResponseCryptoCurrenciesFactory { // get name and symbol from enum Blockchain until backend renamed // [REDACTED_JIRA] Blockchain.Dischain, - Blockchain.Arbitrum, - Blockchain.ArbitrumTestnet, - Blockchain.Aurora, - Blockchain.AuroraTestnet, - Blockchain.Manta, - Blockchain.MantaTestnet, - Blockchain.ZkSyncEra, - Blockchain.ZkSyncEraTestnet, - Blockchain.PolygonZkEVM, - Blockchain.PolygonZkEVMTestnet, - Blockchain.Base, - Blockchain.BaseTestnet, Blockchain.Telos, Blockchain.Cronos, Blockchain.TON, - Blockchain.Cyber, + in l2BlockchainsList, -> this.fullName else -> responseToken.name } 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 1832d13c52..5a5b9fd6eb 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 @@ -3,6 +3,7 @@ package com.tangem.data.managetokens.utils import com.tangem.blockchain.common.Blockchain import com.tangem.blockchainsdk.compatibility.applyL2Compatibility import com.tangem.blockchainsdk.compatibility.getL2CompatibilityTokenComparison +import com.tangem.blockchainsdk.compatibility.l2BlockchainsList import com.tangem.blockchainsdk.utils.fromNetworkId import com.tangem.blockchainsdk.utils.isSupportedInApp import com.tangem.blockchainsdk.utils.toCoinId @@ -121,6 +122,7 @@ internal class ManagedCryptoCurrencyFactory { SourceNetwork.Main( network = network, decimals = blockchain.decimals(), + isL2Network = l2BlockchainsList.contains(blockchain), ) } else { SourceNetwork.Default( diff --git a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionHistoryItemConverter.kt b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionHistoryItemConverter.kt index a429859de4..34200f0d8c 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionHistoryItemConverter.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionHistoryItemConverter.kt @@ -57,6 +57,14 @@ internal class SdkTransactionHistoryItemConverter( is SdkTransactionHistoryItem.TransactionType.ContractMethod, is SdkTransactionHistoryItem.TransactionType.ContractMethodName, -> mapToInteractionAddressType(destinationType) + TransactionHistoryItem.TransactionType.TronStakingTransactionType.FreezeBalanceV2Contract -> + mapToInteractionAddressType(destinationType) // todo map correct [REDACTED_JIRA] + TransactionHistoryItem.TransactionType.TronStakingTransactionType.UnfreezeBalanceV2Contract -> + mapToInteractionAddressType(destinationType) // todo map correct [REDACTED_JIRA] + TransactionHistoryItem.TransactionType.TronStakingTransactionType.VoteWitnessContract -> + mapToInteractionAddressType(destinationType) // todo map correct [REDACTED_JIRA] + TransactionHistoryItem.TransactionType.TronStakingTransactionType.WithdrawBalanceContract -> + mapToInteractionAddressType(destinationType) // todo map correct [REDACTED_JIRA] } } diff --git a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionTypeConverter.kt b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionTypeConverter.kt index c0ebfa9a66..e061f80d14 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionTypeConverter.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionTypeConverter.kt @@ -15,6 +15,15 @@ internal class SdkTransactionTypeConverter( getTransactionType(methodName = smartContractMethods[value.id]?.name) is TransactionHistoryItem.TransactionType.ContractMethodName -> getTransactionType(methodName = value.name) is TransactionHistoryItem.TransactionType.Transfer -> TxHistoryItem.TransactionType.Transfer + TransactionHistoryItem.TransactionType.TronStakingTransactionType.FreezeBalanceV2Contract -> + TxHistoryItem.TransactionType.Transfer // TODO map correct [REDACTED_JIRA] + TransactionHistoryItem.TransactionType.TronStakingTransactionType.UnfreezeBalanceV2Contract -> + TxHistoryItem.TransactionType.Transfer // TODO map correct [REDACTED_JIRA] + TransactionHistoryItem.TransactionType.TronStakingTransactionType.VoteWitnessContract -> + TxHistoryItem + .TransactionType.Transfer // TODO map correct [REDACTED_JIRA] + TransactionHistoryItem.TransactionType.TronStakingTransactionType.WithdrawBalanceContract -> + TxHistoryItem.TransactionType.Transfer // TODO map correct [REDACTED_JIRA] } } diff --git a/domain/manage-tokens/models/src/main/kotlin/com/tangem/domain/managetokens/model/ManagedCryptoCurrency.kt b/domain/manage-tokens/models/src/main/kotlin/com/tangem/domain/managetokens/model/ManagedCryptoCurrency.kt index 848616a5b2..b5c78a407e 100644 --- a/domain/manage-tokens/models/src/main/kotlin/com/tangem/domain/managetokens/model/ManagedCryptoCurrency.kt +++ b/domain/manage-tokens/models/src/main/kotlin/com/tangem/domain/managetokens/model/ManagedCryptoCurrency.kt @@ -62,7 +62,11 @@ sealed class ManagedCryptoCurrency { val typeName: String get() = when (this) { - is Main -> MAIN_NETWORK_TYPE_NAME + is Main -> if (isL2Network) { + MAIN_NETWORK_L2_TYPE_NAME + } else { + MAIN_NETWORK_TYPE_NAME + } is Default -> when (network.standardType) { is Network.StandardType.BEP2, is Network.StandardType.BEP20, @@ -76,6 +80,7 @@ sealed class ManagedCryptoCurrency { data class Main( override val network: Network, override val decimals: Int, + val isL2Network: Boolean, ) : SourceNetwork() data class Default( @@ -86,6 +91,7 @@ sealed class ManagedCryptoCurrency { private companion object { const val MAIN_NETWORK_TYPE_NAME = "MAIN" + const val MAIN_NETWORK_L2_TYPE_NAME = "MAIN L2" } } } \ No newline at end of file diff --git a/features/markets/impl/src/main/kotlin/com/tangem/features/markets/portfolio/impl/model/BlockchainRowUMConverter.kt b/features/markets/impl/src/main/kotlin/com/tangem/features/markets/portfolio/impl/model/BlockchainRowUMConverter.kt index 09be6a8976..c9ec3f67cb 100644 --- a/features/markets/impl/src/main/kotlin/com/tangem/features/markets/portfolio/impl/model/BlockchainRowUMConverter.kt +++ b/features/markets/impl/src/main/kotlin/com/tangem/features/markets/portfolio/impl/model/BlockchainRowUMConverter.kt @@ -31,7 +31,7 @@ internal class BlockchainRowUMConverter( return BlockchainRowUM( id = network.networkId, name = blockchainInfo.name, - type = if (isMainNetwork) "MAIN" else blockchainInfo.protocolName, + type = getNetworkType(network, blockchainInfo), iconResId = if (isEnabled) { if (isSelected) { getActiveIconRes(blockchainInfo.blockchainId) @@ -46,4 +46,21 @@ internal class BlockchainRowUMConverter( isEnabled = isEnabled, ) } + + private fun getNetworkType( + network: TokenMarketInfo.Network, + blockchainInfo: BlockchainUtils.BlockchainInfo, + ): String { + val isMainNetwork = network.contractAddress == null + return when { + BlockchainUtils.isL2Network(networkId = network.networkId) -> MAIN_NETWORK_L2_TYPE_NAME + isMainNetwork -> MAIN_NETWORK_TYPE_NAME + else -> blockchainInfo.protocolName + } + } + + private companion object { + const val MAIN_NETWORK_TYPE_NAME = "MAIN" + const val MAIN_NETWORK_L2_TYPE_NAME = "MAIN L2" + } } \ No newline at end of file diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 74c59e4344..aa6d57aaf2 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -89,7 +89,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "develop-765" +tangemBlockchainSdk = "develop-769" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "develop-381" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/compatibility/L2Networks.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/compatibility/L2Networks.kt index 1248e3dedd..963d14bf12 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/compatibility/L2Networks.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/compatibility/L2Networks.kt @@ -7,7 +7,7 @@ import com.tangem.datasource.api.markets.models.response.TokenMarketInfoResponse import com.tangem.datasource.api.tangemTech.models.CoinsResponse import com.tangem.datasource.api.tangemTech.models.UserTokensResponse -internal val l2BlockchainsList = listOf( +val l2BlockchainsList = listOf( Blockchain.Optimism, Blockchain.Arbitrum, Blockchain.ZkSyncEra, diff --git a/libs/crypto/src/main/java/com/tangem/lib/crypto/BlockchainUtils.kt b/libs/crypto/src/main/java/com/tangem/lib/crypto/BlockchainUtils.kt index ada8b81979..4634daf76c 100644 --- a/libs/crypto/src/main/java/com/tangem/lib/crypto/BlockchainUtils.kt +++ b/libs/crypto/src/main/java/com/tangem/lib/crypto/BlockchainUtils.kt @@ -2,6 +2,7 @@ package com.tangem.lib.crypto import com.tangem.blockchain.blockchains.xrp.XrpAddressService import com.tangem.blockchain.common.Blockchain +import com.tangem.blockchainsdk.compatibility.l2BlockchainsList import com.tangem.blockchainsdk.utils.fromNetworkId import com.tangem.blockchainsdk.utils.isSupportedInApp import com.tangem.lib.crypto.converter.XrpTaggedAddressConverter @@ -98,6 +99,11 @@ object BlockchainUtils { ) } + fun isL2Network(networkId: String): Boolean { + val blockchain = Blockchain.fromNetworkId(networkId) ?: return false + return l2BlockchainsList.contains(blockchain) + } + private fun getNetworkStandardName(blockchain: Blockchain): String { return when (blockchain) { Blockchain.Ethereum, Blockchain.EthereumTestnet -> "ERC20"