Updated on 2026-08-14
This commit is contained in:
parent
286e28223c
commit
aeef2b3945
28 changed files with 158 additions and 240 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue