Updated on 2026-08-14
This commit is contained in:
parent
abfa597c4c
commit
3c8a8474d4
2 changed files with 11 additions and 4 deletions
|
|
@ -10,6 +10,7 @@ import com.tangem.domain.tokens.model.CryptoCurrencyStatus
|
||||||
import com.tangem.features.staking.impl.presentation.state.*
|
import com.tangem.features.staking.impl.presentation.state.*
|
||||||
import com.tangem.features.staking.impl.presentation.state.utils.isCompositePendingActions
|
import com.tangem.features.staking.impl.presentation.state.utils.isCompositePendingActions
|
||||||
import com.tangem.features.staking.impl.presentation.state.utils.isTronStakedBalance
|
import com.tangem.features.staking.impl.presentation.state.utils.isTronStakedBalance
|
||||||
|
import com.tangem.lib.crypto.BlockchainUtils
|
||||||
import com.tangem.utils.extensions.isPositive
|
import com.tangem.utils.extensions.isPositive
|
||||||
import com.tangem.utils.transformer.Transformer
|
import com.tangem.utils.transformer.Transformer
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
|
|
@ -44,10 +45,10 @@ internal class SetConfirmationStateInitTransformer(
|
||||||
override fun transform(prevState: StakingUiState): StakingUiState {
|
override fun transform(prevState: StakingUiState): StakingUiState {
|
||||||
val actionType = when {
|
val actionType = when {
|
||||||
isEnter -> StakingActionCommonType.Enter
|
isEnter -> StakingActionCommonType.Enter
|
||||||
isImplicitExit || isExplicitExit -> StakingActionCommonType.Exit(isPartiallyUnstakeDisabled())
|
isImplicitExit || isExplicitExit -> StakingActionCommonType.Exit(isPartialUnstakeDisabled(prevState))
|
||||||
else -> when (pendingAction?.type) {
|
else -> when (pendingAction?.type) {
|
||||||
StakingActionType.STAKE -> StakingActionCommonType.Enter
|
StakingActionType.STAKE -> StakingActionCommonType.Enter
|
||||||
StakingActionType.UNSTAKE -> StakingActionCommonType.Exit(isPartiallyUnstakeDisabled())
|
StakingActionType.UNSTAKE -> StakingActionCommonType.Exit(isPartialUnstakeDisabled(prevState))
|
||||||
StakingActionType.CLAIM_REWARDS,
|
StakingActionType.CLAIM_REWARDS,
|
||||||
StakingActionType.RESTAKE_REWARDS,
|
StakingActionType.RESTAKE_REWARDS,
|
||||||
-> StakingActionCommonType.Pending.Rewards
|
-> StakingActionCommonType.Pending.Rewards
|
||||||
|
|
@ -80,7 +81,13 @@ internal class SetConfirmationStateInitTransformer(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isPartiallyUnstakeDisabled(): Boolean {
|
private fun isPartialUnstakeDisabled(state: StakingUiState): Boolean {
|
||||||
|
val isSolana = BlockchainUtils.isSolana(state.cryptoCurrencyBlockchainId)
|
||||||
|
val isValidatorPreferred = balanceState?.validator?.preferred == true
|
||||||
|
if (isSolana && !isValidatorPreferred) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
val exitArgs = yieldArgs.exit ?: return false
|
val exitArgs = yieldArgs.exit ?: return false
|
||||||
val exitAmount = exitArgs.args[Yield.Args.ArgType.AMOUNT] ?: return false
|
val exitAmount = exitArgs.args[Yield.Args.ArgType.AMOUNT] ?: return false
|
||||||
val min = exitAmount.minimum ?: return false
|
val min = exitAmount.minimum ?: return false
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
[versions]
|
[versions]
|
||||||
tangemBlockchainSdk = "release-app_5.21-958"
|
tangemBlockchainSdk = "release-app_5.21-963"
|
||||||
#tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds
|
#tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds
|
||||||
tangemCardSdk = "release-app_5.21-435"
|
tangemCardSdk = "release-app_5.21-435"
|
||||||
#tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^
|
#tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue