Updated on 2026-08-14
This commit is contained in:
parent
fb54de419b
commit
177da9798e
86 changed files with 183 additions and 154 deletions
|
|
@ -2,7 +2,7 @@ package com.tangem.domain.staking
|
|||
|
||||
import arrow.core.Either
|
||||
import com.tangem.domain.models.currency.CryptoCurrency
|
||||
import com.tangem.domain.staking.model.stakekit.NetworkType
|
||||
import com.tangem.domain.models.staking.NetworkType
|
||||
import com.tangem.domain.staking.model.stakekit.StakingError
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingActionStatus
|
||||
import com.tangem.domain.staking.repositories.StakingActionRepository
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.tangem.domain.staking
|
||||
|
||||
import com.tangem.domain.staking.model.StakingIntegrationID
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingActionType
|
||||
import com.tangem.domain.models.staking.action.StakingActionType
|
||||
import java.math.BigDecimal
|
||||
|
||||
class GetActionRequirementAmountUseCase {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
package com.tangem.domain.staking
|
||||
|
||||
import arrow.core.Either
|
||||
import com.tangem.domain.staking.model.stakekit.*
|
||||
import com.tangem.domain.models.staking.BalanceItem
|
||||
import com.tangem.domain.models.staking.BalanceType
|
||||
import com.tangem.domain.models.staking.NetworkType
|
||||
import com.tangem.domain.models.staking.YieldToken
|
||||
import com.tangem.domain.models.staking.action.StakingActionType
|
||||
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.StakingActionStatus
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingActionType
|
||||
import com.tangem.domain.staking.repositories.StakingErrorResolver
|
||||
import com.tangem.utils.extensions.isEqualTo
|
||||
import java.math.BigDecimal
|
||||
|
|
@ -17,7 +21,7 @@ class InvalidatePendingTransactionsUseCase(
|
|||
operator fun invoke(
|
||||
balanceItems: List<BalanceItem>,
|
||||
stakingActions: List<StakingAction>,
|
||||
token: Token,
|
||||
token: YieldToken,
|
||||
): Either<StakingError, List<BalanceItem>> {
|
||||
return Either.catch {
|
||||
val balancesToDisplay = mergeBalancesAndProcessingActions(
|
||||
|
|
@ -34,7 +38,7 @@ class InvalidatePendingTransactionsUseCase(
|
|||
private fun mergeBalancesAndProcessingActions(
|
||||
realBalances: List<BalanceItem>,
|
||||
processingActions: List<StakingAction>,
|
||||
token: Token,
|
||||
token: YieldToken,
|
||||
): List<BalanceItem> {
|
||||
val balances = realBalances.toMutableList()
|
||||
|
||||
|
|
@ -87,7 +91,7 @@ class InvalidatePendingTransactionsUseCase(
|
|||
private fun addStubStakedPendingTransaction(
|
||||
balances: MutableList<BalanceItem>,
|
||||
action: StakingAction,
|
||||
token: Token,
|
||||
token: YieldToken,
|
||||
) {
|
||||
balances.add(
|
||||
BalanceItem(
|
||||
|
|
@ -153,7 +157,7 @@ class InvalidatePendingTransactionsUseCase(
|
|||
return index to action.amount
|
||||
}
|
||||
|
||||
private fun doPostProcessing(balances: MutableList<BalanceItem>, action: StakingAction, token: Token) {
|
||||
private fun doPostProcessing(balances: MutableList<BalanceItem>, action: StakingAction, token: YieldToken) {
|
||||
val validatorAddress = action.validatorAddress ?: action.validatorAddresses?.firstOrNull()
|
||||
if (token.network == NetworkType.TON && validatorAddress != null) {
|
||||
for (index in balances.indices) {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import arrow.core.raise.ensureNotNull
|
|||
import com.tangem.domain.models.currency.CryptoCurrency
|
||||
import com.tangem.domain.models.network.Network
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.domain.staking.model.StakingID
|
||||
import com.tangem.domain.models.staking.StakingID
|
||||
import com.tangem.domain.staking.model.StakingIntegrationID
|
||||
import com.tangem.domain.walletmanager.WalletManagersFacade
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.tangem.core.analytics.models.AnalyticsEvent
|
|||
import com.tangem.core.analytics.models.AnalyticsParam
|
||||
import com.tangem.domain.staking.analytics.StakingAnalyticsEvent.ButtonRewards.addIfValueIsNotNull
|
||||
import com.tangem.domain.staking.model.stakekit.StakingError
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingActionType
|
||||
import com.tangem.domain.models.staking.action.StakingActionType
|
||||
|
||||
sealed class StakingAnalyticsEvent(
|
||||
event: String,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.tangem.domain.staking.multi
|
|||
|
||||
import com.tangem.domain.core.flow.FlowFetcher
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.domain.staking.model.StakingID
|
||||
import com.tangem.domain.models.staking.StakingID
|
||||
|
||||
/**
|
||||
* Fetcher of yields balances
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.tangem.domain.staking.multi
|
||||
|
||||
import com.tangem.domain.core.flow.FlowProducer
|
||||
import com.tangem.domain.staking.model.stakekit.YieldBalance
|
||||
import com.tangem.domain.models.staking.YieldBalance
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.tangem.domain.staking.multi
|
|||
|
||||
import com.tangem.domain.core.flow.FlowCachingSupplier
|
||||
import com.tangem.domain.core.flow.FlowProducer
|
||||
import com.tangem.domain.staking.model.stakekit.YieldBalance
|
||||
import com.tangem.domain.models.staking.YieldBalance
|
||||
|
||||
/**
|
||||
* Supplier of all yield balances for selected wallet [MultiYieldBalanceProducer.Params]
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import com.tangem.domain.models.network.Network
|
|||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.domain.staking.model.StakingAvailability
|
||||
import com.tangem.domain.staking.model.StakingEntryInfo
|
||||
import com.tangem.domain.staking.model.stakekit.NetworkType
|
||||
import com.tangem.domain.models.staking.NetworkType
|
||||
import com.tangem.domain.staking.model.stakekit.Yield
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingAction
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingActionStatus
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.tangem.domain.staking.single
|
|||
|
||||
import com.tangem.domain.core.flow.FlowFetcher
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.domain.staking.model.StakingID
|
||||
import com.tangem.domain.models.staking.StakingID
|
||||
|
||||
/**
|
||||
* Fetcher of yield balance
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ package com.tangem.domain.staking.single
|
|||
|
||||
import com.tangem.domain.core.flow.FlowProducer
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.domain.staking.model.StakingID
|
||||
import com.tangem.domain.staking.model.stakekit.YieldBalance
|
||||
import com.tangem.domain.models.staking.StakingID
|
||||
import com.tangem.domain.models.staking.YieldBalance
|
||||
|
||||
/**
|
||||
* Producer of yield balance for selected wallet [UserWalletId]
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.tangem.domain.staking.single
|
|||
|
||||
import com.tangem.domain.core.flow.FlowCachingSupplier
|
||||
import com.tangem.domain.core.flow.FlowProducer
|
||||
import com.tangem.domain.staking.model.stakekit.YieldBalance
|
||||
import com.tangem.domain.models.staking.YieldBalance
|
||||
|
||||
/**
|
||||
* Supplier of yield balance for selected wallet [SingleYieldBalanceProducer.Params]
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.tangem.domain.staking.utils
|
||||
|
||||
import com.tangem.domain.staking.model.stakekit.BalanceType
|
||||
import com.tangem.domain.staking.model.stakekit.YieldBalance
|
||||
import com.tangem.domain.models.staking.BalanceType
|
||||
import com.tangem.domain.models.staking.YieldBalance
|
||||
import com.tangem.lib.crypto.BlockchainUtils
|
||||
import java.math.BigDecimal
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import com.tangem.common.test.domain.token.MockCryptoCurrencyFactory
|
|||
import com.tangem.common.test.utils.ProvideTestModels
|
||||
import com.tangem.domain.models.currency.CryptoCurrency
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.domain.staking.model.StakingID
|
||||
import com.tangem.domain.models.staking.StakingID
|
||||
import com.tangem.domain.staking.model.StakingIntegrationID
|
||||
import com.tangem.domain.walletmanager.WalletManagersFacade
|
||||
import io.mockk.clearMocks
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue