Updated on 2026-08-14
This commit is contained in:
parent
6f56374743
commit
dc5becd3c5
6 changed files with 61 additions and 26 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue