All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.provenance.explorer.model.ValidatorModels.kt Maven / Gradle / Ivy

The newest version!
package io.provenance.explorer.model

import io.provenance.explorer.model.base.CoinStr
import io.provenance.explorer.model.base.CountStrTotal
import io.provenance.explorer.model.base.CountTotal
import org.joda.time.DateTime
import java.math.BigDecimal

data class ValidatorSummary(
    val moniker: String,
    val addressId: String,
    val consensusAddress: String,
    val proposerPriority: Long?,
    val votingPower: CountTotal?,
    val commission: String,
    val bondedTokens: CountStrTotal,
    val delegators: Long?,
    val status: String,
    val unbondingHeight: Long?,
    val imgUrl: String?,
    val hr24Change: String?,
    val uptime: BigDecimal
)

data class ValidatorSummaryAbbrev(
    val moniker: String,
    val addressId: String,
    val commission: String,
    val imgUrl: String?
)

data class ValidatorDetails(
    val votingPower: CountTotal?,
    val moniker: String,
    val operatorAddress: String,
    val ownerAddress: String,
    val withdrawalAddress: String,
    val consensusPubKey: String?,
    val blockCount: CountTotal?,
    val bondHeight: Long?,
    val uptime: BigDecimal?,
    val imgUrl: String?,
    val description: String?,
    val siteUrl: String?,
    val identity: String?,
    val status: String,
    val unbondingHeight: Long?,
    val jailedUntil: DateTime?,
    val removed: Boolean,
    val isVerified: Boolean
)

data class ValidatorCommission(
    val bondedTokens: CountStrTotal,
    val selfBonded: CountStrTotal,
    val delegatorBonded: CountStrTotal,
    val delegatorCount: Long,
    val totalShares: String,
    val commissionRewards: CoinStr,
    val commissionRate: CommissionRate
)

data class CommissionRate(
    val rate: String,
    val maxRate: String,
    val maxChangeRate: String
)

data class ValidatorAtHeight(
    val moniker: String,
    val addressId: String,
    val consensusAddress: String,
    val proposerPriority: Long?,
    val votingPower: CountTotal?,
    val imgUrl: String?,
    val isProposer: Boolean = false,
    val didVote: Boolean = true
)

data class CommissionList(
    val rate: String,
    val blockHeight: Int
)

data class ValidatorCommissionHistory(
    val operatorAddress: String,
    val commissionList: List
)

data class ValidatorMarketRate(
    val operatorAddress: String,
    val time: String,
    val minMarketRate: BigDecimal?,
    val maxMarketRate: BigDecimal?,
    val averageMarketRate: BigDecimal?
)

data class BlockLatencyData(
    val proposer: String,
    val data: Map,
    val averageLatency: BigDecimal
)

data class ValidatorMissedBlocks(
    val validator: ValidatorMoniker,
    val missedBlocks: List = listOf()
)

data class MissedBlockSet(
    val min: Int,
    val max: Int,
    val count: Int
)

data class ValidatorMoniker(
    val valConsAddress: String,
    var operatorAddr: String?,
    var moniker: String?,
    var currentState: ValidatorState?
)

enum class ValidatorState { ACTIVE, CANDIDATE, JAILED, REMOVED, ALL }

data class MissedBlocksTimeframe(
    val fromHeight: Int,
    val toHeight: Int,
    val addresses: List
)

data class ValidatorUptimeStats(
    val validator: ValidatorMoniker,
    val uptimeCount: Int,
    val uptimeCountPercentage: String,
    val missedCount: Int,
    val missedCountPercentage: String
)

data class UptimeDataSet(
    val fromHeight: Long,
    val toHeight: Long,
    val blockWindowCount: Long,
    val slashedBlockCount: Long,
    val slashedPercentage: String,
    val avgUptimeCount: Int,
    val avgUptimeCountPercentage: String,
    val validatorsAtRisk: List
)

data class ValidatorMetrics(
    val operatorAddr: String,
    val moniker: String,
    val year: Int,
    val quarter: Int,
    val isActive: Boolean,
    val isVerified: Boolean,
    val votingMetric: CountTotal,
    val uptimeMetrics: CountTotal
)

data class MetricPeriod(
    val label: String,
    val year: Int,
    val quarter: Int
)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy