diff --git a/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt index 2e266bd6b4..700cd6bdfc 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt @@ -1,5 +1,6 @@ package com.tangem.tap.di.domain +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.domain.exchange.RampStateManager import com.tangem.domain.promo.PromoRepository import com.tangem.domain.staking.repositories.StakingRepository @@ -7,6 +8,7 @@ import com.tangem.domain.tokens.* import com.tangem.domain.tokens.repository.* import com.tangem.domain.walletmanager.WalletManagersFacade import com.tangem.features.swap.SwapFeatureToggles +import com.tangem.tap.domain.tokens.DefaultTokensFeatureToggles import com.tangem.utils.coroutines.CoroutineDispatcherProvider import dagger.Module import dagger.Provides @@ -50,6 +52,12 @@ internal object TokensDomainModule { return FetchPendingTransactionsUseCase(networksRepository) } + @Provides + @Singleton + fun provideTokensFeatureToggles(featureTogglesManager: FeatureTogglesManager): TokensFeatureToggles { + return DefaultTokensFeatureToggles(featureTogglesManager = featureTogglesManager) + } + @Provides @Singleton fun provideGetTokenListUseCase( @@ -57,12 +65,14 @@ internal object TokensDomainModule { quotesRepository: QuotesRepository, networksRepository: NetworksRepository, stakingRepository: StakingRepository, + tokensFeatureToggles: TokensFeatureToggles, ): GetTokenListUseCase { return GetTokenListUseCase( - currenciesRepository, - quotesRepository, - networksRepository, - stakingRepository, + currenciesRepository = currenciesRepository, + quotesRepository = quotesRepository, + networksRepository = networksRepository, + stakingRepository = stakingRepository, + tokensFeatureToggles = tokensFeatureToggles, ) } diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/DefaultTokensFeatureToggles.kt b/app/src/main/java/com/tangem/tap/domain/tokens/DefaultTokensFeatureToggles.kt new file mode 100644 index 0000000000..0aae1ffb84 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/domain/tokens/DefaultTokensFeatureToggles.kt @@ -0,0 +1,12 @@ +package com.tangem.tap.domain.tokens + +import com.tangem.core.configtoggle.feature.FeatureTogglesManager +import com.tangem.domain.tokens.TokensFeatureToggles + +internal class DefaultTokensFeatureToggles( + private val featureTogglesManager: FeatureTogglesManager, +) : TokensFeatureToggles { + + override val isBalancesCachingEnabled: Boolean + get() = featureTogglesManager.isFeatureEnabled(name = "BALANCES_CACHING_ENABLED") +} \ No newline at end of file diff --git a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json index 6f8b718c63..ba2bb626ea 100644 --- a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json +++ b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json @@ -42,5 +42,9 @@ { "name": "STAKING_TON_ENABLED", "version": "undefined" + }, + { + "name": "BALANCES_CACHING_ENABLED", + "version": "5.21.0" } ] diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/EnvironmentConfig.kt b/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/EnvironmentConfig.kt index 4ef8709d6d..d4bc388d6d 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/EnvironmentConfig.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/EnvironmentConfig.kt @@ -4,13 +4,12 @@ import com.tangem.blockchain.common.BlockchainSdkConfig import com.tangem.datasource.local.config.environment.models.ExpressModel data class EnvironmentConfig( - val moonPayApiKey: String = "pk_test_kc90oYTANy7UQdBavDKGfL4K9l6VEPE", - val moonPayApiSecretKey: String = "sk_test_V8w4M19LbDjjYOt170s0tGuvXAgyEb1C", + val moonPayApiKey: String = "", + val moonPayApiSecretKey: String = "", val mercuryoWidgetId: String = "", val mercuryoSecret: String = "", val amplitudeApiKey: String = "", val blockchainSdkConfig: BlockchainSdkConfig = BlockchainSdkConfig(), - @Deprecated("Not relevant since version 3.23") val walletConnectProjectId: String = "", val express: ExpressModel? = null, val devExpress: ExpressModel? = null, diff --git a/domain/tokens/build.gradle.kts b/domain/tokens/build.gradle.kts index 2d13dc5ef8..3e8fc1ea6a 100644 --- a/domain/tokens/build.gradle.kts +++ b/domain/tokens/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { implementation(projects.features.swap.api) /** Project - Other */ + implementation(projects.core.configToggles) implementation(projects.core.utils) implementation(projects.libs.crypto) diff --git a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetTokenListUseCase.kt b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetTokenListUseCase.kt index 3de638379d..f2a7df9a80 100644 --- a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetTokenListUseCase.kt +++ b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetTokenListUseCase.kt @@ -26,11 +26,12 @@ class GetTokenListUseCase( private val quotesRepository: QuotesRepository, private val networksRepository: NetworksRepository, private val stakingRepository: StakingRepository, + private val tokensFeatureToggles: TokensFeatureToggles, ) { @OptIn(ExperimentalCoroutinesApi::class) - fun launch(userWalletId: UserWalletId, usePersistenceCache: Boolean = false): LceFlow { - val statusesFlow = if (usePersistenceCache) { + fun launch(userWalletId: UserWalletId): LceFlow { + val statusesFlow = if (tokensFeatureToggles.isBalancesCachingEnabled) { CurrenciesStatusesCachedOperations( currenciesRepository = currenciesRepository, quotesRepository = quotesRepository, diff --git a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/TokensFeatureToggles.kt b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/TokensFeatureToggles.kt new file mode 100644 index 0000000000..faf7427071 --- /dev/null +++ b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/TokensFeatureToggles.kt @@ -0,0 +1,11 @@ +package com.tangem.domain.tokens + +/** + * Tokens feature toggles + * +[REDACTED_AUTHOR] + */ +interface TokensFeatureToggles { + + val isBalancesCachingEnabled: Boolean +} \ No newline at end of file diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/seedphrase/model/SeedPhraseState.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/seedphrase/model/SeedPhraseState.kt index 94750fc959..e3dbcfdabd 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/seedphrase/model/SeedPhraseState.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/seedphrase/model/SeedPhraseState.kt @@ -10,6 +10,6 @@ internal data class SeedPhraseState( ) internal enum class GeneratedWordsType(val length: Int) { - Words12(12), - Words24(24), + Words12(length = 12), + Words24(length = 24), } \ No newline at end of file