models

package
v1.19.8 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2025 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 BlobsPageData added in v1.19.5

type BlobsPageData struct {
	BlobsLast1h            uint64                 `json:"blobs_last_1h"`
	BlobsLast24h           uint64                 `json:"blobs_last_24h"`
	BlobsLast7d            uint64                 `json:"blobs_last_7d"`
	BlobsLast18d           uint64                 `json:"blobs_last_18d"`
	BlocksWithBlobsLast1h  uint64                 `json:"blocks_with_blobs_last_1h"`
	BlocksWithBlobsLast24h uint64                 `json:"blocks_with_blobs_last_24h"`
	BlocksWithBlobsLast7d  uint64                 `json:"blocks_with_blobs_last_7d"`
	BlocksWithBlobsLast18d uint64                 `json:"blocks_with_blobs_last_18d"`
	BlobGasLast1h          uint64                 `json:"blob_gas_last_1h"`
	BlobGasLast24h         uint64                 `json:"blob_gas_last_24h"`
	BlobGasLast7d          uint64                 `json:"blob_gas_last_7d"`
	BlobGasLast18d         uint64                 `json:"blob_gas_last_18d"`
	LatestBlobBlocks       []*LatestBlobBlock     `json:"latest_blob_blocks"`
	StorageCalculator      *StorageCalculatorData `json:"storage_calculator"`
}

type BlocksPageData added in v1.16.0

type BlocksPageData struct {
	Blocks        []*BlocksPageDataSlot `json:"blocks"`
	SlotCount     uint64                `json:"slot_count"`
	FirstSlot     uint64                `json:"first_slot"`
	LastSlot      uint64                `json:"last_slot"`
	ForkTreeWidth int                   `json:"forktree_width"`

	DisplayChain        bool   `json:"dp_chain"`
	DisplayNumber       bool   `json:"dp_number"`
	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"`
	DisplayGasUsage     bool   `json:"dp_gasusage"`
	DisplayGasLimit     bool   `json:"dp_gaslimit"`
	DisplayMevBlock     bool   `json:"dp_mevblock"`
	DisplayBlockSize    bool   `json:"dp_blocksize"`
	DisplayRecvDelay    bool   `json:"dp_recvdelay"`
	DisplayExecTime     bool   `json:"dp_exectime"`
	DisplayColCount     uint64 `json:"display_col_count"`

	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"`

	UrlParams map[string]string `json:"url_params"`
	MaxSlot   uint64            `json:"max_slot"`
}

BlocksPageData is a struct to hold info for the blocks page

type BlocksPageDataForkGraph added in v1.16.0

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

type BlocksPageDataSlot added in v1.16.0

type BlocksPageDataSlot 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"`
	BlobCount             uint64                     `json:"blob_count"`
	WithEthBlock          bool                       `json:"with_eth_block"`
	EthBlockNumber        uint64                     `json:"eth_block_number"`
	Graffiti              []byte                     `json:"graffiti"`
	ElExtraData           []byte                     `json:"el_extra_data"`
	GasUsed               uint64                     `json:"gas_used"`
	GasLimit              uint64                     `json:"gas_limit"`
	BlockSize             uint64                     `json:"block_size"`
	BlockRoot             []byte                     `json:"block_root"`
	ParentRoot            []byte                     `json:"parent_root"`
	RecvDelay             int32                      `json:"recv_delay"`
	MinExecTime           uint32                     `json:"min_exec_time"`
	MaxExecTime           uint32                     `json:"max_exec_time"`
	AvgExecTime           uint32                     `json:"avg_exec_time"`
	ExecutionTimes        []ExecutionTimeDetail      `json:"execution_times"`
	ForkGraph             []*BlocksPageDataForkGraph `json:"fork_graph"`
	IsMevBlock            bool                       `json:"is_mev_block"`
	MevBlockRelays        string                     `json:"mev_block_relays"`
}

type ChainDiagram added in v1.18.3

type ChainDiagram struct {
	Epochs        []uint64              `json:"epochs"` // Changed from slots to epochs
	Forks         []*DiagramFork        `json:"forks"`
	CanonicalLine *DiagramCanonicalLine `json:"canonical_line"`
}

type ChainFork added in v1.18.3

type ChainFork struct {
	ForkId               uint64                `json:"fork_id"`
	BaseSlot             uint64                `json:"base_slot"`
	BaseRoot             []byte                `json:"base_root"`
	LeafSlot             uint64                `json:"leaf_slot"` // First block of this fork (where it diverged)
	LeafRoot             []byte                `json:"leaf_root"`
	HeadSlot             uint64                `json:"head_slot"` // Current head of this fork
	HeadRoot             []byte                `json:"head_root"`
	ParentFork           uint64                `json:"parent_fork"`
	Participation        float64               `json:"participation"`          // Overall average participation
	ParticipationByEpoch []*EpochParticipation `json:"participation_by_epoch"` // Participation per epoch
	IsCanonical          bool                  `json:"is_canonical"`
	Length               uint64                `json:"length"`      // Number of slots in the fork
	BlockCount           uint64                `json:"block_count"` // Actual number of blocks in the fork
}

type ChainForksDiagramData added in v1.18.3

type ChainForksDiagramData struct {
	Diagram             *ChainDiagram `json:"diagram"`
	StartSlot           uint64        `json:"start_slot"`
	EndSlot             uint64        `json:"end_slot"`
	StartEpoch          uint64        `json:"start_epoch"`
	EndEpoch            uint64        `json:"end_epoch"`
	FinalitySlot        uint64        `json:"finality_slot"`
	RequestedStartSlot  uint64        `json:"requested_start_slot"`  // Original requested start
	RequestedSizeEpochs uint64        `json:"requested_size_epochs"` // Original requested size
	PrevPageSlot        *uint64       `json:"prev_page_slot"`
	NextPageSlot        *uint64       `json:"next_page_slot"`
	Error               string        `json:"error,omitempty"` // Error message if something went wrong
}

