Updated on 2026-08-14
This commit is contained in:
parent
9cb17e5cc3
commit
06eabf3699
2 changed files with 16 additions and 3 deletions
|
|
@ -3,6 +3,7 @@ package com.tangem.data.staking.converters
|
|||
import com.tangem.data.staking.converters.action.PendingActionConverter
|
||||
import com.tangem.datasource.api.stakekit.models.response.model.YieldBalanceWrapperDTO
|
||||
import com.tangem.domain.staking.model.stakekit.*
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingActionType
|
||||
import com.tangem.utils.converter.Converter
|
||||
|
||||
internal class YieldBalanceConverter : Converter<YieldBalanceWrapperDTO, YieldBalance> {
|
||||
|
|
@ -27,7 +28,10 @@ internal class YieldBalanceConverter : Converter<YieldBalanceWrapperDTO, YieldBa
|
|||
// tron-specific. operates validatorAddresses instead of validatorAddress
|
||||
validatorAddress = item.validatorAddress ?: item.validatorAddresses?.get(0),
|
||||
date = item.date?.toDateTime(),
|
||||
pendingActions = pendingActionConverter.convertList(item.pendingActions),
|
||||
pendingActions = pendingActionConverter
|
||||
.convertList(item.pendingActions)
|
||||
// temporarily exclude VOTE_LOCKED, it will be implemented in future iterations
|
||||
.filterNot { it.type == StakingActionType.VOTE_LOCKED },
|
||||
)
|
||||
},
|
||||
integrationId = value.integrationId,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
package com.tangem.features.staking.impl.presentation.state.transformers
|
||||
|
||||
import com.tangem.domain.staking.model.stakekit.BalanceType
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingActionCommonType
|
||||
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
|
||||
import com.tangem.domain.tokens.model.Network
|
||||
import com.tangem.features.staking.impl.presentation.state.*
|
||||
import com.tangem.lib.crypto.BlockchainUtils.isTron
|
||||
import com.tangem.utils.transformer.Transformer
|
||||
|
|
@ -12,8 +14,11 @@ internal class ActionTypeActiveStakeTransformer(
|
|||
) : Transformer<StakingUiState> {
|
||||
|
||||
override fun transform(prevState: StakingUiState): StakingUiState {
|
||||
val isTron = isTron(cryptoCurrencyStatus.currency.network.id.value)
|
||||
val actionType = if (activeStake.pendingActions.isEmpty() || isTron) {
|
||||
val isTronStakedBalance = isTronStakedBalance(
|
||||
networkId = cryptoCurrencyStatus.currency.network.id,
|
||||
activeStake = activeStake,
|
||||
)
|
||||
val actionType = if (activeStake.pendingActions.isEmpty() || isTronStakedBalance) {
|
||||
StakingActionCommonType.EXIT
|
||||
} else {
|
||||
StakingActionCommonType.PENDING_OTHER
|
||||
|
|
@ -21,4 +26,8 @@ internal class ActionTypeActiveStakeTransformer(
|
|||
|
||||
return prevState.copy(actionType = actionType)
|
||||
}
|
||||
|
||||
private fun isTronStakedBalance(networkId: Network.ID, activeStake: BalanceState): Boolean {
|
||||
return isTron(networkId.value) && activeStake.type == BalanceType.STAKED
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue