Updated on 2026-08-14
This commit is contained in:
parent
ef36fbf13e
commit
5f482a6698
2 changed files with 19 additions and 10 deletions
|
|
@ -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,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue