diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index 12821d37a8..3d111de2b3 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit 12821d37a835b5a225c69912a37df33506b315bf +Subproject commit 3d111de2b364a6191d213c138b1d2d11a999f779 diff --git a/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonpayBlockchainMapping.kt b/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonpayBlockchainMapping.kt index 1ff346fa44..efcd3de591 100644 --- a/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonpayBlockchainMapping.kt +++ b/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonpayBlockchainMapping.kt @@ -163,5 +163,6 @@ internal val Blockchain.moonPaySupportedCurrency: MoonPaySupportedCurrency? Linea, LineaTestnet -> null ArbitrumNova -> null Plasma, PlasmaTestnet -> null + Adi, AdiTestnet -> null Monad, MonadTestnet -> null } \ No newline at end of file diff --git a/common/ui/src/main/java/com/tangem/common/ui/extensions/BlockchainIcons.kt b/common/ui/src/main/java/com/tangem/common/ui/extensions/BlockchainIcons.kt index 4b128eff63..e8a69ca167 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/extensions/BlockchainIcons.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/extensions/BlockchainIcons.kt @@ -196,6 +196,9 @@ private fun iconSetOf(blockchain: Blockchain): IconSet? = when (blockchain) { Blockchain.Plasma, Blockchain.PlasmaTestnet, -> IconSet(active = R.drawable.img_plasma_22, greyedOut = R.drawable.ic_plasma_22) + Blockchain.Adi, + Blockchain.AdiTestnet, + -> IconSet(active = R.drawable.img_adi_22, greyedOut = R.drawable.ic_adi_22) Blockchain.Playa3ull, -> IconSet(active = R.drawable.img_playa3ull_22, greyedOut = R.drawable.ic_playa3ull_22) Blockchain.Polkadot, diff --git a/common/ui/src/test/kotlin/com/tangem/common/ui/extensions/BlockchainIconsTest.kt b/common/ui/src/test/kotlin/com/tangem/common/ui/extensions/BlockchainIconsTest.kt index 016c6ac306..00fb4b7b95 100644 --- a/common/ui/src/test/kotlin/com/tangem/common/ui/extensions/BlockchainIconsTest.kt +++ b/common/ui/src/test/kotlin/com/tangem/common/ui/extensions/BlockchainIconsTest.kt @@ -96,6 +96,7 @@ internal class BlockchainIconsTest { Blockchain.Optimism, Blockchain.OptimismTestnet -> R.drawable.img_optimism_22 Blockchain.Pepecoin, Blockchain.PepecoinTestnet -> R.drawable.img_pepecoin_22 Blockchain.Plasma, Blockchain.PlasmaTestnet -> R.drawable.img_plasma_22 + Blockchain.Adi, Blockchain.AdiTestnet -> R.drawable.img_adi_22 Blockchain.Playa3ull -> R.drawable.img_playa3ull_22 Blockchain.Polkadot, Blockchain.PolkadotTestnet -> R.drawable.img_polkadot_22 Blockchain.Polygon, Blockchain.PolygonTestnet -> R.drawable.img_polygon_22 @@ -216,6 +217,7 @@ internal class BlockchainIconsTest { Blockchain.Optimism, Blockchain.OptimismTestnet -> R.drawable.ic_optimism_22 Blockchain.Pepecoin, Blockchain.PepecoinTestnet -> R.drawable.ic_pepecoin_22 Blockchain.Plasma, Blockchain.PlasmaTestnet -> R.drawable.ic_plasma_22 + Blockchain.Adi, Blockchain.AdiTestnet -> R.drawable.ic_adi_22 Blockchain.Playa3ull -> R.drawable.ic_playa3ull_22 Blockchain.Polkadot, Blockchain.PolkadotTestnet -> R.drawable.ic_polkadot_16 Blockchain.Polygon, Blockchain.PolygonTestnet -> R.drawable.ic_polygon_22 diff --git a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json index df9515601a..d0f4da1ecc 100644 --- a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json +++ b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json @@ -87,6 +87,10 @@ "name": "AND_15101_TANGEM_PAY_HOT_WALLET_ONBOARDING", "version": "undefined" }, + { + "name": "AND_15402_ADI_MAIN_SCREEN_DEFAULT_ENABLED", + "version": "undefined" + }, { "name": "AND_15103_SWAP_RATE_EXPERIENCE_ENABLED", "version": "undefined" diff --git a/core/ui/src/main/res/drawable/ic_adi_22.xml b/core/ui/src/main/res/drawable/ic_adi_22.xml new file mode 100644 index 0000000000..f5233e5813 --- /dev/null +++ b/core/ui/src/main/res/drawable/ic_adi_22.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core/ui/src/main/res/drawable/img_adi_22.xml b/core/ui/src/main/res/drawable/img_adi_22.xml new file mode 100644 index 0000000000..57798a9a42 --- /dev/null +++ b/core/ui/src/main/res/drawable/img_adi_22.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/account/src/main/kotlin/com/tangem/data/account/utils/DefaultWalletAccountsResponseFactory.kt b/data/account/src/main/kotlin/com/tangem/data/account/utils/DefaultWalletAccountsResponseFactory.kt index 8712b7eae6..785e102825 100644 --- a/data/account/src/main/kotlin/com/tangem/data/account/utils/DefaultWalletAccountsResponseFactory.kt +++ b/data/account/src/main/kotlin/com/tangem/data/account/utils/DefaultWalletAccountsResponseFactory.kt @@ -1,5 +1,8 @@ package com.tangem.data.account.utils +import com.tangem.blockchain.common.Blockchain +import com.tangem.core.configtoggle.FeatureToggles +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.data.account.converter.CryptoPortfolioConverter import com.tangem.data.common.currency.UserTokensResponseFactory import com.tangem.data.common.network.NetworkFactory @@ -31,6 +34,7 @@ internal class DefaultWalletAccountsResponseFactory @Inject constructor( private val cryptoPortfolioCF: CryptoPortfolioConverter.Factory, private val userTokensResponseFactory: UserTokensResponseFactory, private val networkFactory: NetworkFactory, + private val featureTogglesManager: FeatureTogglesManager, ) { fun create(userWalletId: UserWalletId, userTokensResponse: UserTokensResponse?): GetWalletAccountsResponse { @@ -69,6 +73,21 @@ internal class DefaultWalletAccountsResponseFactory @Inject constructor( accountId = userWallet?.let { AccountId.forCryptoPortfolio(userWalletId = it.walletId, derivationIndex = DerivationIndex.Main) }, + extraBlockchains = userWallet?.extraDefaultBlockchains().orEmpty(), ) } + + private fun UserWallet.extraDefaultBlockchains(): List { + val batchId = (this as? UserWallet.Cold)?.scanResponse?.card?.batchId ?: return emptyList() + return when { + batchId == ADI_PROMO_BATCH_ID && + featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15402_ADI_MAIN_SCREEN_DEFAULT_ENABLED) -> + listOf(Blockchain.Adi) + else -> emptyList() + } + } + + private companion object { + const val ADI_PROMO_BATCH_ID = "BB000053" + } } \ No newline at end of file diff --git a/data/account/src/test/java/com/tangem/data/account/utils/DefaultWalletAccountsResponseFactoryTest.kt b/data/account/src/test/java/com/tangem/data/account/utils/DefaultWalletAccountsResponseFactoryTest.kt index afb50f75c3..76d6f4b213 100644 --- a/data/account/src/test/java/com/tangem/data/account/utils/DefaultWalletAccountsResponseFactoryTest.kt +++ b/data/account/src/test/java/com/tangem/data/account/utils/DefaultWalletAccountsResponseFactoryTest.kt @@ -1,6 +1,9 @@ package com.tangem.data.account.utils import com.google.common.truth.Truth +import com.tangem.blockchain.common.Blockchain +import com.tangem.core.configtoggle.FeatureToggles +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.data.account.converter.CryptoPortfolioConverter import com.tangem.data.account.converter.createWalletAccountDTO import com.tangem.data.account.utils.GetWalletAccountsResponseExtTest.Companion.createUserToken @@ -32,12 +35,14 @@ class DefaultWalletAccountsResponseFactoryTest { private val cryptoPortfolioConverter = mockk() private val userTokensResponseFactory = mockk() private val networkFactory = mockk() + private val featureTogglesManager = mockk() private val factory = DefaultWalletAccountsResponseFactory( userWalletsListRepository = userWalletsListRepository, cryptoPortfolioCF = cryptoPortfolioCF, userTokensResponseFactory = userTokensResponseFactory, networkFactory = networkFactory, + featureTogglesManager = featureTogglesManager, ) private val userWalletId = UserWalletId("011") @@ -75,6 +80,7 @@ class DefaultWalletAccountsResponseFactoryTest { userWallet = null, networkFactory = networkFactory, accountId = null, + extraBlockchains = emptyList(), ) } returns userTokensResponse @@ -100,6 +106,7 @@ class DefaultWalletAccountsResponseFactoryTest { userWallet = null, networkFactory = networkFactory, accountId = null, + extraBlockchains = emptyList(), ) } } @@ -129,6 +136,7 @@ class DefaultWalletAccountsResponseFactoryTest { userWallet = userWallet, networkFactory = networkFactory, accountId = accounts.first().accountId, + extraBlockchains = emptyList(), ) } returns defaultResponse @@ -159,6 +167,7 @@ class DefaultWalletAccountsResponseFactoryTest { userWallet = userWallet, networkFactory = networkFactory, accountId = accounts.first().accountId, + extraBlockchains = emptyList(), ) } } @@ -188,6 +197,7 @@ class DefaultWalletAccountsResponseFactoryTest { userWallet = userWallet, networkFactory = networkFactory, accountId = accounts.first().accountId, + extraBlockchains = emptyList(), ) } returns defaultResponse @@ -210,6 +220,138 @@ class DefaultWalletAccountsResponseFactoryTest { Truth.assertThat(actual).isEqualTo(expected) } + @Test + fun `create passes ADI as extra blockchain when batch is BB000053 and toggle is on`() = runTest { + // Arrange + val userWallet = mockk(relaxed = true) { + every { walletId } returns userWalletId + every { scanResponse.card.batchId } returns "BB000053" + } + + every { userWalletsListRepository.userWallets } returns MutableStateFlow(listOf(userWallet)) + every { + featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15402_ADI_MAIN_SCREEN_DEFAULT_ENABLED) + } returns true + + val accounts = AccountList.empty(userWallet.walletId).accounts + .filterIsInstance() + val defaultResponse = UserTokensResponse( + group = UserTokensResponse.GroupType.NETWORK, + sort = UserTokensResponse.SortType.BALANCE, + tokens = emptyList(), + ) + every { + userTokensResponseFactory.createDefaultResponse( + userWallet = userWallet, + networkFactory = networkFactory, + accountId = accounts.first().accountId, + extraBlockchains = listOf(Blockchain.Adi), + ) + } returns defaultResponse + every { cryptoPortfolioConverter.convertListBack(accounts) } returns emptyList() + + // Act + factory.create(userWalletId, null) + + // Assert + coVerifyOrder { + userTokensResponseFactory.createDefaultResponse( + userWallet = userWallet, + networkFactory = networkFactory, + accountId = accounts.first().accountId, + extraBlockchains = listOf(Blockchain.Adi), + ) + } + } + + @Test + fun `create passes no extra blockchains when batch is BB000053 but toggle is off`() = runTest { + // Arrange + val userWallet = mockk(relaxed = true) { + every { walletId } returns userWalletId + every { scanResponse.card.batchId } returns "BB000053" + } + + every { userWalletsListRepository.userWallets } returns MutableStateFlow(listOf(userWallet)) + every { + featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15402_ADI_MAIN_SCREEN_DEFAULT_ENABLED) + } returns false + + val accounts = AccountList.empty(userWallet.walletId).accounts + .filterIsInstance() + val defaultResponse = UserTokensResponse( + group = UserTokensResponse.GroupType.NETWORK, + sort = UserTokensResponse.SortType.BALANCE, + tokens = emptyList(), + ) + every { + userTokensResponseFactory.createDefaultResponse( + userWallet = userWallet, + networkFactory = networkFactory, + accountId = accounts.first().accountId, + extraBlockchains = emptyList(), + ) + } returns defaultResponse + every { cryptoPortfolioConverter.convertListBack(accounts) } returns emptyList() + + // Act + factory.create(userWalletId, null) + + // Assert + coVerifyOrder { + userTokensResponseFactory.createDefaultResponse( + userWallet = userWallet, + networkFactory = networkFactory, + accountId = accounts.first().accountId, + extraBlockchains = emptyList(), + ) + } + } + + @Test + fun `create passes no extra blockchains when batch is not BB000053 even if toggle is on`() = runTest { + // Arrange + val userWallet = mockk(relaxed = true) { + every { walletId } returns userWalletId + every { scanResponse.card.batchId } returns "AC000001" + } + + every { userWalletsListRepository.userWallets } returns MutableStateFlow(listOf(userWallet)) + every { + featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15402_ADI_MAIN_SCREEN_DEFAULT_ENABLED) + } returns true + + val accounts = AccountList.empty(userWallet.walletId).accounts + .filterIsInstance() + val defaultResponse = UserTokensResponse( + group = UserTokensResponse.GroupType.NETWORK, + sort = UserTokensResponse.SortType.BALANCE, + tokens = emptyList(), + ) + every { + userTokensResponseFactory.createDefaultResponse( + userWallet = userWallet, + networkFactory = networkFactory, + accountId = accounts.first().accountId, + extraBlockchains = emptyList(), + ) + } returns defaultResponse + every { cryptoPortfolioConverter.convertListBack(accounts) } returns emptyList() + + // Act + factory.create(userWalletId, null) + + // Assert + coVerifyOrder { + userTokensResponseFactory.createDefaultResponse( + userWallet = userWallet, + networkFactory = networkFactory, + accountId = accounts.first().accountId, + extraBlockchains = emptyList(), + ) + } + } + @Test fun `create returns response with assigned tokens`() = runTest { // Arrange diff --git a/data/common/src/main/kotlin/com/tangem/data/common/currency/UserTokensResponseFactory.kt b/data/common/src/main/kotlin/com/tangem/data/common/currency/UserTokensResponseFactory.kt index 9bd1896c03..6110ccb5ae 100644 --- a/data/common/src/main/kotlin/com/tangem/data/common/currency/UserTokensResponseFactory.kt +++ b/data/common/src/main/kotlin/com/tangem/data/common/currency/UserTokensResponseFactory.kt @@ -1,5 +1,6 @@ package com.tangem.data.common.currency +import com.tangem.blockchain.common.Blockchain import com.tangem.blockchainsdk.utils.toCoinId import com.tangem.blockchainsdk.utils.toNetworkId import com.tangem.data.common.network.NetworkFactory @@ -54,9 +55,14 @@ class UserTokensResponseFactory @Inject constructor() { userWallet: UserWallet?, networkFactory: NetworkFactory, accountId: AccountId?, + extraBlockchains: List = emptyList(), ): UserTokensResponse { val tokens = if (userWallet != null) { - getDefaultWalletBlockchains(userWallet = userWallet, demoConfig = DemoConfig) + getDefaultWalletBlockchains( + userWallet = userWallet, + demoConfig = DemoConfig, + extraBlockchains = extraBlockchains, + ) .map { blockchain -> val derivationPath = networkFactory.createDerivationPath( blockchain = blockchain, diff --git a/data/common/src/main/kotlin/com/tangem/data/common/network/NetworkFactory.kt b/data/common/src/main/kotlin/com/tangem/data/common/network/NetworkFactory.kt index 4d9c4d9cdc..bc17d1c41b 100644 --- a/data/common/src/main/kotlin/com/tangem/data/common/network/NetworkFactory.kt +++ b/data/common/src/main/kotlin/com/tangem/data/common/network/NetworkFactory.kt @@ -375,6 +375,7 @@ class NetworkFactory @Inject constructor( Blockchain.Linea, Blockchain.LineaTestnet, Blockchain.ArbitrumNova, Blockchain.Plasma, Blockchain.PlasmaTestnet, + Blockchain.Adi, Blockchain.AdiTestnet, Blockchain.Monad, Blockchain.MonadTestnet, -> Network.TransactionExtrasType.NONE // endregion diff --git a/data/common/src/main/kotlin/com/tangem/data/common/tokens/DefaultWalletBlockchains.kt b/data/common/src/main/kotlin/com/tangem/data/common/tokens/DefaultWalletBlockchains.kt index 8531497bf0..dca2b10022 100644 --- a/data/common/src/main/kotlin/com/tangem/data/common/tokens/DefaultWalletBlockchains.kt +++ b/data/common/src/main/kotlin/com/tangem/data/common/tokens/DefaultWalletBlockchains.kt @@ -8,10 +8,16 @@ import com.tangem.domain.models.wallet.UserWallet /** * Returns the default blockchains for the multi-currency wallet. * - * @param userWallet The user's wallet, which can be either a cold or hot wallet. - * @param demoConfig Configuration for demo cards, which may specify different default blockchains. + * @param userWallet The user's wallet, which can be either a cold or hot wallet. + * @param demoConfig Configuration for demo cards, which may specify different default blockchains. + * @param extraBlockchains Additional blockchains appended on top of the standard defaults for non-demo cold wallets + * (e.g. batch- or promo-specific entries resolved by the caller). */ -fun getDefaultWalletBlockchains(userWallet: UserWallet, demoConfig: DemoConfig): Collection { +fun getDefaultWalletBlockchains( + userWallet: UserWallet, + demoConfig: DemoConfig, + extraBlockchains: List = emptyList(), +): Collection { return when (userWallet) { is UserWallet.Cold -> { val card = userWallet.scanResponse.card @@ -19,7 +25,7 @@ fun getDefaultWalletBlockchains(userWallet: UserWallet, demoConfig: DemoConfig): var blockchainsInternal = if (demoConfig.isDemoCardId(card.cardId)) { demoConfig.getDemoBlockchains(card.cardId) } else { - listOf(Blockchain.Bitcoin, Blockchain.Ethereum) + listOf(Blockchain.Bitcoin, Blockchain.Ethereum) + extraBlockchains } if (card.isTestCard) { diff --git a/data/onramp/src/main/java/com/tangem/data/onramp/legacy/MercuryoBlockchainMapping.kt b/data/onramp/src/main/java/com/tangem/data/onramp/legacy/MercuryoBlockchainMapping.kt index c1bf85879a..debbb9773e 100644 --- a/data/onramp/src/main/java/com/tangem/data/onramp/legacy/MercuryoBlockchainMapping.kt +++ b/data/onramp/src/main/java/com/tangem/data/onramp/legacy/MercuryoBlockchainMapping.kt @@ -163,6 +163,7 @@ public val Blockchain.mercuryoNetwork: String? Blockchain.Linea, Blockchain.LineaTestnet -> null Blockchain.ArbitrumNova -> null Blockchain.Plasma, Blockchain.PlasmaTestnet -> null + Blockchain.Adi, Blockchain.AdiTestnet -> null Blockchain.Monad, Blockchain.MonadTestnet -> null } } \ No newline at end of file diff --git a/domain/card/src/main/kotlin/com/tangem/domain/card/common/extensions/CardSdk.kt b/domain/card/src/main/kotlin/com/tangem/domain/card/common/extensions/CardSdk.kt index 4be35ce782..a3c026c28c 100644 --- a/domain/card/src/main/kotlin/com/tangem/domain/card/common/extensions/CardSdk.kt +++ b/domain/card/src/main/kotlin/com/tangem/domain/card/common/extensions/CardSdk.kt @@ -65,7 +65,9 @@ fun CardDTO.supportedBlockchains( */ private fun CardDTO.isBlockchainUnsupported(blockchain: Blockchain): Boolean { return when (blockchain) { - Blockchain.Quai, Blockchain.QuaiTestnet -> { + Blockchain.Quai, Blockchain.QuaiTestnet, + Blockchain.Adi, Blockchain.AdiTestnet, + -> { firmwareVersion <= FirmwareVersion.HDWalletAvailable } else -> false diff --git a/domain/card/src/main/kotlin/com/tangem/domain/card/configs/Wallet2CardConfig.kt b/domain/card/src/main/kotlin/com/tangem/domain/card/configs/Wallet2CardConfig.kt index a545214f6f..eb936143a1 100644 --- a/domain/card/src/main/kotlin/com/tangem/domain/card/configs/Wallet2CardConfig.kt +++ b/domain/card/src/main/kotlin/com/tangem/domain/card/configs/Wallet2CardConfig.kt @@ -217,6 +217,8 @@ data object Wallet2CardConfig : CardConfig { Blockchain.ArbitrumNova -> EllipticCurve.Secp256k1 Blockchain.Plasma -> EllipticCurve.Secp256k1 Blockchain.PlasmaTestnet -> EllipticCurve.Secp256k1 + Blockchain.Adi -> EllipticCurve.Secp256k1 + Blockchain.AdiTestnet -> EllipticCurve.Secp256k1 Blockchain.Monad -> EllipticCurve.Secp256k1 Blockchain.MonadTestnet -> EllipticCurve.Secp256k1 } diff --git a/domain/card/src/test/java/com/tangem/domain/card/configs/Wallet2CardConfigTest.kt b/domain/card/src/test/java/com/tangem/domain/card/configs/Wallet2CardConfigTest.kt index 9ef3985637..63c29de5b6 100644 --- a/domain/card/src/test/java/com/tangem/domain/card/configs/Wallet2CardConfigTest.kt +++ b/domain/card/src/test/java/com/tangem/domain/card/configs/Wallet2CardConfigTest.kt @@ -173,6 +173,8 @@ class Wallet2CardConfigTest { Blockchain.ArbitrumNova to EllipticCurve.Secp256k1, Blockchain.Plasma to EllipticCurve.Secp256k1, Blockchain.PlasmaTestnet to EllipticCurve.Secp256k1, + Blockchain.Adi to EllipticCurve.Secp256k1, + Blockchain.AdiTestnet to EllipticCurve.Secp256k1, Blockchain.Monad to EllipticCurve.Secp256k1, Blockchain.MonadTestnet to EllipticCurve.Secp256k1, ) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index 257bb0ac32..1b0d2dc074 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,7 +5,7 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "develop-1520" +tangemBlockchainSdk = "develop-1527" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "develop-614" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt index 216070afad..dedf4fb81b 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt @@ -174,6 +174,8 @@ fun Blockchain.Companion.fromNetworkId(networkId: String): Blockchain? { "arbitrum-nova" -> Blockchain.ArbitrumNova "plasma" -> Blockchain.Plasma "plasma/test" -> Blockchain.PlasmaTestnet + "adi-token" -> Blockchain.Adi + "adi-token/test" -> Blockchain.AdiTestnet "monad" -> Blockchain.Monad "monad/test" -> Blockchain.MonadTestnet else -> null @@ -347,6 +349,8 @@ fun Blockchain.toNetworkId(): String { Blockchain.ArbitrumNova -> "arbitrum-nova" Blockchain.Plasma -> "plasma" Blockchain.PlasmaTestnet -> "plasma/test" + Blockchain.Adi -> "adi-token" + Blockchain.AdiTestnet -> "adi-token/test" Blockchain.Monad -> "monad" Blockchain.MonadTestnet -> "monad/test" } @@ -457,6 +461,7 @@ fun Blockchain.toCoinId(): String { Blockchain.Linea, Blockchain.LineaTestnet -> "linea-ethereum" Blockchain.ArbitrumNova -> "arbitrum-nova-ethereum" Blockchain.Plasma, Blockchain.PlasmaTestnet -> "plasma" + Blockchain.Adi, Blockchain.AdiTestnet -> "adi-token" Blockchain.Monad, Blockchain.MonadTestnet -> "monad" } } diff --git a/libs/crypto/src/main/java/com/tangem/lib/crypto/derivation/AccountNodeRecognizer.kt b/libs/crypto/src/main/java/com/tangem/lib/crypto/derivation/AccountNodeRecognizer.kt index 026215cd7c..cb4d5d0d2f 100644 --- a/libs/crypto/src/main/java/com/tangem/lib/crypto/derivation/AccountNodeRecognizer.kt +++ b/libs/crypto/src/main/java/com/tangem/lib/crypto/derivation/AccountNodeRecognizer.kt @@ -177,6 +177,7 @@ class AccountNodeRecognizer(private val blockchain: Blockchain) { Blockchain.ArbitrumNova, Blockchain.Quai, Blockchain.Plasma, + Blockchain.Adi, Blockchain.Monad, -> true Blockchain.Nexa, // unsupported network @@ -253,6 +254,7 @@ class AccountNodeRecognizer(private val blockchain: Blockchain) { Blockchain.QuaiTestnet, Blockchain.LineaTestnet, Blockchain.PlasmaTestnet, + Blockchain.AdiTestnet, Blockchain.MonadTestnet, -> false // endregion