ChainForksDiagramData contains all the data needed for AJAX diagram requests

type ChainForksPageData added in v1.18.3

type ChainForksPageData struct {
	ChainSpecs *ChainSpecs `json:"chain_specs"`
}

ChainForksPageData is a struct to hold minimal info for the chain forks visualization page template

type ChainSpecs added in v1.18.3

type ChainSpecs struct {
	SlotsPerEpoch  uint64 `json:"slots_per_epoch"`
	SecondsPerSlot uint64 `json:"seconds_per_slot"`
	GenesisTime    uint64 `json:"genesis_time"`   // Genesis time in unix timestamp
	CurrentSlot    uint64 `json:"current_slot"`   // Current head slot
	EpochsFor12h   uint64 `json:"epochs_for_12h"` // Pre-calculated epoch counts for time selectors
	EpochsFor1d    uint64 `json:"epochs_for_1d"`
	EpochsFor7d    uint64 `json:"epochs_for_7d"`
	EpochsFor14d   uint64 `json:"epochs_for_14d"`
}

ChainSpecs contains chain specification values needed for visualization

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 relevant for internal peers (clients)
	ENR               string                          `json:"enr"`
	ENRKeyValues      []*ClientCLPageDataNodeENRValue `json:"enr_kv"`
	MetadataKeyValues []*ClientCLPageDataNodeENRValue `json:"metadata_kv"`
	Peers             []*ClientCLPageDataNodePeers    `json:"peers"` // only relevant for internal peers
	PeerDAS           *ClientCLPageDataNodePeerDAS    `json:"peer_das"`
	PeersIn           []string                        `json:"peers_in"`
	PeersOut          []string                        `json:"peers_out"`
	Metadata          *ClientCLPageDataNodeMetadata   `json:"metadata,omitempty"`
	ClientSpecs       map[string]interface{}          `json:"client_specs"`
}

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 ClientCLPageDataNodeMetadata added in v1.18.0

type ClientCLPageDataNodeMetadata struct {
	Attnets           string `json:"attnets,omitempty"`
	Syncnets          string `json:"syncnets,omitempty"`
	SeqNumber         string `json:"seq_number,omitempty"`
	CustodyGroupCount string `json:"custody_group_count,omitempty"` // MetadataV3 field for Fulu
}

ClientCLPageDataNodeMetadata represents the metadata from the node identity

type ClientCLPageDataNodePeerDAS added in v1.12.1

type ClientCLPageDataNodePeerDAS struct {
	CGC         uint64   `json:"cgc"`
	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"`
	// MissingCGCFromENR indicates that the client is missing the CGC from the ENR for some peers
	MissingCGCFromENR      bool     `json:"missing_cgc_from_enr"`
	MissingCGCFromENRPeers []string `json:"missing_cgc_from_enr_peers"`
	// MissingSpecValues indicates that wer were unable to parse the spec values, thus using defaults
	MissingSpecValues bool `json:"missing_spec_values"`
	// MissingPeersOnColumn
	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 ClientELPageDataForkConfig added in v1.19.0

type ClientELPageDataForkConfig struct {
	Current *EthConfigObject `json:"current"`
	Next    *EthConfigObject `json:"next"`
	Last    *EthConfigObject `json:"last"`
}

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"`

	// DAS Guardian configuration
	DisableDasGuardianCheck   bool                             `json:"disable_das_guardian_check"`
	EnableDasGuardianMassScan bool                             `json:"enable_das_guardian_mass_scan"`
	Nodes                     map[string]*ClientCLPageDataNode `json:"nodes"`
	Sorting                   string                           `json:"sorting"`
	IsDefaultSorting          bool                             `json:"is_default_sorting"`
	CurrentForkDigest         []byte                           `json:"current_fork_digest"`
	FuluActivationEpoch       uint64                           `json:"fulu_activation_epoch"`
	ExpectedChainSpec         map[string]interface{}           `json:"expected_chain_spec"`
	ExpectedConfigFields      []string                         `json:"expected_config_fields"`
	ExpectedPresetFields      []string                         `json:"expected_preset_fields"`
	ExpectedDomainTypeFields  []string                         `json:"expected_domain_type_fields"`
}

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"`
	NodeENR              string    `json:"node_enr"`
	PeerCount            uint32    `json:"peer_count"`
	PeersInboundCounter  uint32    `json:"peers_inbound_counter"`
	PeersOutboundCounter uint32    `json:"peers_outbound_counter"`
	SpecWarnings         []string  `json:"spec_warnings"`
}

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"`
	Sorting                string                            `json:"sorting"`
	IsDefaultSorting       bool                              `json:"is_default_sorting"`
	ExpectedEthConfig      *ClientELPageDataForkConfig       `json:"expected_eth_config"`
}

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"`
	ConfigWarnings       []string                    `json:"config_warnings"`
	ClientConfig         *ClientELPageDataForkConfig `json:"client_config"`
}

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"`
	ForkConfig    *ClientELPageDataForkConfig  `json:"fork_config"`
}

type ConsolidationsPageData added in v1.19.0

type ConsolidationsPageData struct {
	TotalConsolidationCount     uint64                                       `json:"total_consolidation_count"`
	ConsolidatingValidatorCount uint64                                       `json:"consolidating_validator_count"`
	ConsolidatingAmount         uint64                                       `json:"consolidating_amount"`
	QueuedConsolidationCount    uint64                                       `json:"queued_consolidation_count"`
	QueueDurationEstimate       time.Time                                    `json:"queue_duration_estimate"`
	HasQueueDuration            bool                                         `json:"has_queue_duration"`
	RecentConsolidations        []*ConsolidationsPageDataRecentConsolidation `json:"recent_consolidations"`
	RecentConsolidationCount    uint64                                       `json:"recent_consolidation_count"`
	QueuedConsolidations        []*ConsolidationsPageDataQueuedConsolidation `json:"queued_consolidations"`
	QueuedTabCount              uint64                                       `json:"queued_tab_count"`
	TabView                     string                                       `json:"tab_view"`
}

