models

package
v1.13.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2024 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientCLDataMapPeerMapEdge added in v1.10.0

type ClientCLDataMapPeerMapEdge struct {
	From        string `json:"from"`
	To          string `json:"to"`
	Interaction string `json:"interaction"`
}

ClientCLDataMapPeerMapEdge represents an edge in the peer graph

type ClientCLPageDataNode added in v1.12.1

type ClientCLPageDataNode struct {
	PeerID       string                          `json:"peer_id"`
	NodeID       string                          `json:"node_id"`
	Type         string                          `json:"type"`  // "internal" or "external" . internal nodes are clients, external nodes are peers of clients
	Alias        string                          `json:"alias"` // only relevent for internal peers (clients)
	ENR          string                          `json:"enr"`
	ENRKeyValues []*ClientCLPageDataNodeENRValue `json:"enr_kv"`
	Peers        []*ClientCLPageDataNodePeers    `json:"peers"` // only relevent for internal peers
	PeerDAS      *ClientCLPageDataNodePeerDAS    `json:"peer_das"`
	PeersIn      []string                        `json:"peers_in"`
	PeersOut     []string                        `json:"peers_out"`
}

ClientCLPageDataNode represents a generic node on the CL network. Can be a client or a peer of a client This is useful to generate a generic view of all nodes we know about in the network.

type ClientCLPageDataNodeENRValue added in v1.12.1

type ClientCLPageDataNodeENRValue struct {
	Key   string      `json:"key"`
	Value interface{} `json:"value"`
}

type ClientCLPageDataNodePeerDAS added in v1.12.1

type ClientCLPageDataNodePeerDAS struct {
	CSC         uint64   `json:"csc"`
	Columns     []uint64 `json:"columns"`
	Subnets     []uint64 `json:"subnets"`
	IsSuperNode bool     `json:"is_super_node"`
}

type ClientCLPageDataNodePeers added in v1.12.1

type ClientCLPageDataNodePeers struct {
	PeerID             string                          `json:"peer_id"`
	State              string                          `json:"state"`
	Direction          string                          `json:"direction"`
	ENR                string                          `json:"enr"`
	ENRKeyValues       []*ClientCLPageDataNodeENRValue `json:"enr_kv"`
	LastSeenP2PAddress string                          `json:"last_seen_p2p_address"`
}

ClientCLPageDataNodePeers represents the peers of a client

type ClientCLPageDataPeerDASWarnings added in v1.12.1

type ClientCLPageDataPeerDASWarnings struct {
	HasWarnings bool `json:"has_warnings"`
	// MissingENRs indicates that the client is missing ENRs for some peers
	MissingENRs      bool     `json:"missing_enrs"`
	MissingENRsPeers []string `json:"missing_enrs_peers"`
	// MissingCSCFromENR indicates that the client is missing the CSC from the ENR for some peers
	MissingCSCFromENR      bool     `json:"missing_csc_from_enr"`
	MissingCSCFromENRPeers []string `json:"missing_csc_from_enr_peers"`
	// MissingSpecValues indicates that wer were unable to parse the spec values, thus using defaults
	MissingSpecValues bool `json:"missing_spec_values"`
	// MissingPeersOnColum
	EmptyColumns []uint64 `json:"missing_peers_on_column"`
}

type ClientCLPageDataPeerMap added in v1.10.0

type ClientCLPageDataPeerMap struct {
	ClientPageDataMapNode []*ClientCLPageDataPeerMapNode `json:"nodes"`
	ClientDataMapEdges    []*ClientCLDataMapPeerMapEdge  `json:"edges"`
}

ClientCLPageDataPeerMap represents the data required to draw the network graph

type ClientCLPageDataPeerMapNode added in v1.10.0

type ClientCLPageDataPeerMapNode struct {
	ID    string `json:"id"`
	Label string `json:"label"`
	Group string `json:"group"`
	Shape string `json:"shape"`
	Value int    `json:"value"`
}

ClientCLPageDataPeerMapNode represents a node in the peer graph

type ClientCLPagePeerDAS added in v1.12.1

type ClientCLPagePeerDAS struct {
	ColumnDistribution           map[uint64][]string             `json:"column_distribution"`              // Column index -> list of peer IDs             // Peer ID -> Peer info
	TotalRows                    int                             `json:"total_rows"`                       // Amount of rows to show on the webpage. Each row has 32 columns
	NumberOfColumns              uint64                          `json:"number_of_columns"`                // Should match NUMBER_OF_COLUMNS from spec
	CustodyRequirement           uint64                          `json:"custody_requirement"`              // Should match CUSTODY_REQUIREMENT from spec
	DataColumnSidecarSubnetCount uint64                          `json:"data_column_sidecar_subnet_count"` // Should match DATA_COLUMN_SIDECAR_SUBNET_COUNT from spec
	Warnings                     ClientCLPageDataPeerDASWarnings `json:"warnings"`
}

ClientCLPagePeerDAS represents the DAS information from all clients and peers. Used to construct the PeerDAS column custody view.

type ClientELDataMapPeerMapEdge added in v1.10.0

type ClientELDataMapPeerMapEdge struct {
	From        string `json:"from"`
	To          string `json:"to"`
	Interaction string `json:"interaction"`
}

type ClientELPageDataNodePeers added in v1.12.1

type ClientELPageDataNodePeers struct {
	ID        string                 `json:"id"`
	Alias     string                 `json:"alias"`
	Enode     string                 `json:"enode"`
	Name      string                 `json:"name"`
	Type      string                 `json:"type"`
	State     string                 `json:"state"`
	Direction string                 `json:"direction"`
	Caps      []string               `json:"caps"`
	Protocols map[string]interface{} `json:"protocols"`
}

type ClientELPageDataPeerMap added in v1.10.0

type ClientELPageDataPeerMap struct {
	ClientPageDataMapNode []*ClientELPageDataPeerMapNode `json:"nodes"`
	ClientDataMapEdges    []*ClientELDataMapPeerMapEdge  `json:"edges"`
}

type ClientELPageDataPeerMapNode added in v1.10.0

type ClientELPageDataPeerMapNode struct {
	ID    string `json:"id"`
	Label string `json:"label"`
	Group string `json:"group"`
	Value int    `json:"value"`
}

type ClientsCLPageData added in v1.10.0

type ClientsCLPageData struct {
	Clients                []*ClientsCLPageDataClient       `json:"clients"`
	ClientCount            uint64                           `json:"client_count"`
	PeerMap                *ClientCLPageDataPeerMap         `json:"peer_map"`
	ShowSensitivePeerInfos bool                             `json:"show_sensitive_peer_infos"`
	ShowPeerDASInfos       bool                             `json:"show_peer_das_infos"`
	PeerDASInfos           *ClientCLPagePeerDAS             `json:"peer_das"`
	Nodes                  map[string]*ClientCLPageDataNode `json:"nodes"`
}

ClientsCLPageData is a struct to hold info for the clients page

type ClientsCLPageDataClient added in v1.10.0

type ClientsCLPageDataClient struct {
	Index                int       `json:"index"`
	Name                 string    `json:"name"`
	Version              string    `json:"version"`
	HeadSlot             uint64    `json:"head_slot"`
	HeadRoot             []byte    `json:"head_root"`
	Status               string    `json:"status"`
	LastRefresh          time.Time `json:"refresh"`
	LastError            string    `json:"error"`
	PeerID               string    `json:"peer_id"`
	PeerCount            uint32    `json:"peer_count"`
	PeersInboundCounter  uint32    `json:"peers_inbound_counter"`
	PeersOutboundCounter uint32    `json:"peers_outbound_counter"`
}

ClientsCLPageDataClient represents a configured endpoint CL client

type ClientsELPageData added in v1.10.0

type ClientsELPageData struct {
	Clients                []*ClientsELPageDataClient        `json:"clients"`
	ClientCount            uint64                            `json:"client_count"`
	PeerMap                *ClientELPageDataPeerMap          `json:"peer_map"`
	ShowSensitivePeerInfos bool                              `json:"show_sensitive_peer_infos"`
	Nodes                  map[string]*ClientsELPageDataNode `json:"nodes"`
}

ClientsELPageData is a struct to hold info for the clients page

type ClientsELPageDataClient added in v1.10.0

type ClientsELPageDataClient struct {
	Index                int       `json:"index"`
	Name                 string    `json:"name"`
	Version              string    `json:"version"`
	HeadSlot             uint64    `json:"head_slot"`
	HeadRoot             []byte    `json:"head_root"`
	Status               string    `json:"status"`
	LastRefresh          time.Time `json:"refresh"`
	LastError            string    `json:"error"`
	PeerCount            uint32    `json:"peer_count"`
	DidFetchPeers        bool      `json:"peers_fetched"`
	PeersInboundCounter  uint32    `json:"peers_inbound_counter"`
	PeersOutboundCounter uint32    `json:"peers_outbound_counter"`
	PeerID               string    `json:"peer_id"`
}

type ClientsELPageDataNode added in v1.12.1

type ClientsELPageDataNode struct {
	PeerID        string                       `json:"peer_id"`
	Name          string                       `json:"name"`
	Version       string                       `json:"version"`
	Status        string                       `json:"status"`
	PeerName      string                       `json:"peer_name"`
	Enode         string                       `json:"enode"`
	IPAddr        string                       `json:"ip_addr"`
	ListenAddr    string                       `json:"listen_addr"`
	Peers         []*ClientELPageDataNodePeers `json:"peers"`
	DidFetchPeers bool                         `json:"peers_fetched"`
}

type DepositsPageData

