diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/DefaultBlockchainSDKFactory.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/DefaultBlockchainSDKFactory.kt index 741f900b6d..69a5bdaa75 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/DefaultBlockchainSDKFactory.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/DefaultBlockchainSDKFactory.kt @@ -1,11 +1,9 @@ package com.tangem.blockchainsdk -import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.WalletManagerFactory -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.blockchainsdk.providers.BlockchainProviderTypesStore +import com.tangem.blockchainsdk.providers.BlockchainProvidersResponseLoader import com.tangem.datasource.local.config.environment.EnvironmentConfigStorage import com.tangem.datasource.local.config.providers.models.ProviderModel import com.tangem.utils.coroutines.CoroutineDispatcherProvider @@ -16,7 +14,6 @@ import kotlinx.coroutines.launch import timber.log.Timber internal typealias BlockchainProvidersResponse = Map> -internal typealias BlockchainProviderTypes = Map> /** * Implementation of Blockchain SDK components factory @@ -31,7 +28,7 @@ internal typealias BlockchainProviderTypes = Map> internal class DefaultBlockchainSDKFactory( private val blockchainProvidersResponseLoader: BlockchainProvidersResponseLoader, private val environmentConfigStorage: EnvironmentConfigStorage, - private val blockchainProviderTypesStore: RuntimeStore, + private val blockchainProviderTypesStore: BlockchainProviderTypesStore, private val walletManagerFactoryCreator: WalletManagerFactoryCreator, dispatchers: CoroutineDispatcherProvider, ) : BlockchainSDKFactory { diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/WalletManagerFactoryCreator.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/WalletManagerFactoryCreator.kt index 4b8a887b99..1c9cc512e4 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/WalletManagerFactoryCreator.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/WalletManagerFactoryCreator.kt @@ -7,6 +7,7 @@ import com.tangem.blockchain.common.WalletManagerFactory import com.tangem.blockchain.common.datastorage.BlockchainDataStorage import com.tangem.blockchain.common.logging.BlockchainSDKLogger import com.tangem.blockchainsdk.featuretoggles.BlockchainSDKFeatureToggles +import com.tangem.blockchainsdk.providers.BlockchainProviderTypes import timber.log.Timber import javax.inject.Inject diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/converters/BlockchainProviderTypesConverter.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/converters/BlockchainProviderTypesConverter.kt index c504dbaae7..e1a287d634 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/converters/BlockchainProviderTypesConverter.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/converters/BlockchainProviderTypesConverter.kt @@ -2,8 +2,8 @@ package com.tangem.blockchainsdk.converters import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.network.providers.ProviderType -import com.tangem.blockchainsdk.BlockchainProviderTypes import com.tangem.blockchainsdk.BlockchainProvidersResponse +import com.tangem.blockchainsdk.providers.BlockchainProviderTypes import com.tangem.blockchainsdk.utils.createPrivateProviderType import com.tangem.blockchainsdk.utils.fromNetworkId import com.tangem.datasource.local.config.providers.models.ProviderModel diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt index e0ac497835..4511516692 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt @@ -7,8 +7,8 @@ import com.tangem.blockchainsdk.WalletManagerFactoryCreator import com.tangem.blockchainsdk.accountcreator.DefaultAccountCreator import com.tangem.blockchainsdk.datastorage.DefaultBlockchainDataStorage import com.tangem.blockchainsdk.featuretoggles.DefaultBlockchainSDKFeatureToggles -import com.tangem.blockchainsdk.loader.BlockchainProvidersResponseLoader -import com.tangem.blockchainsdk.store.DefaultRuntimeStore +import com.tangem.blockchainsdk.providers.BlockchainProviderTypesStore +import com.tangem.blockchainsdk.providers.BlockchainProvidersResponseLoader import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.datasource.api.tangemTech.TangemTechApi import com.tangem.datasource.local.config.environment.EnvironmentConfigStorage @@ -30,12 +30,13 @@ internal object BlockchainSDKFactoryModule { blockchainProvidersResponseLoader: BlockchainProvidersResponseLoader, environmentConfigStorage: EnvironmentConfigStorage, walletManagerFactoryCreator: WalletManagerFactoryCreator, + blockchainProviderTypesStore: BlockchainProviderTypesStore, dispatchers: CoroutineDispatcherProvider, ): BlockchainSDKFactory { return DefaultBlockchainSDKFactory( blockchainProvidersResponseLoader = blockchainProvidersResponseLoader, environmentConfigStorage = environmentConfigStorage, - blockchainProviderTypesStore = DefaultRuntimeStore(defaultValue = emptyMap()), + blockchainProviderTypesStore = blockchainProviderTypesStore, walletManagerFactoryCreator = walletManagerFactoryCreator, dispatchers = dispatchers, ) diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/BlockchainProviderTypesStore.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/BlockchainProviderTypesStore.kt new file mode 100644 index 0000000000..f9f0706161 --- /dev/null +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/BlockchainProviderTypesStore.kt @@ -0,0 +1,18 @@ +package com.tangem.blockchainsdk.providers + +import com.tangem.blockchain.common.Blockchain +import com.tangem.blockchain.common.network.providers.ProviderType +import com.tangem.datasource.local.datastore.RuntimeStateStore +import javax.inject.Inject +import javax.inject.Singleton + +internal typealias BlockchainProviderTypes = Map> + +/** + * Blockchain provider types store + * +[REDACTED_AUTHOR] + */ +@Singleton +class BlockchainProviderTypesStore @Inject constructor() : + RuntimeStateStore by RuntimeStateStore(emptyMap()) \ No newline at end of file diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/loader/BlockchainProvidersResponseLoader.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/BlockchainProvidersResponseLoader.kt similarity index 99% rename from libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/loader/BlockchainProvidersResponseLoader.kt rename to libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/BlockchainProvidersResponseLoader.kt index 049829a287..6a3fc7ffc4 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/loader/BlockchainProvidersResponseLoader.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/BlockchainProvidersResponseLoader.kt @@ -1,4 +1,4 @@ -package com.tangem.blockchainsdk.loader +package com.tangem.blockchainsdk.providers import androidx.core.util.PatternsCompat import com.google.firebase.crashlytics.FirebaseCrashlytics diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/store/DefaultRuntimeStore.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/store/DefaultRuntimeStore.kt deleted file mode 100644 index 4278918e98..0000000000 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/store/DefaultRuntimeStore.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.tangem.blockchainsdk.store - -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.StateFlow - -/** - * Default implementation of RuntimeStore - * - * @param defaultValue default value - */ -internal class DefaultRuntimeStore(defaultValue: T) : RuntimeStore { - - private val flow = MutableStateFlow(value = defaultValue) - - override fun get(): StateFlow = flow - - override suspend fun store(value: T) { - flow.value = value - } -} \ No newline at end of file diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/store/RuntimeStore.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/store/RuntimeStore.kt deleted file mode 100644 index 2969e42576..0000000000 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/store/RuntimeStore.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.tangem.blockchainsdk.store - -import kotlinx.coroutines.flow.StateFlow - -/** - * Runtime store - * -[REDACTED_AUTHOR] - */ -internal interface RuntimeStore { - - /** Get flow of elements [T] */ - fun get(): StateFlow - - /** Store [value] */ - suspend fun store(value: T) -} \ No newline at end of file diff --git a/libs/blockchain-sdk/src/test/java/com/tangem/blockchainsdk/loader/BlockchainProvidersResponseLoaderTest.kt b/libs/blockchain-sdk/src/test/java/com/tangem/blockchainsdk/providers/BlockchainProvidersResponseLoaderTest.kt similarity index 99% rename from libs/blockchain-sdk/src/test/java/com/tangem/blockchainsdk/loader/BlockchainProvidersResponseLoaderTest.kt rename to libs/blockchain-sdk/src/test/java/com/tangem/blockchainsdk/providers/BlockchainProvidersResponseLoaderTest.kt index f0233cde5a..b1fbac91f3 100644 --- a/libs/blockchain-sdk/src/test/java/com/tangem/blockchainsdk/loader/BlockchainProvidersResponseLoaderTest.kt +++ b/libs/blockchain-sdk/src/test/java/com/tangem/blockchainsdk/providers/BlockchainProvidersResponseLoaderTest.kt @@ -1,4 +1,4 @@ -package com.tangem.blockchainsdk.loader +package com.tangem.blockchainsdk.providers import com.google.common.truth.Truth import com.google.firebase.crashlytics.FirebaseCrashlytics