diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml
index 516445f46f..9f60bb1ef1 100644
--- a/core/res/src/main/res/values-de/strings.xml
+++ b/core/res/src/main/res/values-de/strings.xml
@@ -97,6 +97,10 @@
- %d tag
- %d tage
+
+ - Tag
+ - Tage
+
Entfernen
Deaktiviert
Erledigt
@@ -143,6 +147,7 @@
Änderungen speichern
Suchen
Token suchen
+ sek.
Seed phrase
Aktion auswählen
Verkaufen
@@ -343,7 +348,7 @@
Hochstimmen
Wallet auswählen
Das Wallet unterstützt nicht mehr als ein Netzwerk
- Um mit dem Kauf, Tausch oder Erhalt dieses Vermögenswerts zu beginnen, füge diesen Token zu mindestens 1 Netzwerk hinzu
+ Um dieses Asset zu kaufen, zu tauschen oder zu erhalten, füge diesen Deinem Portfolio hinzu
Dieses Asset ist nicht verfügbar
Dieses Asset ist für dieses Wallet nicht verfügbar
Zum Portfolio hinzufügen
@@ -378,6 +383,10 @@
Top-Verlierer
Beliebt
Über %s
+
+ - %d Börse
+ - %d Börsen
+
- Bewertung, basierend auf %d
- Bewertungen, basierend auf %d
@@ -389,6 +398,12 @@
Umlaufmenge
Die Gesamtzahl der Coins, die für den Handel verfügbar sind und auf dem Markt zirkulieren
Umlaufmenge
+ Keine Börsen gefunden
+ Umtausch
+ Vorsicht
+ Riskant
+ Vertrauenswürdig
+ Börsen
Erfahrene Käufer
Nettokäufer mit der zusätzlichen Anforderung, mindestens 100 ausgehende Transaktionen zu haben
Erfahrene Käufer
@@ -407,6 +422,7 @@
Liquidität
Liquiditätsindex
Leer
+ Gelistet auf
Niedrig
MarketCap
Der Gesamtmarktwert einer Kryptowährung, berechnet sich durch Multiplikation des aktuellen Preises des Coins mit der Gesamtzahl der im Umlauf befindlichen Coins
@@ -429,6 +445,7 @@
Handelsvolumen (24h)
Der Gesamtbetrag einer Kryptowährung, der innerhalb der letzten 24 Stunden gehandelt wurde, wobei das Aktivitäts- und Liquiditätsniveau auf dem Markt angegeben wird
Handelsvolumen (24h)
+ Volumen
Rufe dies auf oder tippe auf die Suchleiste, um Token direkt vom Markt hinzuzufügen
Token hinzufügen
NFC ist auf deinem Gerät nicht verfügbar
@@ -721,8 +738,8 @@
Händisch
Pro Block
Täglich
+ Alle %s
Täglich
- Alle %1$s Sek.
Pro Epoche
Pro Ära
Stündlich
@@ -733,6 +750,7 @@
Mehr staken
Du setzt %1$s ein und erhältst jährlich %2$s
Zum Entsperren antippen
+ Tippe zum Entsperren oder Abstimmen
Zum abheben antippen
Stake %s
Staking beenden%s
@@ -747,7 +765,7 @@
Validatoren
Strategischer Partner
Abstimmung
- Abstimmung gesperrt
+ Abstimmung
Zurückziehen
Deine Einsätze
Bewahre deine Krypto-Assets sicher auf, während die privaten Schlüssel auf deiner Karte bleiben
diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml
index ba3e1b02eb..dda95dc787 100644
--- a/core/res/src/main/res/values-es/strings.xml
+++ b/core/res/src/main/res/values-es/strings.xml
@@ -343,7 +343,7 @@
Votar a favor
Elegir wallet
La billetera no admite más de una red
- Para comprar, intercambiar o recibir este activo, agréguelo a su cartera
+ Para comprar, intercambiar o recibir este activo, agréguelo a su portafolio
Este activo no está disponible
Añadir al portafolio
Agregue un token
@@ -720,7 +720,6 @@
Bloquear
Día
Cada día
- Cada %1$s segundo(s)
Época
Era
Hora
diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml
index e310d6723c..8dd4b2083a 100644
--- a/core/res/src/main/res/values-fr/strings.xml
+++ b/core/res/src/main/res/values-fr/strings.xml
@@ -343,7 +343,7 @@
Vote positif
Choisissez un portefeuille
Le portefeuille ne prend pas en charge plus d\'un réseau
- Pour commencer à acheter, échanger ou recevoir cet actif, ajoutez ce jeton à au moins 1 réseau
+ Pour acheter, échanger ou recevoir cet actif, ajoutez-le à votre portefeuille
Cet actif n\'est pas disponible
Ajouter au portfolio
Ajoutez un jeton
@@ -720,7 +720,6 @@
Bloquer
Jour
Chaque jour
- Toute(s) les %1$s seconde(s)
Époque
Ère
Heure
diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml
index 0d15d6edfc..d138f32aa7 100644
--- a/core/res/src/main/res/values-ja/strings.xml
+++ b/core/res/src/main/res/values-ja/strings.xml
@@ -728,8 +728,6 @@
毎日
%sごと
毎日
- %1$s日ごとに
- %1$s秒毎
エポック毎
時代毎
毎時間
diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml
index e8db31eab3..287d5c483c 100644
--- a/core/res/src/main/res/values-ru/strings.xml
+++ b/core/res/src/main/res/values-ru/strings.xml
@@ -153,6 +153,7 @@
Сохранить изменения
Поиск
Поиск токенов
+ сек
Seed-фраза
Выберите действие
Продать
@@ -296,6 +297,7 @@
Обращение в поддержку
Обращение в поддержку Tangem
Не могу отправить транзакцию
+ Ошибка в описании монеты
Транзакция
Комиссия сети за одобрение токена будет взиматься за подтверждение того, что именно вы разрешаете использовать ваш токен для обмена.
Укажите лимит доступа к выбранному токену
@@ -754,8 +756,6 @@
За блок
Ежедневно
Каждый день
- Каждые %1$s дня
- Каждые %1$s сек
За эпоху
За эру
Ежечасно
@@ -766,7 +766,7 @@
Застейкать еще
Вы стейкаете %1$s и будете получать %2$s ежегодно
Нажмите для разблокировки
- Нажмите для разблокировки или голосования
+ Нажмите для разблокировки
Нажмите для вывода
Застейкать %s
Вывести %s
@@ -797,7 +797,7 @@
Поддержка Web 3.0
Обменивайте больше токенов по лучшим курсам прямо в вашем кошельке.
Новый провайдер обмена!
- В сумму включено: \n• комиссия провайдера сервиса\n• комиссия сети за отправку %s от биржи обратно на адрес пользователя
+ В сумму включено: \n• комиссия провайдера сервиса\n• комиссия сети за отправку %s от биржи обратно на адрес пользователя.
В сумму включена комиссия провайдера сервиса.
Комиссии
Подтверждения считаются отраслевым стандартом для всех децентрализованных бирж и защищают ваш кошелек от доступа со стороны смарт-контракта без вашего разрешения. По замыслу смарт-контракты не могут получить доступ к вашим токенам, если вы не одобрите доступ со своей стороны. «Разблокируя» свои токены, вы даете смарт-контракту 1inch разрешение тратить ваши активы. Майнеры сети получают компенсацию за газ (оплачиваемый вами) за запись этого действия в блокчейне. Как только разрешение будет предоставлено, вы сможете обменять свой токен.
diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml
index 5a9fb13979..4108386e2e 100644
--- a/core/res/src/main/res/values-uk-rUA/strings.xml
+++ b/core/res/src/main/res/values-uk-rUA/strings.xml
@@ -737,7 +737,6 @@
Блок
День
Щодня
- Кожні %1$s сек
Епоха
Ера
Година
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 7d4c202a25..a9f2c6ffa7 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -119,12 +119,14 @@
Get addresses
Go to provider
Go to token
+ hour
Import
In progress
Later
%1$s left
Locked
Main network
+ month
Network fee
Amount sent will be reduced by %1$s (%2$s) to cover the selected fee level
Next
@@ -147,6 +149,7 @@
Save changes
Search
Search tokens
+ sec
Seed phrase
Select action
Sell
@@ -172,6 +175,7 @@
There was an error. Please try again.
Unreachable
Unstake
+ week
Yes
Contract address copied!
Available networks
@@ -290,6 +294,7 @@
Feedback
Tangem feedback
Can\'t send a transaction
+ Coin description error
Transaction
The network will charge a token approval fee to verify that you are authorizing the use of your token for the swap.
Specify the approve limit for the selected token
@@ -738,8 +743,6 @@
Daily
Each %s
Each day
- Each %1$s days
- Each %1$s sec
Per Epoch
Per Era
Hourly
@@ -748,7 +751,7 @@
Rewards
Stake locked
Stake more
- You stake %1$s and will be receiving %2$s yearly
+ You stake %1$s and will be receiving your reward each %2$s
Tap to unlock
Tap to unlock or vote
Tap to withdraw
diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt
index 60e1fd090c..e32fc821f9 100644
--- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt
+++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateLoadingTransformer.kt
@@ -8,15 +8,17 @@ import com.tangem.core.ui.utils.BigDecimalFormatter
import com.tangem.domain.appcurrency.model.AppCurrency
import com.tangem.domain.staking.model.stakekit.Yield
import com.tangem.domain.staking.model.stakekit.action.StakingActionCommonType
+import com.tangem.domain.tokens.model.CryptoCurrency
import com.tangem.features.staking.impl.R
import com.tangem.features.staking.impl.presentation.state.*
-import com.tangem.utils.extensions.orZero
+import com.tangem.features.staking.impl.presentation.state.utils.getRewardSchedule
import com.tangem.utils.transformer.Transformer
import kotlinx.collections.immutable.persistentListOf
internal class SetConfirmationStateLoadingTransformer(
private val yield: Yield,
private val appCurrency: AppCurrency,
+ private val cryptoCurrency: CryptoCurrency,
) : Transformer {
override fun transform(prevState: StakingUiState): StakingUiState {
@@ -38,7 +40,7 @@ internal class SetConfirmationStateLoadingTransformer(
availableValidators = filteredValidators,
),
notifications = persistentListOf(),
- footerText = getFooter(prevState, chosenValidator),
+ footerText = getFooter(prevState),
transactionDoneState = TransactionDoneState.Empty,
pendingAction = possibleConfirmationState?.pendingAction,
pendingActions = possibleConfirmationState?.pendingActions,
@@ -49,30 +51,25 @@ internal class SetConfirmationStateLoadingTransformer(
)
}
- private fun getFooter(state: StakingUiState, validator: Yield.Validator): TextReference {
+ private fun getFooter(state: StakingUiState): TextReference {
val amountState = state.amountState as? AmountState.Data
val isEnterAction = state.actionType == StakingActionCommonType.ENTER
- val apr = validator.apr.orZero()
val amountDecimal = amountState?.amountTextField?.fiatAmount?.value
- val potentialReward = amountDecimal?.multiply(apr)
-
val amountValue = BigDecimalFormatter.formatFiatAmount(
fiatAmount = amountDecimal,
fiatCurrencyCode = appCurrency.code,
fiatCurrencySymbol = appCurrency.symbol,
)
- val potentialRewardValue = BigDecimalFormatter.formatFiatAmount(
- fiatAmount = potentialReward,
- fiatCurrencyCode = appCurrency.code,
- fiatCurrencySymbol = appCurrency.symbol,
- withApproximateSign = true,
+ val rewardSchedule = getRewardSchedule(
+ yield.metadata.rewardSchedule,
+ cryptoCurrency.network.id.value,
)
- return if (isEnterAction && amountDecimal != null && potentialReward != null) {
+ return if (isEnterAction && amountDecimal != null && rewardSchedule != null) {
resourceReference(
id = R.string.staking_summary_description_text,
- formatArgs = wrappedList(amountValue, potentialRewardValue),
+ formatArgs = wrappedList(amountValue, rewardSchedule),
)
} else {
TextReference.EMPTY
diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt
index 31e7acbe08..e979ce93c5 100644
--- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt
+++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt
@@ -9,7 +9,6 @@ import com.tangem.core.ui.extensions.*
import com.tangem.core.ui.pullToRefresh.PullToRefreshConfig
import com.tangem.core.ui.utils.BigDecimalFormatter
import com.tangem.domain.appcurrency.model.AppCurrency
-import com.tangem.domain.core.serialization.SerializedBigDecimal
import com.tangem.domain.staking.model.stakekit.BalanceItem
import com.tangem.domain.staking.model.stakekit.Yield
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
@@ -19,6 +18,7 @@ import com.tangem.features.staking.impl.presentation.state.*
import com.tangem.features.staking.impl.presentation.state.bottomsheet.InfoType
import com.tangem.features.staking.impl.presentation.state.converters.RewardsValidatorStateConverter
import com.tangem.features.staking.impl.presentation.state.converters.YieldBalancesConverter
+import com.tangem.features.staking.impl.presentation.state.utils.getRewardSchedule
import com.tangem.features.staking.impl.presentation.viewmodel.StakingClickIntents
import com.tangem.lib.crypto.BlockchainUtils.isPolkadot
import com.tangem.utils.Provider
@@ -102,20 +102,18 @@ internal class SetInitialDataStateTransformer(
val cryptoCurrencyStatus = cryptoCurrencyStatusProvider()
return listOfNotNull(
- createAnnualPercentageRateItem(yield.validators),
+ createAnnualPercentageRateItem(),
createAvailableItem(cryptoCurrencyStatus),
- createUnbondingPeriodItem(yield.metadata.cooldownPeriod?.days),
- createMinimumRequirementItem(
- cryptoCurrencyStatus = cryptoCurrencyStatus,
- minimumCryptoAmount = yield.args.enter.args[Yield.Args.ArgType.AMOUNT]?.minimum,
- ),
- createRewardClaimingItem(yield.metadata.rewardClaiming),
- createWarmupPeriodItem(yield.metadata.warmupPeriod.days),
- createRewardScheduleItem(yield.metadata.rewardSchedule),
+ createUnbondingPeriodItem(),
+ createMinimumRequirementItem(cryptoCurrencyStatus),
+ createRewardClaimingItem(),
+ createWarmupPeriodItem(),
+ createRewardScheduleItem(),
).toPersistentList()
}
- private fun createAnnualPercentageRateItem(validators: List): RoundedListWithDividersItemData {
+ private fun createAnnualPercentageRateItem(): RoundedListWithDividersItemData {
+ val validators = yield.validators
return RoundedListWithDividersItemData(
id = R.string.staking_details_annual_percentage_rate,
startText = TextReference.Res(R.string.staking_details_annual_percentage_rate),
@@ -140,8 +138,8 @@ internal class SetInitialDataStateTransformer(
)
}
- private fun createUnbondingPeriodItem(cooldownPeriodDays: Int?): RoundedListWithDividersItemData? {
- cooldownPeriodDays ?: return null
+ private fun createUnbondingPeriodItem(): RoundedListWithDividersItemData? {
+ val cooldownPeriodDays = yield.metadata.cooldownPeriod?.days ?: return null
return RoundedListWithDividersItemData(
id = R.string.staking_details_unbonding_period,
startText = TextReference.Res(R.string.staking_details_unbonding_period),
@@ -156,9 +154,8 @@ internal class SetInitialDataStateTransformer(
private fun createMinimumRequirementItem(
cryptoCurrencyStatus: CryptoCurrencyStatus,
- minimumCryptoAmount: SerializedBigDecimal?,
): RoundedListWithDividersItemData? {
- if (minimumCryptoAmount == null) return null
+ val minimumCryptoAmount = yield.args.enter.args[Yield.Args.ArgType.AMOUNT]?.minimum ?: return null
if (!isPolkadot(cryptoCurrencyStatus.currency.network.id.value)) return null
val formattedAmount = BigDecimalFormatter.formatCryptoAmount(
@@ -174,9 +171,8 @@ internal class SetInitialDataStateTransformer(
)
}
- private fun createRewardClaimingItem(
- rewardClaiming: Yield.Metadata.RewardClaiming,
- ): RoundedListWithDividersItemData? {
+ private fun createRewardClaimingItem(): RoundedListWithDividersItemData? {
+ val rewardClaiming = yield.metadata.rewardClaiming
val endTextId = rewardClaimingResources[rewardClaiming] ?: return null
return RoundedListWithDividersItemData(
@@ -187,7 +183,8 @@ internal class SetInitialDataStateTransformer(
)
}
- private fun createWarmupPeriodItem(warmupPeriodDays: Int): RoundedListWithDividersItemData? {
+ private fun createWarmupPeriodItem(): RoundedListWithDividersItemData? {
+ val warmupPeriodDays = yield.metadata.warmupPeriod.days
if (warmupPeriodDays == 0) return null
return RoundedListWithDividersItemData(
@@ -202,10 +199,8 @@ internal class SetInitialDataStateTransformer(
)
}
- private fun createRewardScheduleItem(
- rewardSchedule: Yield.Metadata.RewardSchedule,
- ): RoundedListWithDividersItemData? {
- val endTextReference = getRewardScheduleText(rewardSchedule) ?: return null
+ private fun createRewardScheduleItem(): RoundedListWithDividersItemData? {
+ val endTextReference = getRewardScheduleText() ?: return null
return RoundedListWithDividersItemData(
id = R.string.staking_details_reward_schedule,
@@ -257,17 +252,16 @@ internal class SetInitialDataStateTransformer(
return resourceReference(R.string.common_range, wrappedList(formattedMinApr, formattedMaxApr))
}
- private fun getRewardScheduleText(rewardSchedule: Yield.Metadata.RewardSchedule): TextReference? {
- return when (rewardSchedule) {
- Yield.Metadata.RewardSchedule.BLOCK -> resourceReference(R.string.staking_reward_schedule_block)
- Yield.Metadata.RewardSchedule.WEEK -> resourceReference(R.string.staking_reward_schedule_week)
- Yield.Metadata.RewardSchedule.HOUR -> resourceReference(R.string.staking_reward_schedule_hour)
- Yield.Metadata.RewardSchedule.DAY -> resourceReference(R.string.staking_reward_schedule_each_day)
- Yield.Metadata.RewardSchedule.MONTH -> resourceReference(R.string.staking_reward_schedule_month)
- Yield.Metadata.RewardSchedule.ERA -> resourceReference(R.string.staking_reward_schedule_era)
- Yield.Metadata.RewardSchedule.EPOCH -> resourceReference(R.string.staking_reward_schedule_epoch)
- Yield.Metadata.RewardSchedule.UNKNOWN -> null
- }
+ private fun getRewardScheduleText(): TextReference? {
+ val rewardSchedule = getRewardSchedule(
+ yield.metadata.rewardSchedule,
+ cryptoCurrencyStatusProvider().currency.network.id.value,
+ ) ?: return null
+
+ return resourceReference(
+ R.string.staking_reward_schedule_each,
+ wrappedList(rewardSchedule),
+ )
}
private companion object {
diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/utils/StakingRewardsUtils.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/utils/StakingRewardsUtils.kt
new file mode 100644
index 0000000000..5012e225b7
--- /dev/null
+++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/utils/StakingRewardsUtils.kt
@@ -0,0 +1,52 @@
+package com.tangem.features.staking.impl.presentation.state.utils
+
+import com.tangem.core.ui.extensions.*
+import com.tangem.domain.staking.model.stakekit.Yield
+import com.tangem.features.staking.impl.R
+import com.tangem.features.staking.impl.presentation.state.utils.StakingRewardSchedule.COSMOS_SCHEDULE
+import com.tangem.features.staking.impl.presentation.state.utils.StakingRewardSchedule.SOLANA_SCHEDULE
+import com.tangem.lib.crypto.BlockchainUtils.isCosmos
+import com.tangem.lib.crypto.BlockchainUtils.isSolana
+import com.tangem.lib.crypto.BlockchainUtils.isTron
+import com.tangem.utils.StringsSigns.MINUS
+import com.tangem.utils.StringsSigns.NON_BREAKING_SPACE
+
+private data object StakingRewardSchedule {
+ val COSMOS_SCHEDULE = 5 to 12
+ val SOLANA_SCHEDULE = 2 to 3
+}
+
+internal fun getRewardSchedule(schedule: Yield.Metadata.RewardSchedule, networkId: String): TextReference? =
+ when (schedule) {
+ Yield.Metadata.RewardSchedule.BLOCK,
+ Yield.Metadata.RewardSchedule.EPOCH,
+ Yield.Metadata.RewardSchedule.ERA,
+ -> getCustomRewardSchedule(networkId)
+ Yield.Metadata.RewardSchedule.WEEK -> resourceReference(R.string.common_week)
+ Yield.Metadata.RewardSchedule.HOUR -> resourceReference(R.string.common_hour)
+ Yield.Metadata.RewardSchedule.DAY -> pluralReference(R.plurals.common_days_no_param, count = 1)
+ Yield.Metadata.RewardSchedule.MONTH -> resourceReference(R.string.common_month)
+ Yield.Metadata.RewardSchedule.UNKNOWN -> null
+ }
+
+private fun getCustomRewardSchedule(networkId: String): TextReference? {
+ return when {
+ isSolana(networkId) -> {
+ combinedReference(
+ stringReference("${SOLANA_SCHEDULE.first}$MINUS${SOLANA_SCHEDULE.second}$NON_BREAKING_SPACE"),
+ pluralReference(
+ id = R.plurals.common_days_no_param,
+ count = SOLANA_SCHEDULE.second,
+ ),
+ )
+ }
+ isCosmos(networkId) -> {
+ combinedReference(
+ stringReference("${COSMOS_SCHEDULE.first}$MINUS${COSMOS_SCHEDULE.second}$NON_BREAKING_SPACE"),
+ resourceReference(R.string.common_second_no_param),
+ )
+ }
+ isTron(networkId) -> pluralReference(R.plurals.common_days_no_param, count = 1)
+ else -> null
+ }
+}
\ No newline at end of file
diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt
index 4e21b0746c..c59d051434 100644
--- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt
+++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt
@@ -37,7 +37,10 @@ import com.tangem.domain.tokens.*
import com.tangem.domain.tokens.model.CryptoCurrency
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
import com.tangem.domain.transaction.error.GetFeeError
-import com.tangem.domain.transaction.usecase.*
+import com.tangem.domain.transaction.usecase.CreateApprovalTransactionUseCase
+import com.tangem.domain.transaction.usecase.GetAllowanceUseCase
+import com.tangem.domain.transaction.usecase.SendTransactionUseCase
+import com.tangem.domain.transaction.usecase.ValidateTransactionUseCase
import com.tangem.domain.utils.convertToSdkAmount
import com.tangem.domain.wallets.models.UserWallet
import com.tangem.domain.wallets.models.UserWalletId
@@ -219,7 +222,13 @@ internal class StakingViewModel @Inject constructor(
when {
isInitState() -> {
stateController.update(SetConfirmationStateResetAssentTransformer)
- stateController.update(SetConfirmationStateLoadingTransformer(yield, appCurrency))
+ stateController.update(
+ SetConfirmationStateLoadingTransformer(
+ yield = yield,
+ appCurrency = appCurrency,
+ cryptoCurrency = cryptoCurrencyStatus.currency,
+ ),
+ )
if (balanceState != null) {
stateController.update(SetPossiblePendingTransactionTransformer(balanceState, cryptoCurrencyStatus))
}
@@ -260,7 +269,13 @@ internal class StakingViewModel @Inject constructor(
}
override fun getFee(pendingAction: PendingAction?, pendingActions: ImmutableList?) {
- stateController.update(SetConfirmationStateLoadingTransformer(yield, appCurrency))
+ stateController.update(
+ SetConfirmationStateLoadingTransformer(
+ yield = yield,
+ appCurrency = appCurrency,
+ cryptoCurrency = cryptoCurrencyStatus.currency,
+ ),
+ )
viewModelScope.launch {
feeLoader.getFee(
pendingAction = pendingAction,