Updated on 2026-08-14

This commit is contained in:
Tangem 2024-09-27 19:29:42 +05:00
commit 90c7152447
5 changed files with 11 additions and 5 deletions

View file

@ -120,7 +120,7 @@ internal class DefaultStakingRepository(
key = YIELDS_STORE_KEY,
skipCache = refresh,
block = {
val stakingTokensWithYields = stakeKitApi.getMultipleYields(preferredValidatorsOnly = true)
val stakingTokensWithYields = stakeKitApi.getMultipleYields(preferredValidatorsOnly = false)
.getOrThrow()
stakingYieldsStore.store(stakingTokensWithYields.data)

View file

@ -28,7 +28,7 @@ class YieldConverter(
metadata = convertMetadata(value.metadata),
validators = value.validators
.asSequence()
.filter { it.preferred && it.status == ValidatorStatusDTO.ACTIVE }
.filter { it.status == ValidatorStatusDTO.ACTIVE }
.sortedByDescending { it.apr }
.map { convertValidator(it) }
.toImmutableList(),

View file

@ -20,9 +20,12 @@ internal class SetConfirmationStateLoadingTransformer(
) : Transformer<StakingUiState> {
override fun transform(prevState: StakingUiState): StakingUiState {
val filteredValidators = yield.validators.filter {
it.preferred
}
val possibleConfirmationState = prevState.confirmationState as? StakingStates.ConfirmationState.Data
val possibleValidatorState = possibleConfirmationState?.validatorState as? ValidatorState.Content
val chosenValidator = possibleValidatorState?.chosenValidator ?: yield.validators[0]
val chosenValidator = possibleValidatorState?.chosenValidator ?: filteredValidators[0]
return prevState.copy(
confirmationState = StakingStates.ConfirmationState.Data(
@ -32,7 +35,7 @@ internal class SetConfirmationStateLoadingTransformer(
validatorState = ValidatorState.Content(
isClickable = true,
chosenValidator = chosenValidator,
availableValidators = yield.validators,
availableValidators = filteredValidators,
),
notifications = persistentListOf(),
footerText = getFooter(prevState, chosenValidator),

View file

@ -3,6 +3,7 @@ package com.tangem.features.staking.impl.presentation.state.transformers
import com.tangem.features.staking.impl.presentation.state.InnerConfirmationStakingState
import com.tangem.features.staking.impl.presentation.state.StakingStates
import com.tangem.features.staking.impl.presentation.state.StakingUiState
import com.tangem.features.staking.impl.presentation.state.ValidatorState
import com.tangem.utils.transformer.Transformer
internal object SetConfirmationStateResetAssentTransformer : Transformer<StakingUiState> {
@ -13,7 +14,7 @@ internal object SetConfirmationStateResetAssentTransformer : Transformer<Staking
confirmationState.copy(
isPrimaryButtonEnabled = true,
innerState = InnerConfirmationStakingState.ASSENT,
validatorState = confirmationState.validatorState.copySealed(isClickable = true),
validatorState = ValidatorState.Loading,
)
} else {
confirmationState

View file

@ -218,6 +218,7 @@ internal class StakingViewModel @Inject constructor(
stakingStateRouter.onNextClick()
when {
isInitState() -> {
stateController.update(SetConfirmationStateResetAssentTransformer)
stateController.update(SetConfirmationStateLoadingTransformer(yield, appCurrency))
if (balanceState != null) {
stateController.update(SetPossiblePendingTransactionTransformer(balanceState, cryptoCurrencyStatus))
@ -333,6 +334,7 @@ internal class StakingViewModel @Inject constructor(
if (value.currentStep == StakingStep.Confirmation) {
when ((value.confirmationState as? StakingStates.ConfirmationState.Data)?.innerState) {
InnerConfirmationStakingState.ASSENT -> {
stateController.update(SetConfirmationStateResetAssentTransformer)
stakingStateRouter.onPrevClick()
}
null,