From 6c9b3026eff19be1ba2a8a9cb4e9559fd2aa6bbf Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 4 Oct 2024 12:21:55 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../staking/InvalidatePendingTransactionsUseCase.kt | 8 +++++--- .../impl/presentation/state/InnerYieldBalanceState.kt | 2 ++ .../presentation/state/converters/BalanceItemConverter.kt | 1 + .../state/converters/RewardsValidatorStateConverter.kt | 2 ++ .../state/previewdata/InitialStakingStatePreview.kt | 2 ++ 5 files changed, 12 insertions(+), 3 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 b7c4c597ef..3ed9de1336 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 @@ -8,6 +8,7 @@ import com.tangem.domain.staking.model.stakekit.StakingError import com.tangem.domain.staking.repositories.StakingErrorResolver import com.tangem.domain.staking.repositories.StakingPendingTransactionRepository import com.tangem.domain.wallets.models.UserWalletId +import org.joda.time.DateTime import java.util.UUID class InvalidatePendingTransactionsUseCase( @@ -40,12 +41,12 @@ class InvalidatePendingTransactionsUseCase( newBalancesId: Int, pendingData: List>, ): Pair, List> { - val balances = realData.associateBy { Triple(it.groupId, it.type, it.amount) }.toMutableMap() + val balances = realData.associateBy { Pair(it.groupId to it.type, it.amount to it.date) }.toMutableMap() val transactionsToRemove = mutableListOf() pendingData.forEach { (pendingTransaction, balanceItem) -> - val key = Triple(balanceItem.groupId, balanceItem.type, balanceItem.amount) + val key = Pair(balanceItem.groupId to balanceItem.type, balanceItem.amount to balanceItem.date) val oldBalancesId = pendingTransaction.balancesId when { @@ -57,7 +58,8 @@ class InvalidatePendingTransactionsUseCase( } else -> { val groupId = UUID.randomUUID().toString() - balances[Triple(groupId, BalanceType.STAKED, pendingTransaction.amount)] = BalanceItem( + val now = DateTime.now() + balances[Pair(groupId to BalanceType.STAKED, pendingTransaction.amount to now)] = BalanceItem( groupId = groupId, type = pendingTransaction.type, amount = pendingTransaction.amount, diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/InnerYieldBalanceState.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/InnerYieldBalanceState.kt index 92c74bd946..bb73ad83b6 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/InnerYieldBalanceState.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/InnerYieldBalanceState.kt @@ -7,6 +7,7 @@ import com.tangem.domain.staking.model.stakekit.PendingAction import com.tangem.domain.staking.model.stakekit.RewardBlockType import com.tangem.domain.staking.model.stakekit.Yield import kotlinx.collections.immutable.ImmutableList +import org.joda.time.DateTime import java.math.BigDecimal internal sealed class InnerYieldBalanceState { @@ -35,4 +36,5 @@ internal data class BalanceState( val validator: Yield.Validator?, val pendingActions: ImmutableList, val isPending: Boolean, + val date: DateTime, ) \ No newline at end of file diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/BalanceItemConverter.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/BalanceItemConverter.kt index 045baf45e0..e08e0a26d1 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/BalanceItemConverter.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/BalanceItemConverter.kt @@ -63,6 +63,7 @@ internal class BalanceItemConverter( pendingActions = value.pendingActions.toPersistentList(), isClickable = value.type.isClickable() && !value.isPending, isPending = value.isPending, + date = value.date ?: DateTime.now(), ) } } diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/RewardsValidatorStateConverter.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/RewardsValidatorStateConverter.kt index 295f07c032..aca5b46db7 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/RewardsValidatorStateConverter.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/RewardsValidatorStateConverter.kt @@ -14,6 +14,7 @@ import com.tangem.features.staking.impl.presentation.state.StakingStates import com.tangem.utils.Provider import com.tangem.utils.converter.Converter import kotlinx.collections.immutable.toPersistentList +import org.joda.time.DateTime import java.math.BigDecimal internal class RewardsValidatorStateConverter( @@ -91,6 +92,7 @@ internal class RewardsValidatorStateConverter( isClickable = true, type = balance.type, isPending = balance.isPending, + date = balance.date ?: DateTime.now(), ) } } \ No newline at end of file diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/previewdata/InitialStakingStatePreview.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/previewdata/InitialStakingStatePreview.kt index d3890582f5..9273a2bea2 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/previewdata/InitialStakingStatePreview.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/previewdata/InitialStakingStatePreview.kt @@ -12,6 +12,7 @@ import com.tangem.features.staking.impl.presentation.state.BalanceState import com.tangem.features.staking.impl.presentation.state.InnerYieldBalanceState import com.tangem.features.staking.impl.presentation.state.StakingStates import kotlinx.collections.immutable.persistentListOf +import org.joda.time.DateTime internal object InitialStakingStatePreview { val defaultState = StakingStates.InitialInfoState.Data( @@ -93,6 +94,7 @@ internal object InitialStakingStatePreview { type = BalanceType.STAKED, subtitle = null, isPending = false, + date = DateTime.now(), ), ), ),