diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index f5a90466d2..2a612cd92b 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit f5a90466d2245ca5cfde59b49dc7fa82a6b7cbc2 +Subproject commit 2a612cd92b1c78b99c917d0fe66342831f801e5e diff --git a/core/datasource/src/main/java/com/tangem/datasource/config/ConfigManagerImpl.kt b/core/datasource/src/main/java/com/tangem/datasource/config/ConfigManagerImpl.kt index bded21d266..2c4b2b364f 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/config/ConfigManagerImpl.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/config/ConfigManagerImpl.kt @@ -90,7 +90,7 @@ internal class ConfigManagerImpl @Inject constructor() : ConfigManager { infuraProjectId = configValues.infuraProjectId, tronGridApiKey = configValues.tronGridApiKey, nowNodeCredentials = NowNodeCredentials(configValues.nowNodesApiKey), - getBlockCredentials = GetBlockCredentials(configValues.getBlockApiKey), + getBlockCredentials = createGetBlockCredentials(configValues), kaspaSecondaryApiUrl = configValues.kaspaSecondaryApiUrl, tonCenterCredentials = TonCenterCredentials( mainnetApiKey = configValues.tonCenterKeys.mainnet, @@ -109,4 +109,45 @@ internal class ConfigManagerImpl @Inject constructor() : ConfigManager { tangemExpressApiKey = configValues.tangemExpressApiKey, ) } + + private fun createGetBlockCredentials(configValues: ConfigValueModel): GetBlockCredentials? { + return configValues.getBlockAccessTokens?.let { accessTokens -> + GetBlockCredentials( + xrp = GetBlockAccessToken(jsonRpc = accessTokens.xrp?.jsonRPC), + cardano = GetBlockAccessToken(rosetta = accessTokens.cardano?.rosetta), + avalanche = GetBlockAccessToken(jsonRpc = accessTokens.avalanche?.jsonRPC), + eth = GetBlockAccessToken(jsonRpc = accessTokens.eth?.jsonRPC), + etc = GetBlockAccessToken(jsonRpc = accessTokens.etc?.jsonRPC), + fantom = GetBlockAccessToken(jsonRpc = accessTokens.fantom?.jsonRPC), + rsk = GetBlockAccessToken(jsonRpc = accessTokens.rsk?.jsonRPC), + bsc = GetBlockAccessToken(jsonRpc = accessTokens.bsc?.jsonRPC), + polygon = GetBlockAccessToken(jsonRpc = accessTokens.polygon?.jsonRPC), + gnosis = GetBlockAccessToken(jsonRpc = accessTokens.gnosis?.jsonRPC), + cronos = GetBlockAccessToken(jsonRpc = accessTokens.cronos?.jsonRPC), + solana = GetBlockAccessToken(jsonRpc = accessTokens.solana?.jsonRPC), + stellar = GetBlockAccessToken(rest = accessTokens.stellar?.rest), + ton = GetBlockAccessToken(jsonRpc = accessTokens.ton?.jsonRPC), + tron = GetBlockAccessToken(rest = accessTokens.tron?.rest), + cosmos = GetBlockAccessToken(rest = accessTokens.cosmos?.rest), + near = GetBlockAccessToken(jsonRpc = accessTokens.near?.jsonRPC), + luna = GetBlockAccessToken(rest = accessTokens.luna?.rest), + dogecoin = GetBlockAccessToken( + jsonRpc = accessTokens.dogecoin?.jsonRPC, + blockBookRest = accessTokens.dogecoin?.blockBookRest, + ), + litecoin = GetBlockAccessToken( + jsonRpc = accessTokens.litecoin?.jsonRPC, + blockBookRest = accessTokens.litecoin?.blockBookRest, + ), + dash = GetBlockAccessToken( + jsonRpc = accessTokens.dash?.jsonRPC, + blockBookRest = accessTokens.dash?.blockBookRest, + ), + bitcoin = GetBlockAccessToken( + jsonRpc = accessTokens.bitcoin?.jsonRPC, + blockBookRest = accessTokens.bitcoin?.blockBookRest, + ), + ) + } + } } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/config/models/JsonModels.kt b/core/datasource/src/main/java/com/tangem/datasource/config/models/JsonModels.kt index 47210def4b..a7b0d44453 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/config/models/JsonModels.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/config/models/JsonModels.kt @@ -1,6 +1,7 @@ package com.tangem.datasource.config.models import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass /** [REDACTED_AUTHOR] @@ -25,7 +26,7 @@ class ConfigValueModel( val bscQuiknodeSubdomain: String, val bscQuiknodeApiKey: String, val nowNodesApiKey: String, - val getBlockApiKey: String, + @Json(name = "getBlockAccessTokens") val getBlockAccessTokens: GetBlockAccessTokens?, @Json(name = "tonCenterApiKey") val tonCenterKeys: TonCenterKeys, val blockcypherTokens: Set?, val infuraProjectId: String?, @@ -43,6 +44,40 @@ class ConfigValueModel( val tangemExpressApiKey: String, ) +@JsonClass(generateAdapter = true) +data class GetBlockAccessTokens( + @Json(name = "xrp") val xrp: GetBlockToken?, + @Json(name = "cardano") val cardano: GetBlockToken?, + @Json(name = "avalanche") val avalanche: GetBlockToken?, + @Json(name = "ethereum") val eth: GetBlockToken?, + @Json(name = "ethereumClassic") val etc: GetBlockToken?, + @Json(name = "fantom") val fantom: GetBlockToken?, + @Json(name = "rsk") val rsk: GetBlockToken?, + @Json(name = "bsc") val bsc: GetBlockToken?, + @Json(name = "polygon") val polygon: GetBlockToken?, + @Json(name = "xdai") val gnosis: GetBlockToken?, + @Json(name = "cronos") val cronos: GetBlockToken?, + @Json(name = "solana") val solana: GetBlockToken?, + @Json(name = "stellar") val stellar: GetBlockToken?, + @Json(name = "ton") val ton: GetBlockToken?, + @Json(name = "tron") val tron: GetBlockToken?, + @Json(name = "cosmos-hub") val cosmos: GetBlockToken?, + @Json(name = "near") val near: GetBlockToken?, + @Json(name = "terra-2") val luna: GetBlockToken?, + @Json(name = "dogecoin") val dogecoin: GetBlockToken?, + @Json(name = "litecoin") val litecoin: GetBlockToken?, + @Json(name = "dash") val dash: GetBlockToken?, + @Json(name = "bitcoin") val bitcoin: GetBlockToken?, +) + +@JsonClass(generateAdapter = true) +data class GetBlockToken( + @Json(name = "jsonRpc") val jsonRPC: String?, + @Json(name = "blockBookRest") val blockBookRest: String?, + @Json(name = "rest") val rest: String?, + @Json(name = "rosetta") val rosetta: String?, +) + data class AppsFlyer( val appsFlyerDevKey: String, val appsFlyerAppID: String, diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index efbdda38e4..95e9a29cf5 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ spr-client = "3.6.2" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "develop-394" +tangemBlockchainSdk = "develop-396" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "develop-312" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds