Updated on 2026-08-14

This commit is contained in:
Tangem 2024-09-28 14:33:53 +04:00
parent 18af16b795
commit cd0b30eaec
40 changed files with 235 additions and 258 deletions

View file

@ -6,8 +6,8 @@ import com.tangem.blockchain.common.network.providers.ProviderType
import com.tangem.blockchainsdk.converters.BlockchainProviderTypesConverter
import com.tangem.blockchainsdk.loader.BlockchainProvidersResponseLoader
import com.tangem.blockchainsdk.store.RuntimeStore
import com.tangem.datasource.config.ConfigManager
import com.tangem.datasource.config.models.ProviderModel
import com.tangem.datasource.local.config.environment.EnvironmentConfigStorage
import com.tangem.datasource.local.config.environment.models.ProviderModel
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.coroutineScope
@ -22,7 +22,7 @@ internal typealias BlockchainProviderTypes = Map<Blockchain, List<ProviderType>>
* Implementation of Blockchain SDK components factory
*
* @property blockchainProvidersResponseLoader blockchain providers response loader
* @property configManager config manager
* @property environmentConfigStorage environment config storage
* @property blockchainProviderTypesStore blockchain provider types store
* @property walletManagerFactoryCreator wallet manager factory creator
*
@ -30,7 +30,7 @@ internal typealias BlockchainProviderTypes = Map<Blockchain, List<ProviderType>>
*/
internal class DefaultBlockchainSDKFactory(
private val blockchainProvidersResponseLoader: BlockchainProvidersResponseLoader,
private val configManager: ConfigManager,
private val environmentConfigStorage: EnvironmentConfigStorage,
private val blockchainProviderTypesStore: RuntimeStore<BlockchainProviderTypes>,
private val walletManagerFactoryCreator: WalletManagerFactoryCreator,
dispatchers: CoroutineDispatcherProvider,
@ -54,7 +54,7 @@ internal class DefaultBlockchainSDKFactory(
private fun createWalletManagerFactory(): Flow<WalletManagerFactory?> {
return combine(
flow = configManager.getConfig().map { it.blockchainSdkConfig },
flow = environmentConfigStorage.getConfig().map { it.blockchainSdkConfig },
flow2 = blockchainProviderTypesStore.get(),
// flow3 = subscribe on feature toggles changes, TODO: [REDACTED_JIRA]
transform = walletManagerFactoryCreator::create,

View file

@ -6,7 +6,7 @@ import com.tangem.blockchainsdk.BlockchainProviderTypes
import com.tangem.blockchainsdk.BlockchainProvidersResponse
import com.tangem.blockchainsdk.utils.createPrivateProviderType
import com.tangem.blockchainsdk.utils.fromNetworkId
import com.tangem.datasource.config.models.ProviderModel
import com.tangem.datasource.local.config.environment.models.ProviderModel
import com.tangem.utils.converter.Converter
import timber.log.Timber

View file

@ -12,7 +12,7 @@ import com.tangem.blockchainsdk.store.DefaultRuntimeStore
import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
import com.tangem.datasource.api.common.AuthProvider
import com.tangem.datasource.api.tangemTech.TangemTechApi
import com.tangem.datasource.config.ConfigManager
import com.tangem.datasource.local.config.environment.EnvironmentConfigStorage
import com.tangem.datasource.local.preferences.AppPreferencesStore
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import dagger.Module
@ -29,13 +29,13 @@ internal object BlockchainSDKFactoryModule {
@Singleton
fun provideBlockchainSDKFactory(
blockchainProvidersResponseLoader: BlockchainProvidersResponseLoader,
configManager: ConfigManager,
environmentConfigStorage: EnvironmentConfigStorage,
walletManagerFactoryCreator: WalletManagerFactoryCreator,
dispatchers: CoroutineDispatcherProvider,
): BlockchainSDKFactory {
return DefaultBlockchainSDKFactory(
blockchainProvidersResponseLoader = blockchainProvidersResponseLoader,
configManager = configManager,
environmentConfigStorage = environmentConfigStorage,
blockchainProviderTypesStore = DefaultRuntimeStore(defaultValue = emptyMap()),
walletManagerFactoryCreator = walletManagerFactoryCreator,
dispatchers = dispatchers,

View file

@ -6,7 +6,7 @@ import com.tangem.blockchainsdk.BlockchainProvidersResponse
import com.tangem.blockchainsdk.utils.createPrivateProviderType
import com.tangem.datasource.api.tangemTech.TangemTechApi
import com.tangem.datasource.asset.loader.AssetLoader
import com.tangem.datasource.config.models.ProviderModel
import com.tangem.datasource.local.config.environment.models.ProviderModel
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import com.tangem.utils.coroutines.runCatching
import timber.log.Timber