ConsolidationsPageData is a struct to hold info for the consolidations overview page

type ConsolidationsPageDataQueuedConsolidation added in v1.19.0

type ConsolidationsPageDataQueuedConsolidation struct {
	SourcePublicKey        []byte    `json:"src_pubkey"`
	TargetPublicKey        []byte    `json:"tgt_pubkey"`
	SourceValidatorExists  bool      `json:"src_validator_exists"`
	SourceValidatorIndex   uint64    `json:"src_validator_index"`
	SourceValidatorName    string    `json:"src_validator_name"`
	SourceValidatorStatus  string    `json:"src_validator_status"`
	SourceEffectiveBalance uint64    `json:"src_effective_balance"`
	TargetValidatorExists  bool      `json:"tgt_validator_exists"`
	TargetValidatorIndex   uint64    `json:"tgt_validator_index"`
	TargetValidatorName    string    `json:"tgt_validator_name"`
	EstimatedTime          time.Time `json:"estimated_time"`
	ShowUpcheck            bool      `json:"show_upcheck"`
	UpcheckActivity        uint8     `json:"upcheck_act"`
	UpcheckMaximum         uint8     `json:"upcheck_max"`
}

type ConsolidationsPageDataRecentConsolidation added in v1.19.0

type ConsolidationsPageDataRecentConsolidation struct {
	IsIncluded           bool      `json:"is_included"`
	SlotNumber           uint64    `json:"slot"`
	SlotRoot             []byte    `json:"slot_root"`
	Time                 time.Time `json:"time"`
	Status               uint64    `json:"status"`
	Result               uint8     `json:"result"`
	ResultMessage        string    `json:"result_message"`
	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"`
}

type DepositsPageData

type DepositsPageData struct {
	EnteringValidatorCount uint64                              `json:"entering_val"`
	EnteringEtherAmount    uint64                              `json:"entering_ether"`
	ExitingValidatorCount  uint64                              `json:"exiting_val"`
	ValidatorsPerEpoch     uint64                              `json:"churn_epoch"`
	EtherChurnPerEpoch     uint64                              `json:"churn_ether"`
	ValidatorsPerDay       uint64                              `json:"churn_day"`
	EtherChurnPerDay       uint64                              `json:"churn_ether_day"`
	NewDepositProcessAfter time.Time                           `json:"new_deposit_process_after"`
	InitiatedDeposits      []*DepositsPageDataInitiatedDeposit `json:"initiated_deposits"`
	InitiatedDepositCount  uint64                              `json:"initiated_deposit_count"`
	IncludedDeposits       []*DepositsPageDataIncludedDeposit  `json:"included_deposits"`
	IncludedDepositCount   uint64                              `json:"included_deposit_count"`
	QueuedDeposits         []*DepositsPageDataQueuedDeposit    `json:"queued_deposits"`
	QueuedDepositCount     uint64                              `json:"queued_deposit_count"`
	IsElectraActive        bool                                `json:"is_electra_active"`
	TabView                string                              `json:"tab_view"`
}

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"`
	IsQueued              bool                                      `json:"is_queued"`
	QueuePosition         uint64                                    `json:"queue_position"`
	EstimatedTime         time.Time                                 `json:"estimated_time"`
	DepositorAddress      []byte                                    `json:"depositor_address"`
	HasTransaction        bool                                      `json:"has_transaction"`
	TransactionDetails    *DepositsPageDataIncludedDepositTxDetails `json:"tx_details"`
	InvalidSignature      bool                                      `json:"invalid_signature"`
	ValidatorExists       bool                                      `json:"validator_exists"`
	ValidatorIndex        uint64                                    `json:"validator_index"`
	ValidatorName         string                                    `json:"validator_name"`
}

type DepositsPageDataIncludedDepositTxDetails added in v1.15.0

type DepositsPageDataIncludedDepositTxDetails 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 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"`
	ValidatorExists       bool      `json:"validator_exists"`
	ValidatorIndex        uint64    `json:"validator_index"`
	ValidatorName         string    `json:"validator_name"`
}

type DepositsPageDataQueuedDeposit added in v1.15.0

type DepositsPageDataQueuedDeposit struct {
	Index                 uint64                                  `json:"index"`
	HasIndex              bool                                    `json:"has_index"`
	PublicKey             []byte                                  `json:"pubkey"`
	Withdrawalcredentials []byte                                  `json:"wtdcreds"`
	Amount                uint64                                  `json:"amount"`
	QueuePosition         uint64                                  `json:"queue_position"`
	EstimatedTime         time.Time                               `json:"estimated_time"`
	ValidatorStatus       string                                  `json:"vstatus"`
	ShowUpcheck           bool                                    `json:"show_upcheck"`
	UpcheckActivity       uint8                                   `json:"upcheck_act"`
	UpcheckMaximum        uint8                                   `json:"upcheck_max"`
	HasTransaction        bool                                    `json:"has_transaction"`
	TransactionHash       []byte                                  `json:"tx_hash"`
	TransactionDetails    *DepositsPageDataQueuedDepositTxDetails `json:"tx_details"`
	ValidatorExists       bool                                    `json:"validator_exists"`
	ValidatorIndex        uint64                                  `json:"validator_index"`
	ValidatorName         string                                  `json:"validator_name"`
}

type DepositsPageDataQueuedDepositTxDetails added in v1.15.0

type DepositsPageDataQueuedDepositTxDetails 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"`
	ValidSignature bool   `json:"valid_signature"`
}

type DiagramCanonicalLine added in v1.18.3

