From ede7143a0396dcec7d940aa04d2c9a27a91d5c1b Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 4 Nov 2024 17:01:38 +0500 Subject: [PATCH] Updated on 2026-08-14 --- core/res/src/main/res/values-de/strings.xml | 1 + core/res/src/main/res/values-ja/strings.xml | 1 + core/res/src/main/res/values-ru/strings.xml | 4 +- core/res/src/main/res/values/strings.xml | 3 + .../utils/SdkTransactionTypeConverter.kt | 20 +++--- .../domain/txhistory/models/TxHistoryItem.kt | 14 ++--- .../presentation/state/StakingNotification.kt | 7 ++- .../AmountRequirementStateTransformer.kt | 63 +++++++++++-------- .../AddStakingNotificationsTransformer.kt | 1 + .../StakingInfoNotificationsFactory.kt | 28 +++++++++ ...tailsTxHistoryTransactionStateConverter.kt | 30 ++++----- .../converter/TxHistoryItemStateConverter.kt | 30 ++++----- 12 files changed, 126 insertions(+), 76 deletions(-) diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index 4313234fb9..198db71cec 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -774,6 +774,7 @@ Belohnungen Stake gesperrt Mehr staken + Gestakeder Betrag Du setzt %1$s ein und ethältst Deine Belohnung %2$s Zum Entsperren antippen Tippe zum Entsperren oder Abstimmen diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml index 8cdaeffe4a..d64d288ba7 100644 --- a/core/res/src/main/res/values-ja/strings.xml +++ b/core/res/src/main/res/values-ja/strings.xml @@ -764,6 +764,7 @@ 報酬 ステーキングはロックされています もっとステーキングする + ステーキング中の金額 %1$sをステーキングし、報酬%2$sを受け取ります タップしてロック解除 タップしてロック解除もしくは投票 diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index c600ccc00e..eb0c4ce63d 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -714,6 +714,7 @@ Имя Сумма для стейкинга должна быть не менее %s Согласно правилам сети, сумма стейкинга будет округлена до %1$sTRX. + Сумма для вывода из стейкинга будет округлена до %1$s TRX ввиду особенностей сети. Забрать средства Комиссия за стейкинг аккаунт Стейкинг аккаунт — это специальный счет, на котором хранятся застейканные токены SOL. Он создается при делегировании ваших токенов валидатору для участия в подтверждении транзакций и получении наград. За создание стейкинг аккаунта взимается небольшая комиссия, которая возвращается после завершения стейкинга. @@ -756,6 +757,7 @@ Стейкинг дает возможность вам получать %1$s. Награда будет зачисляться каждую неделю. Стейкайте безопасно и начинайте получать еженедельные награды. Получите награду за стейкинг + Оставшийся застейканный баланс будет слишком мал для вывода. Вам потребуется застейкать больше средств, чтобы достичь минимальной суммы для вывода. Стейкинг временно недоступен из-за проблем в сети. Пожалуйста, попробуйте позже. Стейкинг в сети %1$s с новым валидатором автоматически переведет ваши текущие застейканные средства на него. Реинвестируйте свои заработанные награды в вашу застейканную сумму, увеличивая потенциальный доход @@ -798,7 +800,7 @@ Отзыв Разблокировать Разблокировка - Сумма для стейкинга должна быть не менее %s + Сумма для вывода из стейкинга должна быть не менее %s Сумма превышает застейканный баланс Вывод из стейкинга Завершение стейкинга diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 3a507e68ab..10d590ce52 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -741,6 +741,8 @@ Staking allows you to earn %1$s. Your staking rewards arrive every week. Stake securely and start earning weekly rewards Earn staking rewards + Your remaining staked balance will be too low to unstake. You’ll need to stake more to meet the minimum unstake amount. + Low staked balance Staking is currently unavailable due to network conditions. Please try again later. Staking in the %1$s network with a new validator will automatically transfer all previously staked funds to this validator Reinvests your earned rewards in your staked amount, increasing potential earnings. @@ -861,6 +863,7 @@ from: %s to: %s validator: %s + The minimum transaction amount is %1$s. Try again You\'ve scanned the same card. To create a twin wallet you need to scan the card with number %d You\'ve scanned wrong twin card. Please try another one diff --git a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionTypeConverter.kt b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionTypeConverter.kt index 4b2fb14d78..bdfee927b3 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionTypeConverter.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/SdkTransactionTypeConverter.kt @@ -21,19 +21,19 @@ internal class SdkTransactionTypeConverter( TxHistoryItem.TransactionType.Transfer } is TransactionType.TronStakingTransactionType.FreezeBalanceV2Contract -> { - TxHistoryItem.TransactionType.StakingTransactionType.Stake + TxHistoryItem.TransactionType.Staking.Stake } is TransactionType.TronStakingTransactionType.UnfreezeBalanceV2Contract -> { - TxHistoryItem.TransactionType.StakingTransactionType.Unstake + TxHistoryItem.TransactionType.Staking.Unstake } is TransactionType.TronStakingTransactionType.VoteWitnessContract -> { - TxHistoryItem.TransactionType.StakingTransactionType.Vote(value.validatorAddress) + TxHistoryItem.TransactionType.Staking.Vote(value.validatorAddress) } is TransactionType.TronStakingTransactionType.WithdrawBalanceContract -> { - TxHistoryItem.TransactionType.StakingTransactionType.ClaimRewards + TxHistoryItem.TransactionType.Staking.ClaimRewards } is TransactionType.TronStakingTransactionType.WithdrawExpireUnfreezeContract -> { - TxHistoryItem.TransactionType.StakingTransactionType.Withdraw + TxHistoryItem.TransactionType.Staking.Withdraw } } } @@ -46,19 +46,19 @@ internal class SdkTransactionTypeConverter( "buyVoucher", "buyVoucherPOL", "delegate", - -> TxHistoryItem.TransactionType.StakingTransactionType.Stake + -> TxHistoryItem.TransactionType.Staking.Stake "sellVoucher_new", "sellVoucher_newPOL", "undelegate", - -> TxHistoryItem.TransactionType.StakingTransactionType.Unstake + -> TxHistoryItem.TransactionType.Staking.Unstake "unstakeClaimTokens_new", "unstakeClaimTokens_newPOL", "claim", - -> TxHistoryItem.TransactionType.StakingTransactionType.Withdraw + -> TxHistoryItem.TransactionType.Staking.Withdraw "withdrawRewards", "withdrawRewardsPOL", - -> TxHistoryItem.TransactionType.StakingTransactionType.ClaimRewards - "redelegate" -> TxHistoryItem.TransactionType.StakingTransactionType.Restake + -> TxHistoryItem.TransactionType.Staking.ClaimRewards + "redelegate" -> TxHistoryItem.TransactionType.Staking.Restake null -> TxHistoryItem.TransactionType.UnknownOperation else -> TxHistoryItem.TransactionType.Operation(name = methodName.replaceFirstChar { it.titlecase() }) } diff --git a/domain/txhistory/models/src/main/kotlin/com/tangem/domain/txhistory/models/TxHistoryItem.kt b/domain/txhistory/models/src/main/kotlin/com/tangem/domain/txhistory/models/TxHistoryItem.kt index f331f6a2a1..61f2278715 100644 --- a/domain/txhistory/models/src/main/kotlin/com/tangem/domain/txhistory/models/TxHistoryItem.kt +++ b/domain/txhistory/models/src/main/kotlin/com/tangem/domain/txhistory/models/TxHistoryItem.kt @@ -40,13 +40,13 @@ data class TxHistoryItem( data object UnknownOperation : TransactionType data class Operation(val name: String) : TransactionType - sealed interface StakingTransactionType : TransactionType { - data class Vote(val validatorAddress: String) : StakingTransactionType - data object ClaimRewards : StakingTransactionType - data object Stake : StakingTransactionType - data object Unstake : StakingTransactionType - data object Withdraw : StakingTransactionType - data object Restake : StakingTransactionType + sealed interface Staking : TransactionType { + data class Vote(val validatorAddress: String) : Staking + data object ClaimRewards : Staking + data object Stake : Staking + data object Unstake : Staking + data object Withdraw : Staking + data object Restake : Staking } } diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/StakingNotification.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/StakingNotification.kt index 5b02449fa4..d9fd203280 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/StakingNotification.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/StakingNotification.kt @@ -39,7 +39,7 @@ internal object StakingNotification { ) : NotificationUM.Warning( title = title, subtitle = subtitle, - iconResId = R.drawable.ic_alert_circle_24, + iconResId = R.drawable.img_attention_20, buttonsState = buttonsState, onCloseClick = onCloseClick, ) { @@ -47,6 +47,11 @@ internal object StakingNotification { val title: TextReference, val description: TextReference, ) : StakingNotification.Warning(title = title, subtitle = description) + + data object LowStakedBalance : StakingNotification.Warning( + title = resourceReference(R.string.staking_notification_low_staked_balance_title), + subtitle = resourceReference(R.string.staking_notification_low_staked_balance_text), + ) } sealed class Info( diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountRequirementStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountRequirementStateTransformer.kt index 199707ada1..2543480a3f 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountRequirementStateTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/amount/AmountRequirementStateTransformer.kt @@ -1,5 +1,6 @@ package com.tangem.features.staking.impl.presentation.state.transformers.amount +import androidx.annotation.StringRes import androidx.compose.ui.text.input.ImeAction import com.tangem.common.extensions.isZero import com.tangem.common.ui.amountScreen.models.AmountState @@ -26,25 +27,18 @@ internal class AmountRequirementStateTransformer( private val actionType: StakingActionCommonType, ) : Transformer { override fun transform(prevState: AmountState): AmountState { - val amountRequirements = yield.args.enter.args[Yield.Args.ArgType.AMOUNT] - - return if (prevState is AmountState.Data && amountRequirements != null) { + return if (prevState is AmountState.Data) { updateWithError( prevState, actionType, - amountRequirements, ) } else { prevState } } - private fun updateWithError( - amountState: AmountState.Data, - actionType: StakingActionCommonType, - amountRequirements: AddressArgument, - ): AmountState { - val isRequirementError = isRequirementError(amountState, amountRequirements) + private fun updateWithError(amountState: AmountState.Data, actionType: StakingActionCommonType): AmountState { + val requirementError = getRequirementError(amountState) val isIntegerOnlyError = isIntegerOnlyError(amountState, actionType) val cryptoAmount = amountState.amountTextField.cryptoAmount @@ -53,14 +47,7 @@ internal class AmountRequirementStateTransformer( val errorText = when { amountState.amountTextField.isError -> amountState.amountTextField.error - isRequirementError -> resourceReference( - R.string.staking_amount_requirement_error, - wrappedList( - amountRequirements.minimum.format { - crypto(cryptoCurrencyStatus.currency) - }, - ), - ) + requirementError != null -> requirementError isIntegerOnlyError -> when (actionType) { StakingActionCommonType.Enter -> resourceReference( R.string.staking_amount_tron_integer_error, @@ -70,11 +57,11 @@ internal class AmountRequirementStateTransformer( R.string.staking_amount_tron_integer_error_unstaking, wrappedList(value), ) - else -> TODO() + else -> TextReference.EMPTY } else -> TextReference.EMPTY } - val isError = amountState.amountTextField.isError || isRequirementError + val isError = amountState.amountTextField.isError || requirementError != null return if (!errorText.isNullOrEmpty()) { amountState.copy( isPrimaryButtonEnabled = !isError, @@ -92,17 +79,25 @@ internal class AmountRequirementStateTransformer( } } - private fun isRequirementError(prevState: AmountState.Data, amountRequirements: AddressArgument): Boolean { - val amountDecimal = prevState.amountTextField.cryptoAmount.value ?: return false + private fun getRequirementError(prevState: AmountState.Data): TextReference? { + val amountDecimal = prevState.amountTextField.cryptoAmount.value ?: return null val isAlreadyErrorState = prevState.amountTextField.isError - val isAmountRequired = amountRequirements.required val isAmountZero = amountDecimal.isZero() - val isExceedsRequirements = - amountRequirements.maximum?.compareTo(amountDecimal) == -1 || - amountRequirements.minimum?.compareTo(amountDecimal) == 1 - return !isAmountZero && isAmountRequired && isExceedsRequirements && !isAlreadyErrorState + if (isAlreadyErrorState || isAmountZero) return null + + return when (actionType) { + StakingActionCommonType.Enter -> { + val enterRequirements = yield.args.enter.args[Yield.Args.ArgType.AMOUNT] + enterRequirements?.getError(amountDecimal, R.string.staking_amount_requirement_error) + } + StakingActionCommonType.Exit -> { + val exitRequirements = yield.args.exit?.args?.get(Yield.Args.ArgType.AMOUNT) + exitRequirements?.getError(amountDecimal, R.string.staking_unstake_amount_requirement_error) + } + else -> null + } } private fun isIntegerOnlyError(amountState: AmountState.Data, actionType: StakingActionCommonType): Boolean { @@ -116,6 +111,20 @@ internal class AmountRequirementStateTransformer( return isEnterOrExit && isTron && !isIntegerOnly } + private fun AddressArgument.getError(amount: BigDecimal, @StringRes errorTextRes: Int): TextReference? { + val isExceedsRequirements = maximum?.compareTo(amount) == -1 || + minimum?.compareTo(amount) == 1 + + return resourceReference( + errorTextRes, + wrappedList( + minimum.format { + crypto(cryptoCurrencyStatus.currency) + }, + ), + ).takeIf { required && isExceedsRequirements } + } + data class Data( val amountState: AmountState, val actionType: StakingActionCommonType, diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt index 2f086ac68c..530e3cc24b 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt @@ -107,6 +107,7 @@ internal class AddStakingNotificationsTransformer( notifications = this, prevState = prevState, sendingAmount = sendingAmount, + actionAmount = amountValue, feeValue = feeValue, ) }.toImmutableList() diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/StakingInfoNotificationsFactory.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/StakingInfoNotificationsFactory.kt index f610a6b17b..36f7acec1c 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/StakingInfoNotificationsFactory.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/StakingInfoNotificationsFactory.kt @@ -17,6 +17,7 @@ import com.tangem.features.staking.impl.presentation.state.StakingUiState import com.tangem.lib.crypto.BlockchainUtils.isCosmos import com.tangem.lib.crypto.BlockchainUtils.isTron import com.tangem.utils.Provider +import com.tangem.utils.extensions.isZero import com.tangem.utils.extensions.orZero import java.math.BigDecimal @@ -26,12 +27,22 @@ internal class StakingInfoNotificationsFactory( private val isSubtractAvailable: Boolean, ) { + /** + * @param notifications current notification to display + * @param prevState current screen state to update + * @param sendingAmount amount being transferred from user account + * @param actionAmount any amount being transferred or used action + * @param feeValue fee amount payed from user account + */ fun addInfoNotifications( notifications: MutableList, prevState: StakingUiState, sendingAmount: BigDecimal, + actionAmount: BigDecimal, feeValue: BigDecimal, ) = with(notifications) { + addStakingLowBalanceNotification(prevState, actionAmount) + when (prevState.actionType) { StakingActionCommonType.Enter -> addEnterInfoNotifications(sendingAmount, feeValue) StakingActionCommonType.Exit -> addExitInfoNotifications() @@ -149,4 +160,21 @@ internal class StakingInfoNotificationsFactory( add(StakingNotification.Info.StakeEntireBalance) } } + + private fun MutableList.addStakingLowBalanceNotification( + prevState: StakingUiState, + actionAmount: BigDecimal, + ) { + if (prevState.actionType != StakingActionCommonType.Exit) return + + val maxAmount = prevState.balanceState?.cryptoAmount ?: return + val exitRequirements = yield.args.exit?.args?.get(Yield.Args.ArgType.AMOUNT) ?: return + + val amountLeft = maxAmount - actionAmount + val isNotEnoughLeft = !amountLeft.isZero() && amountLeft < exitRequirements.minimum + + if (exitRequirements.required && isNotEnoughLeft) { + add(StakingNotification.Warning.LowStakedBalance) + } + } } \ No newline at end of file diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/txhistory/TokenDetailsTxHistoryTransactionStateConverter.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/txhistory/TokenDetailsTxHistoryTransactionStateConverter.kt index 4091224cdc..360126d91d 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/txhistory/TokenDetailsTxHistoryTransactionStateConverter.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/txhistory/TokenDetailsTxHistoryTransactionStateConverter.kt @@ -50,14 +50,14 @@ internal class TokenDetailsTxHistoryTransactionStateConverter( } else { when (type) { is TransactionType.Approve -> R.drawable.ic_doc_24 - is TransactionType.StakingTransactionType.Stake, - is TransactionType.StakingTransactionType.Vote, - is TransactionType.StakingTransactionType.Restake, + is TransactionType.Staking.Stake, + is TransactionType.Staking.Vote, + is TransactionType.Staking.Restake, -> R.drawable.ic_transaction_history_staking_24 - is TransactionType.StakingTransactionType.ClaimRewards, + is TransactionType.Staking.ClaimRewards, -> R.drawable.ic_transaction_history_claim_rewards_24 - is TransactionType.StakingTransactionType.Unstake, - is TransactionType.StakingTransactionType.Withdraw, + is TransactionType.Staking.Unstake, + is TransactionType.Staking.Withdraw, -> R.drawable.ic_transaction_history_unstaking_24 is TransactionType.Operation, is TransactionType.Swap, @@ -73,12 +73,12 @@ internal class TokenDetailsTxHistoryTransactionStateConverter( is TransactionType.Swap -> resourceReference(R.string.common_swap) is TransactionType.Transfer -> resourceReference(R.string.common_transfer) is TransactionType.UnknownOperation -> resourceReference(R.string.transaction_history_operation) - is TransactionType.StakingTransactionType.Stake -> resourceReference(R.string.common_stake) - is TransactionType.StakingTransactionType.Unstake -> resourceReference(R.string.common_unstake) - is TransactionType.StakingTransactionType.Vote -> resourceReference(R.string.staking_vote) - is TransactionType.StakingTransactionType.ClaimRewards -> resourceReference(R.string.common_claim_rewards) - is TransactionType.StakingTransactionType.Withdraw -> resourceReference(R.string.staking_withdraw) - is TransactionType.StakingTransactionType.Restake -> resourceReference(R.string.staking_restake) + is TransactionType.Staking.Stake -> resourceReference(R.string.common_stake) + is TransactionType.Staking.Unstake -> resourceReference(R.string.common_unstake) + is TransactionType.Staking.Vote -> resourceReference(R.string.staking_vote) + is TransactionType.Staking.ClaimRewards -> resourceReference(R.string.common_claim_rewards) + is TransactionType.Staking.Withdraw -> resourceReference(R.string.staking_withdraw) + is TransactionType.Staking.Restake -> resourceReference(R.string.staking_restake) } private fun TxHistoryItem.extractSubtitle(): TextReference = @@ -121,9 +121,9 @@ internal class TokenDetailsTxHistoryTransactionStateConverter( } private fun TxHistoryItem.getAmount(): String { - if (type is TransactionType.StakingTransactionType.Vote || - type == TransactionType.StakingTransactionType.ClaimRewards || - type == TransactionType.StakingTransactionType.Withdraw + if (type is TransactionType.Staking.Vote || + type == TransactionType.Staking.ClaimRewards || + type == TransactionType.Staking.Withdraw ) { return "" } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/converter/TxHistoryItemStateConverter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/converter/TxHistoryItemStateConverter.kt index 10e1cb4f76..a85ca99eab 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/converter/TxHistoryItemStateConverter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/converter/TxHistoryItemStateConverter.kt @@ -49,14 +49,14 @@ internal class TxHistoryItemStateConverter( } else { when (type) { is TransactionType.Approve -> R.drawable.ic_doc_24 - is TransactionType.StakingTransactionType.Stake, - is TransactionType.StakingTransactionType.Vote, - is TransactionType.StakingTransactionType.Restake, + is TransactionType.Staking.Stake, + is TransactionType.Staking.Vote, + is TransactionType.Staking.Restake, -> R.drawable.ic_transaction_history_staking_24 - is TransactionType.StakingTransactionType.ClaimRewards, + is TransactionType.Staking.ClaimRewards, -> R.drawable.ic_transaction_history_claim_rewards_24 - is TransactionType.StakingTransactionType.Unstake, - is TransactionType.StakingTransactionType.Withdraw, + is TransactionType.Staking.Unstake, + is TransactionType.Staking.Withdraw, -> R.drawable.ic_transaction_history_unstaking_24 is TransactionType.Operation, is TransactionType.Swap, @@ -71,12 +71,12 @@ internal class TxHistoryItemStateConverter( is TransactionType.Operation -> stringReference(type.name) is TransactionType.Swap -> resourceReference(R.string.common_swap) is TransactionType.Transfer -> resourceReference(R.string.common_transfer) - is TransactionType.StakingTransactionType.Stake -> resourceReference(R.string.common_stake) - is TransactionType.StakingTransactionType.Unstake -> resourceReference(R.string.common_unstake) - is TransactionType.StakingTransactionType.Vote -> resourceReference(R.string.staking_vote) - is TransactionType.StakingTransactionType.ClaimRewards -> resourceReference(R.string.common_claim_rewards) - is TransactionType.StakingTransactionType.Withdraw -> resourceReference(R.string.staking_withdraw) - is TransactionType.StakingTransactionType.Restake -> resourceReference(R.string.staking_restake) + is TransactionType.Staking.Stake -> resourceReference(R.string.common_stake) + is TransactionType.Staking.Unstake -> resourceReference(R.string.common_unstake) + is TransactionType.Staking.Vote -> resourceReference(R.string.staking_vote) + is TransactionType.Staking.ClaimRewards -> resourceReference(R.string.common_claim_rewards) + is TransactionType.Staking.Withdraw -> resourceReference(R.string.staking_withdraw) + is TransactionType.Staking.Restake -> resourceReference(R.string.staking_restake) is TransactionType.UnknownOperation -> resourceReference(R.string.transaction_history_operation) } @@ -121,9 +121,9 @@ internal class TxHistoryItemStateConverter( } private fun TxHistoryItem.getAmount(): String { - if (type is TransactionType.StakingTransactionType.Vote || - type == TransactionType.StakingTransactionType.ClaimRewards || - type == TransactionType.StakingTransactionType.Withdraw + if (type is TransactionType.Staking.Vote || + type == TransactionType.Staking.ClaimRewards || + type == TransactionType.Staking.Withdraw ) { return "" }