Updated on 2026-08-14

This commit is contained in:
Tangem 2024-08-13 15:57:36 +03:00
parent 434c459728
commit 42f276c56f
25 changed files with 308 additions and 157 deletions

View file

@ -2,8 +2,10 @@ package com.tangem.data.staking.converters
import com.tangem.datasource.api.stakekit.models.response.model.AddressArgumentDTO
import com.tangem.datasource.api.stakekit.models.response.model.YieldDTO
import com.tangem.datasource.api.stakekit.models.response.model.YieldDTO.MetadataDTO.RewardScheduleDTO
import com.tangem.domain.staking.model.stakekit.AddressArgument
import com.tangem.domain.staking.model.stakekit.Yield
import com.tangem.domain.staking.model.stakekit.Yield.Metadata.RewardSchedule
import com.tangem.utils.converter.Converter
class YieldConverter(
@ -80,10 +82,10 @@ class YieldConverter(
token = tokenConverter.convert(metadataDTO.tokenDTO),
tokens = metadataDTO.tokensDTO.map { tokenConverter.convert(it) },
type = metadataDTO.type,
rewardSchedule = metadataDTO.rewardSchedule,
rewardSchedule = convertRewardSchedule(metadataDTO.rewardSchedule),
cooldownPeriod = convertPeriod(metadataDTO.cooldownPeriod),
warmupPeriod = convertPeriod(metadataDTO.warmupPeriod),
rewardClaiming = metadataDTO.rewardClaiming,
rewardClaiming = convertRewardClaiming(metadataDTO.rewardClaiming),
defaultValidator = metadataDTO.defaultValidator,
minimumStake = metadataDTO.minimumStake,
supportsMultipleValidators = metadataDTO.supportsMultipleValidators,
@ -127,6 +129,29 @@ class YieldConverter(
}
}
private fun convertRewardSchedule(rewardTypeDTO: RewardScheduleDTO): RewardSchedule {
return when (rewardTypeDTO) {
RewardScheduleDTO.BLOCK -> RewardSchedule.BLOCK
RewardScheduleDTO.WEEK -> RewardSchedule.WEEK
RewardScheduleDTO.HOUR -> RewardSchedule.HOUR
RewardScheduleDTO.DAY -> RewardSchedule.DAY
RewardScheduleDTO.MONTH -> RewardSchedule.MONTH
RewardScheduleDTO.ERA -> RewardSchedule.ERA
RewardScheduleDTO.EPOCH -> RewardSchedule.EPOCH
else -> RewardSchedule.UNKNOWN
}
}
private fun convertRewardClaiming(
rewardClaimingDTO: YieldDTO.MetadataDTO.RewardClaimingDTO,
): Yield.Metadata.RewardClaiming {
return when (rewardClaimingDTO) {
YieldDTO.MetadataDTO.RewardClaimingDTO.AUTO -> Yield.Metadata.RewardClaiming.AUTO
YieldDTO.MetadataDTO.RewardClaimingDTO.MANUAL -> Yield.Metadata.RewardClaiming.MANUAL
else -> Yield.Metadata.RewardClaiming.UNKNOWN
}
}
private fun convertArgType(value: String): Yield.Args.ArgType {
return when (value) {
"address" -> Yield.Args.ArgType.ADDRESS