type DepositsPageData struct {
	InitiatedDeposits     []*DepositsPageDataInitiatedDeposit `json:"initiated_deposits"`
	InitiatedDepositCount uint64                              `json:"initiated_deposit_count"`
	IncludedDeposits      []*DepositsPageDataIncludedDeposit  `json:"included_deposits"`
	IncludedDepositCount  uint64                              `json:"included_deposit_count"`
}

DepositsPageData is a struct to hold info for the deposits page

type DepositsPageDataIncludedDeposit

type DepositsPageDataIncludedDeposit struct {
	Index                 uint64    `json:"index"`
	HasIndex              bool      `json:"has_index"`
	PublicKey             []byte    `json:"pubkey"`
	Withdrawalcredentials []byte    `json:"wtdcreds"`
	Amount                uint64    `json:"amount"`
	SlotNumber            uint64    `json:"slot"`
	SlotRoot              []byte    `json:"slot_root"`
	Time                  time.Time `json:"time"`
	Orphaned              bool      `json:"orphaned"`
	ValidatorStatus       string    `json:"vstatus"`
	ShowUpcheck           bool      `json:"show_upcheck"`
	UpcheckActivity       uint8     `json:"upcheck_act"`
	UpcheckMaximum        uint8     `json:"upcheck_max"`
}

type DepositsPageDataInitiatedDeposit

type DepositsPageDataInitiatedDeposit struct {
	Index                 uint64    `json:"index"`
	Address               []byte    `json:"address"`
	PublicKey             []byte    `json:"pubkey"`
	Withdrawalcredentials []byte    `json:"wtdcreds"`
	Amount                uint64    `json:"amount"`
	TxHash                []byte    `json:"txhash"`
	Time                  time.Time `json:"time"`
	Block                 uint64    `json:"block"`
	BlockHash             []byte    `json:"block_hash"`
	Orphaned              bool      `json:"orphaned"`
	Valid                 bool      `json:"valid"`
	ValidatorStatus       string    `json:"vstatus"`
	ShowUpcheck           bool      `json:"show_upcheck"`
	UpcheckActivity       uint8     `json:"upcheck_act"`
	UpcheckMaximum        uint8     `json:"upcheck_max"`
}

type ElConsolidationsPageData added in v1.12.0

type ElConsolidationsPageData struct {
	FilterMinSlot          uint64 `json:"filter_mins"`
	FilterMaxSlot          uint64 `json:"filter_maxs"`
	FilterAddress          string `json:"filter_address"`
	FilterPublicKey        string `json:"filter_pubkey"`
	FilterMinSrcIndex      uint64 `json:"filter_minsi"`
	FilterMaxSrcIndex      uint64 `json:"filter_maxsi"`
	FilterSrcValidatorName string `json:"filter_svname"`
	FilterMinTgtIndex      uint64 `json:"filter_minti"`
	FilterMaxTgtIndex      uint64 `json:"filter_maxti"`
	FilterTgtValidatorName string `json:"filter_tvname"`
	FilterWithOrphaned     uint8  `json:"filter_orphaned"`

	ElRequests   []*ElConsolidationsPageDataConsolidation `json:"consolidations"`
	RequestCount uint64                                   `json:"request_count"`
	FirstIndex   uint64                                   `json:"first_index"`
	LastIndex    uint64                                   `json:"last_index"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	NextPageIndex    uint64 `json:"next_page_index"`
	LastPageIndex    uint64 `json:"last_page_index"`

	FirstPageLink string `json:"first_page_link"`
	PrevPageLink  string `json:"prev_page_link"`
	NextPageLink  string `json:"next_page_link"`
	LastPageLink  string `json:"last_page_link"`
}

ElConsolidationsPageData is a struct to hold info for the el_consolidations page

type ElConsolidationsPageDataConsolidation added in v1.12.0

type ElConsolidationsPageDataConsolidation struct {
	IsIncluded           bool      `json:"is_included"`
	SlotNumber           uint64    `json:"slot"`
	SlotRoot             []byte    `json:"slot_root"`
	Time                 time.Time `json:"time"`
	Status               uint64    `json:"status"`
	TxStatus             uint64    `json:"tx_status"`
	SourceAddr           []byte    `json:"src_addr"`
	SourceValidatorValid bool      `json:"src_vvalid"`
	SourceValidatorIndex uint64    `json:"src_vindex"`
	SourceValidatorName  string    `json:"src_vname"`
	SourcePublicKey      []byte    `json:"src_pubkey"`
	TargetValidatorValid bool      `json:"tgt_vvalid"`
	TargetValidatorIndex uint64    `json:"tgt_vindex"`
	TargetValidatorName  string    `json:"tgt_vname"`
	TargetPublicKey      []byte    `json:"tgt_pubkey"`
	LinkedTransaction    bool      `json:"linked_tx"`
	TransactionHash      []byte    `json:"tx_hash"`

	TransactionDetails *ElConsolidationsPageDataConsolidationTxDetails `json:"tx_details"`
}

type ElConsolidationsPageDataConsolidationTxDetails added in v1.12.1

type ElConsolidationsPageDataConsolidationTxDetails struct {
	BlockNumber uint64 `json:"block"`
	BlockHash   string `json:"block_hash"`
	BlockTime   uint64 `json:"block_time"`
	TxOrigin    string `json:"tx_origin"`
	TxTarget    string `json:"tx_target"`
	TxHash      string `json:"tx_hash"`
}

type ElWithdrawalsPageData added in v1.12.0

type ElWithdrawalsPageData struct {
	FilterMinSlot       uint64 `json:"filter_mins"`
	FilterMaxSlot       uint64 `json:"filter_maxs"`
	FilterAddress       string `json:"filter_address"`
	FilterMinIndex      uint64 `json:"filter_mini"`
	FilterMaxIndex      uint64 `json:"filter_maxi"`
	FilterValidatorName string `json:"filter_vname"`
	FilterWithOrphaned  uint8  `json:"filter_orphaned"`
	FilterWithType      uint8  `json:"filter_type"`
	FilterPublicKey     string `json:"filter_pubkey"`

	ElRequests   []*ElWithdrawalsPageDataWithdrawal `json:"withdrawals"`
	RequestCount uint64                             `json:"request_count"`
	FirstIndex   uint64                             `json:"first_index"`
	LastIndex    uint64                             `json:"last_index"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	NextPageIndex    uint64 `json:"next_page_index"`
	LastPageIndex    uint64 `json:"last_page_index"`

	FirstPageLink string `json:"first_page_link"`
	PrevPageLink  string `json:"prev_page_link"`
	NextPageLink  string `json:"next_page_link"`
	LastPageLink  string `json:"last_page_link"`
}

ElWithdrawalsPageData is a struct to hold info for the el_withdrawals page

type ElWithdrawalsPageDataWithdrawal added in v1.12.0

type ElWithdrawalsPageDataWithdrawal struct {
	IsIncluded        bool      `json:"is_included"`
	SlotNumber        uint64    `json:"slot"`
	SlotRoot          []byte    `json:"slot_root"`
	Time              time.Time `json:"time"`
	Status            uint64    `json:"status"`
	TxStatus          uint64    `json:"tx_status"`
	SourceAddr        []byte    `json:"source_addr"`
	Amount            uint64    `json:"amount"`
	ValidatorValid    bool      `json:"vvalid"`
	ValidatorIndex    uint64    `json:"vindex"`
	ValidatorName     string    `json:"vname"`
	PublicKey         []byte    `json:"pubkey"`
	LinkedTransaction bool      `json:"linked_tx"`
	TransactionHash   []byte    `json:"tx_hash"`

	TransactionDetails *ElWithdrawalsPageDataWithdrawalTxDetails `json:"tx_details"`
}

type ElWithdrawalsPageDataWithdrawalTxDetails added in v1.12.1

type ElWithdrawalsPageDataWithdrawalTxDetails struct {
	BlockNumber uint64 `json:"block"`
	BlockHash   string `json:"block_hash"`
	BlockTime   uint64 `json:"block_time"`
	TxOrigin    string `json:"tx_origin"`
	TxTarget    string `json:"tx_target"`
	TxHash      string `json:"tx_hash"`
}

type EpochPageData

type EpochPageData struct {
	Epoch                   uint64               `json:"epoch"`
	PreviousEpoch           uint64               `json:"prev_epoch"`
	NextEpoch               uint64               `json:"next_epoch"`
	Ts                      time.Time            `json:"ts"`
	Synchronized            bool                 `json:"synchronized"`
	Finalized               bool                 `json:"finalized"`
	AttestationCount        uint64               `json:"attestation_count"`
	DepositCount            uint64               `json:"deposit_count"`
	ExitCount               uint64               `json:"exit_count"`
	WithdrawalCount         uint64               `json:"withdrawal_count"`
	WithdrawalAmount        uint64               `json:"withdrawal_amount"`
	ProposerSlashingCount   uint64               `json:"proposer_slashing_count"`
	AttesterSlashingCount   uint64               `json:"attester_slashing_count"`
	EligibleEther           uint64               `json:"eligibleether"`
	TargetVoted             uint64               `json:"target_voted"`
	HeadVoted               uint64               `json:"head_voted"`
	TotalVoted              uint64               `json:"total_voted"`
	TargetVoteParticipation float64              `json:"target_vote_participation"`
	HeadVoteParticipation   float64              `json:"head_vote_participation"`
	TotalVoteParticipation  float64              `json:"total_vote_participation"`
	SyncParticipation       float64              `json:"sync_participation"`
	ValidatorCount          uint64               `json:"validator_count"`
	AverageValidatorBalance uint64               `json:"avg_validator_balance"`
	BlockCount              uint64               `json:"block_count"`
	CanonicalCount          uint64               `json:"canonical_count"`
	MissedCount             uint64               `json:"missed_count"`
	ScheduledCount          uint64               `json:"scheduled_count"`
	OrphanedCount           uint64               `json:"orphaned_count"`
	EthTransactionCount     uint64               `json:"eth_transaction_count"`
	Slots                   []*EpochPageDataSlot `json:"slots"`
}

EpochPageData is a struct to hold info for the epoch page

type EpochPageDataSlot

type EpochPageDataSlot struct {
	Slot                  uint64    `json:"slot"`
	Epoch                 uint64    `json:"epoch"`
	Ts                    time.Time `json:"ts"`
	Scheduled             bool      `json:"scheduled"`
	Status                uint8     `json:"status"`
	Proposer              uint64    `json:"proposer"`
	ProposerName          string    `json:"proposer_name"`
	AttestationCount      uint64    `json:"attestation_count"`
	DepositCount          uint64    `json:"deposit_count"`
	ExitCount             uint64    `json:"exit_count"`
	ProposerSlashingCount uint64    `json:"proposer_slashing_count"`
	AttesterSlashingCount uint64    `json:"attester_slashing_count"`
	SyncParticipation     float64   `json:"sync_participation"`
	EthTransactionCount   uint64    `json:"eth_transaction_count"`
	EthBlockNumber        uint64    `json:"eth_block_number"`
	WithEthBlock          bool      `json:"with_eth_block"`
	Graffiti              []byte    `json:"graffiti"`
	BlockRoot             []byte    `json:"block_root"`
}

type EpochsPageData

type EpochsPageData struct {
	Epochs     []*EpochsPageDataEpoch `json:"epochs"`
	EpochCount uint64
	FirstEpoch uint64
	LastEpoch  uint64

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	CurrentPageEpoch uint64 `json:"page_epoch"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	PrevPageEpoch    uint64 `json:"prev_page_epoch"`
	NextPageIndex    uint64 `json:"next_page_index"`
	NextPageEpoch    uint64 `json:"next_page_epoch"`
	LastPageEpoch    uint64 `json:"last_page_epoch"`
}

EpochsPageData is a struct to hold info for the epochs page

type EpochsPageDataEpoch

type EpochsPageDataEpoch struct {
	Epoch                   uint64    `json:"epoch"`
	Ts                      time.Time `json:"ts"`
	Finalized               bool      `json:"finalized"`
	Justified               bool      `json:"justified"`
	Synchronized            bool      `json:"synchronized"`
	CanonicalBlockCount     uint64    `json:"canonical_block_count"`
	OrphanedBlockCount      uint64    `json:"orphaned_block_count"`
	AttestationCount        uint64    `json:"attestation_count"`
	DepositCount            uint64    `json:"deposit_count"`
	ExitCount               uint64    `json:"exit_count"`
	ProposerSlashingCount   uint64    `json:"proposer_slashing_count"`
	AttesterSlashingCount   uint64    `json:"attester_slashing_count"`
	EligibleEther           uint64    `json:"eligibleether"`
	TargetVoted             uint64    `json:"target_voted"`
	HeadVoted               uint64    `json:"head_voted"`
	TotalVoted              uint64    `json:"total_voted"`
	TargetVoteParticipation float64   `json:"target_vote_participation"`
	HeadVoteParticipation   float64   `json:"head_vote_participation"`
	TotalVoteParticipation  float64   `json:"total_vote_participation"`
	EthTransactionCount     uint64    `json:"eth_transaction_count"`
}

type ErrorPageData

type ErrorPageData struct {
	CallTime   time.Time
	CallUrl    string
	ErrorMsg   string
	StackTrace string
	Version    string
}

type ForksPageData

type ForksPageData struct {
	Forks     []*ForksPageDataFork `json:"forks"`
	ForkCount uint64               `json:"fork_count"`
}

ForksPageData is a struct to hold info for the forks page

type ForksPageDataClient

type ForksPageDataClient struct {
	Index       int       `json:"index"`
	Name        string    `json:"name"`
	Version     string    `json:"version"`
	Status      string    `json:"status"`
	HeadSlot    uint64    `json:"head_slot"`
	Distance    uint64    `json:"distance"`
	LastRefresh time.Time `json:"refresh"`
	LastError   string    `json:"error"`
}

type ForksPageDataFork

type ForksPageDataFork struct {
	HeadSlot    uint64                 `json:"head_slot"`
	HeadRoot    []byte                 `json:"head_root"`
	Clients     []*ForksPageDataClient `json:"clients"`
	ClientCount uint64                 `json:"client_count"`
}

type IncludedDepositsPageData

type IncludedDepositsPageData struct {
	FilterMinIndex      uint64 `json:"filter_mini"`
	FilterMaxIndex      uint64 `json:"filter_maxi"`
	FilterPubKey        string `json:"filter_publickey"`
	FilterValidatorName string `json:"filter_vname"`
	FilterMinAmount     uint64 `json:"filter_mina"`
	FilterMaxAmount     uint64 `json:"filter_maxa"`
	FilterWithOrphaned  uint8  `json:"filter_orphaned"`

	Deposits     []*IncludedDepositsPageDataDeposit `json:"deposits"`
	DepositCount uint64                             `json:"deposit_count"`
	FirstIndex   uint64                             `json:"first_index"`
	LastIndex    uint64                             `json:"last_index"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	NextPageIndex    uint64 `json:"next_page_index"`
	LastPageIndex    uint64 `json:"last_page_index"`

	FirstPageLink string `json:"first_page_link"`
	PrevPageLink  string `json:"prev_page_link"`
	NextPageLink  string `json:"next_page_link"`
	LastPageLink  string `json:"last_page_link"`
}

IncludedDepositsPageData is a struct to hold info for the included_deposits page

type IncludedDepositsPageDataDeposit

type IncludedDepositsPageDataDeposit struct {
	Index                 uint64    `json:"index"`
	HasIndex              bool      `json:"has_index"`
	PublicKey             []byte    `json:"pubkey"`
	Withdrawalcredentials []byte    `json:"wtdcreds"`
	Amount                uint64    `json:"amount"`
	SlotNumber            uint64    `json:"slot"`
	SlotRoot              []byte    `json:"slot_root"`
	Time                  time.Time `json:"time"`
	Orphaned              bool      `json:"orphaned"`
	ValidatorStatus       string    `json:"vstatus"`
	ShowUpcheck           bool      `json:"show_upcheck"`
	UpcheckActivity       uint8     `json:"upcheck_act"`
	UpcheckMaximum        uint8     `json:"upcheck_max"`
}

type IndexPageData

type IndexPageData struct {
	NetworkName             string    `json:"netname"`
	DepositContract         string    `json:"depaddr"`
	ShowSyncingMessage      bool      `json:"show_sync"`
	SlotsPerEpoch           uint64    `json:"slots_per_epoch"`
	CurrentEpoch            uint64    `json:"cur_epoch"`
	CurrentFinalizedEpoch   int64     `json:"finalized_epoch"`
	CurrentJustifiedEpoch   int64     `json:"justified_epoch"`
	CurrentSlot             uint64    `json:"cur_slot"`
	CurrentScheduledCount   uint64    `json:"cur_scheduled"`
	CurrentEpochProgress    float64   `json:"cur_epoch_prog"`
	ActiveValidatorCount    uint64    `json:"active_val"`
	EnteringValidatorCount  uint64    `json:"entering_val"`
	ExitingValidatorCount   uint64    `json:"exiting_val"`
	ValidatorsPerEpoch      uint64    `json:"churn_epoch"`
	ValidatorsPerDay        uint64    `json:"churn_day"`
	TotalEligibleEther      uint64    `json:"eligible"`
	AverageValidatorBalance uint64    `json:"avg_balance"`
	NewDepositProcessAfter  string    `json:"queue_delay"`
	GenesisTime             time.Time `json:"genesis_time"`
	GenesisForkVersion      []byte    `json:"genesis_version"`
	GenesisValidatorsRoot   []byte    `json:"genesis_valroot"`

	NetworkForks     []*IndexPageDataForks  `json:"forks"`
	RecentBlocks     []*IndexPageDataBlocks `json:"blocks"`
	RecentBlockCount uint64                 `json:"block_count"`
	RecentEpochs     []*IndexPageDataEpochs `json:"epochs"`
	RecentEpochCount uint64                 `json:"epoch_count"`
	RecentSlots      []*IndexPageDataSlots  `json:"slots"`
	RecentSlotCount  uint64                 `json:"slot_count"`
	ForkTreeWidth    int                    `json:"forktree_width"`
}

IndexPageData is a struct to hold info for the main web page

type IndexPageDataBlocks

type IndexPageDataBlocks struct {
	Epoch        uint64    `json:"epoch"`
	Slot         uint64    `json:"slot"`
	WithEthBlock bool      `json:"has_block"`
	EthBlock     uint64    `json:"eth_block"`
	EthBlockLink string    `json:"eth_link"`
	Ts           time.Time `json:"ts"`
	Proposer     uint64    `json:"proposer"`
	ProposerName string    `json:"proposer_name"`
	Status       uint64    `json:"status"`
	BlockRoot    []byte    `json:"block_root"`
}

type IndexPageDataEpochs

type IndexPageDataEpochs struct {
	Epoch             uint64    `json:"epoch"`
	Ts                time.Time `json:"ts"`
	Finalized         bool      `json:"finalized"`
	Justified         bool      `json:"justified"`
	EligibleEther     uint64    `json:"eligible"`
	TargetVoted       uint64    `json:"voted"`
	VoteParticipation float64   `json:"votep"`
}

type IndexPageDataForkGraph

type IndexPageDataForkGraph struct {
	Index int             `json:"index"`
	Left  int             `json:"left"`
	Tiles map[string]bool `json:"tiles"`
	Block bool            `json:"block"`
}

type IndexPageDataForks

type IndexPageDataForks struct {
	Name    string `json:"name"`
	Epoch   uint64 `json:"epoch"`
	Version []byte `json:"version"`
	Active  bool   `json:"active"`
}

type IndexPageDataSlots

type IndexPageDataSlots struct {
	Epoch        uint64                    `json:"epoch"`
	Slot         uint64                    `json:"slot"`
	EthBlock     uint64                    `json:"eth_block"`
	Ts           time.Time                 `json:"ts"`
	Proposer     uint64                    `json:"proposer"`
	ProposerName string                    `json:"proposer_name"`
	Status       uint64                    `json:"status"`
	BlockRoot    []byte                    `json:"block_root"`
	ParentRoot   []byte                    `json:"-"`
	ForkGraph    []*IndexPageDataForkGraph `json:"fork_graph"`
}

type InitiatedDepositsPageData

type InitiatedDepositsPageData struct {
	FilterAddress       string `json:"filter_address"`
	FilterPubKey        string `json:"filter_publickey"`
	FilterValidatorName string `json:"filter_vname"`
	FilterMinAmount     uint64 `json:"filter_mina"`
	FilterMaxAmount     uint64 `json:"filter_maxa"`
	FilterWithOrphaned  uint8  `json:"filter_orphaned"`
	FilterWithValid     uint8  `json:"filter_valid"`

	Deposits     []*InitiatedDepositsPageDataDeposit `json:"deposits"`
	DepositCount uint64                              `json:"deposit_count"`
	FirstIndex   uint64                              `json:"first_index"`
	LastIndex    uint64                              `json:"last_index"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	NextPageIndex    uint64 `json:"next_page_index"`
	LastPageIndex    uint64 `json:"last_page_index"`

	FirstPageLink string `json:"first_page_link"`
	PrevPageLink  string `json:"prev_page_link"`
	NextPageLink  string `json:"next_page_link"`
	LastPageLink  string `json:"last_page_link"`
}

DepositsPageData is a struct to hold info for the deposits page

type InitiatedDepositsPageDataDeposit

type InitiatedDepositsPageDataDeposit struct {
	Index                 uint64    `json:"index"`
	Address               []byte    `json:"address"`
	PublicKey             []byte    `json:"pubkey"`
	Withdrawalcredentials []byte    `json:"wtdcreds"`
	Amount                uint64    `json:"amount"`
	TxHash                []byte    `json:"txhash"`
	Time                  time.Time `json:"time"`
	Block                 uint64    `json:"block"`
	Orphaned              bool      `json:"orphaned"`
	Valid                 bool      `json:"valid"`
	ValidatorStatus       string    `json:"vstatus"`
	ShowUpcheck           bool      `json:"show_upcheck"`
	UpcheckActivity       uint8     `json:"upcheck_act"`
	UpcheckMaximum        uint8     `json:"upcheck_max"`
}

type MevBlocksPageData

type MevBlocksPageData struct {
	FilterMinSlot       uint64                    `json:"filter_mins"`
	FilterMaxSlot       uint64                    `json:"filter_maxs"`
	FilterMinIndex      uint64                    `json:"filter_mini"`
	FilterMaxIndex      uint64                    `json:"filter_maxi"`
	FilterValidatorName string                    `json:"filter_vname"`
	FilterRelays        map[uint8]bool            `json:"filter_relays"`
	FilterRelayOpts     []*MevBlocksPageDataRelay `json:"filter_relay_opts"`
	FilterProposed      map[uint8]bool            `json:"filter_proposed"`

	MevBlocks  []*MevBlocksPageDataBlock `json:"exits"`
	BlockCount uint64                    `json:"block_count"`
	FirstIndex uint64                    `json:"first_index"`
	LastIndex  uint64                    `json:"last_index"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	NextPageIndex    uint64 `json:"next_page_index"`
	LastPageIndex    uint64 `json:"last_page_index"`

	FirstPageLink string `json:"first_page_link"`
	PrevPageLink  string `json:"prev_page_link"`
	NextPageLink  string `json:"next_page_link"`
	LastPageLink  string `json:"last_page_link"`
}

MevBlocksPageData is a struct to hold info for the mev_blocks page

type MevBlocksPageDataBlock

type MevBlocksPageDataBlock struct {
	SlotNumber     uint64                    `json:"slot"`
	BlockHash      []byte                    `json:"block_hash"`
	BlockNumber    uint64                    `json:"block_number"`
	Time           time.Time                 `json:"time"`
	ValidatorIndex uint64                    `json:"vindex"`
	ValidatorName  string                    `json:"vname"`
	BuilderPubkey  []byte                    `json:"builder"`
	Proposed       uint8                     `json:"proposed"`
	Relays         []*MevBlocksPageDataRelay `json:"relays"`
	RelayCount     uint64                    `json:"relay_count"`
	FeeRecipient   []byte                    `json:"fee_recipient"`
	TxCount        uint64                    `json:"tx_count"`
	GasUsed        uint64                    `json:"gas_used"`
	BlockValue     uint64                    `json:"block_value"`
	BlockValueStr  string                    `json:"block_value_str"`
}

type MevBlocksPageDataRelay

type MevBlocksPageDataRelay struct {
	Index uint64 `json:"index"`
	Name  string `json:"name"`
}

type SearchAheadEpochsResult

type SearchAheadEpochsResult struct {
	Epoch string `json:"epoch,omitempty"`
}

SearchAheadEpochsResult is a struct to hold the search ahead epochs results

type SearchAheadExecBlocksResult

type SearchAheadExecBlocksResult struct {
	Slot       string        `json:"slot,omitempty"`
	Root       phase0.Root   `json:"root,omitempty"`
	ExecHash   phase0.Hash32 `json:"exec_hash,omitempty"`
	ExecNumber uint64        `json:"exec_number,omitempty"`
	Orphaned   bool          `json:"orphaned,omitempty"`
}

SearchAheadExecBlocksResult is a struct to hold the search ahead execution blocks results

type SearchAheadGraffitiResult

type SearchAheadGraffitiResult struct {
	Graffiti string `json:"graffiti,omitempty"`
	Count    string `json:"count,omitempty"`
}

SearchAheadGraffitiResult is a struct to hold the search ahead blocks results with a given graffiti

type SearchAheadSlotsResult

type SearchAheadSlotsResult struct {
	Slot     string      `json:"slot,omitempty"`
	Root     phase0.Root `json:"root,omitempty"`
	Orphaned bool        `json:"orphaned,omitempty"`
}

SearchAheadSlotsResult is a struct to hold the search ahead slots results

type SearchAheadValidatorNameResult

type SearchAheadValidatorNameResult struct {
	Name  string `json:"name,omitempty"`
	Count string `json:"count,omitempty"`
}

SearchAheadValidatorNameResult is a struct to hold the search ahead blocks results with a given graffiti

type SearchBlockResult

type SearchBlockResult struct {
	Slot     uint64      `json:"slot,omitempty"`
	Root     phase0.Root `json:"root,omitempty"`
	Orphaned bool        `json:"orphaned,omitempty"`
}

SearchBlockResult is a struct to hold the search block result with a given graffiti

type SearchGraffitiResult

type SearchGraffitiResult struct {
	Graffiti string `json:"graffiti,omitempty"`
}

SearchGraffitiResult is a struct to hold the search block result with a given graffiti

type SlashingsPageData

type SlashingsPageData struct {
	FilterMinSlot       uint64 `json:"filter_mins"`
	FilterMaxSlot       uint64 `json:"filter_maxs"`
	FilterMinIndex      uint64 `json:"filter_mini"`
	FilterMaxIndex      uint64 `json:"filter_maxi"`
	FilterValidatorName string `json:"filter_vname"`
	FilterSlasherName   string `json:"filter_sname"`
	FilterWithReason    uint8  `json:"filter_reason"`
	FilterWithOrphaned  uint8  `json:"filter_orphaned"`

	Slashings     []*SlashingsPageDataSlashing `json:"slashings"`
	SlashingCount uint64                       `json:"slashing_count"`
	FirstIndex    uint64                       `json:"first_index"`
	LastIndex     uint64                       `json:"last_index"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	NextPageIndex    uint64 `json:"next_page_index"`
	LastPageIndex    uint64 `json:"last_page_index"`

	FirstPageLink string `json:"first_page_link"`
	PrevPageLink  string `json:"prev_page_link"`
	NextPageLink  string `json:"next_page_link"`
	LastPageLink  string `json:"last_page_link"`
}

SlashingsPageData is a struct to hold info for the slashings page

type SlashingsPageDataSlashing

type SlashingsPageDataSlashing struct {
	SlotNumber      uint64    `json:"slot"`
	SlotRoot        []byte    `json:"slot_root"`
	Time            time.Time `json:"time"`
	Orphaned        bool      `json:"orphaned"`
	ValidatorIndex  uint64    `json:"vindex"`
	ValidatorName   string    `json:"vname"`
	Reason          uint8     `json:"reason"`
	ValidatorStatus string    `json:"vstatus"`
	ShowUpcheck     bool      `json:"show_upcheck"`
	UpcheckActivity uint8     `json:"upcheck_act"`
	UpcheckMaximum  uint8     `json:"upcheck_max"`
	Balance         uint64    `json:"balance"`
	SlasherIndex    uint64    `json:"sindex"`
	SlasherName     string    `json:"sname"`
}

type SlotPageAttestation

type SlotPageAttestation struct {
	Slot           uint64   `json:"slot"`
	CommitteeIndex []uint64 `json:"committeeindex"`

	AggregationBits []byte                 `json:"aggregationbits"`
	Validators      []types.NamedValidator `json:"validators"`

	IncludedValidators []types.NamedValidator `json:"included_validators"`

	Signature []byte `json:"signature"`

	BeaconBlockRoot []byte `json:"beaconblockroot"`
	SourceEpoch     uint64 `json:"source_epoch"`
	SourceRoot      []byte `json:"source_root"`
	TargetEpoch     uint64 `json:"target_epoch"`
	TargetRoot      []byte `json:"target_root"`
}

type SlotPageAttesterSlashing

type SlotPageAttesterSlashing struct {
	Attestation1Indices         []uint64               `json:"attestation1_indices"`
	Attestation1Signature       []byte                 `json:"attestation1_signature"`
	Attestation1Slot            uint64                 `json:"attestation1_slot"`
	Attestation1Index           uint64                 `json:"attestation1_index"`
	Attestation1BeaconBlockRoot []byte                 `json:"attestation1_beaconblockroot"`
	Attestation1SourceEpoch     uint64                 `json:"attestation1_source_epoch"`
	Attestation1SourceRoot      []byte                 `json:"attestation1_source_root"`
	Attestation1TargetEpoch     uint64                 `json:"attestation1_target_epoch"`
	Attestation1TargetRoot      []byte                 `json:"attestation1_target_root"`
	Attestation2Indices         []uint64               `json:"attestation2_indices"`
	Attestation2Signature       []byte                 `json:"attestation2_signature"`
	Attestation2Slot            uint64                 `json:"attestation2_slot"`
	Attestation2Index           uint64                 `json:"attestation2_index"`
	Attestation2BeaconBlockRoot []byte                 `json:"attestation2_beaconblockroot"`
	Attestation2SourceEpoch     uint64                 `json:"attestation2_source_epoch"`
	Attestation2SourceRoot      []byte                 `json:"attestation2_source_root"`
	Attestation2TargetEpoch     uint64                 `json:"attestation2_target_epoch"`
	Attestation2TargetRoot      []byte                 `json:"attestation2_target_root"`
	SlashedValidators           []types.NamedValidator `json:"validators"`
}

BlockPageAttesterSlashing is a struct to hold data for attester slashings on the block page

type SlotPageBLSChange

type SlotPageBLSChange struct {
	ValidatorIndex uint64 `json:"validatorindex"`
	ValidatorName  string `json:"validatorname"`
	BlsPubkey      []byte `json:"pubkey"`
	Address        []byte `json:"address"`
	Signature      []byte `json:"signature"`
}

type SlotPageBlob

type SlotPageBlob struct {
	Index         uint64 `json:"index"`
	KzgCommitment []byte `json:"kzg_commitment"`
	HaveData      bool   `json:"have_data"`
	IsShort       bool   `json:"is_short"`
	BlobShort     []byte `json:"blob_short"`
	Blob          []byte `json:"blob"`
	KzgProof      []byte `json:"kzg_proof"`
}

type SlotPageBlobDetails

type SlotPageBlobDetails struct {
	Index         uint64 `json:"index"`
	Blob          string `json:"blob"`
	KzgCommitment string `json:"kzg_commitment"`
	KzgProof      string `json:"kzg_proof"`
}

type SlotPageBlockBadge

type SlotPageBlockBadge struct {
	Title       string `json:"title"`
	Icon        string `json:"icon"`
	Description string `json:"descr"`
	ClassName   string `json:"class"`
}

type SlotPageBlockData

type SlotPageBlockData struct {
	BlockRoot                  []byte                 `json:"blockroot"`
	ParentRoot                 []byte                 `json:"parentroot"`
	StateRoot                  []byte                 `json:"stateroot"`
	Signature                  []byte                 `json:"signature"`
	RandaoReveal               []byte                 `json:"randaoreveal"`
	Graffiti                   []byte                 `json:"graffiti"`
	Eth1dataDepositroot        []byte                 `json:"eth1data_depositroot"`
	Eth1dataDepositcount       uint64                 `json:"eth1data_depositcount"`
	Eth1dataBlockhash          []byte                 `json:"eth1data_blockhash"`
	SyncAggregateBits          []byte                 `json:"syncaggregate_bits"`
	SyncAggregateSignature     []byte                 `json:"syncaggregate_signature"`
	SyncAggParticipation       float64                `json:"syncaggregate_participation"`
	SyncAggCommittee           []types.NamedValidator `json:"syncaggregate_committee"`
	ProposerSlashingsCount     uint64                 `json:"proposer_slashings_count"`
	AttesterSlashingsCount     uint64                 `json:"attester_slashings_count"`
	AttestationsCount          uint64                 `json:"attestations_count"`
	DepositsCount              uint64                 `json:"deposits_count"`
	WithdrawalsCount           uint64                 `json:"withdrawals_count"`
	BLSChangesCount            uint64                 `json:"bls_changes_count"`
	VoluntaryExitsCount        uint64                 `json:"voluntaryexits_count"`
	SlashingsCount             uint64                 `json:"slashings_count"`
	BlobsCount                 uint64                 `json:"blobs_count"`
	TransactionsCount          uint64                 `json:"transactions_count"`
	DepositRequestsCount       uint64                 `json:"deposit_receipts_count"`
	WithdrawalRequestsCount    uint64                 `json:"withdrawal_requests_count"`
	ConsolidationRequestsCount uint64                 `json:"consolidation_requests_count"`

	ExecutionData         *SlotPageExecutionData          `json:"execution_data"`
	Attestations          []*SlotPageAttestation          `json:"attestations"`           // Attestations included in this block
	Deposits              []*SlotPageDeposit              `json:"deposits"`               // Deposits included in this block
	VoluntaryExits        []*SlotPageVoluntaryExit        `json:"voluntary_exits"`        // Voluntary Exits included in this block
	AttesterSlashings     []*SlotPageAttesterSlashing     `json:"attester_slashings"`     // Attester Slashings included in this block
	ProposerSlashings     []*SlotPageProposerSlashing     `json:"proposer_slashings"`     // Proposer Slashings included in this block
	BLSChanges            []*SlotPageBLSChange            `json:"bls_changes"`            // BLSChanges included in this block
	Withdrawals           []*SlotPageWithdrawal           `json:"withdrawals"`            // Withdrawals included in this block
	Blobs                 []*SlotPageBlob                 `json:"blobs"`                  // Blob sidecars included in this block
	Transactions          []*SlotPageTransaction          `json:"transactions"`           // Transactions included in this block
	DepositRequests       []*SlotPageDepositRequest       `json:"deposit_receipts"`       // DepositRequests included in this block
	WithdrawalRequests    []*SlotPageWithdrawalRequest    `json:"withdrawal_requests"`    // WithdrawalRequests included in this block
	ConsolidationRequests []*SlotPageConsolidationRequest `json:"consolidation_requests"` // ConsolidationRequests included in this block
}

type SlotPageConsolidationRequest added in v1.11.0

type SlotPageConsolidationRequest struct {
	Address      []byte `db:"address"`
	SourcePubkey []byte `db:"source_pubkey"`
	SourceFound  bool   `db:"source_bool"`
	SourceIndex  uint64 `db:"source_index"`
	SourceName   string `db:"source_name"`
	TargetPubkey []byte `db:"target_pubkey"`
	TargetFound  bool   `db:"target_bool"`
	TargetIndex  uint64 `db:"target_index"`
	TargetName   string `db:"target_name"`
	Epoch        uint64 `db:"epoch"`
}

type SlotPageData

type SlotPageData struct {
	Slot                   uint64                `json:"slot"`
	Epoch                  uint64                `json:"epoch"`
	EpochFinalized         bool                  `json:"epoch_finalized"`
	EpochParticipationRate float64               `json:"epoch_participation_rate"`
	Ts                     time.Time             `json:"time"`
	NextSlot               uint64                `json:"next_slot"`
	PreviousSlot           uint64                `json:"prev_slot"`
	Status                 uint16                `json:"status"`
	Future                 bool                  `json:"future"`
	Proposer               uint64                `json:"proposer"`
	ProposerName           string                `json:"proposer_name"`
	Block                  *SlotPageBlockData    `json:"block"`
	Badges                 []*SlotPageBlockBadge `json:"badges"`
}

SlotPageData is a struct to hold info for the slot details page

type SlotPageDeposit

type SlotPageDeposit struct {
	PublicKey             []byte `json:"publickey"`
	Withdrawalcredentials []byte `json:"withdrawalcredentials"`
	Amount                uint64 `json:"amount"`
	Signature             []byte `json:"signature"`
}

type SlotPageDepositRequest added in v1.11.0

type SlotPageDepositRequest struct {
	PublicKey       []byte `db:"pubkey"`
	Exists          bool   `db:"exists"`
	ValidatorIndex  uint64 `db:"valindex"`
	ValidatorName   string `db:"valname"`
	WithdrawalCreds []byte `db:"withdrawal_creds"`
	Amount          uint64 `db:"amount"`
	Signature       []byte `db:"signature"`
	Index           uint64 `db:"index"`
}

type SlotPageExecutionData

type SlotPageExecutionData struct {
	ParentHash    []byte    `json:"parent_hash"`
	FeeRecipient  []byte    `json:"fee_recipient"`
	StateRoot     []byte    `json:"state_root"`
	ReceiptsRoot  []byte    `json:"receipts_root"`
	LogsBloom     []byte    `json:"logs_bloom"`
	Random        []byte    `json:"random"`
	GasLimit      uint64    `json:"gas_limit"`
	GasUsed       uint64    `json:"gas_used"`
	Timestamp     uint64    `json:"timestamp"`
	Time          time.Time `json:"time"`
	ExtraData     []byte    `json:"extra_data"`
	BaseFeePerGas uint64    `json:"base_fee_per_gas"`
	BlockHash     []byte    `json:"block_hash"`
	BlockNumber   uint64    `json:"block_number"`
}

type SlotPageProposerSlashing

type SlotPageProposerSlashing struct {
	ProposerIndex     uint64 `json:"proposerindex"`
	ProposerName      string `json:"proposername"`
	Header1Slot       uint64 `json:"header1_slot"`
	Header1ParentRoot []byte `json:"header1_parentroot"`
	Header1StateRoot  []byte `json:"header1_stateroot"`
	Header1BodyRoot   []byte `json:"header1_bodyroot"`
	Header1Signature  []byte `json:"header1_signature"`
	Header2Slot       uint64 `json:"header2_slot"`
	Header2ParentRoot []byte `json:"header2_parentroot"`
	Header2StateRoot  []byte `json:"header2_stateroot"`
	Header2BodyRoot   []byte `json:"header2_bodyroot"`
	Header2Signature  []byte `json:"header2_signature"`
}

BlockPageProposerSlashing is a struct to hold data for proposer slashings on the block page

type SlotPageTransaction

type SlotPageTransaction struct {
	Index         uint64  `json:"index"`
	Hash          []byte  `json:"hash"`
	From          string  `json:"from"`
	To            string  `json:"to"`
	Value         float64 `json:"value"`
	Data          []byte  `json:"data"`
	DataLen       uint64  `json:"datalen"`
	FuncSigStatus uint64  `json:"func_sig_status"`
	FuncBytes     string  `json:"func_bytes"`
	FuncName      string  `json:"func_name"`
	FuncSig       string  `json:"func_sig"`
	Type          uint64  `json:"type"`
}

type SlotPageVoluntaryExit

type SlotPageVoluntaryExit struct {
	ValidatorIndex uint64 `json:"validatorindex"`
	ValidatorName  string `json:"validatorname"`
	Epoch          uint64 `json:"epoch"`
	Signature      []byte `json:"signature"`
}

type SlotPageWithdrawal

type SlotPageWithdrawal struct {
	Index          uint64 `json:"index"`
	ValidatorIndex uint64 `json:"validatorindex"`
	ValidatorName  string `json:"validatorname"`
	Address        []byte `json:"address"`
	Amount         uint64 `json:"amount"`
}

type SlotPageWithdrawalRequest added in v1.11.0

type SlotPageWithdrawalRequest struct {
	Address        []byte `db:"address"`
	PublicKey      []byte `db:"pubkey"`
	Exists         bool   `db:"exists"`
	ValidatorIndex uint64 `db:"valindex"`
	ValidatorName  string `db:"valname"`
	Amount         uint64 `db:"amount"`
}

type SlotStatus

type SlotStatus uint16
const (
	SlotStatusMissed   SlotStatus = 0
	SlotStatusFound    SlotStatus = 1
	SlotStatusOrphaned SlotStatus = 2
)

type SlotsFilteredPageData

type SlotsFilteredPageData struct {
	FilterGraffiti     string `json:"filter_graffiti"`
	FilterExtraData    string `json:"filter_extra_data"`
	FilterProposer     string `json:"filter_proposer"`
	FilterProposerName string `json:"filter_pname"`
	FilterWithOrphaned uint8  `json:"filter_orphaned"`
	FilterWithMissing  uint8  `json:"filter_missing"`

	DisplayEpoch        bool   `json:"dp_epoch"`
	DisplaySlot         bool   `json:"dp_slot"`
	DisplayStatus       bool   `json:"dp_status"`
	DisplayTime         bool   `json:"dp_time"`
	DisplayProposer     bool   `json:"dp_proposer"`
	DisplayAttestations bool   `json:"dp_attestations"`
	DisplayDeposits     bool   `json:"dp_deposits"`
	DisplaySlashings    bool   `json:"dp_slashings"`
	DisplayTxCount      bool   `json:"dp_txcount"`
	DisplaySyncAgg      bool   `json:"dp_syncagg"`
	DisplayGraffiti     bool   `json:"dp_graffiti"`
	DisplayElExtraData  bool   `json:"dp_elextra"`
	DisplayColCount     uint64 `json:"display_col_count"`

	Slots     []*SlotsFilteredPageDataSlot `json:"slots"`
	SlotCount uint64                       `json:"slot_count"`
	FirstSlot uint64                       `json:"first_slot"`
	LastSlot  uint64                       `json:"last_slot"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	CurrentPageSlot  uint64 `json:"page_slot"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	PrevPageSlot     uint64 `json:"prev_page_slot"`
	NextPageIndex    uint64 `json:"next_page_index"`
	NextPageSlot     uint64 `json:"next_page_slot"`
	LastPageSlot     uint64 `json:"last_page_slot"`

	FirstPageLink string `json:"first_page_link"`
	PrevPageLink  string `json:"prev_page_link"`
	NextPageLink  string `json:"next_page_link"`
	LastPageLink  string `json:"last_page_link"`
}

SlotsPageData is a struct to hold info for the slots page

type SlotsFilteredPageDataSlot

type SlotsFilteredPageDataSlot struct {
	Slot                  uint64    `json:"slot"`
	Epoch                 uint64    `json:"epoch"`
	Ts                    time.Time `json:"ts"`
	Finalized             bool      `json:"scheduled"`
	Scheduled             bool      `json:"finalized"`
	Status                uint8     `json:"status"`
	Synchronized          bool      `json:"synchronized"`
	Proposer              uint64    `json:"proposer"`
	ProposerName          string    `json:"proposer_name"`
	AttestationCount      uint64    `json:"attestation_count"`
	DepositCount          uint64    `json:"deposit_count"`
	ExitCount             uint64    `json:"exit_count"`
	ProposerSlashingCount uint64    `json:"proposer_slashing_count"`
	AttesterSlashingCount uint64    `json:"attester_slashing_count"`
	SyncParticipation     float64   `json:"sync_participation"`
	EthTransactionCount   uint64    `json:"eth_transaction_count"`
	WithEthBlock          bool      `json:"with_eth_block"`
	EthBlockNumber        uint64    `json:"eth_block_number"`
	Graffiti              []byte    `json:"graffiti"`
	ElExtraData           []byte    `json:"el_extra_data"`
	BlockRoot             []byte    `json:"block_root"`
	ParentRoot            []byte    `json:"parent_root"`
}

type SlotsPageData

type SlotsPageData struct {
	Slots         []*SlotsPageDataSlot `json:"slots"`
	SlotCount     uint64               `json:"slot_count"`
	FirstSlot     uint64               `json:"first_slot"`
	LastSlot      uint64               `json:"last_slot"`
	ForkTreeWidth int                  `json:"forktree_width"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	CurrentPageSlot  uint64 `json:"page_slot"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	PrevPageSlot     uint64 `json:"prev_page_slot"`
	NextPageIndex    uint64 `json:"next_page_index"`
	NextPageSlot     uint64 `json:"next_page_slot"`
	LastPageSlot     uint64 `json:"last_page_slot"`
}

SlotsPageData is a struct to hold info for the slots page

type SlotsPageDataForkGraph

type SlotsPageDataForkGraph struct {
	Index int             `json:"index"`
	Left  int             `json:"left"`
	Tiles map[string]bool `json:"tiles"`
	Block bool            `json:"block"`
}

type SlotsPageDataSlot

type SlotsPageDataSlot struct {
	Slot                  uint64                    `json:"slot"`
	Epoch                 uint64                    `json:"epoch"`
	Ts                    time.Time                 `json:"ts"`
	Finalized             bool                      `json:"scheduled"`
	Scheduled             bool                      `json:"finalized"`
	Status                uint8                     `json:"status"`
	Synchronized          bool                      `json:"synchronized"`
	Proposer              uint64                    `json:"proposer"`
	ProposerName          string                    `json:"proposer_name"`
	AttestationCount      uint64                    `json:"attestation_count"`
	DepositCount          uint64                    `json:"deposit_count"`
	ExitCount             uint64                    `json:"exit_count"`
	ProposerSlashingCount uint64                    `json:"proposer_slashing_count"`
	AttesterSlashingCount uint64                    `json:"attester_slashing_count"`
	SyncParticipation     float64                   `json:"sync_participation"`
	EthTransactionCount   uint64                    `json:"eth_transaction_count"`
	WithEthBlock          bool                      `json:"with_eth_block"`
	EthBlockNumber        uint64                    `json:"eth_block_number"`
	Graffiti              []byte                    `json:"graffiti"`
	BlockRoot             []byte                    `json:"block_root"`
	ParentRoot            []byte                    `json:"parent_root"`
	ForkGraph             []*SlotsPageDataForkGraph `json:"fork_graph"`
}

type SubmitConsolidationPageData added in v1.12.1

type SubmitConsolidationPageData struct {
	NetworkName           string `json:"netname"`
	PublicRPCUrl          string `json:"pubrpc"`
	RainbowkitProjectId   string `json:"rainbowkit"`
	ChainId               uint64 `json:"chainid"`
	ConsolidationContract string `json:"consolidationcontract"`
	ExplorerUrl           string `json:"explorerurl"`
}

type SubmitConsolidationPageDataValidator added in v1.12.1

type SubmitConsolidationPageDataValidator struct {
	Index    uint64 `json:"index"`
	Pubkey   string `json:"pubkey"`
	Balance  uint64 `json:"balance"`
	CredType string `json:"credtype"`
	Status   string `json:"status"`
}

type SubmitDepositPageData added in v1.12.1

type SubmitDepositPageData struct {
	NetworkName         string `json:"netname"`
	PublicRPCUrl        string `json:"pubrpc"`
	RainbowkitProjectId string `json:"rainbowkit"`
	ChainId             uint64 `json:"chainid"`
	GenesisForkVersion  []byte `json:"genesisforkversion"`
	DepositContract     []byte `json:"depositcontract"`
}

type SubmitDepositPageDataDeposit added in v1.12.1

type SubmitDepositPageDataDeposit struct {
	Pubkey      string `json:"pubkey"`
	Amount      uint64 `json:"amount"`
	BlockNumber uint64 `json:"block"`
	BlockHash   string `json:"block_hash"`
	BlockTime   uint64 `json:"block_time"`
	TxOrigin    string `json:"tx_origin"`
	TxTarget    string `json:"tx_target"`
	TxHash      string `json:"tx_hash"`
}

type SubmitDepositPageDataDeposits added in v1.12.1

type SubmitDepositPageDataDeposits struct {
	Deposits []SubmitDepositPageDataDeposit `json:"deposits"`
	Count    uint64                         `json:"count"`
	HaveMore bool                           `json:"havemore"`
}

type SubmitWithdrawalPageData added in v1.12.1

type SubmitWithdrawalPageData struct {
	NetworkName         string `json:"netname"`
	PublicRPCUrl        string `json:"pubrpc"`
	RainbowkitProjectId string `json:"rainbowkit"`
	ChainId             uint64 `json:"chainid"`
	WithdrawalContract  string `json:"withdrawalcontract"`
	MinValidatorBalance uint64 `json:"minbalance"`
	ExplorerUrl         string `json:"explorerurl"`
}

type SubmitWithdrawalPageDataValidator added in v1.12.1

type SubmitWithdrawalPageDataValidator struct {
	Index    uint64 `json:"index"`
	Pubkey   string `json:"pubkey"`
	Balance  uint64 `json:"balance"`
	CredType string `json:"credtype"`
	Status   string `json:"status"`
}

type ValidatorPageData

type ValidatorPageData struct {
	CurrentEpoch             uint64                                `json:"current_epoch"`
	Index                    uint64                                `json:"index"`
	Name                     string                                `json:"name"`
	PublicKey                []byte                                `json:"pubkey"`
	Balance                  uint64                                `json:"balance"`
	EffectiveBalance         uint64                                `json:"eff_balance"`
	State                    string                                `json:"state"`
	BeaconState              string                                `json:"beacon_state"`
	ShowEligible             bool                                  `json:"show_eligible"`
	EligibleTs               time.Time                             `json:"eligible_ts"`
	EligibleEpoch            uint64                                `json:"eligible_epoch"`
	ShowActivation           bool                                  `json:"show_activation"`
	ActivationTs             time.Time                             `json:"activation_ts"`
	ActivationEpoch          uint64                                `json:"activation_epoch"`
	IsActive                 bool                                  `json:"is_active"`
	WasActive                bool                                  `json:"was_active"`
	UpcheckActivity          uint8                                 `json:"upcheck_act"`
	UpcheckMaximum           uint8                                 `json:"upcheck_max"`
	ShowExit                 bool                                  `json:"show_exit"`
	ExitTs                   time.Time                             `json:"exit_ts"`
	ExitEpoch                uint64                                `json:"exit_epoch"`
	WithdrawCredentials      []byte                                `json:"withdraw_credentials"`
	ShowWithdrawAddress      bool                                  `json:"show_withdraw_address"`
	WithdrawAddress          []byte                                `json:"withdraw_address"`
	ExitReason               string                                `json:"exit_reason"`
	ExitReasonSlot           uint64                                `json:"exit_reason_slot"`
	ExitReasonSlashing       bool                                  `json:"exit_reason_slashing"`
	ExitReasonSlashingReason uint64                                `json:"exit_reason_slashing_reason"`
	ExitReasonVoluntaryExit  bool                                  `json:"exit_reason_voluntary_exit"`
	ExitReasonWithdrawal     bool                                  `json:"exit_reason_withdrawal"`
	ExitReasonConsolidation  bool                                  `json:"exit_reason_consolidation"`
	ExitReasonTargetIndex    uint64                                `json:"exit_reason_target_index"`
	ExitReasonTargetName     string                                `json:"exit_reason_target_name"`
	ExitReasonTxHash         []byte                                `json:"exit_reason_tx_hash"`
	ExitReasonTxDetails      *ValidatorPageDataWithdrawalTxDetails `json:"exit_reason_tx_details"`

	TabView         string `json:"tab_view"`
	ElectraIsActive bool   `json:"electra_is_active"`

	RecentBlocks                        []*ValidatorPageDataBlock         `json:"recent_blocks"`
	RecentBlockCount                    uint64                            `json:"recent_block_count"`
	RecentAttestations                  []*ValidatorPageDataAttestation   `json:"recent_attestations"`
	RecentAttestationCount              uint64                            `json:"recent_attestation_count"`
	RecentDeposits                      []*ValidatorPageDataDeposit       `json:"recent_deposits"`
	RecentDepositCount                  uint64                            `json:"recent_deposit_count"`
	AdditionalInitiatedDepositCount     uint64                            `json:"additional_initiated_deposit_count"`
	AdditionalIncludedDepositCount      uint64                            `json:"additional_included_deposit_count"`
	ConsolidationRequests               []*ValidatorPageDataConsolidation `json:"consolidation_requests"`
	ConsolidationRequestCount           uint64                            `json:"consolidation_request_count"`
	AdditionalConsolidationRequestCount uint64                            `json:"additional_consolidation_request_count"`
	WithdrawalRequests                  []*ValidatorPageDataWithdrawal    `json:"withdrawal_requests"`
	WithdrawalRequestCount              uint64                            `json:"withdrawal_request_count"`
	AdditionalWithdrawalRequestCount    uint64                            `json:"additional_withdrawal_request_count"`
}

ValidatorPageData is a struct to hold info for the validator page

type ValidatorPageDataAttestation added in v1.13.0

type ValidatorPageDataAttestation struct {
	Epoch          uint64    `json:"epoch"`
	Time           time.Time `json:"time"`
	Status         uint64    `json:"status"`
	Missed         bool      `json:"missed"`
	HasDuty        bool      `json:"has_duty"`
	Scheduled      bool      `json:"scheduled"`
	Slot           uint64    `json:"slot"`
	InclusionSlot  uint64    `json:"inclusion_slot"`
	InclusionRoot  []byte    `json:"inclusion_root"`
	InclusionDelay uint64    `json:"inclusion_delay"`
}

type ValidatorPageDataBlock added in v1.13.0

type ValidatorPageDataBlock struct {
	Epoch        uint64    `json:"epoch"`
	Slot         uint64    `json:"slot"`
	WithEthBlock bool      `json:"with_eth_block"`
	EthBlock     uint64    `json:"eth_block"`
	Ts           time.Time `json:"ts"`
	Status       uint64    `json:"status"`
	BlockRoot    string    `json:"block_root"`
	Graffiti     []byte    `json:"graffiti"`
}

type ValidatorPageDataConsolidation added in v1.13.0

type ValidatorPageDataConsolidation struct {
	IsIncluded           bool      `json:"is_included"`
	SlotNumber           uint64    `json:"slot"`
	SlotRoot             []byte    `json:"slot_root"`
	Time                 time.Time `json:"time"`
	Status               uint64    `json:"status"`
	TxStatus             uint64    `json:"tx_status"`
	SourceAddr           []byte    `json:"src_addr"`
	SourceValidatorValid bool      `json:"src_vvalid"`
	SourceValidatorIndex uint64    `json:"src_vindex"`
	SourceValidatorName  string    `json:"src_vname"`
	SourcePublicKey      []byte    `json:"src_pubkey"`
	TargetValidatorValid bool      `json:"tgt_vvalid"`
	TargetValidatorIndex uint64    `json:"tgt_vindex"`
	TargetValidatorName  string    `json:"tgt_vname"`
	TargetPublicKey      []byte    `json:"tgt_pubkey"`
	LinkedTransaction    bool      `json:"linked_tx"`
	TransactionHash      []byte    `json:"tx_hash"`

	TransactionDetails *ValidatorPageDataConsolidationTxDetails `json:"tx_details"`
}

type ValidatorPageDataConsolidationTxDetails added in v1.13.0

type ValidatorPageDataConsolidationTxDetails struct {
	BlockNumber uint64 `json:"block"`
	BlockHash   string `json:"block_hash"`
	BlockTime   uint64 `json:"block_time"`
	TxOrigin    string `json:"tx_origin"`
	TxTarget    string `json:"tx_target"`
	TxHash      string `json:"tx_hash"`
}

type ValidatorPageDataDeposit added in v1.13.0

type ValidatorPageDataDeposit struct {
	IsIncluded      bool                               `json:"is_included"`
	HasIndex        bool                               `json:"has_index"`
	Index           uint64                             `json:"index"`
	SlotRoot        []byte                             `json:"slot_root"`
	Slot            uint64                             `json:"slot"`
	Time            time.Time                          `json:"time"`
	Amount          uint64                             `json:"amount"`
	WithdrawalCreds []byte                             `json:"withdrawal_creds"`
	Status          uint64                             `json:"status"`
	TxStatus        uint64                             `json:"tx_status"`
	TxDetails       *ValidatorPageDataDepositTxDetails `json:"tx_details"`
	TxHash          []byte                             `json:"tx_hash"`
}

type ValidatorPageDataDepositTxDetails added in v1.13.0

type ValidatorPageDataDepositTxDetails struct {
	BlockNumber uint64 `json:"block"`
	BlockHash   string `json:"block_hash"`
	BlockTime   uint64 `json:"block_time"`
	TxOrigin    string `json:"tx_origin"`
	TxTarget    string `json:"tx_target"`
	TxHash      string `json:"tx_hash"`
}

type ValidatorPageDataWithdrawal added in v1.13.0

type ValidatorPageDataWithdrawal struct {
	IsIncluded        bool      `json:"is_included"`
	SlotNumber        uint64    `json:"slot"`
	SlotRoot          []byte    `json:"slot_root"`
	Time              time.Time `json:"time"`
	Status            uint64    `json:"status"`
	TxStatus          uint64    `json:"tx_status"`
	SourceAddr        []byte    `json:"source_addr"`
	Amount            uint64    `json:"amount"`
	LinkedTransaction bool      `json:"linked_tx"`
	TransactionHash   []byte    `json:"tx_hash"`

	TransactionDetails *ValidatorPageDataWithdrawalTxDetails `json:"tx_details"`
}

type ValidatorPageDataWithdrawalTxDetails added in v1.13.0

type ValidatorPageDataWithdrawalTxDetails struct {
	BlockNumber uint64 `json:"block"`
	BlockHash   string `json:"block_hash"`
	BlockTime   uint64 `json:"block_time"`
	TxOrigin    string `json:"tx_origin"`
	TxTarget    string `json:"tx_target"`
	TxHash      string `json:"tx_hash"`
}

type ValidatorSlotsPageData

type ValidatorSlotsPageData struct {
	Index uint64 `json:"index"`
	Name  string `json:"name"`

	Slots          []*ValidatorSlotsPageDataSlot `json:"slots"`
	SlotCount      uint64                        `json:"slot_count"`
	FirstSlot      uint64                        `json:"first_slot"`
	LastSlot       uint64                        `json:"last_slot"`
	GraffitiFilter string                        `json:"graffiti_filter"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	CurrentPageSlot  uint64 `json:"page_slot"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	PrevPageSlot     uint64 `json:"prev_page_slot"`
	NextPageIndex    uint64 `json:"next_page_index"`
	NextPageSlot     uint64 `json:"next_page_slot"`
	LastPageSlot     uint64 `json:"last_page_slot"`
}

SlotsPageData is a struct to hold info for the slots page

type ValidatorSlotsPageDataSlot

type ValidatorSlotsPageDataSlot struct {
	Slot                  uint64    `json:"slot"`
	Epoch                 uint64    `json:"epoch"`
	Ts                    time.Time `json:"ts"`
	Finalized             bool      `json:"scheduled"`
	Scheduled             bool      `json:"finalized"`
	Status                uint8     `json:"status"`
	Proposer              uint64    `json:"proposer"`
	ProposerName          string    `json:"proposer_name"`
	AttestationCount      uint64    `json:"attestation_count"`
	DepositCount          uint64    `json:"deposit_count"`
	ExitCount             uint64    `json:"exit_count"`
	ProposerSlashingCount uint64    `json:"proposer_slashing_count"`
	AttesterSlashingCount uint64    `json:"attester_slashing_count"`
	SyncParticipation     float64   `json:"sync_participation"`
	EthTransactionCount   uint64    `json:"eth_transaction_count"`
	WithEthBlock          bool      `json:"with_eth_block"`
	EthBlockNumber        uint64    `json:"eth_block_number"`
	Graffiti              []byte    `json:"graffiti"`
	BlockRoot             []byte    `json:"block_root"`
}

type ValidatorsActivityPageData

type ValidatorsActivityPageData struct {
	ViewOptionGroupBy uint64 `json:"vopt_groupby"`

	Groups         []*ValidatorsActiviyPageDataGroup `json:"validators"`
	GroupCount     uint64                            `json:"group_count"`
	FirstValidator uint64                            `json:"first_validx"`
	LastValidator  uint64                            `json:"last_validx"`
	Sorting        string                            `json:"sorting"`

	FirstGroup uint64 `json:"first_group"`
	LastGroup  uint64 `json:"last_group"`

	IsDefaultPage    bool   `json:"default_page"`
	IsDefaultSorting bool   `json:"default_sorting"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	NextPageIndex    uint64 `json:"next_page_index"`
	LastPageIndex    uint64 `json:"last_page_index"`

	FirstPageLink string `json:"first_page_link"`
	PrevPageLink  string `json:"prev_page_link"`
	NextPageLink  string `json:"next_page_link"`
	LastPageLink  string `json:"last_page_link"`
	ViewPageLink  string `json:"view_page_link"`
}

