Updated on 2026-08-14
This commit is contained in:
commit
75194bbac0
10 changed files with 81 additions and 33 deletions
|
|
@ -650,6 +650,8 @@
|
|||
<string name="staking_amount_requirement_error">Die Anzahl der zu stakenden Krypros muss mindesten %s betragen</string>
|
||||
<string name="staking_amount_tron_integer_error">Der Stakingbetrag wird aufgrund der Netzwerkregeln auf %1$s TRX aufgerundet.</string>
|
||||
<string name="staking_claim_unstaked">Nicht gestakte beanspruche</string>
|
||||
<string name="staking_details_account_fee">Gebühr für das Staking-Konto</string>
|
||||
<string name="staking_details_account_fee_info">Ein Staking-Konto ist ein spezielles Konto, auf dem eingesetzte SOL-Token gelagert werden. Es wird erstellt, wenn du deine Token an einen Validator delegierst, um an der Transaktionsvalidierung teilzunehmen und Belohnungen zu verdienen. Für die Erstellung des Staking-Kontos wird eine geringe Gebühr erhoben, die nach Abschluss des Stakings zurückgegeben wird.</string>
|
||||
<string name="staking_details_annual_percentage_rate">Jährliche prozentuale Rendite</string>
|
||||
<string name="staking_details_annual_percentage_rate_info">Die jährliche prozentuale Rendite, die du durch die Teilnahme am Staking erzielen kannst.</string>
|
||||
<string name="staking_details_apr">Effektiver Jahreszins</string>
|
||||
|
|
@ -705,6 +707,7 @@
|
|||
<string name="staking_reward_schedule_block">Block</string>
|
||||
<string name="staking_reward_schedule_day">Tag</string>
|
||||
<string name="staking_reward_schedule_each_day">Täglich</string>
|
||||
<string name="staking_reward_schedule_each_sec">Jeder %1$s</string>
|
||||
<string name="staking_reward_schedule_epoch">Epoche</string>
|
||||
<string name="staking_reward_schedule_era">Ära</string>
|
||||
<string name="staking_reward_schedule_hour">Stunde</string>
|
||||
|
|
@ -721,6 +724,7 @@
|
|||
<string name="staking_transaction_in_progress_text">Die Transaktion wird bearbeitet! Derzeit findet eine Validierung in der Blockchain statt. Dies kann einige Minuten dauern.</string>
|
||||
<string name="staking_unbonding">Lösen der Bindungen</string>
|
||||
<string name="staking_unlocked_locked">Gelocktes unlocken</string>
|
||||
<string name="staking_unlocking">Entsperren</string>
|
||||
<string name="staking_unstaked">Unstaken</string>
|
||||
<string name="staking_unstaking">Staking beenden</string>
|
||||
<string name="staking_unstaking_item_name">Unstake Assets %s</string>
|
||||
|
|
@ -863,6 +867,8 @@
|
|||
<string name="warning_backup_errors_title">Aktivierungsfehler</string>
|
||||
<string name="warning_beacon_chain_retirement_content">Laut den Entwicklern des BNB-Netzes wird die Unterstützung für den BEP-2-Standard im Juni 2024 enden. Um den Verlust von Vermögenswerten mit diesem Standard zu vermeiden, konvertiere bitte in den BEP-20 Standard. Nutze gerne unseren Swap-Service, um sie auf das BNB Smart Chain Netzwerk zu übertragen.</string>
|
||||
<string name="warning_beacon_chain_retirement_title">BNB Beacon Chain wird abgeschaltet</string>
|
||||
<string name="warning_blocked_funds_for_fee_message">Bitte zahle ein paar %1$s ein, um die Netzwerkgebühr zu decken</string>
|
||||
<string name="warning_blocked_funds_for_fee_title">Unzureichende Mittel zur Deckung der Netzgebühr</string>
|
||||
<string name="warning_button_could_be_better">Ausbaufähig</string>
|
||||
<string name="warning_button_like_it">Gefällt mir</string>
|
||||
<string name="warning_button_ok">OK, habe ich verstanden!</string>
|
||||
|
|
|
|||
|
|
@ -640,6 +640,8 @@
|
|||
<string name="staking_amount_requirement_error">ステーキング金額は %s 以上である必要があります</string>
|
||||
<string name="staking_amount_tron_integer_error">ネットワークルールにより、ステーキング金額は%1$s TRX に切り上げられます。</string>
|
||||
<string name="staking_claim_unstaked">ステーキング解除分を請求する</string>
|
||||
<string name="staking_details_account_fee">ステーキングアカウント手数料</string>
|
||||
<string name="staking_details_account_fee_info">ステーキングアカウントは、ステーキングされたSOLトークンが保管される特別なアカウントです。取引の検証に参加して報酬を得るために、トークンをバリデーターに委任すると、このアカウントが作成されます。ステーキングアカウントの作成には少額の手数料がかかりますが、この手数料はステーキングが完了すると返金されます。</string>
|
||||
<string name="staking_details_annual_percentage_rate">年率</string>
|
||||
<string name="staking_details_annual_percentage_rate_info">ステーキングに参加することで得られる年間収益率。</string>
|
||||
<string name="staking_details_apr">APR</string>
|
||||
|
|
@ -695,6 +697,7 @@
|
|||
<string name="staking_reward_schedule_block">ブロック</string>
|
||||
<string name="staking_reward_schedule_day">日</string>
|
||||
<string name="staking_reward_schedule_each_day">毎日</string>
|
||||
<string name="staking_reward_schedule_each_sec">%1$s毎</string>
|
||||
<string name="staking_reward_schedule_epoch">エポック</string>
|
||||
<string name="staking_reward_schedule_era">時代</string>
|
||||
<string name="staking_reward_schedule_hour">時</string>
|
||||
|
|
@ -711,6 +714,7 @@
|
|||
<string name="staking_transaction_in_progress_text">取引を処理中です。現在、ブロックチェーンで検証が行われています。これには数分かかる場合があります。</string>
|
||||
<string name="staking_unbonding">ステーキング解約中</string>
|
||||
<string name="staking_unlocked_locked">ロック解除</string>
|
||||
<string name="staking_unlocking">ロック解除中</string>
|
||||
<string name="staking_unstaked">ステーキングされていない</string>
|
||||
<string name="staking_unstaking">ステーキング解除</string>
|
||||
<string name="staking_unstaking_item_name">ステーキング解除中の資産%s</string>
|
||||
|
|
|
|||
|
|
@ -654,6 +654,7 @@
|
|||
<string name="settings_wallet_name_title">Имя</string>
|
||||
<string name="staking_amount_requirement_error">Сумма для стейкинга должна быть не менее %s</string>
|
||||
<string name="staking_claim_unstaked">Забрать средства</string>
|
||||
<string name="staking_details_account_fee_info">Стейкинг аккаунт — это специальный счет, на котором хранятся застейканные токены SOL. Он создается при делегировании ваших токенов валидатору для участия в подтверждении транзакций и получении наград. За создание стейкинг аккаунта взимается небольшая комиссия, которая возвращается после завершения стейкинга.</string>
|
||||
<string name="staking_details_annual_percentage_rate">Процентная ставка</string>
|
||||
<string name="staking_details_annual_percentage_rate_info">Годовой процентный доход, который вы можете получить от участия в стейкинге.</string>
|
||||
<string name="staking_details_apr">APR</string>
|
||||
|
|
@ -697,6 +698,7 @@
|
|||
<string name="staking_reward_schedule_block">Блок</string>
|
||||
<string name="staking_reward_schedule_day">День</string>
|
||||
<string name="staking_reward_schedule_each_day">Каждый день</string>
|
||||
<string name="staking_reward_schedule_each_sec">Каждые ~%1$s сек</string>
|
||||
<string name="staking_reward_schedule_epoch">Эпоха</string>
|
||||
<string name="staking_reward_schedule_era">Эра</string>
|
||||
<string name="staking_reward_schedule_hour">Час</string>
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@
|
|||
<string name="common_go_to_provider">Перейти до провайдера</string>
|
||||
<string name="common_go_to_token">Перейти до токену</string>
|
||||
<string name="common_import">Імпортувати</string>
|
||||
<string name="common_in_progress">процесі</string>
|
||||
<string name="common_in_progress">В процесі</string>
|
||||
<string name="common_later">Пізніше</string>
|
||||
<string name="common_left">Залишилося %1$s</string>
|
||||
<string name="common_locked">Заблокований</string>
|
||||
|
|
@ -357,6 +357,7 @@
|
|||
<string name="markets_common_my_portfolio">Моє портфоліо</string>
|
||||
<string name="markets_common_title">Маркет</string>
|
||||
<string name="markets_generate_addresses_notification">Щоб згенерувати адреси для обраних мереж, потрібно відсканувати свою картку Tangem</string>
|
||||
<string name="markets_hint">Щоб додати токени, потягніть вгору або торкніться панелі пошуку</string>
|
||||
<string name="markets_insights_info_description_message">Дані цього розділу отримані з наступних мереж: %s</string>
|
||||
<string name="markets_loading_error_title">Не вдалося завантажити дані...</string>
|
||||
<string name="markets_loading_no_data_title">Немає даних</string>
|
||||
|
|
@ -367,13 +368,13 @@
|
|||
<string name="markets_search_token_no_result_title">Жодного результату</string>
|
||||
<string name="markets_select_network">Виберіть мережу</string>
|
||||
<string name="markets_select_wallet">Оберіть гаманець</string>
|
||||
<string name="markets_selector_interval_1m_title">1 міс.</string>
|
||||
<string name="markets_selector_interval_1y_title">1 рік</string>
|
||||
<string name="markets_selector_interval_24h_title">24 год.</string>
|
||||
<string name="markets_selector_interval_3m_title">3 міс.</string>
|
||||
<string name="markets_selector_interval_6m_title">6 міс.</string>
|
||||
<string name="markets_selector_interval_1m_title">1м</string>
|
||||
<string name="markets_selector_interval_1y_title">1р</string>
|
||||
<string name="markets_selector_interval_24h_title">24г</string>
|
||||
<string name="markets_selector_interval_3m_title">3м</string>
|
||||
<string name="markets_selector_interval_6m_title">6м</string>
|
||||
<string name="markets_selector_interval_7d_title">7д</string>
|
||||
<string name="markets_selector_interval_all_title">Увесь</string>
|
||||
<string name="markets_selector_interval_all_title">Усе</string>
|
||||
<string name="markets_sort_by_experienced_buyers_title">Досвідчені покупці</string>
|
||||
<string name="markets_sort_by_rating_title">За рейтингом</string>
|
||||
<string name="markets_sort_by_title">Сортувати за</string>
|
||||
|
|
@ -394,7 +395,7 @@
|
|||
<string name="markets_token_details_circulating_supply_description">Загальна кількість монет, які доступні для торгівлі та перебувають в обігу на ринку</string>
|
||||
<string name="markets_token_details_experienced_buyers">Досвідчені покупці</string>
|
||||
<string name="markets_token_details_experienced_buyers_description">Мережеві покупці з додатковою вимогою мати не менше 100 вихідних транзакцій</string>
|
||||
<string name="markets_token_details_fully_diluted_valuation">Повністю розведена ринкова капіталізація</string>
|
||||
<string name="markets_token_details_fully_diluted_valuation">Повн. розведена кап.</string>
|
||||
<string name="markets_token_details_fully_diluted_valuation_description">Загальна теоретична вартість криптовалюти, якщо всі монети, які могли б існувати, перебувають в обігу, включаючи ті, що не перебувають в обігу в даний час</string>
|
||||
<string name="markets_token_details_genesis_date">Дата створення</string>
|
||||
<string name="markets_token_details_high">Високий</string>
|
||||
|
|
@ -661,6 +662,7 @@
|
|||
<string name="settings_forget_wallet_footer">Це призведе до видалення гаманця з застосунку. Сам гаманець можна додати знову.</string>
|
||||
<string name="settings_wallet_name_title">Ім\'я</string>
|
||||
<string name="staking_amount_requirement_error">Сума для стейкінгу має бути не менше %s</string>
|
||||
<string name="staking_amount_tron_integer_error">Сума стейкінгу буде округлена до %1$s TRX відповідно до правил мережі.</string>
|
||||
<string name="staking_claim_unstaked">Зняти кошти</string>
|
||||
<string name="staking_details_annual_percentage_rate">Процентна ставка</string>
|
||||
<string name="staking_details_annual_percentage_rate_info">Річний відсоток, який ви можете отримати, беручи участь у стейкінгу.</string>
|
||||
|
|
@ -733,6 +735,7 @@
|
|||
<string name="staking_transaction_in_progress_text">Транзакція обробляється! Наразі триває перевірка в блокчейні. Це може зайняти кілька хвилин.</string>
|
||||
<string name="staking_unbonding">Розблокування</string>
|
||||
<string name="staking_unlocked_locked">Розблокувати</string>
|
||||
<string name="staking_unlocking">Розблокування</string>
|
||||
<string name="staking_unstaked">Вивід зі стейкінгу</string>
|
||||
<string name="staking_unstaking">Зняти зі стейкінгу</string>
|
||||
<string name="staking_unstaking_item_name">Виведення зі стейкінгу %s</string>
|
||||
|
|
@ -875,6 +878,8 @@
|
|||
<string name="warning_backup_errors_title">Помилка активації</string>
|
||||
<string name="warning_beacon_chain_retirement_content">За рішенням розробників мережі BNB стандарт BEP-2 перестане підтримуватись у червні 2024 року. Щоб не втратити свої активи, їх необхідно конвертувати у стандарт BEP-20. Використовуйте функцію обміну, щоб перевести їх у мережу BNB Smart Chain.</string>
|
||||
<string name="warning_beacon_chain_retirement_title">Відключення мережі BNB Beacon Chain</string>
|
||||
<string name="warning_blocked_funds_for_fee_message">Будь ласка, поповніть рахунок на %1$s для покриття комісії мережі</string>
|
||||
<string name="warning_blocked_funds_for_fee_title">Недостатньо коштів для покриття комісії мережі</string>
|
||||
<string name="warning_button_could_be_better">Можна краще</string>
|
||||
<string name="warning_button_like_it">Вподобати</string>
|
||||
<string name="warning_button_ok">Зрозуміло!</string>
|
||||
|
|
|
|||
|
|
@ -567,7 +567,7 @@
|
|||
<string name="scan_card_settings_message">Scan the card to change its settings. The changes will impact only the card you\'ve scanned and will not affect other cards tied to your wallet.</string>
|
||||
<string name="scan_card_settings_title">Get your card ready!</string>
|
||||
<string name="send_additional_field_already_included">Already included in the entered address</string>
|
||||
<string name="send_alert_fee_too_high_text">The commission amount is %s times the recommended amount. Make sure that the custom settings are correct.</string>
|
||||
<string name="send_alert_fee_too_high_text">Your commission amount is %s times higher than the recommended amount. Please review and adjust your custom settings.</string>
|
||||
<string name="send_alert_fee_too_low_text">You specified a commission below the recommended amount, which could cause a delay in your transaction. Continue?</string>
|
||||
<string name="send_alert_transaction_failed_text">Reason: %1$s\nCode: %2$s</string>
|
||||
<string name="send_alert_transaction_failed_title">The transaction is not completed</string>
|
||||
|
|
@ -602,7 +602,7 @@
|
|||
<string name="send_notification_exceed_balance_title">Total exceeds balance</string>
|
||||
<string name="send_notification_existential_deposit_text">A balance of at least %s is required to keep your account on the blockchain to prevent security risks. This amount will remain in your balance and cannot be withdrawn.</string>
|
||||
<string name="send_notification_existential_deposit_title">Existential deposit</string>
|
||||
<string name="send_notification_fee_too_high_text">The commission amount is %s times the recommended amount. Make sure that the custom settings are correct.</string>
|
||||
<string name="send_notification_fee_too_high_text">Your commission amount is %s times higher than the recommended amount. Please review and adjust your custom settings.</string>
|
||||
<string name="send_notification_fee_too_high_title">Custom fee is high</string>
|
||||
<string name="send_notification_high_fee_text">Due to the peculiarities of the %1$s network, the fee for transferring the entire balance is higher. To reduce the commission, you can leave %2$s.</string>
|
||||
<string name="send_notification_high_fee_title">The fee is higher</string>
|
||||
|
|
@ -648,6 +648,8 @@
|
|||
<string name="staking_amount_requirement_error">The amount to stake must be at least %s</string>
|
||||
<string name="staking_amount_tron_integer_error">Staking amount will be rounded to %1$s TRX due to network rules.</string>
|
||||
<string name="staking_claim_unstaked">Claim unstaked</string>
|
||||
<string name="staking_details_account_fee">Stake account fee</string>
|
||||
<string name="staking_details_account_fee_info">A staking account is a special account where staked SOL tokens are stored. It is created when you delegate your tokens to a validator to participate in transaction validation and earn rewards. A small fee is charged for creating the staking account, which is returned after the staking is completed.</string>
|
||||
<string name="staking_details_annual_percentage_rate">Annual percentage rate</string>
|
||||
<string name="staking_details_annual_percentage_rate_info">The annual percentage return you can earn from participating in staking.</string>
|
||||
<string name="staking_details_apr">APR</string>
|
||||
|
|
@ -703,6 +705,7 @@
|
|||
<string name="staking_reward_schedule_block">Block</string>
|
||||
<string name="staking_reward_schedule_day">Day</string>
|
||||
<string name="staking_reward_schedule_each_day">Each day</string>
|
||||
<string name="staking_reward_schedule_each_sec">Each ~%1$ssec</string>
|
||||
<string name="staking_reward_schedule_epoch">Epoch</string>
|
||||
<string name="staking_reward_schedule_era">Era</string>
|
||||
<string name="staking_reward_schedule_hour">Hour</string>
|
||||
|
|
@ -719,6 +722,7 @@
|
|||
<string name="staking_transaction_in_progress_text">The transaction is being processed! Validation is currently underway in the blockchain. This may take a few minutes.</string>
|
||||
<string name="staking_unbonding">Unbonding</string>
|
||||
<string name="staking_unlocked_locked">Unlock</string>
|
||||
<string name="staking_unlocking">Unlocking</string>
|
||||
<string name="staking_unstaked">Unstaked</string>
|
||||
<string name="staking_unstaking">Unstaking</string>
|
||||
<string name="staking_unstaking_item_name">Unstaking assets %s</string>
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ fun String.parseToBigDecimal(decimals: Int): BigDecimal {
|
|||
}
|
||||
}
|
||||
|
||||
fun BigDecimal.parseBigDecimal(decimals: Int, roundingMode: RoundingMode = RoundingMode.DOWN): String {
|
||||
fun BigDecimal.parseBigDecimal(decimals: Int, roundingMode: RoundingMode = RoundingMode.HALF_UP): String {
|
||||
val decimalFormat = DecimalFormat().apply {
|
||||
decimalFormatSymbols = DecimalFormatSymbols(Locale.getDefault())
|
||||
isParseBigDecimal = true
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ import arrow.core.raise.either
|
|||
import arrow.core.raise.ensure
|
||||
import arrow.core.raise.ensureNotNull
|
||||
import arrow.core.toNonEmptyListOrNull
|
||||
import com.tangem.domain.staking.model.stakekit.YieldBalance
|
||||
import com.tangem.domain.tokens.model.*
|
||||
import com.tangem.utils.extensions.orZero
|
||||
import java.math.BigDecimal
|
||||
|
||||
internal class TokenListSortingOperations(
|
||||
|
|
@ -83,7 +85,7 @@ internal class TokenListSortingOperations(
|
|||
return if (isAnyTokenLoading) {
|
||||
tokens
|
||||
} else {
|
||||
tokens.sortedByDescending { it.value.fiatAmount ?: BigDecimal.ZERO }
|
||||
tokens.sortedByDescending { it.getTotalBalance() }
|
||||
.toNonEmptyListOrNull()
|
||||
?: error("Tokens can not be empty here")
|
||||
}
|
||||
|
|
@ -92,12 +94,20 @@ internal class TokenListSortingOperations(
|
|||
private fun sortGroupsByBalance(groupsWithSortedTokens: NonEmptyList<NetworkGroup>): NonEmptyList<NetworkGroup> {
|
||||
return groupsWithSortedTokens
|
||||
.sortedByDescending { group ->
|
||||
group.currencies.sumOf { it.value.fiatAmount ?: BigDecimal.ZERO }
|
||||
group.currencies.sumOf { it.getTotalBalance() }
|
||||
}
|
||||
.toNonEmptyListOrNull()
|
||||
?: error("Tokens can not be empty here")
|
||||
}
|
||||
|
||||
private fun CryptoCurrencyStatus.getTotalBalance(): BigDecimal {
|
||||
val yieldBalance = value.yieldBalance as? YieldBalance.Data
|
||||
val totalYieldBalance = yieldBalance?.getTotalWithRewardsStakingBalance().orZero()
|
||||
val totalFiatYieldBalance = totalYieldBalance.multiply(value.fiatRate.orZero())
|
||||
|
||||
return value.fiatAmount?.plus(totalFiatYieldBalance).orZero()
|
||||
}
|
||||
|
||||
sealed class Error {
|
||||
|
||||
object EmptyTokens : Error()
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ 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.viewmodel.StakingClickIntents
|
||||
import com.tangem.lib.crypto.BlockchainUtils.isCosmos
|
||||
import com.tangem.lib.crypto.BlockchainUtils.isPolkadot
|
||||
import com.tangem.utils.Provider
|
||||
import com.tangem.utils.isNullOrZero
|
||||
|
|
@ -201,12 +202,12 @@ internal class SetInitialDataStateTransformer(
|
|||
private fun createRewardScheduleItem(
|
||||
rewardSchedule: Yield.Metadata.RewardSchedule,
|
||||
): RoundedListWithDividersItemData? {
|
||||
val endTextId = rewardScheduleResources[rewardSchedule] ?: return null
|
||||
val endTextReference = getRewardScheduleText(rewardSchedule) ?: return null
|
||||
|
||||
return RoundedListWithDividersItemData(
|
||||
id = R.string.staking_details_reward_schedule,
|
||||
startText = TextReference.Res(R.string.staking_details_reward_schedule),
|
||||
endText = TextReference.Res(endTextId),
|
||||
startText = resourceReference(R.string.staking_details_reward_schedule),
|
||||
endText = endTextReference,
|
||||
iconClick = { clickIntents.onInfoClick(InfoType.REWARD_SCHEDULE) },
|
||||
)
|
||||
}
|
||||
|
|
@ -252,21 +253,34 @@ internal class SetInitialDataStateTransformer(
|
|||
return resourceReference(R.string.common_range, wrappedList(formattedMinApr, formattedMaxApr))
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val EQUALITY_THRESHOLD = BigDecimal(1E-10)
|
||||
private fun getRewardScheduleText(rewardSchedule: Yield.Metadata.RewardSchedule): TextReference? {
|
||||
return when (rewardSchedule) {
|
||||
Yield.Metadata.RewardSchedule.BLOCK -> {
|
||||
val networkId = cryptoCurrencyStatusProvider().currency.network.id.value
|
||||
when {
|
||||
isCosmos(networkId) -> resourceReference(
|
||||
R.string.staking_reward_schedule_each_sec,
|
||||
wrappedList(COSMOS_BLOCK_TIME),
|
||||
)
|
||||
else -> resourceReference(R.string.staking_reward_schedule_each_day)
|
||||
}
|
||||
}
|
||||
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 val rewardScheduleResources = mapOf(
|
||||
Yield.Metadata.RewardSchedule.BLOCK to R.string.staking_reward_schedule_each_day,
|
||||
Yield.Metadata.RewardSchedule.WEEK to R.string.staking_reward_schedule_week,
|
||||
Yield.Metadata.RewardSchedule.HOUR to R.string.staking_reward_schedule_hour,
|
||||
Yield.Metadata.RewardSchedule.DAY to R.string.staking_reward_schedule_each_day,
|
||||
Yield.Metadata.RewardSchedule.MONTH to R.string.staking_reward_schedule_month,
|
||||
Yield.Metadata.RewardSchedule.ERA to R.string.staking_reward_schedule_era,
|
||||
Yield.Metadata.RewardSchedule.EPOCH to R.string.staking_reward_schedule_epoch,
|
||||
Yield.Metadata.RewardSchedule.UNKNOWN to null,
|
||||
)
|
||||
private companion object {
|
||||
val EQUALITY_THRESHOLD = BigDecimal(1E-10)
|
||||
|
||||
private val rewardClaimingResources = mapOf(
|
||||
const val COSMOS_BLOCK_TIME = "20" // 20 seconds
|
||||
|
||||
val rewardClaimingResources = mapOf(
|
||||
Yield.Metadata.RewardClaiming.MANUAL to R.string.staking_reward_claiming_manual,
|
||||
Yield.Metadata.RewardClaiming.AUTO to R.string.staking_reward_claiming_auto,
|
||||
Yield.Metadata.RewardSchedule.UNKNOWN to null,
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.tangem.feature.tokendetails.presentation.tokendetails.state.factory
|
|||
|
||||
import com.tangem.core.ui.utils.BigDecimalFormatter
|
||||
import com.tangem.domain.appcurrency.model.AppCurrency
|
||||
import com.tangem.domain.staking.model.stakekit.YieldBalance
|
||||
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
|
||||
import com.tangem.feature.tokendetails.presentation.tokendetails.state.*
|
||||
import com.tangem.feature.tokendetails.presentation.tokendetails.state.utils.getBalance
|
||||
|
|
@ -20,8 +21,9 @@ internal class TokenDetailsBalanceSelectStateConverter(
|
|||
if (stakingBlocksState !is StakingBlockUM.Staked) return this
|
||||
val cryptoCurrencyStatus = cryptoCurrencyStatusProvider() ?: return this
|
||||
|
||||
val stakingCryptoAmount = stakingBlocksState.cryptoAmount
|
||||
val stakingFiatAmount = stakingBlocksState.fiatAmount
|
||||
val yieldBalance = cryptoCurrencyStatus.value.yieldBalance as? YieldBalance.Data
|
||||
val stakingCryptoAmount = yieldBalance?.getTotalWithRewardsStakingBalance()
|
||||
val stakingFiatAmount = stakingCryptoAmount?.let { cryptoCurrencyStatus.value.fiatRate?.multiply(it) }
|
||||
|
||||
copy(
|
||||
tokenBalanceBlockState = if (tokenBalanceBlockState is TokenDetailsBalanceBlockState.Content) {
|
||||
|
|
|
|||
|
|
@ -153,8 +153,9 @@ internal class TokenDetailsLoadedBalanceConverter(
|
|||
StakingBlockUM.Error(iconState = iconState)
|
||||
}
|
||||
else -> {
|
||||
val stakingRewardAmount = yieldBalance?.getRewardStakingBalance()
|
||||
val stakingFiatAmount = stakingCryptoAmount?.let { status.value.fiatRate?.multiply(it) }
|
||||
val fiatRate = status.value.fiatRate
|
||||
val stakingRewardAmount = yieldBalance?.getRewardStakingBalance()?.let { fiatRate?.multiply(it) }
|
||||
val stakingFiatAmount = stakingCryptoAmount?.let { fiatRate?.multiply(it) }
|
||||
|
||||
getStakedState(
|
||||
status = status,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue