Updated on 2026-08-14

This commit is contained in:
Tangem 2024-07-22 22:01:02 +03:00
parent ef36fbf13e
commit 5f482a6698
2 changed files with 19 additions and 10 deletions

View file

@ -7,6 +7,7 @@ import com.tangem.domain.tokens.*
import com.tangem.domain.tokens.repository.* import com.tangem.domain.tokens.repository.*
import com.tangem.domain.walletmanager.WalletManagersFacade import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.feature.swap.domain.api.SwapRepository import com.tangem.feature.swap.domain.api.SwapRepository
import com.tangem.features.staking.api.featuretoggles.StakingFeatureToggles
import com.tangem.utils.coroutines.CoroutineDispatcherProvider import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import dagger.Module import dagger.Module
import dagger.Provides import dagger.Provides
@ -211,6 +212,7 @@ internal object TokensDomainModule {
quotesRepository: QuotesRepository, quotesRepository: QuotesRepository,
networksRepository: NetworksRepository, networksRepository: NetworksRepository,
stakingRepository: StakingRepository, stakingRepository: StakingRepository,
stakingFeatureToggles: StakingFeatureToggles,
dispatchers: CoroutineDispatcherProvider, dispatchers: CoroutineDispatcherProvider,
): GetCryptoCurrencyActionsUseCase { ): GetCryptoCurrencyActionsUseCase {
return GetCryptoCurrencyActionsUseCase( return GetCryptoCurrencyActionsUseCase(
@ -221,6 +223,7 @@ internal object TokensDomainModule {
quotesRepository = quotesRepository, quotesRepository = quotesRepository,
networksRepository = networksRepository, networksRepository = networksRepository,
stakingRepository = stakingRepository, stakingRepository = stakingRepository,
stakingFeatureToggles = stakingFeatureToggles,
dispatchers = dispatchers, dispatchers = dispatchers,
) )
} }

View file

@ -12,6 +12,7 @@ import com.tangem.domain.tokens.repository.NetworksRepository
import com.tangem.domain.tokens.repository.QuotesRepository import com.tangem.domain.tokens.repository.QuotesRepository
import com.tangem.domain.walletmanager.WalletManagersFacade import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.domain.wallets.models.UserWallet import com.tangem.domain.wallets.models.UserWallet
import com.tangem.features.staking.api.featuretoggles.StakingFeatureToggles
import com.tangem.utils.coroutines.CoroutineDispatcherProvider import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import com.tangem.utils.isNullOrZero import com.tangem.utils.isNullOrZero
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
@ -31,6 +32,7 @@ class GetCryptoCurrencyActionsUseCase(
private val quotesRepository: QuotesRepository, private val quotesRepository: QuotesRepository,
private val networksRepository: NetworksRepository, private val networksRepository: NetworksRepository,
private val stakingRepository: StakingRepository, private val stakingRepository: StakingRepository,
private val stakingFeatureToggles: StakingFeatureToggles,
private val dispatchers: CoroutineDispatcherProvider, private val dispatchers: CoroutineDispatcherProvider,
) { ) {
@ -126,14 +128,16 @@ class GetCryptoCurrencyActionsUseCase(
} }
// staking // staking
if (isStakingAvailable(cryptoCurrency)) { if (stakingFeatureToggles.isStakingEnabled) {
activeList.add(TokenActionsState.ActionState.Stake(ScenarioUnavailabilityReason.None)) if (isStakingAvailable(cryptoCurrency)) {
} else { activeList.add(TokenActionsState.ActionState.Stake(ScenarioUnavailabilityReason.None))
disabledList.add( } else {
TokenActionsState.ActionState.Stake( disabledList.add(
unavailabilityReason = ScenarioUnavailabilityReason.StakingUnavailable(cryptoCurrency.name), TokenActionsState.ActionState.Stake(
), unavailabilityReason = ScenarioUnavailabilityReason.StakingUnavailable(cryptoCurrency.name),
) ),
)
}
} }
// send // send
@ -240,7 +244,6 @@ class GetCryptoCurrencyActionsUseCase(
actionsList.add(TokenActionsState.ActionState.Send(ScenarioUnavailabilityReason.Unreachable)) actionsList.add(TokenActionsState.ActionState.Send(ScenarioUnavailabilityReason.Unreachable))
actionsList.add(TokenActionsState.ActionState.Swap(ScenarioUnavailabilityReason.Unreachable)) actionsList.add(TokenActionsState.ActionState.Swap(ScenarioUnavailabilityReason.Unreachable))
actionsList.add(TokenActionsState.ActionState.Sell(ScenarioUnavailabilityReason.Unreachable)) actionsList.add(TokenActionsState.ActionState.Sell(ScenarioUnavailabilityReason.Unreachable))
if (isAddressAvailable(cryptoCurrencyStatus.value.networkAddress)) { if (isAddressAvailable(cryptoCurrencyStatus.value.networkAddress)) {
val scenario = if (needAssociateAsset) { val scenario = if (needAssociateAsset) {
ScenarioUnavailabilityReason.UnassociatedAsset ScenarioUnavailabilityReason.UnassociatedAsset
@ -249,8 +252,11 @@ class GetCryptoCurrencyActionsUseCase(
} }
actionsList.add(TokenActionsState.ActionState.Receive(scenario)) actionsList.add(TokenActionsState.ActionState.Receive(scenario))
} }
actionsList.add(TokenActionsState.ActionState.Stake(ScenarioUnavailabilityReason.Unreachable)) if (stakingFeatureToggles.isStakingEnabled) {
actionsList.add(TokenActionsState.ActionState.Stake(ScenarioUnavailabilityReason.Unreachable))
}
actionsList.add(TokenActionsState.ActionState.HideToken(ScenarioUnavailabilityReason.None)) actionsList.add(TokenActionsState.ActionState.HideToken(ScenarioUnavailabilityReason.None))
return actionsList return actionsList
} }