Updated on 2026-08-14

This commit is contained in:
Tangem 2025-03-11 11:56:37 +05:00
parent 3eb843a05f
commit 9c6d5fc4fa
15 changed files with 192 additions and 73 deletions

View file

@ -3,6 +3,7 @@ package com.tangem.datasource.api.stakekit.models.response.model
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import com.tangem.datasource.api.stakekit.models.request.Address
import com.tangem.datasource.api.stakekit.models.response.model.BalanceDTO.PendingAction.PendingActionArgs.Amount
import com.tangem.datasource.api.stakekit.models.response.model.action.StakingActionTypeDTO
import org.joda.time.DateTime
import java.math.BigDecimal
@ -31,6 +32,8 @@ data class BalanceDTO(
val pricePerShare: BigDecimal,
@Json(name = "pendingActions")
val pendingActions: List<PendingAction>,
@Json(name = "pendingActionConstraints")
val pendingActionConstraints: List<PendingActionConstraints>?,
@Json(name = "token")
val tokenDTO: TokenDTO,
@Json(name = "validatorAddress")
@ -99,7 +102,7 @@ data class BalanceDTO(
@JsonClass(generateAdapter = true)
data class Amount(
@Json(name = "required")
val required: Boolean,
val required: Boolean = true,
@Json(name = "minimum")
val minimum: BigDecimal?,
@Json(name = "maximum")
@ -136,6 +139,14 @@ data class BalanceDTO(
}
}
@JsonClass(generateAdapter = true)
data class PendingActionConstraints(
@Json(name = "type")
val type: StakingActionTypeDTO,
@Json(name = "amount")
val amountArg: Amount,
)
@JsonClass(generateAdapter = true)
data class Required(
@Json(name = "required")

View file

@ -0,0 +1,20 @@
package com.tangem.datasource.local.token.converter
import com.tangem.datasource.api.stakekit.models.response.model.BalanceDTO
import com.tangem.domain.staking.model.stakekit.PendingAction
import com.tangem.domain.staking.model.stakekit.PendingActionConstraints
import com.tangem.utils.converter.Converter
internal object PendingActionConstraintsConverter :
Converter<BalanceDTO.PendingActionConstraints, PendingActionConstraints> {
override fun convert(value: BalanceDTO.PendingActionConstraints): PendingActionConstraints {
return PendingActionConstraints(
type = StakingActionTypeConverter.convert(value.type),
amountArg = PendingAction.PendingActionArgs.Amount(
required = value.amountArg.required,
minimum = value.amountArg.minimum,
maximum = value.amountArg.maximum,
),
)
}
}

View file

@ -38,6 +38,8 @@ internal class YieldBalanceConverter(
pendingActions = PendingActionConverter
.convertList(item.pendingActions)
.sortedBy { it.passthrough },
pendingActionsConstraints = PendingActionConstraintsConverter
.convertList(item.pendingActionConstraints.orEmpty()),
isPending = false,
)
}