type DiagramCanonicalLine struct {
	StartSlot uint64 `json:"start_slot"`
	EndSlot   uint64 `json:"end_slot"`
}

type DiagramFork added in v1.18.3

type DiagramFork struct {
	ForkId               uint64                `json:"fork_id"`
	BaseSlot             uint64                `json:"base_slot"`
	BaseRoot             []byte                `json:"base_root"`
	LeafSlot             uint64                `json:"leaf_slot"` // First block of fork (where it diverged)
	LeafRoot             []byte                `json:"leaf_root"`
	HeadSlot             uint64                `json:"head_slot"` // Current head of this fork
	HeadRoot             []byte                `json:"head_root"`
	Length               uint64                `json:"length"`
	BlockCount           uint64                `json:"block_count"`            // Actual number of blocks
	Participation        float64               `json:"participation"`          // Overall average
	ParticipationByEpoch []*EpochParticipation `json:"participation_by_epoch"` // Per epoch data
	ParentFork           uint64                `json:"parent_fork"`
	IsCanonical          bool                  `json:"is_canonical"` // Whether this is part of canonical chain
}

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"`

	UrlParams map[string]string `json:"url_params"`
}

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"`
	Result               uint8     `json:"result"`
	ResultMessage        string    `json:"result_message"`
	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"`

	UrlParams map[string]string `json:"url_params"`
}

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"`
	Result            uint8     `json:"result"`
	ResultMessage     string    `json:"result_message"`
	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"`
	BlobCount               uint64               `json:"blob_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"`
	BlobCount             uint64    `json:"blob_count"`
	EthBlockNumber        uint64    `json:"eth_block_number"`
	WithEthBlock          bool      `json:"with_eth_block"`
	Graffiti              []byte    `json:"graffiti"`
	BlockRoot             []byte    `json:"block_root"`
}

type EpochParticipation added in v1.18.3

type EpochParticipation struct {
	Epoch         uint64  `json:"epoch"`
	Participation float64 `json:"participation"`
	SlotCount     uint64  `json:"slot_count"`
}

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"`

	UrlParams map[string]string `json:"url_params"`
	MaxEpoch  uint64            `json:"max_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"`
	BlobCount               uint64    `json:"blob_count"`
}

type ErrorPageData

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

type EthConfigObject added in v1.19.0

type EthConfigObject struct {
	ActivationTime uint64 `json:"activationTime"`
	BlobSchedule   struct {
		Max                   uint64 `json:"max"`
		Target                uint64 `json:"target"`
		BaseFeeUpdateFraction uint64 `json:"baseFeeUpdateFraction"`
	} `json:"blobSchedule"`
	ChainId         string            `json:"chainId"`
	ForkId          string            `json:"forkId"`
	Precompiles     map[string]string `json:"precompiles"`
	SystemContracts map[string]string `json:"systemContracts"`
}

type ExecutionTimeDetail added in v1.17.0

type ExecutionTimeDetail struct {
	ClientType string `json:"client_type"`
	MinTime    uint16 `json:"min_time"`
	MaxTime    uint16 `json:"max_time"`
	AvgTime    uint16 `json:"avg_time"`
	Count      uint16 `json:"count"`
}

type ExitsPageData added in v1.19.0

type ExitsPageData struct {
	TotalVoluntaryExitCount uint64    `json:"total_voluntary_exit_count"`
	TotalRequestedExitCount uint64    `json:"total_requested_exit_count"`
	ExitingValidatorCount   uint64    `json:"exiting_validator_count"`
	ExitingAmount           uint64    `json:"exiting_amount"`
	QueueDurationEstimate   time.Time `json:"queue_duration_estimate"`
	HasQueueDuration        bool      `json:"has_queue_duration"`

	TabView string `json:"tab_view"`

	RecentExits     []*ExitsPageDataRecentExit `json:"recent_exits"`
	RecentExitCount uint64                     `json:"recent_exit_count"`

	ExitingValidators        []*ExitsPageDataExitingValidator `json:"exiting_validators"`
	ExitingValidatorTabCount uint64                           `json:"exiting_validator_tab_count"`
}

ExitsPageData is a struct to hold info for the exits overview page

type ExitsPageDataExitingValidator added in v1.19.0

type ExitsPageDataExitingValidator struct {
	ValidatorIndex   uint64    `json:"validator_index"`
	ValidatorName    string    `json:"validator_name"`
	ValidatorStatus  string    `json:"validator_status"`
	PublicKey        []byte    `json:"pubkey"`
	WithdrawalCreds  []byte    `json:"wdcreds"`
	EffectiveBalance uint64    `json:"effective_balance"`
	ExitEpoch        uint64    `json:"exit_epoch"`
	EstimatedTime    time.Time `json:"estimated_time"`
	ShowUpcheck      bool      `json:"show_upcheck"`
	UpcheckActivity  uint8     `json:"upcheck_act"`
	UpcheckMaximum   uint8     `json:"upcheck_max"`
}

type ExitsPageDataRecentExit added in v1.19.0

type ExitsPageDataRecentExit 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"`
}

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"`
	FilterWithValid     uint8  `json:"filter_valid"`
	FilterAddress       string `json:"filter_address"`

	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"`

	UrlParams map[string]string `json:"url_params"`
}

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"`
	IsQueued              bool                                      `json:"is_queued"`
	QueuePosition         uint64                                    `json:"queue_position"`
	EstimatedTime         time.Time                                 `json:"estimated_time"`
	DepositorAddress      []byte                                    `json:"depositor_address"`
	TransactionHash       []byte                                    `json:"tx_hash"`
	HasTransaction        bool                                      `json:"has_transaction"`
	TransactionDetails    *IncludedDepositsPageDataDepositTxDetails `json:"tx_details"`
	InvalidSignature      bool                                      `json:"invalid_signature"`
	ValidatorExists       bool                                      `json:"validator_exists"`
	ValidatorIndex        uint64                                    `json:"validator_index"`
	ValidatorName         string                                    `json:"validator_name"`
}

type IncludedDepositsPageDataDepositTxDetails added in v1.15.0

type IncludedDepositsPageDataDepositTxDetails 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 IndexPageData

type IndexPageData struct {
	NetworkName             string    `json:"netname"`
	DepositContract         string    `json:"depaddr"`
	ShowSyncingMessage      bool      `json:"show_sync"`
	SlotsPerEpoch           uint64    `json:"slots_per_epoch"`
	SecondsPerSlot          uint64    `json:"seconds_per_slot"`
	SecondsPerEpoch         uint64    `json:"seconds_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"`
	EnteringEtherAmount     uint64    `json:"entering_ether"`
	ExitingValidatorCount   uint64    `json:"exiting_val"`
	ValidatorsPerEpoch      uint64    `json:"churn_epoch"`
	EtherChurnPerEpoch      uint64    `json:"churn_ether"`
	ValidatorsPerDay        uint64    `json:"churn_day"`
	EtherChurnPerDay        uint64    `json:"churn_ether_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"`
	Time             uint64  `json:"time"`
	Type             string  `json:"type"`                          // "consensus" or "bpo"
	MaxBlobsPerBlock *uint64 `json:"max_blobs_per_block,omitempty"` // Only for BPO forks
	ForkDigest       []byte  `json:"fork_digest"`                   // Fork digest for this fork
}

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"`

	UrlParams map[string]string `json:"url_params"`
}

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"`
	ValidatorExists       bool      `json:"validator_exists"`
	ValidatorIndex        uint64    `json:"validator_index"`
	ValidatorName         string    `json:"validator_name"`
}

type LatestBlobBlock added in v1.19.5

type LatestBlobBlock struct {
	Slot         uint64    `json:"slot"`
	BlockNumber  uint64    `json:"block_number"`
	Timestamp    time.Time `json:"timestamp"`
	BlobCount    uint64    `json:"blob_count"`
	Proposer     uint64    `json:"proposer"`
	ProposerName string    `json:"proposer_name"`
	BlockRoot    []byte    `json:"block_root"`
	Finalized    bool      `json:"finalized"`
}

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"`

	UrlParams map[string]string `json:"url_params"`
}

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"`
	BlobCount      uint64                    `json:"blob_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 QueuedConsolidationsPageData added in v1.19.0

type QueuedConsolidationsPageData struct {
	FilterMinSrcIndex   uint64 `json:"filter_minsi"`
	FilterMaxSrcIndex   uint64 `json:"filter_maxsi"`
	FilterMinTgtIndex   uint64 `json:"filter_minti"`
	FilterMaxTgtIndex   uint64 `json:"filter_maxti"`
	FilterValidatorName string `json:"filter_vname"`
	FilterPublicKey     string `json:"filter_pubkey"`

	QueuedConsolidations []*QueuedConsolidationsPageDataConsolidation `json:"consolidations"`
	ConsolidationCount   uint64                                       `json:"consolidation_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"`

	UrlParams map[string]string `json:"url_params"`
}

QueuedConsolidationsPageData is a struct to hold info for the queued_consolidations page

type QueuedConsolidationsPageDataConsolidation added in v1.19.0

type QueuedConsolidationsPageDataConsolidation struct {
	SourcePublicKey        []byte    `json:"src_pubkey"`
	TargetPublicKey        []byte    `json:"tgt_pubkey"`
	SourceValidatorExists  bool      `json:"src_validator_exists"`
	SourceValidatorIndex   uint64    `json:"src_validator_index"`
	SourceValidatorName    string    `json:"src_validator_name"`
	SourceValidatorStatus  string    `json:"src_validator_status"`
	SourceEffectiveBalance uint64    `json:"src_effective_balance"`
	TargetValidatorExists  bool      `json:"tgt_validator_exists"`
	TargetValidatorIndex   uint64    `json:"tgt_validator_index"`
	TargetValidatorName    string    `json:"tgt_validator_name"`
	EstimatedTime          time.Time `json:"estimated_time"`
	ShowUpcheck            bool      `json:"show_upcheck"`
	UpcheckActivity        uint8     `json:"upcheck_act"`
	UpcheckMaximum         uint8     `json:"upcheck_max"`
}

type QueuedDepositsPageData added in v1.15.0

type QueuedDepositsPageData struct {
	Deposits            []*QueuedDepositsPageDataDeposit `json:"deposits"`
	DepositCount        uint64                           `json:"deposit_count"`
	DepositsFrom        uint64                           `json:"deposits_from"`
	DepositsTo          uint64                           `json:"deposits_to"`
	MaxEffectiveBalance uint64                           `json:"max_effective_balance"`

	// Filter fields
	FilterMinIndex  uint64 `json:"filter_mini"`
	FilterMaxIndex  uint64 `json:"filter_maxi"`
	FilterPubKey    string `json:"filter_publickey"`
	FilterMinAmount uint64 `json:"filter_mina"`
	FilterMaxAmount uint64 `json:"filter_maxa"`

	// Add paging fields
	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"`

	UrlParams map[string]string `json:"url_params"`
}

QueuedDepositsPageData is a struct to hold info for the queued_deposits page

type QueuedDepositsPageDataDeposit added in v1.15.0

type QueuedDepositsPageDataDeposit struct {
	Index                 uint64                                  `json:"index"`
	HasIndex              bool                                    `json:"has_index"`
	ExcessDeposit         bool                                    `json:"excess_deposit"`
	PublicKey             []byte                                  `json:"pubkey"`
	Withdrawalcredentials []byte                                  `json:"wtdcreds"`
	Amount                uint64                                  `json:"amount"`
	QueuePosition         uint64                                  `json:"queue_position"`
	EstimatedTime         time.Time                               `json:"estimated_time"`
	ValidatorStatus       string                                  `json:"vstatus"`
	ShowUpcheck           bool                                    `json:"show_upcheck"`
	UpcheckActivity       uint8                                   `json:"upcheck_act"`
	UpcheckMaximum        uint8                                   `json:"upcheck_max"`
	HasTransaction        bool                                    `json:"has_transaction"`
	TransactionHash       []byte                                  `json:"tx_hash"`
	TransactionDetails    *QueuedDepositsPageDataDepositTxDetails `json:"tx_details"`
	ValidatorExists       bool                                    `json:"validator_exists"`
	ValidatorIndex        uint64                                  `json:"validator_index"`
	ValidatorName         string                                  `json:"validator_name"`
}

type QueuedDepositsPageDataDepositTxDetails added in v1.15.0

type QueuedDepositsPageDataDepositTxDetails 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 QueuedWithdrawalsPageData added in v1.19.0

type QueuedWithdrawalsPageData struct {
	FilterMinIndex      uint64 `json:"filter_mini"`
	FilterMaxIndex      uint64 `json:"filter_maxi"`
	FilterValidatorName string `json:"filter_vname"`
	FilterPublicKey     string `json:"filter_pubkey"`

	QueuedWithdrawals []*QueuedWithdrawalsPageDataWithdrawal `json:"withdrawals"`
	WithdrawalCount   uint64                                 `json:"withdrawal_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"`

	UrlParams map[string]string `json:"url_params"`
}

QueuedWithdrawalsPageData is a struct to hold info for the queued_withdrawals page

type QueuedWithdrawalsPageDataWithdrawal added in v1.19.0

type QueuedWithdrawalsPageDataWithdrawal struct {
	ValidatorIndex    uint64    `json:"validator_index"`
	ValidatorName     string    `json:"validator_name"`
	ValidatorStatus   string    `json:"validator_status"`
	PublicKey         []byte    `json:"pubkey"`
	Amount            uint64    `json:"amount"`
	WithdrawableEpoch uint64    `json:"withdrawable_epoch"`
	EstimatedTime     time.Time `json:"estimated_time"`
	ShowUpcheck       bool      `json:"show_upcheck"`
	UpcheckActivity   uint8     `json:"upcheck_act"`
	UpcheckMaximum    uint8     `json:"upcheck_max"`
}

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 SearchAheadValidatorResult added in v1.17.0

type SearchAheadValidatorResult struct {
	Index  string `json:"index,omitempty"`
	Pubkey string `json:"pubkey,omitempty"`
	Name   string `json:"name,omitempty"`
}

SearchAheadValidatorResult is a struct to hold the search ahead validator results

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"`

	UrlParams map[string]string `json:"url_params"`
}

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"`
	TotalActive    uint64   `json:"total_active"`

	AggregationBits    []byte   `json:"aggregationbits"`
	Validators         []uint64 `json:"validators"`
	IncludedValidators []uint64 `json:"included_validators"`

	Signature []byte `json:"signature"`

	BeaconBlockRoot []byte `json:"beaconblockroot"`
	BeaconBlockSlot uint64 `json:"beaconblockslot"`
	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"`
	BodyRoot                   []byte                 `json:"bodyroot"`
	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"`
	ValidatorNames             map[uint64]string      `json:"validator_names"`
	SpecValues                 map[string]interface{} `json:"spec_values"`
	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"`
	BlobGasUsed        *uint64   `json:"blob_gas_used,omitempty"`
	BlobLimit          *uint64   `json:"blob_limit,omitempty"`
	BlobGasLimit       *uint64   `json:"blob_gas_limit,omitempty"`
	ExcessBlobGas      *uint64   `json:"excess_blob_gas,omitempty"`
	BlobBaseFee        *uint64   `json:"blob_base_fee,omitempty"`
	BlobBaseFeeEIP7918 *uint64   `json:"blob_base_fee_eip7918,omitempty"`
	IsEIP7918Active    bool      `json:"is_eip7918_active"`
}

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"`
	FilterInvertGraffiti  bool   `json:"filter_invert_graffiti"`
	FilterExtraData       string `json:"filter_extra_data"`
	FilterInvertExtraData bool   `json:"filter_invert_extra_data"`
	FilterProposer        string `json:"filter_proposer"`
	FilterProposerName    string `json:"filter_pname"`
	FilterInvertProposer  bool   `json:"filter_invert_proposer"`
	FilterWithOrphaned    uint8  `json:"filter_orphaned"`
	FilterWithMissing     uint8  `json:"filter_missing"`
	FilterMinSyncAgg      string `json:"filter_min_sync"`
	FilterMaxSyncAgg      string `json:"filter_max_sync"`
	FilterMinExecTime     string `json:"filter_min_exec"`
	FilterMaxExecTime     string `json:"filter_max_exec"`
	FilterMinTxCount      string `json:"filter_min_tx"`
	FilterMaxTxCount      string `json:"filter_max_tx"`
	FilterMinBlobCount    string `json:"filter_min_blob"`
	FilterMaxBlobCount    string `json:"filter_max_blob"`
	FilterForkIds         string `json:"filter_fork_ids"`

	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"`
	DisplayGasUsage     bool   `json:"dp_gasusage"`
	DisplayGasLimit     bool   `json:"dp_gaslimit"`
	DisplayMevBlock     bool   `json:"dp_mevblock"`
	DisplayBlockSize    bool   `json:"dp_blocksize"`
	DisplayRecvDelay    bool   `json:"dp_recvdelay"`
	DisplayExecTime     bool   `json:"dp_exectime"`
	DisplayColCount     uint64 `json:"display_col_count"`

	HasSnooperClients bool `json:"has_snooper_clients"`

	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"`

	UrlParams map[string]string `json:"url_params"`
}

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"`
	BlobCount             uint64                `json:"blob_count"`
	WithEthBlock          bool                  `json:"with_eth_block"`
	EthBlockNumber        uint64                `json:"eth_block_number"`
	Graffiti              []byte                `json:"graffiti"`
	ElExtraData           []byte                `json:"el_extra_data"`
	GasUsed               uint64                `json:"gas_used"`
	GasLimit              uint64                `json:"gas_limit"`
	BlockSize             uint64                `json:"block_size"`
	BlockRoot             []byte                `json:"block_root"`
	ParentRoot            []byte                `json:"parent_root"`
	RecvDelay             int32                 `json:"recv_delay"`
	MinExecTime           uint32                `json:"min_exec_time"`
	MaxExecTime           uint32                `json:"max_exec_time"`
	AvgExecTime           uint32                `json:"avg_exec_time"`
	ExecutionTimes        []ExecutionTimeDetail `json:"execution_times"`
	IsMevBlock            bool                  `json:"is_mev_block"`
	MevBlockRelays        string                `json:"mev_block_relays"`
}

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"`

	DisplayChain        bool   `json:"dp_chain"`
	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"`
	DisplayGasUsage     bool   `json:"dp_gasusage"`
	DisplayGasLimit     bool   `json:"dp_gaslimit"`
	DisplayMevBlock     bool   `json:"dp_mevblock"`
	DisplayBlockSize    bool   `json:"dp_blocksize"`
	DisplayRecvDelay    bool   `json:"dp_recvdelay"`
	DisplayExecTime     bool   `json:"dp_exectime"`
	DisplayColCount     uint64 `json:"display_col_count"`

	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"`

	UrlParams map[string]string `json:"url_params"`
	MaxSlot   uint64            `json:"max_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"`
	BlobCount             uint64                    `json:"blob_count"`
	WithEthBlock          bool                      `json:"with_eth_block"`
	EthBlockNumber        uint64                    `json:"eth_block_number"`
	Graffiti              []byte                    `json:"graffiti"`
	ElExtraData           []byte                    `json:"el_extra_data"`
	GasUsed               uint64                    `json:"gas_used"`
	GasLimit              uint64                    `json:"gas_limit"`
	BlockSize             uint64                    `json:"block_size"`
	BlockRoot             []byte                    `json:"block_root"`
	ParentRoot            []byte                    `json:"parent_root"`
	RecvDelay             int32                     `json:"recv_delay"`
	MinExecTime           uint32                    `json:"min_exec_time"`
	MaxExecTime           uint32                    `json:"max_exec_time"`
	AvgExecTime           uint32                    `json:"avg_exec_time"`
	ExecutionTimes        []ExecutionTimeDetail     `json:"execution_times"`
	ForkGraph             []*SlotsPageDataForkGraph `json:"fork_graph"`
	IsMevBlock            bool                      `json:"is_mev_block"`
	MevBlockRelays        string                    `json:"mev_block_relays"`
}

