Updated on 2026-08-14
This commit is contained in:
parent
55942f2208
commit
6cf85272f3
11 changed files with 45 additions and 14 deletions
|
|
@ -13,8 +13,10 @@ import com.tangem.datasource.config.models.ConfigValueModel
|
|||
import com.tangem.datasource.config.models.ProviderModel
|
||||
import com.tangem.libs.blockchain_sdk.BuildConfig
|
||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.coroutineScope
|
||||
import kotlinx.coroutines.flow.*
|
||||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
|
||||
internal typealias BlockchainProvidersResponse = Map<String, List<ProviderModel>>
|
||||
|
|
@ -57,6 +59,7 @@ internal class DefaultBlockchainSDKFactory(
|
|||
return combine(
|
||||
flow = configStore.get(),
|
||||
flow2 = blockchainProviderTypesStore.get(),
|
||||
// flow3 = subscribe on feature toggles changes, TODO: [REDACTED_JIRA]
|
||||
transform = walletManagerFactoryCreator::create,
|
||||
)
|
||||
.stateIn(scope = mainScope, started = SharingStarted.Eagerly, initialValue = null)
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
package com.tangem.blockchainsdk
|
||||
|
||||
import com.tangem.blockchain.common.AccountCreator
|
||||
import com.tangem.blockchain.common.BlockchainFeatureToggles
|
||||
import com.tangem.blockchain.common.BlockchainSdkConfig
|
||||
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 timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
|
|
@ -21,6 +23,7 @@ internal class WalletManagerFactoryCreator @Inject constructor(
|
|||
private val accountCreator: AccountCreator,
|
||||
private val blockchainDataStorage: BlockchainDataStorage,
|
||||
private val blockchainSDKLogger: BlockchainSDKLogger,
|
||||
private val blockchainSDKFeatureToggles: BlockchainSDKFeatureToggles,
|
||||
) {
|
||||
|
||||
fun create(config: BlockchainSdkConfig, blockchainProviderTypes: BlockchainProviderTypes): WalletManagerFactory {
|
||||
|
|
@ -30,6 +33,9 @@ internal class WalletManagerFactoryCreator @Inject constructor(
|
|||
config = config,
|
||||
blockchainProviderTypes = blockchainProviderTypes,
|
||||
accountCreator = accountCreator,
|
||||
featureToggles = BlockchainFeatureToggles(
|
||||
isCardanoTokenSupport = blockchainSDKFeatureToggles.isCardanoTokensSupportEnabled,
|
||||
),
|
||||
blockchainDataStorage = blockchainDataStorage,
|
||||
loggers = listOf(blockchainSDKLogger),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -7,8 +7,10 @@ import com.tangem.blockchainsdk.DefaultBlockchainSDKFactory
|
|||
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.core.featuretoggle.manager.FeatureTogglesManager
|
||||
import com.tangem.datasource.api.common.AuthProvider
|
||||
import com.tangem.datasource.api.tangemTech.TangemTechApi
|
||||
import com.tangem.datasource.asset.loader.AssetLoader
|
||||
|
|
@ -49,11 +51,13 @@ internal object BlockchainSDKFactoryModule {
|
|||
tangemTechApi: TangemTechApi,
|
||||
appPreferencesStore: AppPreferencesStore,
|
||||
blockchainSDKLogger: BlockchainSDKLogger,
|
||||
featureTogglesManager: FeatureTogglesManager,
|
||||
): WalletManagerFactoryCreator {
|
||||
return WalletManagerFactoryCreator(
|
||||
accountCreator = DefaultAccountCreator(authProvider, tangemTechApi),
|
||||
blockchainDataStorage = DefaultBlockchainDataStorage(appPreferencesStore),
|
||||
blockchainSDKLogger = blockchainSDKLogger,
|
||||
blockchainSDKFeatureToggles = DefaultBlockchainSDKFeatureToggles(featureTogglesManager),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
package com.tangem.blockchainsdk.featuretoggles
|
||||
|
||||
internal interface BlockchainSDKFeatureToggles {
|
||||
|
||||
val isCardanoTokensSupportEnabled: Boolean
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.tangem.blockchainsdk.featuretoggles
|
||||
|
||||
import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
|
||||
|
||||
internal class DefaultBlockchainSDKFeatureToggles(
|
||||
private val featureTogglesManager: FeatureTogglesManager,
|
||||
) : BlockchainSDKFeatureToggles {
|
||||
|
||||
override val isCardanoTokensSupportEnabled: Boolean
|
||||
get() = featureTogglesManager.isFeatureEnabled(name = "CARDANO_TOKENS_SUPPORT_ENABLED")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue