diff --git a/app/src/main/assets/testnet_tokens.json b/app/src/main/assets/testnet_tokens.json index 4053d99fcb..541e49bce1 100644 --- a/app/src/main/assets/testnet_tokens.json +++ b/app/src/main/assets/testnet_tokens.json @@ -148,6 +148,17 @@ } ] }, + { + "id": "the-open-network", + "symbol": "TON", + "name": "The Open Network", + "networks": + [ + { + "networkId": "the-open-network/test" + } + ] + }, { "id" : "Tangem Coin A-TCA", "symbol" : "TCA", diff --git a/app/src/main/java/com/tangem/tap/TapApplication.kt b/app/src/main/java/com/tangem/tap/TapApplication.kt index 2f558982d2..b2204443ec 100644 --- a/app/src/main/java/com/tangem/tap/TapApplication.kt +++ b/app/src/main/java/com/tangem/tap/TapApplication.kt @@ -154,6 +154,8 @@ class TapApplication : Application(), ImageLoaderFactory { initConfigManager(configLoader, ::initWithConfigDependency) initWarningMessagesManager() + loadNativeLibraries() + if (LogConfig.network.blockchainSdkNetwork) { BlockchainSdkRetrofitBuilder.interceptors = listOf( HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BODY }, @@ -188,6 +190,10 @@ class TapApplication : Application(), ImageLoaderFactory { ) } + private fun loadNativeLibraries() { + System.loadLibrary("TrustWalletCore") + } + private fun initConfigManager(loader: FeaturesLocalLoader, onComplete: (Config) -> Unit) { configManager.load(loader) { config -> store.dispatch(GlobalAction.SetConfigManager(configManager)) 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 ed73d0bca4..ab0752e212 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 @@ -6,6 +6,7 @@ import com.tangem.blockchain.common.BlockscoutCredentials import com.tangem.blockchain.common.GetBlockCredentials import com.tangem.blockchain.common.NowNodeCredentials import com.tangem.blockchain.common.QuickNodeCredentials +import com.tangem.blockchain.common.TonCenterCredentials import com.tangem.datasource.config.ConfigManager.Companion.IS_CREATING_TWIN_CARDS_ALLOWED import com.tangem.datasource.config.ConfigManager.Companion.IS_SENDING_TO_PAY_ID_ENABLED import com.tangem.datasource.config.ConfigManager.Companion.IS_TOP_UP_ENABLED @@ -103,6 +104,10 @@ internal class ConfigManagerImpl @Inject constructor() : ConfigManager { nowNodeCredentials = NowNodeCredentials(configValues.nowNodesApiKey), getBlockCredentials = GetBlockCredentials(configValues.getBlockApiKey), kaspaSecondaryApiUrl = configValues.kaspaSecondaryApiUrl, + tonCenterCredentials = TonCenterCredentials( + mainnetApiKey = configValues.tonCenterKeys.mainnet, + testnetApiKey = configValues.tonCenterKeys.testnet, + ), ), appsFlyerDevKey = configValues.appsFlyer.appsFlyerDevKey, amplitudeApiKey = configValues.amplitudeApiKey, 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 ff996033fd..ca935a6e1a 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,5 +1,7 @@ package com.tangem.datasource.config.models +import com.squareup.moshi.Json + /** [REDACTED_AUTHOR] */ @@ -26,6 +28,7 @@ class ConfigValueModel( val bscQuiknodeApiKey: String, val nowNodesApiKey: String, val getBlockApiKey: String, + @Json(name = "tonCenterApiKey") val tonCenterKeys: TonCenterKeys, val blockcypherTokens: Set?, val infuraProjectId: String?, val appsFlyer: AppsFlyer, diff --git a/core/datasource/src/main/java/com/tangem/datasource/config/models/TonCenterKeys.kt b/core/datasource/src/main/java/com/tangem/datasource/config/models/TonCenterKeys.kt new file mode 100644 index 0000000000..c907a8f505 --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/config/models/TonCenterKeys.kt @@ -0,0 +1,12 @@ +package com.tangem.datasource.config.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class TonCenterKeys( + @Json(name = "mainnet") + val mainnet: String, + @Json(name = "testnet") + val testnet: String, +) \ No newline at end of file diff --git a/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt b/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt index 9ec8533263..88d48c6e29 100644 --- a/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt +++ b/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt @@ -50,6 +50,8 @@ fun Blockchain.Companion.fromNetworkId(networkId: String): Blockchain? { "dash" -> Blockchain.Dash "sxdai" -> Blockchain.SaltPay "kaspa" -> Blockchain.Kaspa + "the-open-network" -> Blockchain.TON + "the-open-network/test" -> Blockchain.TONTestnet else -> null } } @@ -104,6 +106,8 @@ fun Blockchain.toNetworkId(): String { Blockchain.Dash -> "dash" Blockchain.SaltPay -> "sxdai" Blockchain.Kaspa -> "kaspa" + Blockchain.TON -> "the-open-network" + Blockchain.TONTestnet -> "the-open-network/test" } } @@ -138,6 +142,7 @@ fun Blockchain.toCoinId(): String { Blockchain.Dash -> "dash" Blockchain.SaltPay -> "xdai" Blockchain.Kaspa -> "kaspa" + Blockchain.TON, Blockchain.TONTestnet -> "the-open-network" Blockchain.Unknown -> "unknown" } }