type StorageCalculatorData added in v1.19.5

type StorageCalculatorData struct {
	MinEth                           uint64  `json:"min_eth"`
	MaxEth                           uint64  `json:"max_eth"`
	DefaultEth                       uint64  `json:"default_eth"`
	MaxEffectiveBalanceEth           float64 `json:"max_effective_balance_eth"`
	ColumnSizeBytes                  float64 `json:"column_size_bytes"`
	TotalColumns                     uint64  `json:"total_columns"`
	CustodyRequirement               float64 `json:"custody_requirement"`
	ValidatorCustodyRequirement      float64 `json:"validator_custody_requirement"`
	SlotsPerEpoch                    uint64  `json:"slots_per_epoch"`
	MinEpochsForBlobSidecarsRequests uint64  `json:"min_epochs_for_blob_sidecars_requests"`
}

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"`
	IsConsolidable bool   `json:"isconsolidable"`
}

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"`
	ExplorerUrl                string `json:"explorer"`
	MaxEffectiveBalance        string `json:"maxeffectivebalance"`
	MaxEffectiveBalanceElectra string `json:"maxeffectivebalanceelectra"`
}

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 SubmitDepositPageDataValidator added in v1.17.0

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

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"`
	IsWithdrawable bool   `json:"iswithdrawable"`
}

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"`
	QueuedDepositCount       uint64                                `json:"queued_deposit_count"`

	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"`
	Result               uint8     `json:"result"`
	ResultMessage        string    `json:"result_message"`
	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 {
	Index              uint64                             `json:"index"`
	HasIndex           bool                               `json:"has_index"`
	PublicKey          []byte                             `json:"pubkey"`
	WithdrawalCreds    []byte                             `json:"withdrawal_creds"`
	Amount             uint64                             `json:"amount"`
	Slot               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"`
	IsQueued           bool                               `json:"is_queued"`
	QueuePosition      uint64                             `json:"queue_position"`
	EstimatedTime      time.Time                          `json:"estimated_time"`
	DepositorAddress   []byte                             `json:"depositor_address"`
	HasTransaction     bool                               `json:"has_transaction"`
	TransactionDetails *ValidatorPageDataDepositTxDetails `json:"tx_details"`
	InvalidSignature   bool                               `json:"invalid_signature"`
	TransactionHash    []byte                             `json:"tx_hash"`
	ValidatorExists    bool                               `json:"validator_exists"`
	ValidatorIndex     uint64                             `json:"validator_index"`
	ValidatorName      string                             `json:"validator_name"`
}

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"`
	Result            uint8     `json:"result"`
	ResultMessage     string    `json:"result_message"`
	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"`
	BlobCount             uint64    `json:"blob_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"`

	// Filter parameters
	SearchTerm string `json:"search_term"`

	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:"group_lower"`
	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 ValidatorsOfflinePageData added in v1.15.2

type ValidatorsOfflinePageData struct {
	ViewOptionGroupBy uint64 `json:"vopt_groupby"`
	GroupKey          string `json:"group_key"`
	GroupName         string `json:"group_name"`

	Validators       []*ValidatorsPageDataValidator `json:"validators"`
	ValidatorCount   uint64                         `json:"validator_count"`
	FirstValidator   uint64                         `json:"first_validx"`
	LastValidator    uint64                         `json:"last_validx"`
	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"`
	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"`
}

