Updated on 2026-08-14

This commit is contained in:
Tangem 2025-04-10 18:43:42 +05:00
parent 66636714e6
commit 5762ba0d16
2 changed files with 14 additions and 5 deletions

View file

@ -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)

View file

@ -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,