Updated on 2026-08-14

This commit is contained in:
Tangem 2026-02-25 15:24:36 +04:00
parent 286e28223c
commit aeef2b3945
28 changed files with 158 additions and 240 deletions

View file

@ -1,8 +1,8 @@
package com.tangem.blockchainsdk
import com.tangem.blockchain.common.BlockchainSdkConfig
import com.tangem.blockchain.common.WalletManagerFactory
import com.tangem.blockchainsdk.providers.BlockchainProvidersTypesManager
import com.tangem.datasource.local.config.environment.EnvironmentConfigStorage
import com.tangem.datasource.local.config.providers.models.ProviderModel
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.CoroutineScope
@ -15,16 +15,16 @@ internal typealias BlockchainProvidersResponse = Map<String, List<ProviderModel>
/**
* Implementation of Blockchain SDK components factory
*
* @property blockchainSdkConfig blockchain SDK config
* @property blockchainProvidersTypesManager blockchain providers types manager
* @property environmentConfigStorage environment config storage
* @property walletManagerFactoryCreator wallet manager factory creator
* @param dispatchers coroutine dispatchers provider
*
[REDACTED_AUTHOR]
*/
internal class DefaultBlockchainSDKFactory(
private val blockchainSdkConfig: BlockchainSdkConfig,
private val blockchainProvidersTypesManager: BlockchainProvidersTypesManager,
private val environmentConfigStorage: EnvironmentConfigStorage,
private val walletManagerFactoryCreator: WalletManagerFactoryCreator,
dispatchers: CoroutineDispatcherProvider,
) : BlockchainSDKFactory {
@ -43,7 +43,7 @@ internal class DefaultBlockchainSDKFactory(
private fun createWalletManagerFactory(): Flow<WalletManagerFactory?> {
return combine(
flow = environmentConfigStorage.getConfig().map { it.blockchainSdkConfig },
flow = flowOf(blockchainSdkConfig),
flow2 = blockchainProvidersTypesManager.get(),
// flow3 = subscribe on feature toggles changes, TODO: [REDACTED_JIRA]
transform = walletManagerFactoryCreator::create,

View file

@ -19,7 +19,7 @@ import com.tangem.blockchainsdk.providers.ProdBlockchainProvidersTypesManager
import com.tangem.blockchainsdk.providers.dev.BlockchainProvidersResponseSerializer
import com.tangem.datasource.api.tangemTech.TangemTechApi
import com.tangem.datasource.di.NetworkMoshi
import com.tangem.datasource.local.config.environment.EnvironmentConfigStorage
import com.tangem.datasource.local.config.environment.EnvironmentConfig
import com.tangem.datasource.local.preferences.AppPreferencesStore
import com.tangem.libs.blockchain_sdk.BuildConfig
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
@ -39,14 +39,14 @@ internal object BlockchainSDKFactoryModule {
@Provides
@Singleton
fun provideBlockchainSDKFactory(
environmentConfig: EnvironmentConfig,
blockchainProvidersTypesManager: BlockchainProvidersTypesManager,
environmentConfigStorage: EnvironmentConfigStorage,
walletManagerFactoryCreator: WalletManagerFactoryCreator,
dispatchers: CoroutineDispatcherProvider,
): BlockchainSDKFactory {
return DefaultBlockchainSDKFactory(
blockchainSdkConfig = environmentConfig.blockchainSdkConfig,
blockchainProvidersTypesManager = blockchainProvidersTypesManager,
environmentConfigStorage = environmentConfigStorage,
walletManagerFactoryCreator = walletManagerFactoryCreator,
dispatchers = dispatchers,
)