From d5fdc0d921d2238b73c8a21184ef50ec043e7008 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 3 Apr 2025 18:26:18 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../InvalidatePendingTransactionsUseCase.kt | 18 +++++++++++++----- .../impl/presentation/model/StakingModel.kt | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt b/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt index 45892df5b3..2d48d88f25 100644 --- a/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt +++ b/domain/staking/src/main/java/com/tangem/domain/staking/InvalidatePendingTransactionsUseCase.kt @@ -4,6 +4,7 @@ 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.action.StakingAction import com.tangem.domain.staking.model.stakekit.action.StakingActionType import com.tangem.domain.staking.repositories.StakingErrorResolver @@ -18,11 +19,13 @@ class InvalidatePendingTransactionsUseCase( operator fun invoke( balanceItems: List, processingActions: List, + token: Token, ): Either> { return Either.catch { val balancesToDisplay = mergeBalancesAndProcessingActions( realBalances = balanceItems, processingActions = processingActions, + token = token, ) balancesToDisplay }.mapLeft { @@ -33,16 +36,17 @@ class InvalidatePendingTransactionsUseCase( private fun mergeBalancesAndProcessingActions( realBalances: List, processingActions: List, + token: Token, ): List { val balances = realBalances.toMutableList() processingActions.forEach { action -> when (action.type) { StakingActionType.STAKE, StakingActionType.VOTE -> { - addStubStakedPendingTransaction(balances, action) + addStubStakedPendingTransaction(balances, action, token) } StakingActionType.VOTE_LOCKED -> { - addStubStakedPendingTransaction(balances, action) + addStubStakedPendingTransaction(balances, action, token) removeLockedBalance(balances, action) } StakingActionType.WITHDRAW -> { @@ -77,15 +81,19 @@ class InvalidatePendingTransactionsUseCase( } } - private fun addStubStakedPendingTransaction(balances: MutableList, action: StakingAction) { + private fun addStubStakedPendingTransaction( + balances: MutableList, + action: StakingAction, + token: Token, + ) { balances.add( BalanceItem( groupId = UUID.randomUUID().toString(), - token = balances[0].token, + token = token, type = BalanceType.STAKED, amount = action.amount, rawCurrencyId = null, - validatorAddress = action.validatorAddress ?: action.validatorAddresses?.get(0) ?: "", + validatorAddress = action.validatorAddress ?: action.validatorAddresses?.getOrNull(0) ?: "", date = null, pendingActions = emptyList(), pendingActionsConstraints = emptyList(), diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt index 9a9798fba7..63648d1762 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt @@ -158,6 +158,7 @@ internal class StakingModel @Inject constructor( return invalidatePendingTransactionsUseCase( balanceItems = yieldBalance?.balance?.items ?: emptyList(), processingActions = processingActions, + token = yield.token, ).getOrElse { emptyList() } }