ValidatorsActivityPageData is a struct to hold info for the validators activity page

type ValidatorsActiviyPageDataGroup

type ValidatorsActiviyPageDataGroup struct {
	Group      string `json:"group"`
	GroupLower string `json:"-"`
	Validators uint64 `json:"validators"`
	Activated  uint64 `json:"activated"`
	Online     uint64 `json:"online"`
	Offline    uint64 `json:"offline"`
	Exited     uint64 `json:"exited"`
	Slashed    uint64 `json:"slashed"`
}

type ValidatorsPageData

type ValidatorsPageData struct {
	FilterPubKey     string                           `json:"filter_pubkey"`
	FilterIndex      string                           `json:"filter_index"`
	FilterName       string                           `json:"filter_name"`
	FilterStatus     string                           `json:"filter_status"`
	FilterStatusOpts []ValidatorsPageDataStatusOption `json:"filter_status_opts"`

	Validators        []*ValidatorsPageDataValidator `json:"validators"`
	ValidatorCount    uint64                         `json:"validator_count"`
	FirstValidator    uint64                         `json:"first_validx"`
	LastValidator     uint64                         `json:"last_validx"`
	StateFilter       string                         `json:"state_filter"`
	Sorting           string                         `json:"sorting"`
	IsDefaultSorting  bool                           `json:"default_sorting"`
	IsDefaultPage     bool                           `json:"default_page"`
	TotalPages        uint64                         `json:"total_pages"`
	PageSize          uint64                         `json:"page_size"`
	CurrentPageIndex  uint64                         `json:"page_index"`
	CurrentPageValIdx uint64                         `json:"page_validx"`
	PrevPageIndex     uint64                         `json:"prev_page_index"`
	PrevPageValIdx    uint64                         `json:"prev_page_validx"`
	NextPageIndex     uint64                         `json:"next_page_index"`
	NextPageValIdx    uint64                         `json:"next_page_validx"`
	LastPageValIdx    uint64                         `json:"last_page_validx"`
	FilteredPageLink  string                         `json:"filtered_page_link"`
}

ValidatorsPageData is a struct to hold info for the validators page

type ValidatorsPageDataStatusOption

type ValidatorsPageDataStatusOption struct {
	Status string `json:"index"`
	Count  uint64 `json:"count"`
}

type ValidatorsPageDataValidator

type ValidatorsPageDataValidator struct {
	Index               uint64    `json:"index"`
	Name                string    `json:"name"`
	PublicKey           []byte    `json:"pubkey"`
	Balance             uint64    `json:"balance"`
	EffectiveBalance    uint64    `json:"eff_balance"`
	State               string    `json:"state"`
	ShowUpcheck         bool      `json:"show_upcheck"`
	UpcheckActivity     uint8     `json:"upcheck_act"`
	UpcheckMaximum      uint8     `json:"upcheck_max"`
	ShowActivation      bool      `json:"show_activation"`
	ActivationTs        time.Time `json:"activation_ts"`
	ActivationEpoch     uint64    `json:"activation_epoch"`
	ShowExit            bool      `json:"show_exit"`
	ExitTs              time.Time `json:"exit_ts"`
	ExitEpoch           uint64    `json:"exit_epoch"`
	ShowWithdrawAddress bool      `json:"show_withdraw_address"`
	WithdrawAddress     []byte    `json:"withdraw_address"`
}

