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