Updated on 2026-08-14
This commit is contained in:
parent
66636714e6
commit
5762ba0d16
2 changed files with 14 additions and 5 deletions
|
|
@ -1,10 +1,7 @@
|
|||
package com.tangem.domain.staking
|
||||
|
||||
import arrow.core.Either
|
||||
import com.tangem.domain.staking.model.stakekit.BalanceItem
|
||||
import com.tangem.domain.staking.model.stakekit.BalanceType
|
||||
import com.tangem.domain.staking.model.stakekit.StakingError
|
||||
import com.tangem.domain.staking.model.stakekit.Token
|
||||
import com.tangem.domain.staking.model.stakekit.*
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingAction
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingActionType
|
||||
import com.tangem.domain.staking.repositories.StakingErrorResolver
|
||||
|
|
@ -51,6 +48,9 @@ class InvalidatePendingTransactionsUseCase(
|
|||
}
|
||||
StakingActionType.WITHDRAW -> {
|
||||
modifyBalancesByStatus(balances, action, BalanceType.UNSTAKED)
|
||||
if (token.network == NetworkType.TON) {
|
||||
modifyBalancesByStatus(balances, action, BalanceType.PREPARING)
|
||||
}
|
||||
}
|
||||
StakingActionType.UNLOCK_LOCKED -> {
|
||||
modifyBalancesByStatus(balances, action, BalanceType.LOCKED)
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import com.tangem.domain.staking.model.stakekit.action.StakingActionType
|
|||
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
|
||||
import com.tangem.features.staking.impl.R
|
||||
import com.tangem.features.staking.impl.presentation.state.BalanceState
|
||||
import com.tangem.lib.crypto.BlockchainUtils.isTon
|
||||
import com.tangem.utils.Provider
|
||||
import com.tangem.utils.converter.Converter
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
|
|
@ -60,12 +61,20 @@ internal class BalanceItemConverter(
|
|||
),
|
||||
rawCurrencyId = value.rawCurrencyId,
|
||||
pendingActions = value.pendingActions.toPersistentList(),
|
||||
isClickable = value.type.isClickable() && !value.isPending,
|
||||
isClickable = value.isClickable(),
|
||||
isPending = value.isPending,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun BalanceItem.isClickable(): Boolean {
|
||||
val networkId = cryptoCurrencyStatus.currency.network.id.value
|
||||
return when {
|
||||
isTon(networkId) -> pendingActions.any { it.type == StakingActionType.WITHDRAW }
|
||||
else -> this.type.isClickable() && !this.isPending
|
||||
}
|
||||
}
|
||||
|
||||
private fun BalanceType.getTitle(validatorName: String?) = when (this) {
|
||||
BalanceType.PREPARING,
|
||||
BalanceType.STAKED,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue