Updated on 2026-08-14

This commit is contained in:
Tangem 2026-02-06 13:12:46 +04:00
parent f9226ab6bf
commit a96c3113d1
13 changed files with 53 additions and 1 deletions

View file

@ -163,4 +163,5 @@ internal val Blockchain.moonPaySupportedCurrency: MoonPaySupportedCurrency?
Linea, LineaTestnet -> null Linea, LineaTestnet -> null
ArbitrumNova -> null ArbitrumNova -> null
Plasma, PlasmaTestnet -> null Plasma, PlasmaTestnet -> null
Monad, MonadTestnet -> null
} }

View file

@ -30,6 +30,10 @@ internal object BlockchainSDKConfigConverter : Converter<EnvironmentConfigModel,
apiKey = value.quiknodePlasmaApiKey, apiKey = value.quiknodePlasmaApiKey,
subdomain = value.quiknodePlasmaSubdomain, subdomain = value.quiknodePlasmaSubdomain,
), ),
quickNodeMonadCredentials = QuickNodeCredentials(
apiKey = value.quiknodeMonadApiKey,
subdomain = value.quiknodeMonadSubdomain,
),
infuraProjectId = value.infuraProjectId, infuraProjectId = value.infuraProjectId,
tronGridApiKey = value.tronGridApiKey, tronGridApiKey = value.tronGridApiKey,
nowNodeCredentials = NowNodeCredentials(value.nowNodesApiKey), nowNodeCredentials = NowNodeCredentials(value.nowNodesApiKey),
@ -109,6 +113,8 @@ internal object BlockchainSDKConfigConverter : Converter<EnvironmentConfigModel,
sui = GetBlockAccessToken(jsonRpc = accessTokens.sui?.jsonRPC), sui = GetBlockAccessToken(jsonRpc = accessTokens.sui?.jsonRPC),
telos = GetBlockAccessToken(jsonRpc = accessTokens.telos?.jsonRPC), telos = GetBlockAccessToken(jsonRpc = accessTokens.telos?.jsonRPC),
tezos = GetBlockAccessToken(rest = accessTokens.tezos?.rest), tezos = GetBlockAccessToken(rest = accessTokens.tezos?.rest),
monad = GetBlockAccessToken(rest = accessTokens.monad?.rest),
stellar = GetBlockAccessToken(rest = accessTokens.stellar?.rest),
) )
} }
} }

View file

@ -18,6 +18,8 @@ class EnvironmentConfigModel(
@Json(name = "bscQuiknodeApiKey") val bscQuiknodeApiKey: String, @Json(name = "bscQuiknodeApiKey") val bscQuiknodeApiKey: String,
@Json(name = "quiknodePlasmaSubdomain") val quiknodePlasmaSubdomain: String, @Json(name = "quiknodePlasmaSubdomain") val quiknodePlasmaSubdomain: String,
@Json(name = "quiknodePlasmaApiKey") val quiknodePlasmaApiKey: String, @Json(name = "quiknodePlasmaApiKey") val quiknodePlasmaApiKey: String,
@Json(name = "quiknodeMonadSubdomain") val quiknodeMonadSubdomain: String,
@Json(name = "quiknodeMonadApiKey") val quiknodeMonadApiKey: String,
@Json(name = "nowNodesApiKey") val nowNodesApiKey: String, @Json(name = "nowNodesApiKey") val nowNodesApiKey: String,
@Json(name = "getBlockAccessTokens") val getBlockAccessTokens: GetBlockAccessTokens?, @Json(name = "getBlockAccessTokens") val getBlockAccessTokens: GetBlockAccessTokens?,
@Json(name = "tonCenterApiKey") val tonCenterKeys: TonCenterKeys, @Json(name = "tonCenterApiKey") val tonCenterKeys: TonCenterKeys,
@ -96,6 +98,8 @@ data class GetBlockAccessTokens(
@Json(name = "sui") val sui: GetBlockToken?, @Json(name = "sui") val sui: GetBlockToken?,
@Json(name = "telos") val telos: GetBlockToken?, @Json(name = "telos") val telos: GetBlockToken?,
@Json(name = "tezos") val tezos: GetBlockToken?, @Json(name = "tezos") val tezos: GetBlockToken?,
@Json(name = "monad") val monad: GetBlockToken?,
@Json(name = "stellar") val stellar: GetBlockToken?,
) )
@JsonClass(generateAdapter = true) @JsonClass(generateAdapter = true)

View file

@ -99,6 +99,7 @@ fun getActiveIconRes(blockchainId: String): Int {
"linea", "linea/test" -> R.drawable.img_linea_22 "linea", "linea/test" -> R.drawable.img_linea_22
"arbitrum-nova" -> R.drawable.img_arbitrum_nova_22 "arbitrum-nova" -> R.drawable.img_arbitrum_nova_22
"plasma", "plasma/test" -> R.drawable.img_plasma_22 "plasma", "plasma/test" -> R.drawable.img_plasma_22
"monad", "monad/test" -> R.drawable.img_monad_22
else -> R.drawable.ic_alert_24 else -> R.drawable.ic_alert_24
} }
} }
@ -196,6 +197,7 @@ fun getActiveIconResByCoinId(coinId: String): Int {
"linea", "linea/test" -> R.drawable.img_linea_22 "linea", "linea/test" -> R.drawable.img_linea_22
"arbitrum-nova" -> R.drawable.img_arbitrum_nova_22 "arbitrum-nova" -> R.drawable.img_arbitrum_nova_22
"plasma", "plasma/test" -> R.drawable.img_plasma_22 "plasma", "plasma/test" -> R.drawable.img_plasma_22
"monad", "monad/test" -> R.drawable.img_monad_22
else -> R.drawable.ic_alert_24 else -> R.drawable.ic_alert_24
} }
} }
@ -296,6 +298,7 @@ fun getGreyedOutIconRes(blockchainId: String): Int {
"linea", "linea/test" -> R.drawable.ic_linea_22 "linea", "linea/test" -> R.drawable.ic_linea_22
"arbitrum-nova" -> R.drawable.ic_arbitrum_nova_22 "arbitrum-nova" -> R.drawable.ic_arbitrum_nova_22
"plasma", "plasma/test" -> R.drawable.ic_plasma_22 "plasma", "plasma/test" -> R.drawable.ic_plasma_22
"monad", "monad/test" -> R.drawable.ic_monad_22
else -> R.drawable.ic_alert_24 else -> R.drawable.ic_alert_24
} }
} }

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="22dp"
android:height="22dp"
android:viewportWidth="22"
android:viewportHeight="22">
<path
android:pathData="M10.998,4.125C8.808,4.125 4.125,8.808 4.125,11C4.125,13.192 8.808,17.875 10.998,17.875C13.188,17.875 17.875,13.191 17.875,11C17.875,8.808 13.189,4.125 10.998,4.125ZM9.933,15.001C9.01,14.747 6.526,10.354 6.778,9.432C7.03,8.51 11.426,6.029 12.349,6.281C13.271,6.533 15.756,10.926 15.504,11.848C15.252,12.77 10.856,15.253 9.933,15.001Z"
android:fillColor="#000000"/>
</vector>

View file

@ -0,0 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="22dp"
android:height="22dp"
android:viewportWidth="22"
android:viewportHeight="22">
<group>
<clip-path
android:pathData="M11,0L11,0A11,11 0,0 1,22 11L22,11A11,11 0,0 1,11 22L11,22A11,11 0,0 1,0 11L0,11A11,11 0,0 1,11 0z"/>
<path
android:pathData="M11,0L11,0A11,11 0,0 1,22 11L22,11A11,11 0,0 1,11 22L11,22A11,11 0,0 1,0 11L0,11A11,11 0,0 1,11 0z"
android:fillColor="#6E54FF"/>
<path
android:pathData="M10.998,4.125C8.808,4.125 4.125,8.808 4.125,11C4.125,13.192 8.808,17.875 10.998,17.875C13.188,17.875 17.875,13.191 17.875,11C17.875,8.808 13.189,4.125 10.998,4.125ZM9.933,15.001C9.01,14.747 6.526,10.354 6.778,9.432C7.03,8.51 11.426,6.029 12.349,6.281C13.271,6.533 15.756,10.926 15.504,11.848C15.252,12.77 10.856,15.253 9.933,15.001Z"
android:fillColor="#ffffff"/>
</group>
</vector>

View file

@ -376,6 +376,7 @@ class NetworkFactory @Inject constructor(
Blockchain.Linea, Blockchain.LineaTestnet, Blockchain.Linea, Blockchain.LineaTestnet,
Blockchain.ArbitrumNova, Blockchain.ArbitrumNova,
Blockchain.Plasma, Blockchain.PlasmaTestnet, Blockchain.Plasma, Blockchain.PlasmaTestnet,
Blockchain.Monad, Blockchain.MonadTestnet,
-> Network.TransactionExtrasType.NONE -> Network.TransactionExtrasType.NONE
// endregion // endregion
} }

View file

@ -163,5 +163,6 @@ public val Blockchain.mercuryoNetwork: String?
Blockchain.Linea, Blockchain.LineaTestnet -> null Blockchain.Linea, Blockchain.LineaTestnet -> null
Blockchain.ArbitrumNova -> null Blockchain.ArbitrumNova -> null
Blockchain.Plasma, Blockchain.PlasmaTestnet -> null Blockchain.Plasma, Blockchain.PlasmaTestnet -> null
Blockchain.Monad, Blockchain.MonadTestnet -> null
} }
} }

View file

@ -217,6 +217,8 @@ data object Wallet2CardConfig : CardConfig {
Blockchain.ArbitrumNova -> EllipticCurve.Secp256k1 Blockchain.ArbitrumNova -> EllipticCurve.Secp256k1
Blockchain.Plasma -> EllipticCurve.Secp256k1 Blockchain.Plasma -> EllipticCurve.Secp256k1
Blockchain.PlasmaTestnet -> EllipticCurve.Secp256k1 Blockchain.PlasmaTestnet -> EllipticCurve.Secp256k1
Blockchain.Monad -> EllipticCurve.Secp256k1
Blockchain.MonadTestnet -> EllipticCurve.Secp256k1
} }
} }
} }

View file

@ -173,6 +173,8 @@ class Wallet2CardConfigTest {
Blockchain.ArbitrumNova to EllipticCurve.Secp256k1, Blockchain.ArbitrumNova to EllipticCurve.Secp256k1,
Blockchain.Plasma to EllipticCurve.Secp256k1, Blockchain.Plasma to EllipticCurve.Secp256k1,
Blockchain.PlasmaTestnet to EllipticCurve.Secp256k1, Blockchain.PlasmaTestnet to EllipticCurve.Secp256k1,
Blockchain.Monad to EllipticCurve.Secp256k1,
Blockchain.MonadTestnet to EllipticCurve.Secp256k1,
) )
@Test @Test

View file

@ -5,7 +5,7 @@
# https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/tangem-sdk-android/
# https://github.com/tangem/vico # https://github.com/tangem/vico
tangemBlockchainSdk = "develop-1408" tangemBlockchainSdk = "develop-1419"
#tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds
tangemCardSdk = "develop-577" tangemCardSdk = "develop-577"
#tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^

View file

@ -174,6 +174,8 @@ fun Blockchain.Companion.fromNetworkId(networkId: String): Blockchain? {
"arbitrum-nova" -> Blockchain.ArbitrumNova "arbitrum-nova" -> Blockchain.ArbitrumNova
"plasma" -> Blockchain.Plasma "plasma" -> Blockchain.Plasma
"plasma/test" -> Blockchain.PlasmaTestnet "plasma/test" -> Blockchain.PlasmaTestnet
"monad" -> Blockchain.Monad
"monad/test" -> Blockchain.MonadTestnet
else -> null else -> null
} }
} }
@ -345,6 +347,8 @@ fun Blockchain.toNetworkId(): String {
Blockchain.ArbitrumNova -> "arbitrum-nova" Blockchain.ArbitrumNova -> "arbitrum-nova"
Blockchain.Plasma -> "plasma" Blockchain.Plasma -> "plasma"
Blockchain.PlasmaTestnet -> "plasma/test" Blockchain.PlasmaTestnet -> "plasma/test"
Blockchain.Monad -> "monad"
Blockchain.MonadTestnet -> "monad/test"
} }
} }
@ -453,6 +457,7 @@ fun Blockchain.toCoinId(): String {
Blockchain.Linea, Blockchain.LineaTestnet -> "linea-ethereum" Blockchain.Linea, Blockchain.LineaTestnet -> "linea-ethereum"
Blockchain.ArbitrumNova -> "arbitrum-nova-ethereum" Blockchain.ArbitrumNova -> "arbitrum-nova-ethereum"
Blockchain.Plasma, Blockchain.PlasmaTestnet -> "plasma" Blockchain.Plasma, Blockchain.PlasmaTestnet -> "plasma"
Blockchain.Monad, Blockchain.MonadTestnet -> "monad"
} }
} }

View file

@ -177,6 +177,7 @@ class AccountNodeRecognizer(private val blockchain: Blockchain) {
Blockchain.ArbitrumNova, Blockchain.ArbitrumNova,
Blockchain.Quai, Blockchain.Quai,
Blockchain.Plasma, Blockchain.Plasma,
Blockchain.Monad,
-> true -> true
Blockchain.Nexa, // unsupported network Blockchain.Nexa, // unsupported network
Blockchain.Chia, Blockchain.Chia,
@ -252,6 +253,7 @@ class AccountNodeRecognizer(private val blockchain: Blockchain) {
Blockchain.QuaiTestnet, Blockchain.QuaiTestnet,
Blockchain.LineaTestnet, Blockchain.LineaTestnet,
Blockchain.PlasmaTestnet, Blockchain.PlasmaTestnet,
Blockchain.MonadTestnet,
-> false -> false
// endregion // endregion
} }