ValidatorsOfflinePageData is a struct to hold info for the validators offline page

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"`
	PrevPageIndex    uint64                         `json:"prev_page_index"`
	NextPageIndex    uint64                         `json:"next_page_index"`
	LastPageIndex    uint64                         `json:"last_page_index"`
	FilteredPageLink string                         `json:"filtered_page_link"`

	UrlParams map[string]string `json:"url_params"`
}

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 ValidatorsSummaryClientBreak added in v1.19.0

type ValidatorsSummaryClientBreak struct {
	ClientType              string  `json:"client_type"`
	ClientName              string  `json:"client_name"`
	Layer                   string  `json:"layer"` // "execution" or "consensus"
	ValidatorCount          uint64  `json:"validator_count"`
	EffectiveBalance        uint64  `json:"effective_balance"`
	OnlineEffectiveBalance  uint64  `json:"online_effective_balance"`
	OfflineEffectiveBalance uint64  `json:"offline_effective_balance"`
	BalancePercentage       float64 `json:"balance_percentage"`
	OnlineValidators        uint64  `json:"online_validators"`
	OfflineValidators       uint64  `json:"offline_validators"`
	OnlinePercentage        float64 `json:"online_percentage"`
	HealthStatus            string  `json:"health_status"`
}

type ValidatorsSummaryMatrixCell added in v1.19.0

type ValidatorsSummaryMatrixCell struct {
	ExecutionClient         string  `json:"execution_client"`
	ConsensusClient         string  `json:"consensus_client"`
	ValidatorCount          uint64  `json:"validator_count"`
	EffectiveBalance        uint64  `json:"effective_balance"`
	OnlineEffectiveBalance  uint64  `json:"online_effective_balance"`
	OfflineEffectiveBalance uint64  `json:"offline_effective_balance"`
	BalancePercentage       float64 `json:"balance_percentage"`
	OnlineValidators        uint64  `json:"online_validators"`
	OfflineValidators       uint64  `json:"offline_validators"`
	OnlinePercentage        float64 `json:"online_percentage"`
	HealthStatus            string  `json:"health_status"` // "healthy", "warning", "critical", "empty"
}

type ValidatorsSummaryPageData added in v1.19.0

type ValidatorsSummaryPageData struct {
	ClientMatrix       [][]ValidatorsSummaryMatrixCell `json:"client_matrix"`
	ExecutionClients   []string                        `json:"execution_clients"`
	ConsensusClients   []string                        `json:"consensus_clients"`
	TotalValidators    uint64                          `json:"total_validators"`
	TotalEffectiveETH  uint64                          `json:"total_effective_eth"`
	OverallHealthy     uint64                          `json:"overall_healthy"`
	ClientBreakdown    []ValidatorsSummaryClientBreak  `json:"client_breakdown"`
	NetworkHealthScore float64                         `json:"network_health_score"`
}

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"`

	UrlParams map[string]string `json:"url_params"`
}

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"`
}

type WithdrawalsPageData added in v1.19.0

type WithdrawalsPageData struct {
	TotalWithdrawalCount      uint64    `json:"total_withdrawal_count"`
	TotalExitCount            uint64    `json:"total_exit_count"`
	WithdrawingValidatorCount uint64    `json:"withdrawing_validator_count"`
	WithdrawingAmount         uint64    `json:"withdrawing_amount"`
	QueuedWithdrawalCount     uint64    `json:"queued_withdrawal_count"`
	QueueDurationEstimate     time.Time `json:"queue_duration_estimate"`
	HasQueueDuration          bool      `json:"has_queue_duration"`

	TabView string `json:"tab_view"`

	RecentWithdrawals     []*WithdrawalsPageDataRecentWithdrawal `json:"recent_withdrawals"`
	RecentWithdrawalCount uint64                                 `json:"recent_withdrawal_count"`

	QueuedWithdrawals []*WithdrawalsPageDataQueuedWithdrawal `json:"queued_withdrawals"`
	QueuedTabCount    uint64                                 `json:"queued_tab_count"`
}

WithdrawalsPageData is a struct to hold info for the withdrawals overview page

type WithdrawalsPageDataQueuedWithdrawal added in v1.19.0

type WithdrawalsPageDataQueuedWithdrawal struct {
	ValidatorIndex    uint64    `json:"validator_index"`
	ValidatorName     string    `json:"validator_name"`
	ValidatorStatus   string    `json:"validator_status"`
	PublicKey         []byte    `json:"pubkey"`
	Amount            uint64    `json:"amount"`
	WithdrawableEpoch uint64    `json:"withdrawable_epoch"`
	EstimatedTime     time.Time `json:"estimated_time"`
	ShowUpcheck       bool      `json:"show_upcheck"`
	UpcheckActivity   uint8     `json:"upcheck_act"`
	UpcheckMaximum    uint8     `json:"upcheck_max"`
}

type WithdrawalsPageDataRecentWithdrawal added in v1.19.0

type WithdrawalsPageDataRecentWithdrawal struct {
	IsIncluded        bool      `json:"is_included"`
	SlotNumber        uint64    `json:"slot"`
	SlotRoot          []byte    `json:"slot_root"`
	Time              time.Time `json:"time"`
	Status            uint64    `json:"status"`
	Result            uint8     `json:"result"`
	ResultMessage     string    `json:"result_message"`
	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"`
}

Jump to

Keyboard shortcuts

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