diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index 2d18650f6d..e4fac168bd 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit 2d18650f6d4286353046ccb841745cef107c4fa6 +Subproject commit e4fac168bd941fe90b0f081dfa70ea1b4148b49f 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..74d8432e61 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 @@ -164,4 +164,6 @@ internal val Blockchain.moonPaySupportedCurrency: MoonPaySupportedCurrency? ArbitrumNova -> null Plasma, PlasmaTestnet -> null Monad, MonadTestnet -> null + Berachain -> MoonPaySupportedCurrency(networkCode = "berachain", currencyCode = "bera_bera") + BerachainTestnet -> null } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/converter/BlockchainSDKConfigConverter.kt b/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/converter/BlockchainSDKConfigConverter.kt index fab336d555..57c2a3abe7 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/converter/BlockchainSDKConfigConverter.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/converter/BlockchainSDKConfigConverter.kt @@ -34,6 +34,14 @@ internal object BlockchainSDKConfigConverter : Converter R.drawable.img_arbitrum_nova_22 "plasma", "plasma/test" -> R.drawable.img_plasma_22 "monad", "monad/test" -> R.drawable.img_monad_22 + "berachain", "berachain/test" -> R.drawable.img_berachain_22 else -> R.drawable.ic_alert_24 } } @@ -198,6 +199,7 @@ fun getActiveIconResByCoinId(coinId: String): Int { "arbitrum-nova" -> R.drawable.img_arbitrum_nova_22 "plasma", "plasma/test" -> R.drawable.img_plasma_22 "monad", "monad/test" -> R.drawable.img_monad_22 + "berachain-bera" -> R.drawable.img_berachain_22 else -> R.drawable.ic_alert_24 } } @@ -299,6 +301,7 @@ fun getGreyedOutIconRes(blockchainId: String): Int { "arbitrum-nova" -> R.drawable.ic_arbitrum_nova_22 "plasma", "plasma/test" -> R.drawable.ic_plasma_22 "monad", "monad/test" -> R.drawable.ic_monad_22 + "berachain", "berachain/test" -> R.drawable.ic_berachain_22 else -> R.drawable.ic_alert_24 } } \ No newline at end of file diff --git a/core/ui/src/main/res/drawable/ic_berachain_22.xml b/core/ui/src/main/res/drawable/ic_berachain_22.xml new file mode 100644 index 0000000000..18aee83244 --- /dev/null +++ b/core/ui/src/main/res/drawable/ic_berachain_22.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/core/ui/src/main/res/drawable/img_berachain_22.xml b/core/ui/src/main/res/drawable/img_berachain_22.xml new file mode 100644 index 0000000000..c17d595496 --- /dev/null +++ b/core/ui/src/main/res/drawable/img_berachain_22.xml @@ -0,0 +1,22 @@ + + + + + + + + + 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 bf9014a844..096282c5e9 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 @@ -377,6 +377,7 @@ class NetworkFactory @Inject constructor( Blockchain.ArbitrumNova, Blockchain.Plasma, Blockchain.PlasmaTestnet, Blockchain.Monad, Blockchain.MonadTestnet, + Blockchain.Berachain, Blockchain.BerachainTestnet, -> Network.TransactionExtrasType.NONE // endregion } diff --git a/data/common/src/test/kotlin/com/tangem/data/common/network/NetworkFactoryTest.kt b/data/common/src/test/kotlin/com/tangem/data/common/network/NetworkFactoryTest.kt index e0fc158abe..6d3a6467d5 100644 --- a/data/common/src/test/kotlin/com/tangem/data/common/network/NetworkFactoryTest.kt +++ b/data/common/src/test/kotlin/com/tangem/data/common/network/NetworkFactoryTest.kt @@ -461,6 +461,13 @@ class NetworkFactoryTest { Blockchain.Scroll, Blockchain.ScrollTestnet, Blockchain.ZkLinkNova, Blockchain.ZkLinkNovaTestnet, Blockchain.Pepecoin, Blockchain.PepecoinTestnet, + Blockchain.Hyperliquid, Blockchain.HyperliquidTestnet, + Blockchain.Quai, Blockchain.QuaiTestnet, + Blockchain.Linea, Blockchain.LineaTestnet, + Blockchain.ArbitrumNova, + Blockchain.Plasma, Blockchain.PlasmaTestnet, + Blockchain.Monad, Blockchain.MonadTestnet, + Blockchain.Berachain, Blockchain.BerachainTestnet, ), expected = Network.TransactionExtrasType.NONE, ), 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..6aeecb1989 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 @@ -164,5 +164,6 @@ public val Blockchain.mercuryoNetwork: String? Blockchain.ArbitrumNova -> null Blockchain.Plasma, Blockchain.PlasmaTestnet -> null Blockchain.Monad, Blockchain.MonadTestnet -> null + Blockchain.Berachain, Blockchain.BerachainTestnet -> null } } \ No newline at end of file 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 0c4ba1c0b0..77f35df7fd 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 @@ -219,6 +219,8 @@ data object Wallet2CardConfig : CardConfig { Blockchain.PlasmaTestnet -> EllipticCurve.Secp256k1 Blockchain.Monad -> EllipticCurve.Secp256k1 Blockchain.MonadTestnet -> EllipticCurve.Secp256k1 + Blockchain.Berachain -> EllipticCurve.Secp256k1 + Blockchain.BerachainTestnet -> EllipticCurve.Secp256k1 } } } \ No newline at end of file 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..7ae6b64eec 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 @@ -175,6 +175,8 @@ class Wallet2CardConfigTest { Blockchain.PlasmaTestnet to EllipticCurve.Secp256k1, Blockchain.Monad to EllipticCurve.Secp256k1, Blockchain.MonadTestnet to EllipticCurve.Secp256k1, + Blockchain.Berachain to EllipticCurve.Secp256k1, + Blockchain.BerachainTestnet to EllipticCurve.Secp256k1, ) @Test diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index ae62f1e18f..c84c960be6 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 = "releases-5.34-1430" +tangemBlockchainSdk = "develop-1437" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "develop-578" #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..2d2f7abe65 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 @@ -176,6 +176,8 @@ fun Blockchain.Companion.fromNetworkId(networkId: String): Blockchain? { "plasma/test" -> Blockchain.PlasmaTestnet "monad" -> Blockchain.Monad "monad/test" -> Blockchain.MonadTestnet + "berachain" -> Blockchain.Berachain + "berachain/test" -> Blockchain.BerachainTestnet else -> null } } @@ -349,6 +351,8 @@ fun Blockchain.toNetworkId(): String { Blockchain.PlasmaTestnet -> "plasma/test" Blockchain.Monad -> "monad" Blockchain.MonadTestnet -> "monad/test" + Blockchain.Berachain -> "berachain" + Blockchain.BerachainTestnet -> "berachain/test" } } @@ -458,6 +462,7 @@ fun Blockchain.toCoinId(): String { Blockchain.ArbitrumNova -> "arbitrum-nova-ethereum" Blockchain.Plasma, Blockchain.PlasmaTestnet -> "plasma" Blockchain.Monad, Blockchain.MonadTestnet -> "monad" + Blockchain.Berachain, Blockchain.BerachainTestnet -> "berachain-bera" } } 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 32e90c0d4b..ee1b92dc52 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 @@ -178,6 +178,7 @@ class AccountNodeRecognizer(private val blockchain: Blockchain) { Blockchain.Quai, Blockchain.Plasma, Blockchain.Monad, + Blockchain.Berachain, -> true Blockchain.Nexa, // unsupported network Blockchain.Chia, @@ -254,6 +255,7 @@ class AccountNodeRecognizer(private val blockchain: Blockchain) { Blockchain.LineaTestnet, Blockchain.PlasmaTestnet, Blockchain.MonadTestnet, + Blockchain.BerachainTestnet, -> false // endregion } diff --git a/libs/crypto/src/test/kotlin/com/tangem/lib/crypto/derivation/AccountNodeRecognizerTest.kt b/libs/crypto/src/test/kotlin/com/tangem/lib/crypto/derivation/AccountNodeRecognizerTest.kt index 4d004e0616..756ae1c644 100644 --- a/libs/crypto/src/test/kotlin/com/tangem/lib/crypto/derivation/AccountNodeRecognizerTest.kt +++ b/libs/crypto/src/test/kotlin/com/tangem/lib/crypto/derivation/AccountNodeRecognizerTest.kt @@ -103,6 +103,29 @@ internal class AccountNodeRecognizerTest { expected = null, ), // endregion + + // region Berachain blockchain (EVM-like) + TestModel( + blockchain = Blockchain.Berachain, + derivationPath = "m/44'/60'/0'/0/1", + expected = 1, + ), + TestModel( + blockchain = Blockchain.Berachain, + derivationPath = "m/44'/60'/0'/0/0", + expected = 0, + ), + TestModel( + blockchain = Blockchain.Berachain, + derivationPath = "m/44'/60'/0'/0", + expected = null, + ), + TestModel( + blockchain = Blockchain.Berachain, + derivationPath = "m/44'/60'", + expected = null, + ), + // endregion ) private fun provideUTXOTestModels() = listOf(