From 404bcc011abfac7511e21d92e9e4736726b9c7e3 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 5 Nov 2024 14:27:45 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../main/java/com/tangem/utils/extensions/BigDecimalExt.kt | 5 ++++- domain/staking/build.gradle.kts | 1 + .../domain/staking/InvalidatePendingTransactionsUseCase.kt | 3 ++- .../presentation/state/helpers/StakingBalanceUpdater.kt | 6 +++--- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/utils/src/main/java/com/tangem/utils/extensions/BigDecimalExt.kt b/core/utils/src/main/java/com/tangem/utils/extensions/BigDecimalExt.kt index 31a31d6704..45f2966872 100644 --- a/core/utils/src/main/java/com/tangem/utils/extensions/BigDecimalExt.kt +++ b/core/utils/src/main/java/com/tangem/utils/extensions/BigDecimalExt.kt @@ -12,4 +12,7 @@ fun BigDecimal.isZero(): Boolean = this.compareTo(BigDecimal.ZERO) == 0 fun BigDecimal.isPositive(): Boolean = this.signum() == 1 /** Removes trailing zeros and returns plain [String] */ -fun BigDecimal.stripZeroPlainString(): String = this.stripTrailingZeros().toPlainString() \ No newline at end of file +fun BigDecimal.stripZeroPlainString(): String = this.stripTrailingZeros().toPlainString() + +/** Compares two [BigDecimal] numbers */ +infix fun BigDecimal.isEqualTo(other: BigDecimal): Boolean = this.compareTo(other) == 0 \ No newline at end of file diff --git a/domain/staking/build.gradle.kts b/domain/staking/build.gradle.kts index 9832ec7010..a0caf393f8 100644 --- a/domain/staking/build.gradle.kts +++ b/domain/staking/build.gradle.kts @@ -13,6 +13,7 @@ dependencies { api(projects.domain.staking.models) api(projects.domain.core) api(projects.core.analytics) + api(projects.core.utils) implementation(deps.kotlin.serialization) implementation(deps.jodatime) 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 1b0f6b9128..dbb7c578d4 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 @@ -7,6 +7,7 @@ import com.tangem.domain.staking.model.stakekit.StakingError 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 +import com.tangem.utils.extensions.isEqualTo import java.util.UUID class InvalidatePendingTransactionsUseCase( @@ -75,7 +76,7 @@ class InvalidatePendingTransactionsUseCase( private fun modifyBalancesByStatus(balances: MutableList, action: StakingAction, type: BalanceType) { val index = balances.indexOfFirst { - !it.isPending && it.amount == action.amount && it.type == type + !it.isPending && it.amount isEqualTo action.amount && it.type == type } if (index != -1) { diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingBalanceUpdater.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingBalanceUpdater.kt index e10d32b8a1..c84db7f3ea 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingBalanceUpdater.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingBalanceUpdater.kt @@ -59,9 +59,6 @@ internal class StakingBalanceUpdater @AssistedInject constructor( suspend fun partialUpdate() { coroutineScope { listOf( - async { - updateStakeBalance() - }, async { updateNetworkStatuses(delay = 0) }, @@ -78,6 +75,9 @@ internal class StakingBalanceUpdater @AssistedInject constructor( async { updateStakeBalance() }, + async { + updateProcessingActions() + }, ).awaitAll() } }