type VoluntaryExitsPageData

type VoluntaryExitsPageData struct {
	FilterMinSlot       uint64 `json:"filter_mins"`
	FilterMaxSlot       uint64 `json:"filter_maxs"`
	FilterMinIndex      uint64 `json:"filter_mini"`
	FilterMaxIndex      uint64 `json:"filter_maxi"`
	FilterValidatorName string `json:"filter_vname"`
	FilterWithOrphaned  uint8  `json:"filter_orphaned"`

	VoluntaryExits []*VoluntaryExitsPageDataExit `json:"exits"`
	ExitCount      uint64                        `json:"exit_count"`
	FirstIndex     uint64                        `json:"first_index"`
	LastIndex      uint64                        `json:"last_index"`

	IsDefaultPage    bool   `json:"default_page"`
	TotalPages       uint64 `json:"total_pages"`
	PageSize         uint64 `json:"page_size"`
	CurrentPageIndex uint64 `json:"page_index"`
	PrevPageIndex    uint64 `json:"prev_page_index"`
	NextPageIndex    uint64 `json:"next_page_index"`
	LastPageIndex    uint64 `json:"last_page_index"`

	FirstPageLink string `json:"first_page_link"`
	PrevPageLink  string `json:"prev_page_link"`
	NextPageLink  string `json:"next_page_link"`
	LastPageLink  string `json:"last_page_link"`
}

VoluntaryExitsPageData is a struct to hold info for the voluntary_exits page

type VoluntaryExitsPageDataExit

type VoluntaryExitsPageDataExit struct {
	SlotNumber      uint64    `json:"slot"`
	SlotRoot        []byte    `json:"slot_root"`
	Time            time.Time `json:"time"`
	Orphaned        bool      `json:"orphaned"`
	ValidatorIndex  uint64    `json:"vindex"`
	ValidatorName   string    `json:"vname"`
	PublicKey       []byte    `json:"pubkey"`
	WithdrawalCreds []byte    `json:"wdcreds"`
	ValidatorStatus string    `json:"vstatus"`
	ShowUpcheck     bool      `json:"show_upcheck"`
	UpcheckActivity uint8     `json:"upcheck_act"`
	UpcheckMaximum  uint8     `json:"upcheck_max"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL