types

package
v0.0.0-...-b8dc01b Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2023 License: GPL-3.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AddWatchlistEvents = []EventNameDesc{
	{
		Desc:  "Validator is Offline",
		Event: ValidatorIsOfflineEventName,
		Info:  template.HTML(`<i data-toggle="tooltip" data-html="true" title="<div class='text-left'>Will trigger a notifcation:<br><ul><li>Once you have been offline for 3 epochs</li><li>Every 32 Epochs (~3 hours) during your downtime</li><li>Once you are back online again</li></ul></div>" class="fas fa-question-circle"></i>`),
	},
	{
		Desc:  "Proposals missed",
		Event: ValidatorMissedProposalEventName,
	},
	{
		Desc:  "Proposals submitted",
		Event: ValidatorExecutedProposalEventName,
	},
	{
		Desc:  "Validator got slashed",
		Event: ValidatorGotSlashedEventName,
	},
	{
		Desc:  "Sync committee",
		Event: SyncCommitteeSoon,
	},
	{
		Desc:    "Attestations missed",
		Event:   ValidatorMissedAttestationEventName,
		Warning: template.HTML(`<i data-toggle="tooltip" title="Will trigger every epoch (6.4 minutes) during downtime" class="fas fa-exclamation-circle text-warning"></i>`),
	},
	{
		Desc:  "Withdrawal processed",
		Event: ValidatorReceivedWithdrawalEventName,
		Info:  template.HTML(`<i data-toggle="tooltip" data-html="true" title="<div class='text-left'>Will trigger a notifcation when:<br><ul><li>A partial withdrawal is processed</li><li>Your validator exits and its full balance is withdrawn</li></ul> <div>Requires that your validator has 0x01 credentials</div></div>" class="fas fa-question-circle"></i>`),
	},
}

this is the source of truth for the validator events that are supported by the user/notification page

View Source
var EventLabel map[EventName]string = map[EventName]string{
	ValidatorBalanceDecreasedEventName:               "Your validator(s) balance decreased",
	ValidatorMissedProposalEventName:                 "Your validator(s) missed a proposal",
	ValidatorExecutedProposalEventName:               "Your validator(s) submitted a proposal",
	ValidatorMissedAttestationEventName:              "Your validator(s) missed an attestation",
	ValidatorGotSlashedEventName:                     "Your validator(s) got slashed",
	ValidatorDidSlashEventName:                       "Your validator(s) slashed another validator",
	ValidatorIsOfflineEventName:                      "Your validator(s) state changed",
	ValidatorReceivedDepositEventName:                "Your validator(s) received a deposit",
	ValidatorReceivedWithdrawalEventName:             "A withdrawal was initiated for your validators",
	NetworkSlashingEventName:                         "A slashing event has been registered by the network",
	NetworkValidatorActivationQueueFullEventName:     "The activation queue is full",
	NetworkValidatorActivationQueueNotFullEventName:  "The activation queue is empty",
	NetworkValidatorExitQueueFullEventName:           "The validator exit queue is full",
	NetworkValidatorExitQueueNotFullEventName:        "The validator exit queue is empty",
	NetworkLivenessIncreasedEventName:                "The network is experiencing liveness issues",
	EthClientUpdateEventName:                         "A ethereum client has a new available update",
	MonitoringMachineOfflineEventName:                "Your machine(s) might be offline",
	MonitoringMachineDiskAlmostFullEventName:         "Your machine(s) disk space is running low",
	MonitoringMachineCpuLoadEventName:                "Your machine(s) has a high CPU load",
	MonitoringMachineMemoryUsageEventName:            "Your machine(s) has a high memory load",
	MonitoringMachineSwitchedToETH2FallbackEventName: "Your machine(s) is using its consensus client fallback",
	MonitoringMachineSwitchedToETH1FallbackEventName: "Your machine(s) is using its execution client fallback",
	TaxReportEventName:                               "You have an available tax report",
	RocketpoolCommissionThresholdEventName:           "Your configured rocket pool commission threshold is reached",
	RocketpoolNewClaimRoundStartedEventName:          "Your rocket pool claim round is available",
	RocketpoolCollateralMinReached:                   "You reached the rocketpool min collateral",
	RocketpoolCollateralMaxReached:                   "You reached the rocketpool max collateral",
	SyncCommitteeSoon:                                "Your validator(s) will soon be part of the sync committee",
}
View Source
var File_machine_proto protoreflect.FileDescriptor
View Source
var NetworkNotificationEvents = []EventNameDesc{
	{
		Desc:  "Network Notifications",
		Event: NetworkLivenessIncreasedEventName,
	},
}

this is the source of truth for the network events that are supported by the user/notification page

View Source
var NotificationChannelLabels map[NotificationChannel]template.HTML = map[NotificationChannel]template.HTML{
	EmailNotificationChannel:          "Email Notification",
	PushNotificationChannel:           "Push Notification",
	WebhookNotificationChannel:        `Webhook Notification (<a href="/user/webhooks">configure</a>)`,
	WebhookDiscordNotificationChannel: "Discord Notification",
}

Functions

func GetDisplayableEventName

func GetDisplayableEventName(event EventName) string

func IsUserIndexed

func IsUserIndexed(event EventName) bool

Types

type APIAttestationResponse

type APIAttestationResponse struct {
	Aggregationbits string  `json:"aggregationbits"`
	Beaconblockroot string  `json:"beaconblockroot"`
	BlockIndex      int64   `json:"block_index"`
	BlockRoot       string  `json:"block_root"`
	BlockSlot       int64   `json:"block_slot"`
	Committeeindex  int64   `json:"committeeindex"`
	Signature       string  `json:"signature"`
	Slot            int64   `json:"slot"`
	SourceEpoch     int64   `json:"source_epoch"`
	SourceRoot      string  `json:"source_root"`
	TargetEpoch     int64   `json:"target_epoch"`
	TargetRoot      string  `json:"target_root"`
	Validators      []int64 `json:"validators"`
}

type APIAttesterSlashingResponse

type APIAttesterSlashingResponse struct {
	Attestation1_beaconblockroot string   `json:"attestation1_beaconblockroot"`
	Attestation1_index           uint64   `json:"attestation1_index"`
	Attestation1_indices         []uint64 `json:"attestation1_indices"`
	Attestation1_signature       string   `json:"attestation1_signature"`
	Attestation1_slot            uint64   `json:"attestation1_slot"`
	Attestation1_source_epoch    uint64   `json:"attestation1_source_epoch"`
	Attestation1_source_root     string   `json:"attestation1_source_root"`
	Attestation1_target_epoch    uint64   `json:"attestation1_target_epoch"`
	Attestation1_target_root     string   `json:"attestation1_target_root"`
	Attestation2_beaconblockroot string   `json:"attestation2_beaconblockroot"`
	Attestation2_index           uint64   `json:"attestation2_index"`
	Attestation2_indices         []uint64 `json:"attestation2_indices"`
	Attestation2_signature       string   `json:"attestation2_signature"`
	Attestation2_slot            uint64   `json:"attestation2_slot"`
	Attestation2_source_epoch    uint64   `json:"attestation2_source_epoch"`
	Attestation2_source_root     string   `json:"attestation2_source_root"`
	Attestation2_target_epoch    uint64   `json:"attestation2_target_epoch"`
	Attestation2_target_root     string   `json:"attestation2_target_root"`
	BlockIndex                   uint64   `json:"block_index"`
	BlockRoot                    string   `json:"block_root"`
	BlockSlot                    uint64   `json:"block_slot"`
}

type APIDepositResponse

type APIDepositResponse struct {
	Amount                uint64 `json:"amount"`
	BlockIndex            uint64 `json:"block_index"`
	BlockRoot             string `json:"block_root"`
	BlockSlot             uint64 `json:"block_slot"`
	Proof                 string `json:"proof"`
	Publickey             string `json:"publickey"`
	Signature             string `json:"signature"`
	Withdrawalcredentials string `json:"withdrawalcredentials"`
}

type APIEpochResponse

type APIEpochResponse struct {
	Epoch                   uint64 `json:"epoch"`
	Ts                      uint64 `json:"ts"`
	AttestationsCount       uint64 `json:"attestationscount"`
	AttesterSlashingsCount  uint64 `json:"attesterslashingscount"`
	AverageValidatorBalance uint64 `json:"averagevalidatorbalance"`
	BlocksCount             uint64 `json:"blockscount"`
	DepositsCount           uint64 `json:"depositscount"`
	EligibleEther           uint64 `json:"eligibleether"`
	Finalized               bool   `json:"finalized"`
	GlobalParticipationRate uint64 `json:"globalparticipationrate"`
	MissedBlocks            uint64 `json:"missedblocks"`
	OrphanedBlocks          uint64 `json:"orphanedblocks"`
	ProposedBlocks          uint64 `json:"proposedblocks"`
	ProposerSlashingsCount  uint64 `json:"proposerslashingscount"`
	ScheduledBlocks         uint64 `json:"scheduledblocks"`
	TotalValidatorBalance   uint64 `json:"totalvalidatorbalance"`
	ValidatorsCount         uint64 `json:"validatorscount"`
	VoluntaryExitsCount     uint64 `json:"voluntaryexitscount"`
	VotedEther              uint64 `json:"votedether"`
	RewardsExported         uint64 `json:"rewards_exported"`
	WithdrawalCount         uint64 `json:"withdrawalcount"`
}

type APIEth1AddressBlockResponse

type APIEth1AddressBlockResponse struct {
	ProducedBlocks []Eth1BlockParsed `json:"blocks"`
	Page           string            `json:"page"`
}

type APIEth1AddressItxResponse

type APIEth1AddressItxResponse struct {
	InternalTransactions []Eth1InternalTransactionParsed `json:"internal_transactions"`
	Page                 string                          `json:"page"`
}

type APIEth1AddressTxResponse

type APIEth1AddressTxResponse struct {
	Transactions []Eth1TransactionParsed `json:"transactions"`
	Page         string                  `json:"page"`
}

type APIEth1AddressUncleResponse

type APIEth1AddressUncleResponse struct {
	ProducedUncles []Eth1UncleParsed `json:"uncles"`
	Page           string            `json:"page"`
}

type APIEth1TokenResponse

type APIEth1TokenResponse struct {
	TokenTxs []*Eth1TokenTxParsed `json:"transactions"`
	Page     string               `json:"page"`
}

type APIProposerSlashingResponse

type APIProposerSlashingResponse struct {
	BlockIndex        uint64 `json:"block_index"`
	BlockRoot         string `json:"block_root"`
	BlockSlot         uint64 `json:"block_slot"`
	Header1Bodyroot   string `json:"header1_bodyroot"`
	Header1Parentroot string `json:"header1_parentroot"`
	Header1Signature  string `json:"header1_signature"`
	Header1Slot       uint64 `json:"header1_slot"`
	Header1Stateroot  string `json:"header1_stateroot"`
	Header2Bodyroot   string `json:"header2_bodyroot"`
	Header2Parentroot string `json:"header2_parentroot"`
	Header2Signature  string `json:"header2_signature"`
	Header2Slot       uint64 `json:"header2_slot"`
	Header2Stateroot  string `json:"header2_stateroot"`
	ProposerIndex     uint64 `json:"proposerindex"`
}

type APIRocketpoolStatsResponse

type APIRocketpoolStatsResponse struct {
	ClaimIntervalTime      string  `json:"claim_interval_time"`
	ClaimIntervalTimeStart int64   `json:"claim_interval_time_start"`
	CurrentNodeDemand      float64 `json:"current_node_demand"`
	CurrentNodeFee         float64 `json:"current_node_fee"`
	EffectiveRPLStaked     float64 `json:"effective_rpl_staked"`
	MinipoolCount          int64   `json:"minipool_count"`
	NodeCount              int64   `json:"node_count"`
	NodeOperatorRewards    float64 `json:"node_operator_rewards"`
	OdaoMemberCount        int64   `json:"odao_member_count"`
	RethApr                float64 `json:"reth_apr"`
	RethExchangeRate       float64 `json:"reth_exchange_rate"`
	RethSupply             float64 `json:"reth_supply"`
	RplPrice               int64   `json:"rpl_price"`
	TotalEthBalance        float64 `json:"total_eth_balance"`
	TotalEthStaking        float64 `json:"total_eth_staking"`
}

type APISlotResponse

type APISlotResponse struct {
	Attestationscount          uint64  `json:"attestationscount"`
	Attesterslashingscount     uint64  `json:"attesterslashingscount"`
	Blockroot                  string  `json:"blockroot"`
	Depositscount              uint64  `json:"depositscount"`
	Epoch                      uint64  `json:"epoch"`
	Eth1dataBlockhash          string  `json:"eth1data_blockhash"`
	Eth1dataDepositcount       uint64  `json:"eth1data_depositcount"`
	Eth1dataDepositroot        string  `json:"eth1data_depositroot"`
	ExecBaseFeePerGas          uint64  `json:"exec_base_fee_per_gas" extensions:"x-nullable"`
	ExecBlockHash              string  `json:"exec_block_hash" extensions:"x-nullable"`
	ExecBlockNumber            uint64  `json:"exec_block_number" extensions:"x-nullable"`
	ExecExtraData              string  `json:"exec_extra_data" extensions:"x-nullable"`
	ExecFeeRecipient           string  `json:"exec_fee_recipient" extensions:"x-nullable"`
	ExecGasLimit               uint64  `json:"exec_gas_limit" extensions:"x-nullable"`
	ExecGasUsed                uint64  `json:"exec_gas_used" extensions:"x-nullable"`
	ExecLogsBloom              string  `json:"exec_logs_bloom" extensions:"x-nullable"`
	ExecParentHash             string  `json:"exec_parent_hash" extensions:"x-nullable"`
	ExecRandom                 string  `json:"exec_random" extensions:"x-nullable"`
	ExecReceiptsRoot           string  `json:"exec_receipts_root" extensions:"x-nullable"`
	ExecStateRoot              string  `json:"exec_state_root" extensions:"x-nullable"`
	ExecTimestamp              uint64  `json:"exec_timestamp" extensions:"x-nullable"`
	ExecTransactionsCount      uint64  `json:"exec_transactions_count" extensions:"x-nullable"`
	Graffiti                   string  `json:"graffiti"`
	GraffitiText               string  `json:"graffiti_text"`
	Parentroot                 string  `json:"parentroot"`
	Proposer                   uint64  `json:"proposer"`
	Proposerslashingscount     uint64  `json:"proposerslashingscount"`
	Randaoreveal               string  `json:"randaoreveal"`
	Signature                  string  `json:"signature"`
	Slot                       uint64  `json:"slot"`
	Stateroot                  string  `json:"stateroot"`
	Status                     string  `json:"status"`
	SyncaggregateBits          string  `json:"syncaggregate_bits"`
	SyncaggregateParticipation float64 `json:"syncaggregate_participation"`
	SyncaggregateSignature     string  `json:"syncaggregate_signature"`
	Voluntaryexitscount        uint64  `json:"voluntaryexitscount"`
	WithdrawalCount            uint64  `json:"withdrawalcount"`
}

type APISyncCommitteeResponse

type APISyncCommitteeResponse struct {
	EndEpoch   uint64   `json:"end_epoch"`
	Period     uint64   `json:"period"`
	StartEpoch uint64   `json:"start_epoch"`
	Validators []uint64 `json:"validators"`
}

type APIValidatorResponse

type APIValidatorResponse struct {
	ActivationEligibilityEpoch uint64 `json:"activation_eligibility_epoch"`
	ActivationEpoch            uint64 `json:"activation_epoch"`
	Balance                    uint64 `json:"balance"`
	EffectiveBalance           uint64 `json:"effective_balance"`
	ExitEpoch                  uint64 `json:"exit_epoch"`
	LastAttestationSlot        uint64 `json:"last_attestation_slot"`
	Name                       string `json:"name"`
	Pubkey                     string `json:"pubkey"`
	Slashed                    bool   `json:"slashed"`
	Status                     string `json:"status"`
	ValidatorIndex             uint64 `json:"validator_index"`
	WithdrawableEpoch          uint64 `json:"withdrawable_epoch"`
	WithdrawalCredentials      string `json:"withdrawal_credentials"`
}

type APIVoluntaryExitResponse

type APIVoluntaryExitResponse struct {
	BlockIndex     uint64 `json:"block_index"`
	BlockRoot      string `json:"block_root"`
	BlockSlot      uint64 `json:"block_slot"`
	Epoch          uint64 `json:"epoch"`
	Signature      string `json:"signature"`
	ValidatorIndex uint64 `json:"validatorindex"`
}

type AccessList

type AccessList struct {
	Address     []byte   `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	StorageKeys [][]byte `protobuf:"bytes,2,rep,name=storage_keys,json=storageKeys,proto3" json:"storage_keys,omitempty"`
	// contains filtered or unexported fields
}

func (*AccessList) Descriptor deprecated

func (*AccessList) Descriptor() ([]byte, []int)

Deprecated: Use AccessList.ProtoReflect.Descriptor instead.

func (*AccessList) GetAddress

func (x *AccessList) GetAddress() []byte

func (*AccessList) GetStorageKeys

func (x *AccessList) GetStorageKeys() [][]byte

func (*AccessList) ProtoMessage

func (*AccessList) ProtoMessage()

func (*AccessList) ProtoReflect

func (x *AccessList) ProtoReflect() protoreflect.Message

func (*AccessList) Reset

func (x *AccessList) Reset()

func (*AccessList) String

func (x *AccessList) String() string

type AdConfig

type AdConfig struct {
	Id              string `db:"id"`
	TemplateId      string `db:"template_id"`
	JQuerySelector  string `db:"jquery_selector"`
	InsertMode      string `db:"insert_mode"`
	RefreshInterval uint64 `db:"refresh_interval"`
	Enabled         bool   `db:"enabled"`
	ForAllUsers     bool   `db:"for_all_users"`
	BannerId        uint64 `db:"banner_id"`
	HtmlContent     string `db:"html_content"`
}

AdConfig is a struct to hold the configuration for one specific ad banner placement

type AdConfigurationPageData

type AdConfigurationPageData struct {
	Configurations []*AdConfig
	CsrfField      template.HTML
	New            AdConfig
	TemplateNames  []string
}

type AddValidatorWatchlistModal

type AddValidatorWatchlistModal struct {
	CsrfField       template.HTML
	ValidatorIndex  uint64
	ValidatorPubkey string
	Events          []EventNameCheckbox
}

type AddressIndexOrPubkey

type AddressIndexOrPubkey struct {
	Address []byte
	Index   uint64
	Pubkey  []byte
}

type AdvertiseWithUsPageData

type AdvertiseWithUsPageData struct {
	FlashMessage string
	CsrfField    template.HTML
	RecaptchaKey string
}

type ApiEth1AddressResponse

type ApiEth1AddressResponse struct {
	Address string `json:"address"`
	Ether   string `json:"ether"`
	Tokens  []struct {
		Address  string  `json:"address"`
		Balance  string  `json:"balance"`
		Symbol   string  `json:"symbol"`
		Decimals string  `json:"decimals,omitempty"`
		Price    float64 `json:"price,omitempty"`
		Currency string  `json:"currency,omitempty"`
	} `json:"tokens"`
}

type ApiPricing

type ApiPricing struct {
	FlashMessage string
	User         *User
	CsrfField    template.HTML
	RecaptchaKey string
	Subscription UserSubscription
	StripePK     string
	Sapphire     string
	Emerald      string
	Diamond      string
}

type ApiResponse

type ApiResponse struct {
	Status string      `json:"status"`
	Data   interface{} `json:"data"`
}

type ApiRocketpoolValidatorResponse

type ApiRocketpoolValidatorResponse struct {
	ClaimedSmoothingPool   float64 `json:"claimed_smoothing_pool"`
	Index                  uint64  `json:"index"`
	MinipoolAddress        string  `json:"minipool_address"`
	MinipoolDepositType    string  `json:"minipool_deposit_type"`
	MinipoolNodeFee        float64 `json:"minipool_node_fee"`
	MinipoolStatus         string  `json:"minipool_status"`
	MinipoolStatusTime     uint64  `json:"minipool_status_time"`
	NodeAddress            string  `json:"node_address"`
	NodeMaxRplStake        float64 `json:"node_max_rpl_stake"`
	NodeMinRplStake        float64 `json:"node_min_rpl_stake"`
	NodeRplStake           float64 `json:"node_rpl_stake"`
	NodeTimezoneLocation   string  `json:"node_timezone_location"`
	PenaltyCount           uint64  `json:"penalty_count"`
	RplCumulativeRewards   float64 `json:"rpl_cumulative_rewards"`
	SmoothingPoolOptedIn   bool    `json:"smoothing_pool_opted_in"`
	UnclaimedRplRewards    float64 `json:"unclaimed_rpl_rewards"`
	UnclaimedSmoothingPool float64 `json:"unclaimed_smoothing_pool"`
}

type ApiStatistics

type ApiStatistics struct {
	Daily      *int `db:"daily"`
	Monthly    *int `db:"monthly"`
	MaxDaily   *int
	MaxMonthly *int
}

type ApiValidatorAttestationsResponse

type ApiValidatorAttestationsResponse struct {
	AttesterSlot   uint64    `json:"attesterslot"`
	CommitteeIndex uint64    `json:"committeeindex"`
	Epoch          uint64    `json:"epoch"`
	InclusionSlot  uint64    `json:"inclusionslot"`
	Status         uint64    `json:"status"`
	ValidatorIndex uint64    `json:"validatorindex"`
	Week           uint64    `json:"week"`
	WeekStart      time.Time `json:"week_start"`
	WeekEnd        time.Time `json:"week_end"`
}

type ApiValidatorBalanceHistoryResponse

type ApiValidatorBalanceHistoryResponse struct {
	Balance          uint64    `json:"balance"`
	EffectiveBalance uint64    `json:"effectivebalance"`
	Epoch            uint64    `json:"epoch"`
	Validatorindex   uint64    `json:"validatorindex"`
	Week             uint64    `json:"week"`
	WeekStart        time.Time `json:"week_start"`
	WeekEnd          time.Time `json:"week_end"`
}

type ApiValidatorBlsChangeResponse

type ApiValidatorBlsChangeResponse struct {
	Epoch                    uint64 `db:"epoch" json:"epoch,omitempty"`
	Slot                     uint64 `db:"slot" json:"slot,omitempty"`
	BlockRoot                string `db:"block_rot" json:"blockroot,omitempty"`
	Validatorindex           uint64 `db:"validatorindex" json:"validatorindex,omitempty"`
	BlsPubkey                string `db:"pubkey" json:"bls_pubkey,omitempty"`
	Signature                string `db:"signature" json:"bls_signature,omitempty"`
	Address                  string `db:"address" json:"address,omitempty"`
	WithdrawalCredentialsOld string `db:"withdrawalcredentials_0x00" json:"withdrawalcredentials_0x00,omitempty"`
	WithdrawalCredentialsNew string `db:"withdrawalcredentials_0x01" json:"withdrawalcredentials_0x01,omitempty"`
}

type ApiValidatorDailyStatsResponse

type ApiValidatorDailyStatsResponse struct {
	ValidatorIndex        uint64    `json:"validatorindex"`
	AttesterSlashings     uint64    `json:"attester_slashings"`
	Day                   uint64    `json:"day"`
	DayStart              time.Time `json:"day_start"`
	DayEnd                time.Time `json:"day_end"`
	Deposits              uint64    `json:"deposits"`
	DepositsAmount        uint64    `json:"deposits_amount"`
	Withdrawals           uint64    `json:"withdrawals"`
	WithdrawalsAmount     uint64    `json:"withdrawals_amount"`
	EndBalance            uint64    `json:"end_balance"`
	EndEffectiveBalance   uint64    `json:"end_effective_balance"`
	MaxBalance            uint64    `json:"max_balance"`
	MaxEffectiveBalance   uint64    `json:"max_effective_balance"`
	MinBalance            uint64    `json:"min_balance"`
	MinEffectiveBalance   uint64    `json:"min_effective_balance"`
	MissedAttestations    uint64    `json:"missed_attestations"`
	MissedBlocks          uint64    `json:"missed_blocks"`
	MissedSync            uint64    `json:"missed_sync"`
	OrphanedAttestations  uint64    `json:"orphaned_attestations"`
	OrphanedBlocks        uint64    `json:"orphaned_blocks"`
	OrphanedSync          uint64    `json:"orphaned_sync"`
	ParticipatedSync      uint64    `json:"participated_sync"`
	ProposedBlocks        uint64    `json:"proposed_blocks"`
	ProposerSlashings     uint64    `json:"proposer_slashings"`
	StartBalance          uint64    `json:"start_balance"`
	StartEffectiveBalance uint64    `json:"start_effective_balance"`
}

type ApiValidatorDepositsResponse

type ApiValidatorDepositsResponse struct {
	Amount                uint64 `json:"amount"`
	BlockNumber           uint64 `json:"block_number"`
	BlockTs               uint64 `json:"block_ts"`
	FromAddress           string `json:"from_address"`
	MerkletreeIndex       string `json:"merkletree_index"`
	Publickey             string `json:"publickey"`
	Removed               bool   `json:"removed"`
	Signature             string `json:"signature"`
	TxHash                string `json:"tx_hash"`
	TxIndex               uint64 `json:"tx_index"`
	TxInput               string `json:"tx_input"`
	ValidSignature        bool   `json:"valid_signature"`
	WithdrawalCredentials string `json:"withdrawal_credentials"`
}

type ApiValidatorEth1Response

type ApiValidatorEth1Response struct {
	PublicKey      string `json:"public_key"`
	ValidSignature bool   `json:"valid_signature"`
	ValidatorIndex uint64 `json:"validator_index"`
}

type ApiValidatorExecutionPerformanceResponse

type ApiValidatorExecutionPerformanceResponse struct {
	Performance1d  uint64 `json:"performance1d"`
	Performance7d  uint64 `json:"performance7d"`
	Performance31d uint64 `json:"performance31d"`
	Validatorindex uint64 `json:"validatorindex"`
}

type ApiValidatorIncomeHistoryResponse

type ApiValidatorIncomeHistoryResponse struct {
	Income struct {
		AttestationSourceReward uint64 `json:"attestation_source_reward"`
		AttestationTargetReward uint64 `json:"attestation_target_reward"`
		AttestationHeadReward   uint64 `json:"attestation_head_reward"`
	} `json:"income"`
	Epoch          uint64    `json:"epoch"`
	ValidatorIndex uint64    `json:"validatorindex"`
	Week           uint64    `json:"week"`
	WeekStart      time.Time `json:"week_start"`
	WeekEnd        time.Time `json:"week_end"`
}

type ApiValidatorPerformanceResponse

type ApiValidatorPerformanceResponse struct {
	Balance         uint64 `json:"balance"`
	Performance1d   uint64 `json:"performance1d"`
	Performance31d  uint64 `json:"performance31d"`
	Performance365d uint64 `json:"performance365d"`
	Performance7d   uint64 `json:"performance7d"`
	Rank7d          uint64 `json:"rank7d"`
	Validatorindex  uint64 `json:"validatorindex"`
}

type ApiValidatorProposalsResponse

type ApiValidatorProposalsResponse struct {
	Attestationscount          uint64  `db:"attestationscount" json:"attestationscount"`
	Attesterslashingscount     uint64  `db:"attesterslashingscount" json:"attesterslashingscount"`
	Blockroot                  string  `db:"blockroot" json:"blockroot"`
	Depositscount              uint64  `db:"depositscount" json:"depositscount"`
	Epoch                      uint64  `db:"epoch" json:"epoch"`
	Eth1dataBlockhash          string  `db:"eth1data_blockhash" json:"eth1data_blockhash"`
	Eth1dataDepositcount       uint64  `db:"eth1data_depositcount" json:"eth1data_depositcount"`
	Eth1dataDepositroot        string  `db:"eth1data_depositroot" json:"eth1data_depositroot"`
	ExecBaseFeePerGas          *uint64 `db:"exec_base_fee_per_gas" json:"exec_base_fee_per_gas,omitempty"`
	ExecBlockHash              *string `db:"exec_block_hash" json:"exec_block_hash,omitempty"`
	ExecBlockNumber            *uint64 `db:"exec_block_number" json:"exec_block_number,omitempty"`
	ExecExtra_data             *string `db:"exec_extra_data" json:"exec_extra_data,omitempty"`
	ExecFeeRecipient           *string `db:"exec_fee_recipient" json:"exec_fee_recipient,omitempty"`
	ExecGasLimit               *uint64 `db:"exec_gas_limit" json:"exec_gas_limit,omitempty"`
	ExecGasUsed                *uint64 `db:"exec_gas_used" json:"exec_gas_used,omitempty"`
	ExecLogsBloom              *string `db:"exec_logs_bloom" json:"exec_logs_bloom,omitempty"`
	ExecParentHash             *string `db:"exec_parent_hash" json:"exec_parent_hash,omitempty"`
	ExecRandom                 *string `db:"exec_random" json:"exec_random,omitempty"`
	ExecReceiptsRoot           *string `db:"exec_receipts_root" json:"exec_receipts_root,omitempty"`
	ExecStateRoot              *string `db:"exec_state_root" json:"exec_state_root,omitempty"`
	ExecTimestamp              *uint64 `db:"exec_timestamp" json:"exec_timestamp,omitempty"`
	ExecTransactionsCount      *uint64 `db:"exec_transactions_count" json:"exec_transactions_count,omitempty"`
	Graffiti                   string  `db:"graffiti" json:"graffiti"`
	GraffitiText               string  `db:"graffiti_text" json:"graffiti_text"`
	Parentroot                 string  `db:"parentroot" json:"parentroot"`
	Proposer                   uint64  `db:"proposer" json:"proposer"`
	Proposerslashingscount     uint64  `db:"proposerslashingscount" json:"proposerslashingscount"`
	Randaoreveal               string  `db:"randaoreveal" json:"randaoreveal"`
	Signature                  string  `db:"signature" json:"signature"`
	Slot                       uint64  `db:"slot" json:"slot"`
	Stateroot                  string  `db:"stateroot" json:"stateroot"`
	Status                     string  `db:"status" json:"status"`
	SyncaggregateBits          string  `db:"syncaggregate_bits" json:"syncaggregate_bits"`
	SyncaggregateParticipation float64 `db:"syncaggregate_participation" json:"syncaggregate_participation"`
	SyncaggregateSignature     string  `db:"syncaggregate_signature" json:"syncaggregate_signature"`
	Voluntaryexitscount        uint64  `db:"voluntaryexitscount" json:"voluntaryexitscount"`
}

convert this json object to a golang struct called ApiValidatorProposalsResponse

type ApiValidatorQueueResponse

type ApiValidatorQueueResponse struct {
	BeaconchainEntering uint64 `json:"beaconchain_entering"`
	BeaconchainExiting  uint64 `json:"beaconchain_exiting"`
	ValidatorsCount     uint64 `json:"validators_count"`
}

type ApiValidatorWithdrawalResponse

type ApiValidatorWithdrawalResponse struct {
	Epoch          uint64 `json:"epoch,omitempty"`
	Slot           uint64 `json:"slot,omitempty"`
	BlockRoot      string `json:"blockroot,omitempty"`
	Index          uint64 `json:"withdrawalindex"`
	ValidatorIndex uint64 `json:"validatorindex"`
	Address        string `json:"address"`
	Amount         uint64 `json:"amount"`
}

type ApiWithdrawalCredentialsResponse

type ApiWithdrawalCredentialsResponse struct {
	Publickey      string `json:"publickey"`
	ValidatorIndex uint64 `json:"validatorindex"`
}

type Attestation

type Attestation struct {
	AggregationBits []byte
	Attesters       []uint64
	Data            *AttestationData
	Signature       []byte
}

Attestation is a struct to hold attestation header data

type AttestationData

type AttestationData struct {
	Slot            uint64
	CommitteeIndex  uint64
	BeaconBlockRoot []byte
	Source          *Checkpoint
	Target          *Checkpoint
}

AttestationData to hold attestation detail data

type AttesterSlashing

type AttesterSlashing struct {
	Attestation1 *IndexedAttestation
	Attestation2 *IndexedAttestation
}

AttesterSlashing is a struct to hold attester slashing

type AuthData

type AuthData struct {
	Flashes      []interface{}
	Email        string
	State        string
	RecaptchaKey string
	CsrfField    template.HTML
}

type BLSChange

type BLSChange struct {
	Slot           uint64 `db:"slot" json:"slot,omitempty"`
	BlockRoot      []byte `db:"block_rot" json:"blockroot,omitempty"`
	Validatorindex uint64 `db:"validatorindex" json:"validatorindex,omitempty"`
	BlsPubkey      []byte `db:"pubkey" json:"pubkey,omitempty"`
	Address        []byte `db:"address" json:"address,omitempty"`
	Signature      []byte `db:"signature" json:"signature,omitempty"`
}

type BLSToExecutionChange

type BLSToExecutionChange struct {
	Validatorindex uint64
	BlsPubkey      []byte
	Address        []byte
}

type BeaconCommitteItem

type BeaconCommitteItem struct {
	ValidatorIndices []uint64
}

BeaconCommitteItem is a struct to hold beacon committee data

type Block

type Block struct {
	Status                     uint64
	Proposer                   uint64
	BlockRoot                  []byte
	Slot                       uint64
	ParentRoot                 []byte
	StateRoot                  []byte
	Signature                  []byte
	RandaoReveal               []byte
	Graffiti                   []byte
	Eth1Data                   *Eth1Data
	BodyRoot                   []byte
	ProposerSlashings          []*ProposerSlashing
	AttesterSlashings          []*AttesterSlashing
	Attestations               []*Attestation
	Deposits                   []*Deposit
	VoluntaryExits             []*VoluntaryExit
	SyncAggregate              *SyncAggregate    // warning: sync aggregate may be nil, for phase0 blocks
	ExecutionPayload           *ExecutionPayload // warning: payload may be nil, for phase0/altair blocks
	Canonical                  bool
	SignedBLSToExecutionChange []*SignedBLSToExecutionChange
}

Block is a struct to hold block data

type BlockComparisonContainer

type BlockComparisonContainer struct {
	Epoch uint64
	Db    *MinimalBlock
	Node  *MinimalBlock
}

BlockComparisonContainer is a struct to hold block comparison data

type BlockContainer

type BlockContainer struct {
	Status   uint64
	Proposer uint64

	Block *ethpb.BeaconBlockContainer
}

BlockContainer is a struct to hold block container data

type BlockPageAttestation

type BlockPageAttestation struct {
	BlockSlot       uint64        `db:"block_slot"`
	BlockIndex      uint64        `db:"block_index"`
	AggregationBits []byte        `db:"aggregationbits"`
	Validators      pq.Int64Array `db:"validators"`
	Signature       []byte        `db:"signature"`
	Slot            uint64        `db:"slot"`
	CommitteeIndex  uint64        `db:"committeeindex"`
	BeaconBlockRoot []byte        `db:"beaconblockroot"`
	SourceEpoch     uint64        `db:"source_epoch"`
	SourceRoot      []byte        `db:"source_root"`
	TargetEpoch     uint64        `db:"target_epoch"`
	TargetRoot      []byte        `db:"target_root"`
}

BlockPageAttestation is a struct to hold attestations on the block page

type BlockPageAttesterSlashing

type BlockPageAttesterSlashing struct {
	BlockSlot                   uint64        `db:"block_slot"`
	BlockIndex                  uint64        `db:"block_index"`
	Attestation1Indices         pq.Int64Array `db:"attestation1_indices"`
	Attestation1Signature       []byte        `db:"attestation1_signature"`
	Attestation1Slot            uint64        `db:"attestation1_slot"`
	Attestation1Index           uint64        `db:"attestation1_index"`
	Attestation1BeaconBlockRoot []byte        `db:"attestation1_beaconblockroot"`
	Attestation1SourceEpoch     uint64        `db:"attestation1_source_epoch"`
	Attestation1SourceRoot      []byte        `db:"attestation1_source_root"`
	Attestation1TargetEpoch     uint64        `db:"attestation1_target_epoch"`
	Attestation1TargetRoot      []byte        `db:"attestation1_target_root"`
	Attestation2Indices         pq.Int64Array `db:"attestation2_indices"`
	Attestation2Signature       []byte        `db:"attestation2_signature"`
	Attestation2Slot            uint64        `db:"attestation2_slot"`
	Attestation2Index           uint64        `db:"attestation2_index"`
	Attestation2BeaconBlockRoot []byte        `db:"attestation2_beaconblockroot"`
	Attestation2SourceEpoch     uint64        `db:"attestation2_source_epoch"`
	Attestation2SourceRoot      []byte        `db:"attestation2_source_root"`
	Attestation2TargetEpoch     uint64        `db:"attestation2_target_epoch"`
	Attestation2TargetRoot      []byte        `db:"attestation2_target_root"`
	SlashedValidators           []int64
}

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

type BlockPageData

type BlockPageData struct {
	Epoch                  uint64  `db:"epoch"`
	EpochFinalized         bool    `db:"epoch_finalized"`
	EpochParticipationRate float64 `db:"epoch_participation_rate"`
	Slot                   uint64  `db:"slot"`
	Ts                     time.Time
	NextSlot               uint64
	PreviousSlot           uint64
	Proposer               uint64  `db:"proposer"`
	Status                 uint64  `db:"status"`
	BlockRoot              []byte  `db:"blockroot"`
	ParentRoot             []byte  `db:"parentroot"`
	StateRoot              []byte  `db:"stateroot"`
	Signature              []byte  `db:"signature"`
	RandaoReveal           []byte  `db:"randaoreveal"`
	Graffiti               []byte  `db:"graffiti"`
	ProposerName           string  `db:"name"`
	Eth1dataDepositroot    []byte  `db:"eth1data_depositroot"`
	Eth1dataDepositcount   uint64  `db:"eth1data_depositcount"`
	Eth1dataBlockhash      []byte  `db:"eth1data_blockhash"`
	SyncAggregateBits      []byte  `db:"syncaggregate_bits"`
	SyncAggregateSignature []byte  `db:"syncaggregate_signature"`
	SyncAggParticipation   float64 `db:"syncaggregate_participation"`
	ProposerSlashingsCount uint64  `db:"proposerslashingscount"`
	AttesterSlashingsCount uint64  `db:"attesterslashingscount"`
	AttestationsCount      uint64  `db:"attestationscount"`
	DepositsCount          uint64  `db:"depositscount"`
	WithdrawalCount        uint64  `db:"withdrawalcount"`
	BLSChangeCount         uint64  `db:"bls_change_count"`
	VoluntaryExitscount    uint64  `db:"voluntaryexitscount"`
	SlashingsCount         uint64
	VotesCount             uint64
	VotingValidatorsCount  uint64
	Mainnet                bool

	ExecParentHash        []byte        `db:"exec_parent_hash"`
	ExecFeeRecipient      []byte        `db:"exec_fee_recipient"`
	ExecStateRoot         []byte        `db:"exec_state_root"`
	ExecReceiptsRoot      []byte        `db:"exec_receipts_root"`
	ExecLogsBloom         []byte        `db:"exec_logs_bloom"`
	ExecRandom            []byte        `db:"exec_random"`
	ExecBlockNumber       sql.NullInt64 `db:"exec_block_number"`
	ExecGasLimit          sql.NullInt64 `db:"exec_gas_limit"`
	ExecGasUsed           sql.NullInt64 `db:"exec_gas_used"`
	ExecTimestamp         sql.NullInt64 `db:"exec_timestamp"`
	ExecTime              time.Time
	ExecExtraData         []byte        `db:"exec_extra_data"`
	ExecBaseFeePerGas     sql.NullInt64 `db:"exec_base_fee_per_gas"`
	ExecBlockHash         []byte        `db:"exec_block_hash"`
	ExecTransactionsCount uint64        `db:"exec_transactions_count"`

	Transactions []*BlockPageTransaction

	Withdrawals []*Withdrawals

	ExecutionData *Eth1BlockPageData

	Attestations      []*BlockPageAttestation // Attestations included in this block
	VoluntaryExits    []*BlockPageVoluntaryExits
	Votes             []*BlockVote // Attestations that voted for that block
	AttesterSlashings []*BlockPageAttesterSlashing
	ProposerSlashings []*BlockPageProposerSlashing
	SyncCommittee     []uint64 // TODO: Setting it to contain the validator index

	Tags       TagMetadataSlice `db:"tags"`
	IsValidMev bool             `db:"is_valid_mev"`
}

BlockPageData is a struct block data used in the block page

func (*BlockPageData) MarshalJSON

func (u *BlockPageData) MarshalJSON() ([]byte, error)

type BlockPageDeposit

type BlockPageDeposit struct {
	PublicKey             []byte `db:"publickey"`
	WithdrawalCredentials []byte `db:"withdrawalcredentials"`
	Amount                uint64 `db:"amount"`
	Signature             []byte `db:"signature"`
}

BlockPageDeposit is a struct to hold data for deposits on the block page

type BlockPageMinMaxSlot

type BlockPageMinMaxSlot struct {
	MinSlot uint64
	MaxSlot uint64
}

BlockPageMinMaxSlot is a struct to hold min/max slot data

type BlockPageProposerSlashing

type BlockPageProposerSlashing struct {
	BlockSlot         uint64 `db:"block_slot"`
	BlockIndex        uint64 `db:"block_index"`
	BlockRoot         []byte `db:"block_root" json:"block_root"`
	ProposerIndex     uint64 `db:"proposerindex"`
	Header1Slot       uint64 `db:"header1_slot"`
	Header1ParentRoot []byte `db:"header1_parentroot"`
	Header1StateRoot  []byte `db:"header1_stateroot"`
	Header1BodyRoot   []byte `db:"header1_bodyroot"`
	Header1Signature  []byte `db:"header1_signature"`
	Header2Slot       uint64 `db:"header2_slot"`
	Header2ParentRoot []byte `db:"header2_parentroot"`
	Header2StateRoot  []byte `db:"header2_stateroot"`
	Header2BodyRoot   []byte `db:"header2_bodyroot"`
	Header2Signature  []byte `db:"header2_signature"`
}

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

type BlockPageTransaction

type BlockPageTransaction struct {
	BlockSlot    uint64 `db:"block_slot"`
	BlockIndex   uint64 `db:"block_index"`
	TxHash       []byte `db:"txhash"`
	AccountNonce uint64 `db:"nonce"`
	// big endian
	Price       []byte `db:"gas_price"`
	PricePretty string
	GasLimit    uint64 `db:"gas_limit"`
	Sender      []byte `db:"sender"`
	Recipient   []byte `db:"recipient"`
	// big endian
	Amount       []byte `db:"amount"`
	AmountPretty string
	Payload      []byte `db:"payload"`

	MaxPriorityFeePerGas uint64 `db:"max_priority_fee_per_gas"`
	MaxFeePerGas         uint64 `db:"max_fee_per_gas"`
}

BlockPageTransaction is a struct to hold execution transactions on the block page

type BlockPageVoluntaryExits

type BlockPageVoluntaryExits struct {
	ValidatorIndex uint64 `db:"validatorindex"`
	Signature      []byte `db:"signature"`
}

BlockPageVoluntaryExits is a struct to hold data for voluntary exits on the block page

type BlockTag

type BlockTag struct {
	ID        string `db:"tag_id"`
	BlockSlot uint64 `db:"slot"`
	BlockRoot string `db:"blockroot"`
}

type BlockVote

type BlockVote struct {
	Validator      uint64 `db:"validator"`
	IncludedIn     uint64 `db:"included_in"`
	CommitteeIndex uint64 `db:"committee_index"`
}

BlockVote stores a vote for a given block

type BlocksPageDataBlocks

type BlocksPageDataBlocks struct {
	TotalCount           uint64        `db:"total_count"`
	Epoch                uint64        `json:"epoch"`
	Slot                 uint64        `json:"slot"`
	Ts                   time.Time     `json:"ts"`
	Proposer             uint64        `db:"proposer" json:"proposer"`
	ProposerFormatted    template.HTML `json:"proposer_formatted"`
	BlockRoot            []byte        `db:"blockroot" json:"block_root"`
	BlockRootFormatted   string        `json:"block_root_formatted"`
	ParentRoot           []byte        `db:"parentroot" json:"parent_root"`
	Attestations         uint64        `db:"attestationscount" json:"attestations"`
	Deposits             uint64        `db:"depositscount" json:"deposits"`
	Withdrawals          uint64        `db:"withdrawalcount" json:"withdrawals"`
	Exits                uint64        `db:"voluntaryexitscount" json:"exits"`
	Proposerslashings    uint64        `db:"proposerslashingscount" json:"proposerslashings"`
	Attesterslashings    uint64        `db:"attesterslashingscount" json:"attesterslashings"`
	SyncAggParticipation float64       `db:"syncaggregate_participation" json:"sync_aggregate_participation"`
	Status               uint64        `db:"status" json:"status"`
	StatusFormatted      template.HTML `json:"status_formatted"`
	Votes                uint64        `db:"votes" json:"votes"`
	Graffiti             []byte        `db:"graffiti"`
	ProposerName         string        `db:"name"`
}

IndexPageDataBlocks is a struct to hold detail data for the main web page

type BroadcastPageData

type BroadcastPageData struct {
	Stats        *Stats
	FlashMessage string
	CaptchaId    string
	CsrfField    template.HTML
	RecaptchaKey string
}

type BroadcastStatusPageData

type BroadcastStatusPageData struct {
	Job          *NodeJob
	JobTypeLabel string
	JobTitle     string
	JobJson      string
	Validators   *[]NodeJobValidatorInfo
}

type BulkMutations

type BulkMutations struct {
	Keys []string
	Muts []*gcp_bigtable.Mutation
}

type BurnPageData

type BurnPageData struct {
	TotalBurned      float64              `json:"total_burned"`
	Blocks           []*BurnPageDataBlock `json:"blocks"`
	BaseFeeTrend     int                  `json:"base_fee_trend"`
	BurnRate1h       float64              `json:"burn_rate_1_h"`
	BurnRate24h      float64              `json:"burn_rate_24_h"`
	BlockUtilization float64              `json:"block_utilization"`
	Emission         float64              `json:"emission"`
	Price            float64              `json:"price_usd"`
	Currency         string               `json:"currency"`
}

type BurnPageDataBlock

type BurnPageDataBlock struct {
	Number        int64     `json:"number"`
	Hash          string    `json:"hash"`
	GasTarget     int64     `json:"gas_target" db:"gaslimit"`
	GasUsed       int64     `json:"gas_used" db:"gasused"`
	Rewards       float64   `json:"mining_reward" db:"miningreward"`
	Txn           int       `json:"tx_count" db:"tx_count"`
	Age           time.Time `json:"time" db:"time"`
	BaseFeePerGas float64   `json:"base_fee_per_gas" db:"basefeepergas"`
	BurnedFees    float64   `json:"burned_fees" db:"burnedfees"`
}

type CanonBlock

type CanonBlock struct {
	BlockRoot []byte `db:"blockroot"`
	Slot      uint64 `db:"slot"`
	Canonical bool   `db:"-"`
}

CanonBlock is a struct to hold canon block data

type ChainConfig

type ChainConfig struct {
	PresetBase                       string `yaml:"PRESET_BASE"`
	ConfigName                       string `yaml:"CONFIG_NAME"`
	TerminalTotalDifficulty          string `yaml:"TERMINAL_TOTAL_DIFFICULTY"`
	TerminalBlockHash                string `yaml:"TERMINAL_BLOCK_HASH"`
	TerminalBlockHashActivationEpoch uint64 `yaml:"TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH"`
	MinGenesisActiveValidatorCount   uint64 `yaml:"MIN_GENESIS_ACTIVE_VALIDATOR_COUNT"`
	MinGenesisTime                   int64  `yaml:"MIN_GENESIS_TIME"`
	GenesisForkVersion               string `yaml:"GENESIS_FORK_VERSION"`
	GenesisDelay                     uint64 `yaml:"GENESIS_DELAY"`
	AltairForkVersion                string `yaml:"ALTAIR_FORK_VERSION"`
	AltairForkEpoch                  uint64 `yaml:"ALTAIR_FORK_EPOCH"`
	BellatrixForkVersion             string `yaml:"BELLATRIX_FORK_VERSION"`
	BellatrixForkEpoch               uint64 `yaml:"BELLATRIX_FORK_EPOCH"`
	CappellaForkVersion              string `yaml:"CAPELLA_FORK_VERSION"`
	CappellaForkEpoch                uint64 `yaml:"CAPELLA_FORK_EPOCH"`
	DenebForkVersion                 string `yaml:"DENEB_FORK_VERSION"`
	DenebForkEpoch                   uint64 `yaml:"DENEB_FORK_EPOCH"`
	ShardingForkVersion              string `yaml:"SHARDING_FORK_VERSION"`
	ShardingForkEpoch                uint64 `yaml:"SHARDING_FORK_EPOCH"`
	SecondsPerSlot                   uint64 `yaml:"SECONDS_PER_SLOT"`
	SecondsPerEth1Block              uint64 `yaml:"SECONDS_PER_ETH1_BLOCK"`
	MinValidatorWithdrawabilityDelay uint64 `yaml:"MIN_VALIDATOR_WITHDRAWABILITY_DELAY"`
	ShardCommitteePeriod             uint64 `yaml:"SHARD_COMMITTEE_PERIOD"`
	Eth1FollowDistance               uint64 `yaml:"ETH1_FOLLOW_DISTANCE"`
	InactivityScoreBias              uint64 `yaml:"INACTIVITY_SCORE_BIAS"`
	InactivityScoreRecoveryRate      uint64 `yaml:"INACTIVITY_SCORE_RECOVERY_RATE"`
	EjectionBalance                  uint64 `yaml:"EJECTION_BALANCE"`
	MinPerEpochChurnLimit            uint64 `yaml:"MIN_PER_EPOCH_CHURN_LIMIT"`
	ChurnLimitQuotient               uint64 `yaml:"CHURN_LIMIT_QUOTIENT"`
	ProposerScoreBoost               uint64 `yaml:"PROPOSER_SCORE_BOOST"`
	DepositChainID                   uint64 `yaml:"DEPOSIT_CHAIN_ID"`
	DepositNetworkID                 uint64 `yaml:"DEPOSIT_NETWORK_ID"`
	DepositContractAddress           string `yaml:"DEPOSIT_CONTRACT_ADDRESS"`

	// phase0
	// https://github.com/ethereum/consensus-specs/blob/dev/presets/mainnet/phase0.yaml
	MaxCommitteesPerSlot           uint64 `yaml:"MAX_COMMITTEES_PER_SLOT"`
	TargetCommitteeSize            uint64 `yaml:"TARGET_COMMITTEE_SIZE"`
	MaxValidatorsPerCommittee      uint64 `yaml:"MAX_VALIDATORS_PER_COMMITTEE"`
	ShuffleRoundCount              uint64 `yaml:"SHUFFLE_ROUND_COUNT"`
	HysteresisQuotient             uint64 `yaml:"HYSTERESIS_QUOTIENT"`
	HysteresisDownwardMultiplier   uint64 `yaml:"HYSTERESIS_DOWNWARD_MULTIPLIER"`
	HysteresisUpwardMultiplier     uint64 `yaml:"HYSTERESIS_UPWARD_MULTIPLIER"`
	SafeSlotsToUpdateJustified     uint64 `yaml:"SAFE_SLOTS_TO_UPDATE_JUSTIFIED"`
	MinDepositAmount               uint64 `yaml:"MIN_DEPOSIT_AMOUNT"`
	MaxEffectiveBalance            uint64 `yaml:"MAX_EFFECTIVE_BALANCE"`
	EffectiveBalanceIncrement      uint64 `yaml:"EFFECTIVE_BALANCE_INCREMENT"`
	MinAttestationInclusionDelay   uint64 `yaml:"MIN_ATTESTATION_INCLUSION_DELAY"`
	SlotsPerEpoch                  uint64 `yaml:"SLOTS_PER_EPOCH"`
	MinSeedLookahead               uint64 `yaml:"MIN_SEED_LOOKAHEAD"`
	MaxSeedLookahead               uint64 `yaml:"MAX_SEED_LOOKAHEAD"`
	EpochsPerEth1VotingPeriod      uint64 `yaml:"EPOCHS_PER_ETH1_VOTING_PERIOD"`
	SlotsPerHistoricalRoot         uint64 `yaml:"SLOTS_PER_HISTORICAL_ROOT"`
	MinEpochsToInactivityPenalty   uint64 `yaml:"MIN_EPOCHS_TO_INACTIVITY_PENALTY"`
	EpochsPerHistoricalVector      uint64 `yaml:"EPOCHS_PER_HISTORICAL_VECTOR"`
	EpochsPerSlashingsVector       uint64 `yaml:"EPOCHS_PER_SLASHINGS_VECTOR"`
	HistoricalRootsLimit           uint64 `yaml:"HISTORICAL_ROOTS_LIMIT"`
	ValidatorRegistryLimit         uint64 `yaml:"VALIDATOR_REGISTRY_LIMIT"`
	BaseRewardFactor               uint64 `yaml:"BASE_REWARD_FACTOR"`
	WhistleblowerRewardQuotient    uint64 `yaml:"WHISTLEBLOWER_REWARD_QUOTIENT"`
	ProposerRewardQuotient         uint64 `yaml:"PROPOSER_REWARD_QUOTIENT"`
	InactivityPenaltyQuotient      uint64 `yaml:"INACTIVITY_PENALTY_QUOTIENT"`
	MinSlashingPenaltyQuotient     uint64 `yaml:"MIN_SLASHING_PENALTY_QUOTIENT"`
	ProportionalSlashingMultiplier uint64 `yaml:"PROPORTIONAL_SLASHING_MULTIPLIER"`
	MaxProposerSlashings           uint64 `yaml:"MAX_PROPOSER_SLASHINGS"`
	MaxAttesterSlashings           uint64 `yaml:"MAX_ATTESTER_SLASHINGS"`
	MaxAttestations                uint64 `yaml:"MAX_ATTESTATIONS"`
	MaxDeposits                    uint64 `yaml:"MAX_DEPOSITS"`
	MaxVoluntaryExits              uint64 `yaml:"MAX_VOLUNTARY_EXITS"`

	// altair
	// https://github.com/ethereum/consensus-specs/blob/dev/presets/mainnet/altair.yaml
	InvactivityPenaltyQuotientAltair     uint64 `yaml:"INACTIVITY_PENALTY_QUOTIENT_ALTAIR"`
	MinSlashingPenaltyQuotientAltair     uint64 `yaml:"MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR"`
	ProportionalSlashingMultiplierAltair uint64 `yaml:"PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR"`
	SyncCommitteeSize                    uint64 `yaml:"SYNC_COMMITTEE_SIZE"`
	EpochsPerSyncCommitteePeriod         uint64 `yaml:"EPOCHS_PER_SYNC_COMMITTEE_PERIOD"`
	MinSyncCommitteeParticipants         uint64 `yaml:"MIN_SYNC_COMMITTEE_PARTICIPANTS"`

	// bellatrix
	// https://github.com/ethereum/consensus-specs/blob/dev/presets/mainnet/bellatrix.yaml
	InvactivityPenaltyQuotientBellatrix     uint64 `yaml:"INACTIVITY_PENALTY_QUOTIENT_BELLATRIX"`
	MinSlashingPenaltyQuotientBellatrix     uint64 `yaml:"MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX"`
	ProportionalSlashingMultiplierBellatrix uint64 `yaml:"PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX"`
	MaxBytesPerTransaction                  uint64 `yaml:"MAX_BYTES_PER_TRANSACTION"`
	MaxTransactionsPerPayload               uint64 `yaml:"MAX_TRANSACTIONS_PER_PAYLOAD"`
	BytesPerLogsBloom                       uint64 `yaml:"BYTES_PER_LOGS_BLOOM"`
	MaxExtraDataBytes                       uint64 `yaml:"MAX_EXTRA_DATA_BYTES"`

	// capella
	// https://github.com/ethereum/consensus-specs/blob/dev/presets/minimal/capella.yaml
	MaxWithdrawalsPerPayload        uint64 `yaml:"MAX_WITHDRAWALS_PER_PAYLOAD"`
	MaxValidatorsPerWithdrawalSweep uint64 `yaml:"MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP"`
	MaxBlsToExecutionChange         uint64 `yaml:"MAX_BLS_TO_EXECUTION_CHANGES"`
}

https://github.com/ethereum/consensus-specs/blob/dev/configs/mainnet.yaml

type ChainHead

type ChainHead struct {
	HeadSlot                   uint64
	HeadEpoch                  uint64
	HeadBlockRoot              []byte
	FinalizedSlot              uint64
	FinalizedEpoch             uint64
	FinalizedBlockRoot         []byte
	JustifiedSlot              uint64
	JustifiedEpoch             uint64
	JustifiedBlockRoot         []byte
	PreviousJustifiedSlot      uint64
	PreviousJustifiedEpoch     uint64
	PreviousJustifiedBlockRoot []byte
}

ChainHead is a struct to hold chain head data

type ChangeWithdrawalCredentialsPageData

type ChangeWithdrawalCredentialsPageData struct {
	FlashMessage string
	CsrfField    template.HTML
	RecaptchaKey string
}

type ChartDataPoint

type ChartDataPoint struct {
	X     float64 `json:"x"`
	Y     float64 `json:"y"`
	Color string  `json:"color"`
}

type ChartsPageData

type ChartsPageData []*ChartsPageDataChart

ChartsPageData is an array to hold charts for the charts-page

type ChartsPageDataChart

type ChartsPageDataChart struct {
	Order  int
	Path   string
	Data   *GenericChartData
	Height int
}

ChartsPageDataChart is a struct to hold a chart for the charts-page

type Checkpoint

type Checkpoint struct {
	Epoch uint64
	Root  []byte
}

Checkpoint is a struct to hold checkpoint data

type ClElFloat64

type ClElFloat64 struct {
	El    float64
	Cl    float64
	Total float64
}

type ClElInt64

type ClElInt64 struct {
	El    int64
	Cl    int64
	Total int64
}

type Config

type Config struct {
	ReaderDatabase struct {
		Username string `yaml:"user" envconfig:"READER_DB_USERNAME"`
		Password string `yaml:"password" envconfig:"READER_DB_PASSWORD"`
		Name     string `yaml:"name" envconfig:"READER_DB_NAME"`
		Host     string `yaml:"host" envconfig:"READER_DB_HOST"`
		Port     string `yaml:"port" envconfig:"READER_DB_PORT"`
	} `yaml:"readerDatabase"`
	WriterDatabase struct {
		Username string `yaml:"user" envconfig:"WRITER_DB_USERNAME"`
		Password string `yaml:"password" envconfig:"WRITER_DB_PASSWORD"`
		Name     string `yaml:"name" envconfig:"WRITER_DB_NAME"`
		Host     string `yaml:"host" envconfig:"WRITER_DB_HOST"`
		Port     string `yaml:"port" envconfig:"WRITER_DB_PORT"`
	} `yaml:"writerDatabase"`
	Bigtable struct {
		Project  string `yaml:"project" envconfig:"BIGTABLE_PROJECT"`
		Instance string `yaml:"instance" envconfig:"BIGTABLE_INSTANCE"`
	} `yaml:"bigtable"`
	LastAttestationCachePath string `yaml:"lastAttestationCachePath" envconfig:"LAST_ATTESTATION_CACHE_PATH"`
	Chain                    struct {
		Name                       string `yaml:"name" envconfig:"CHAIN_NAME"`
		GenesisTimestamp           uint64 `yaml:"genesisTimestamp" envconfig:"CHAIN_GENESIS_TIMESTAMP"`
		GenesisValidatorsRoot      string `yaml:"genesisValidatorsRoot" envconfig:"CHAIN_GENESIS_VALIDATORS_ROOT"`
		DomainBLSToExecutionChange string `yaml:"domainBLSToExecutionChange" envconfig:"CHAIN_DOMAIN_BLS_TO_EXECUTION_CHANGE"`
		DomainVoluntaryExit        string `yaml:"domainVoluntaryExit" envconfig:"CHAIN_DOMAIN_VOLUNTARY_EXIT"`
		ConfigPath                 string `yaml:"configPath" envconfig:"CHAIN_CONFIG_PATH"`
		Config                     ChainConfig
	} `yaml:"chain"`
	Eth1ErigonEndpoint  string `yaml:"eth1ErigonEndpoint" envconfig:"ETH1_ERIGON_ENDPOINT"`
	Eth1GethEndpoint    string `yaml:"eth1GethEndpoint" envconfig:"ETH1_GETH_ENDPOINT"`
	EtherscanAPIKey     string `yaml:"etherscanApiKey" envconfig:"ETHERSCAN_API_KEY"`
	RedisCacheEndpoint  string `yaml:"redisCacheEndpoint" envconfig:"REDIS_CACHE_ENDPOINT"`
	TieredCacheProvider string `yaml:"tieredCacheProvider" envconfig:"CACHE_PROVIDER"`
	ReportServiceStatus bool   `yaml:"reportServiceStatus" envconfig:"REPORT_SERVICE_STATUS"`
	Indexer             struct {
		Enabled                     bool `yaml:"enabled" envconfig:"INDEXER_ENABLED"`
		FixCanonOnStartup           bool `yaml:"fixCanonOnStartup" envconfig:"INDEXER_FIX_CANON_ON_STARTUP"`
		FullIndexOnStartup          bool `yaml:"fullIndexOnStartup" envconfig:"INDEXER_FULL_INDEX_ON_STARTUP"`
		IndexMissingEpochsOnStartup bool `yaml:"indexMissingEpochsOnStartup" envconfig:"INDEXER_MISSING_INDEX_ON_STARTUP"`
		CheckAllBlocksOnStartup     bool `yaml:"checkAllBlocksOnStartup" envconfig:"INDEXER_CHECK_ALL_BLOCKS_ON_STARTUP"`
		UpdateAllEpochStatistics    bool `yaml:"updateAllEpochStatistics" envconfig:"INDEXER_UPDATE_ALL_EPOCH_STATISTICS"`
		Node                        struct {
			Port     string `yaml:"port" envconfig:"INDEXER_NODE_PORT"`
			Host     string `yaml:"host" envconfig:"INDEXER_NODE_HOST"`
			Type     string `yaml:"type" envconfig:"INDEXER_NODE_TYPE"`
			PageSize int32  `yaml:"pageSize" envconfig:"INDEXER_NODE_PAGE_SIZE"`
		} `yaml:"node"`
		// Deprecated Please use Phase0 config DEPOSIT_CONTRACT_ADDRESS
		Eth1DepositContractAddress    string `yaml:"eth1DepositContractAddress" envconfig:"INDEXER_ETH1_DEPOSIT_CONTRACT_ADDRESS"`
		Eth1DepositContractFirstBlock uint64 `yaml:"eth1DepositContractFirstBlock" envconfig:"INDEXER_ETH1_DEPOSIT_CONTRACT_FIRST_BLOCK"`
		OneTimeExport                 struct {
			Enabled    bool     `yaml:"enabled" envconfig:"INDEXER_ONETIMEEXPORT_ENABLED"`
			StartEpoch uint64   `yaml:"startEpoch" envconfig:"INDEXER_ONETIMEEXPORT_START_EPOCH"`
			EndEpoch   uint64   `yaml:"endEpoch" envconfig:"INDEXER_ONETIMEEXPORT_END_EPOCH"`
			Epochs     []uint64 `yaml:"epochs" envconfig:"INDEXER_ONETIMEEXPORT_EPOCHS"`
		} `yaml:"onetimeexport"`
		PubKeyTagsExporter struct {
			Enabled bool `yaml:"enabled" envconfig:"PUBKEY_TAGS_EXPORTER_ENABLED"`
		} `yaml:"pubkeyTagsExporter"`
	} `yaml:"indexer"`
	Frontend struct {
		Debug                          bool   `yaml:"debug" envconfig:"FRONTEND_DEBUG"`
		BeaconchainETHPoolBridgeSecret string `yaml:"beaconchainETHPoolBridgeSecret" envconfig:"FRONTEND_BEACONCHAIN_ETHPOOL_BRIDGE_SECRET"`
		Kong                           string `yaml:"kong" envconfig:"FRONTEND_KONG"`
		OnlyAPI                        bool   `yaml:"onlyAPI" envconfig:"FRONTEND_ONLY_API"`
		CsrfAuthKey                    string `yaml:"csrfAuthKey" envconfig:"FRONTEND_CSRF_AUTHKEY"`
		CsrfInsecure                   bool   `yaml:"csrfInsecure" envconfig:"FRONTEND_CSRF_INSECURE"`
		DisableCharts                  bool   `yaml:"disableCharts" envconfig:"disableCharts"`
		RecaptchaSiteKey               string `yaml:"recaptchaSiteKey" envconfig:"FRONTEND_RECAPTCHA_SITEKEY"`
		RecaptchaSecretKey             string `yaml:"recaptchaSecretKey" envconfig:"FRONTEND_RECAPTCHA_SECRETKEY"`
		Enabled                        bool   `yaml:"enabled" envconfig:"FRONTEND_ENABLED"`
		// Imprint is deprdecated place imprint file into the legal directory
		Imprint      string `yaml:"imprint" envconfig:"FRONTEND_IMPRINT"`
		LegalDir     string `yaml:"legalDir" envconfig:"FRONTEND_LEGAL"`
		SiteDomain   string `yaml:"siteDomain" envconfig:"FRONTEND_SITE_DOMAIN"`
		SiteName     string `yaml:"siteName" envconfig:"FRONTEND_SITE_NAME"`
		SiteSubtitle string `yaml:"siteSubtitle" envconfig:"FRONTEND_SITE_SUBTITLE"`
		Server       struct {
			Port string `yaml:"port" envconfig:"FRONTEND_SERVER_PORT"`
			Host string `yaml:"host" envconfig:"FRONTEND_SERVER_HOST"`
		} `yaml:"server"`
		ReaderDatabase struct {
			Username string `yaml:"user" envconfig:"FRONTEND_READER_DB_USERNAME"`
			Password string `yaml:"password" envconfig:"FRONTEND_READER_DB_PASSWORD"`
			Name     string `yaml:"name" envconfig:"FRONTEND_READER_DB_NAME"`
			Host     string `yaml:"host" envconfig:"FRONTEND_READER_DB_HOST"`
			Port     string `yaml:"port" envconfig:"FRONTEND_READER_DB_PORT"`
		} `yaml:"readerDatabase"`
		WriterDatabase struct {
			Username string `yaml:"user" envconfig:"FRONTEND_WRITER_DB_USERNAME"`
			Password string `yaml:"password" envconfig:"FRONTEND_WRITER_DB_PASSWORD"`
			Name     string `yaml:"name" envconfig:"FRONTEND_WRITER_DB_NAME"`
			Host     string `yaml:"host" envconfig:"FRONTEND_WRITER_DB_HOST"`
			Port     string `yaml:"port" envconfig:"FRONTEND_WRITER_DB_PORT"`
		} `yaml:"writerDatabase"`
		Stripe struct {
			SecretKey string `yaml:"secretKey" envconfig:"FRONTEND_STRIPE_SECRET_KEY"`
			PublicKey string `yaml:"publicKey" envconfig:"FRONTEND_STRIPE_PUBLIC_KEY"`
			Sapphire  string `yaml:"sapphire" envconfig:"FRONTEND_STRIPE_SAPPHIRE"`
			Emerald   string `yaml:"emerald" envconfig:"FRONTEND_STRIPE_EMERALD"`
			Diamond   string `yaml:"diamond" envconfig:"FRONTEND_STRIPE_DIAMOND"`
			Whale     string `yaml:"whale" envconfig:"FRONTEND_STRIPE_WHALE"`
			Goldfish  string `yaml:"goldfish" envconfig:"FRONTEND_STRIPE_GOLDFISH"`
			Plankton  string `yaml:"plankton" envconfig:"FRONTEND_STRIPE_PLANKTON"`
			Webhook   string `yaml:"webhook" envconfig:"FRONTEND_STRIPE_WEBHOOK"`
		}
		SessionSecret          string `yaml:"sessionSecret" envconfig:"FRONTEND_SESSION_SECRET"`
		JwtSigningSecret       string `yaml:"jwtSigningSecret" envconfig:"FRONTEND_JWT_SECRET"`
		JwtIssuer              string `yaml:"jwtIssuer" envconfig:"FRONTEND_JWT_ISSUER"`
		JwtValidityInMinutes   int    `yaml:"jwtValidityInMinutes" envconfig:"FRONTEND_JWT_VALIDITY_INMINUTES"`
		MaxMailsPerEmailPerDay int    `yaml:"maxMailsPerEmailPerDay" envconfig:"FRONTEND_MAX_MAIL_PER_EMAIL_PER_DAY"`
		Mail                   struct {
			SMTP struct {
				Server   string `yaml:"server" envconfig:"FRONTEND_MAIL_SMTP_SERVER"`
				Host     string `yaml:"host" envconfig:"FRONTEND_MAIL_SMTP_HOST"`
				User     string `yaml:"user" envconfig:"FRONTEND_MAIL_SMTP_USER"`
				Password string `yaml:"password" envconfig:"FRONTEND_MAIL_SMTP_PASSWORD"`
			} `yaml:"smtp"`
			Mailgun struct {
				Domain     string `yaml:"domain" envconfig:"FRONTEND_MAIL_MAILGUN_DOMAIN"`
				PrivateKey string `yaml:"privateKey" envconfig:"FRONTEND_MAIL_MAILGUN_PRIVATE_KEY"`
				Sender     string `yaml:"sender" envconfig:"FRONTEND_MAIL_MAILGUN_SENDER"`
			} `yaml:"mailgun"`
		} `yaml:"mail"`
		GATag                 string `yaml:"gatag" envconfig:"GATAG"`
		VerifyAppSubs         bool   `yaml:"verifyAppSubscriptions" envconfig:"FRONTEND_VERIFY_APP_SUBSCRIPTIONS"`
		AppSubsAppleSecret    string `yaml:"appSubsAppleSecret" envconfig:"FRONTEND_APP_SUBS_APPLE_SECRET"`
		AppSubsGoogleJSONPath string `yaml:"appSubsGoogleJsonPath" envconfig:"FRONTEND_APP_SUBS_GOOGLE_JSON_PATH"`
		DisableStatsInserts   bool   `yaml:"disableStatsInserts" envconfig:"FRONTEND_DISABLE_STATS_INSERTS"`
		ShowDonors            struct {
			Enabled bool   `yaml:"enabled" envconfig:"FRONTEND_SHOW_DONORS_ENABLED"`
			URL     string `yaml:"gitcoinURL" envconfig:"FRONTEND_GITCOIN_URL"`
		} `yaml:"showDonors"`
		Countdown struct {
			Enabled   bool          `yaml:"enabled" envconfig:"FRONTEND_COUNTDOWN_ENABLED"`
			Title     template.HTML `yaml:"title" envconfig:"FRONTEND_COUNTDOWN_TITLE"`
			Timestamp uint64        `yaml:"timestamp" envconfig:"FRONTEND_COUNTDOWN_TIMESTAMP"`
			Info      string        `yaml:"info" envconfig:"FRONTEND_COUNTDOWN_INFO"`
		} `yaml:"countdown"`
		Validator struct {
			ShowProposerRewards bool `yaml:"showProposerRewards" envconfig:"FRONTEND_SHOW_PROPOSER_REWARDS"`
		} `yaml:"validator"`
		HttpReadTimeout  time.Duration `yaml:"httpReadTimeout" envconfig:"FRONTEND_HTTP_READ_TIMEOUT"`
		HttpWriteTimeout time.Duration `yaml:"httpWriteTimeout" envconfig:"FRONTEND_HTTP_WRITE_TIMEOUT"`
		HttpIdleTimeout  time.Duration `yaml:"httpIdleTimeout" envconfig:"FRONTEND_HTTP_IDLE_TIMEOUT"`
	} `yaml:"frontend"`
	Metrics struct {
		Enabled bool   `yaml:"enabled" envconfig:"METRICS_ENABLED"`
		Address string `yaml:"address" envconfig:"METRICS_ADDRESS"`
		Pprof   bool   `yaml:"pprof" envconfig:"METRICS_PPROF"`
	} `yaml:"metrics"`
	Notifications struct {
		Enabled                                       bool   `yaml:"enabled" envconfig:"NOTIFICATIONS_ENABLED"`
		Sender                                        bool   `yaml:"sender" envconfig:"NOTIFICATIONS_SENDER"`
		UserDBNotifications                           bool   `yaml:"userDbNotifications" envconfig:"USERDB_NOTIFICATIONS_ENABLED"`
		FirebaseCredentialsPath                       string `yaml:"firebaseCredentialsPath" envconfig:"NOTIFICATIONS_FIREBASE_CRED_PATH"`
		ValidatorBalanceDecreasedNotificationsEnabled bool   `yaml:"validatorBalanceDecreasedNotificationsEnabled" envconfig:"VALIDATOR_BALANCE_DECREASED_NOTIFICATIONS_ENABLED"`
		PubkeyCachePath                               string `yaml:"pubkeyCachePath" envconfig:"NOTIFICATIONS_PUBKEY_CACHE_PATH"`
	} `yaml:"notifications"`
	SSVExporter struct {
		Enabled bool   `yaml:"enabled" envconfig:"SSV_EXPORTER_ENABLED"`
		Address string `yaml:"address" envconfig:"SSV_EXPORTER_ADDRESS"`
	} `yaml:"SSVExporter"`
	RocketpoolExporter struct {
		Enabled bool `yaml:"enabled" envconfig:"ROCKETPOOL_EXPORTER_ENABLED"`
	} `yaml:"rocketpoolExporter"`
	MevBoostRelayExporter struct {
		Enabled bool `yaml:"enabled" envconfig:"MEVBOOSTRELAY_EXPORTER_ENABLED"`
	} `yaml:"mevBoostRelayExporter"`
	Pprof struct {
		Enabled bool   `yaml:"enabled" envconfig:"PPROF_ENABLED"`
		Port    string `yaml:"port" envconfig:"PPROF_PORT"`
	} `yaml:"pprof"`
	NodeJobsProcessor struct {
		ElEndpoint string `yaml:"elEndpoint" envconfig:"NODE_JOBS_PROCESSOR_EL_ENDPOINT"`
		ClEndpoint string `yaml:"clEndpoint" envconfig:"NODE_JOBS_PROCESSOR_CL_ENDPOINT"`
	} `yaml:"nodeJobsProcessor"`
}

Config is a struct to hold the configuration data

type ContractMetadata

type ContractMetadata struct {
	Name    string
	ABI     *abi.ABI `msgpack:"-"`
	ABIJson []byte
}

type CorrelationData

type CorrelationData struct {
	Indicator string  `db:"indicator" json:"indicator,omitempty"`
	Time      float64 `db:"time" json:"time,omitempty"`
	Value     float64 `db:"value" json:"value,omitempty"`
}

type CorrelationDataResponse

type CorrelationDataResponse struct {
	Status  string      `json:"status"`
	Data    interface{} `json:"data"`
	Message string      `json:"message"`
}

type CreateNodeJobUserError

type CreateNodeJobUserError struct {
	Message string
}

func (CreateNodeJobUserError) Error

func (e CreateNodeJobUserError) Error() string

type CsrfData

type CsrfData struct {
	CsrfField template.HTML
}

type DailyProposalCount

type DailyProposalCount struct {
	Day      int64
	Proposed uint
	Missed   uint
	Orphaned uint
}

DailyProposalCount is a struct for the daily proposal count data

type DashboardData

type DashboardData struct {
	Csrf                string `json:"csrf"`
	ValidatorLimit      int    `json:"valLimit"`
	CappellaHasHappened bool
	NextWithdrawalRow   [][]interface{}
}

DashboardData is a struct to hold data for the dashboard-page

type DashboardRequest

type DashboardRequest struct {
	IndicesOrPubKey string `json:"indicesOrPubkey"`
}

type DashboardValidatorBalanceHistory

type DashboardValidatorBalanceHistory struct {
	Epoch            uint64  `db:"epoch"`
	Balance          uint64  `db:"balance"`
	EffectiveBalance uint64  `db:"effectivebalance"`
	ValidatorCount   float64 `db:"validatorcount"`
}

DashboardValidatorBalanceHistory is a struct to hold data for the balance-history on the dashboard-page

type DataTableResponse

type DataTableResponse struct {
	Draw            uint64          `json:"draw"`
	RecordsTotal    uint64          `json:"recordsTotal"`
	RecordsFiltered uint64          `json:"recordsFiltered"`
	Data            [][]interface{} `json:"data"`
	PageLength      uint64          `json:"pageLength"`
	DisplayStart    uint64          `json:"displayStart"`
	PagingToken     string          `json:"pagingToken"`
}

DataTableResponse is a struct to hold data for data table responses

type DataTableSaveState

type DataTableSaveState struct {
	Key     string                      `json:"key"`
	Time    uint64                      `json:"time"`   // Time stamp of when the object was created
	Start   uint64                      `json:"start"`  // Display start point
	Length  uint64                      `json:"length"` // Page length
	Order   [][]string                  `json:"order"`  // 2D array of column ordering information (see `order` option)
	Search  DataTableSaveStateSearch    `json:"search"`
	Columns []DataTableSaveStateColumns `json:"columns"`
}

func (*DataTableSaveState) Scan

func (e *DataTableSaveState) Scan(value interface{}) error

func (DataTableSaveState) Value

func (a DataTableSaveState) Value() (driver.Value, error)

type DataTableSaveStateColumns

type DataTableSaveStateColumns struct {
	Visible bool                     `json:"visible"`
	Search  DataTableSaveStateSearch `json:"search"`
}

type DataTableSaveStateOrder

type DataTableSaveStateOrder struct {
}

type DataTableSaveStateSearch

type DataTableSaveStateSearch struct {
	Search          string `json:"search"`          // Search term
	Regex           bool   `json:"regex"`           // Indicate if the search term should be treated as regex or not
	Smart           bool   `json:"smart"`           // Flag to enable DataTables smart search
	CaseInsensitive bool   `json:"caseInsensitive"` // Case insensitive flag
}

type DatabaseConfig

type DatabaseConfig struct {
	Username string
	Password string
	Name     string
	Host     string
	Port     string
}

type Deposit

type Deposit struct {
	Proof                 [][]byte
	PublicKey             []byte
	WithdrawalCredentials []byte
	Amount                uint64
	Signature             []byte
}

Deposit is a struct to hold deposit data

type DepositContractInteraction

type DepositContractInteraction struct {
	ValidatorPubkey []byte
	WithdrawalCreds []byte
	Amount          []byte
}

type DepositsPageData

type DepositsPageData struct {
	*Stats
	DepositContract string
	DepositChart    *ChartsPageDataChart
}

type DiscordComponent

type DiscordComponent struct {
	Type       uint64                   `json:"type"`
	Components []DiscordComponentButton `json:"components"`
}

type DiscordComponentButton

type DiscordComponentButton struct {
	Style    uint64 `json:"style"`
	CustomID string `json:"custom_id"`
	Label    string `json:"label"`
	URL      string `json:"url"`
	Disabled bool   `json:"disabled"`
	Type     uint64 `json:"type"`
}

type DiscordEmbed

type DiscordEmbed struct {
	Color       string              `json:"color,omitempty"`
	Description string              `json:"description,omitempty"`
	Fields      []DiscordEmbedField `json:"fields,omitempty"`
	Title       string              `json:"title,omitempty"`
	Type        string              `json:"type,omitempty"`
}

type DiscordEmbedField

type DiscordEmbedField struct {
	Inline bool   `json:"inline"`
	Name   string `json:"name"`
	Value  string `json:"value"`
}

type DiscordReq

type DiscordReq struct {
	Content         string             `json:"content,omitempty"`
	Username        string             `json:"username,omitempty"`
	Avatar_url      string             `json:"avatar_url,omitempty"`
	Tts             bool               `json:"tts,omitempty"`
	Embeds          []DiscordEmbed     `json:"embeds,omitempty"`
	AllowedMentions []interface{}      `json:"allowedMentions,omitempty"`
	Components      []DiscordComponent `json:"components,omitempty"`
	Files           interface{}        `json:"files,omitempty"`
	Payload         string             `json:"payload,omitempty"`
	Attachments     interface{}        `json:"attachments,omitempty"`
	Flags           int                `json:"flags,omitempty"`
}

func (*DiscordReq) Scan

func (e *DiscordReq) Scan(value interface{}) error

func (DiscordReq) Value

func (a DiscordReq) Value() (driver.Value, error)

type ERC20Metadata

type ERC20Metadata struct {
	Decimals     []byte
	Symbol       string
	Name         string
	Description  string
	LogoFormat   string
	TotalSupply  []byte
	OfficialSite string
	Price        []byte
}

func (ERC20Metadata) MarshalBinary

func (metadata ERC20Metadata) MarshalBinary() ([]byte, error)

func (ERC20Metadata) UnmarshalBinary

func (metadata ERC20Metadata) UnmarshalBinary(data []byte) error

type ERC20TokenPrice

type ERC20TokenPrice struct {
	Token       []byte
	Price       []byte
	TotalSupply []byte
}

type ETh1ERC1155Indexed

type ETh1ERC1155Indexed struct {
	ParentHash   []byte               `protobuf:"bytes,1,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"`
	BlockNumber  uint64               `protobuf:"varint,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
	TokenAddress []byte               `protobuf:"bytes,3,opt,name=token_address,json=tokenAddress,proto3" json:"token_address,omitempty"`
	Time         *timestamp.Timestamp `protobuf:"bytes,4,opt,name=time,proto3" json:"time,omitempty"`
	From         []byte               `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty"`
	To           []byte               `protobuf:"bytes,6,opt,name=to,proto3" json:"to,omitempty"`
	TokenId      []byte               `protobuf:"bytes,7,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"`
	Value        []byte               `protobuf:"bytes,8,opt,name=value,proto3" json:"value,omitempty"`
	// the address approved to make the transfer
	Operator []byte `protobuf:"bytes,9,opt,name=operator,proto3" json:"operator,omitempty"`
	// contains filtered or unexported fields
}

https://eips.ethereum.org/EIPS/eip-1155

func (*ETh1ERC1155Indexed) Descriptor deprecated

func (*ETh1ERC1155Indexed) Descriptor() ([]byte, []int)

Deprecated: Use ETh1ERC1155Indexed.ProtoReflect.Descriptor instead.

func (*ETh1ERC1155Indexed) GetBlockNumber

func (x *ETh1ERC1155Indexed) GetBlockNumber() uint64

func (*ETh1ERC1155Indexed) GetFrom

func (x *ETh1ERC1155Indexed) GetFrom() []byte

func (*ETh1ERC1155Indexed) GetOperator

func (x *ETh1ERC1155Indexed) GetOperator() []byte

func (*ETh1ERC1155Indexed) GetParentHash

func (x *ETh1ERC1155Indexed) GetParentHash() []byte

func (*ETh1ERC1155Indexed) GetTime

func (x *ETh1ERC1155Indexed) GetTime() *timestamp.Timestamp

func (*ETh1ERC1155Indexed) GetTo

func (x *ETh1ERC1155Indexed) GetTo() []byte

func (*ETh1ERC1155Indexed) GetTokenAddress

func (x *ETh1ERC1155Indexed) GetTokenAddress() []byte

func (*ETh1ERC1155Indexed) GetTokenId

func (x *ETh1ERC1155Indexed) GetTokenId() []byte

func (*ETh1ERC1155Indexed) GetValue

func (x *ETh1ERC1155Indexed) GetValue() []byte

func (*ETh1ERC1155Indexed) ProtoMessage

func (*ETh1ERC1155Indexed) ProtoMessage()

func (*ETh1ERC1155Indexed) ProtoReflect

func (x *ETh1ERC1155Indexed) ProtoReflect() protoreflect.Message

func (*ETh1ERC1155Indexed) Reset

func (x *ETh1ERC1155Indexed) Reset()

func (*ETh1ERC1155Indexed) String

func (x *ETh1ERC1155Indexed) String() string

type Email

type Email struct {
	Title                 string        `json:"title"`
	Body                  template.HTML `json:"body"`
	SubscriptionManageURL template.HTML `json:"subscriptionManageUrl"`
	UnSubURL              template.HTML `json:"unSubURL"`
}

type EmailAttachment

type EmailAttachment struct {
	Attachment []byte `json:"attachment"`
	Name       string `json:"name"`
}

type Empty

type Empty struct {
}

type EpochAssignments

type EpochAssignments struct {
	ProposerAssignments map[uint64]uint64
	AttestorAssignments map[string]uint64
	SyncAssignments     []uint64
}

EpochAssignments is a struct to hold epoch assignment data

type EpochData

type EpochData struct {
	Epoch                   uint64
	Validators              []*Validator
	ValidatorAssignmentes   *EpochAssignments
	Blocks                  map[uint64]map[string]*Block
	EpochParticipationStats *ValidatorParticipation
}

EpochData is a struct to hold epoch data

type EpochPageData

type EpochPageData struct {
	Epoch                   uint64        `db:"epoch"`
	BlocksCount             uint64        `db:"blockscount"`
	ProposerSlashingsCount  uint64        `db:"proposerslashingscount"`
	AttesterSlashingsCount  uint64        `db:"attesterslashingscount"`
	AttestationsCount       uint64        `db:"attestationscount"`
	DepositsCount           uint64        `db:"depositscount"`
	WithdrawalCount         uint64        `db:"withdrawalcount"`
	DepositTotal            uint64        `db:"deposittotal"`
	WithdrawalTotal         template.HTML `db:"withdrawaltotal"`
	VoluntaryExitsCount     uint64        `db:"voluntaryexitscount"`
	ValidatorsCount         uint64        `db:"validatorscount"`
	AverageValidatorBalance uint64        `db:"averagevalidatorbalance"`
	Finalized               bool          `db:"finalized"`
	EligibleEther           uint64        `db:"eligibleether"`
	GlobalParticipationRate float64       `db:"globalparticipationrate"`
	VotedEther              uint64        `db:"votedether"`

	Blocks []*IndexPageDataBlocks

	SyncParticipationRate float64
	Ts                    time.Time
	NextEpoch             uint64
	PreviousEpoch         uint64
	ProposedCount         uint64
	MissedCount           uint64
	ScheduledCount        uint64
	OrphanedCount         uint64
}

EpochPageData is a struct to hold detailed epoch data for the epoch page

type EpochPageMinMaxSlot

type EpochPageMinMaxSlot struct {
	MinEpoch uint64
	MaxEpoch uint64
}

EpochPageMinMaxSlot is a struct for the min/max epoch data

type EpochsPageData

type EpochsPageData struct {
	Epoch                   uint64  `db:"epoch"`
	BlocksCount             uint64  `db:"blockscount"`
	ProposerSlashingsCount  uint64  `db:"proposerslashingscount"`
	AttesterSlashingsCount  uint64  `db:"attesterslashingscount"`
	AttestationsCount       uint64  `db:"attestationscount"`
	DepositsCount           uint64  `db:"depositscount"`
	WithdrawalCount         uint64  `db:"withdrawalcount"`
	VoluntaryExitsCount     uint64  `db:"voluntaryexitscount"`
	ValidatorsCount         uint64  `db:"validatorscount"`
	AverageValidatorBalance uint64  `db:"averagevalidatorbalance"`
	Finalized               bool    `db:"finalized"`
	EligibleEther           uint64  `db:"eligibleether"`
	GlobalParticipationRate float64 `db:"globalparticipationrate"`
	VotedEther              uint64  `db:"votedether"`
}

EpochsPageData is a struct to hold epoch data for the epochs page

type ErrorResponse

type ErrorResponse struct {
	Status string // e.g. "200 OK"
	Body   string
}

func (*ErrorResponse) Scan

func (e *ErrorResponse) Scan(value interface{}) error

func (ErrorResponse) Value

func (a ErrorResponse) Value() (driver.Value, error)

type Eth1AddressBalance

type Eth1AddressBalance struct {
	Address  []byte
	Token    []byte
	Balance  []byte
	Metadata *ERC20Metadata
}

type Eth1AddressMetadata

type Eth1AddressMetadata struct {
	Balances   []*Eth1AddressBalance
	ERC20      *ERC20Metadata
	Name       string
	Tags       []template.HTML
	EthBalance *Eth1AddressBalance
}

type Eth1AddressPageData

type Eth1AddressPageData struct {
	Address            string `json:"address"`
	IsContract         bool
	QRCode             string `json:"qr_code_base64"`
	QRCodeInverse      string
	Metadata           *Eth1AddressMetadata
	WithdrawalsSummary template.HTML
	BlocksMinedTable   *DataTableResponse
	UnclesMinedTable   *DataTableResponse
	TransactionsTable  *DataTableResponse
	InternalTxnsTable  *DataTableResponse
	Erc20Table         *DataTableResponse
	Erc721Table        *DataTableResponse
	Erc1155Table       *DataTableResponse
	WithdrawalsTable   *DataTableResponse
	EtherValue         template.HTML
	Tabs               []Eth1AddressPageTabs
}

type Eth1AddressPageTabs

type Eth1AddressPageTabs struct {
	Id   string
	Href string
	Text string
	Data *DataTableResponse
}

type Eth1AddressSearchItem

type Eth1AddressSearchItem struct {
	Address string `json:"address"`
	Name    string `json:"name"`
	Token   string `json:"token"`
}

type Eth1Block

type Eth1Block struct {
	Hash         []byte               `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	ParentHash   []byte               `protobuf:"bytes,2,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"`
	UncleHash    []byte               `protobuf:"bytes,3,opt,name=uncle_hash,json=uncleHash,proto3" json:"uncle_hash,omitempty"`
	Coinbase     []byte               `protobuf:"bytes,4,opt,name=coinbase,proto3" json:"coinbase,omitempty"`
	Root         []byte               `protobuf:"bytes,5,opt,name=root,proto3" json:"root,omitempty"`
	TxHash       []byte               `protobuf:"bytes,6,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"`
	ReceiptHash  []byte               `protobuf:"bytes,7,opt,name=receipt_hash,json=receiptHash,proto3" json:"receipt_hash,omitempty"`
	Difficulty   []byte               `protobuf:"bytes,8,opt,name=difficulty,proto3" json:"difficulty,omitempty"`
	Number       uint64               `protobuf:"varint,9,opt,name=number,proto3" json:"number,omitempty"`
	GasLimit     uint64               `protobuf:"varint,10,opt,name=gas_limit,json=gasLimit,proto3" json:"gas_limit,omitempty"`
	GasUsed      uint64               `protobuf:"varint,11,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
	Time         *timestamp.Timestamp `protobuf:"bytes,12,opt,name=time,proto3" json:"time,omitempty"`
	Extra        []byte               `protobuf:"bytes,13,opt,name=extra,proto3" json:"extra,omitempty"`
	MixDigest    []byte               `protobuf:"bytes,14,opt,name=mix_digest,json=mixDigest,proto3" json:"mix_digest,omitempty"`
	Bloom        []byte               `protobuf:"bytes,17,opt,name=bloom,proto3" json:"bloom,omitempty"`
	BaseFee      []byte               `protobuf:"bytes,18,opt,name=base_fee,json=baseFee,proto3" json:"base_fee,omitempty"`
	Uncles       []*Eth1Block         `protobuf:"bytes,20,rep,name=uncles,proto3" json:"uncles,omitempty"`
	Transactions []*Eth1Transaction   `protobuf:"bytes,21,rep,name=transactions,proto3" json:"transactions,omitempty"`
	Withdrawals  []*Eth1Withdrawal    `protobuf:"bytes,22,rep,name=withdrawals,proto3" json:"withdrawals,omitempty"`
	// contains filtered or unexported fields
}

Eth1Block is stored in the blocks table under <chainID>:<reversePaddedNumber>

func (*Eth1Block) Descriptor deprecated

func (*Eth1Block) Descriptor() ([]byte, []int)

Deprecated: Use Eth1Block.ProtoReflect.Descriptor instead.

func (*Eth1Block) GetBaseFee

func (x *Eth1Block) GetBaseFee() []byte

func (*Eth1Block) GetBloom

func (x *Eth1Block) GetBloom() []byte

func (*Eth1Block) GetCoinbase

func (x *Eth1Block) GetCoinbase() []byte

func (*Eth1Block) GetDifficulty

func (x *Eth1Block) GetDifficulty() []byte

func (*Eth1Block) GetExtra

func (x *Eth1Block) GetExtra() []byte

func (*Eth1Block) GetGasLimit

func (x *Eth1Block) GetGasLimit() uint64

func (*Eth1Block) GetGasUsed

func (x *Eth1Block) GetGasUsed() uint64

func (*Eth1Block) GetHash

func (x *Eth1Block) GetHash() []byte

func (*Eth1Block) GetMixDigest

func (x *Eth1Block) GetMixDigest() []byte

func (*Eth1Block) GetNumber

func (x *Eth1Block) GetNumber() uint64

func (*Eth1Block) GetParentHash

func (x *Eth1Block) GetParentHash() []byte

func (*Eth1Block) GetReceiptHash

func (x *Eth1Block) GetReceiptHash() []byte

func (*Eth1Block) GetRoot

func (x *Eth1Block) GetRoot() []byte

func (*Eth1Block) GetTime

func (x *Eth1Block) GetTime() *timestamp.Timestamp

func (*Eth1Block) GetTransactions

func (x *Eth1Block) GetTransactions() []*Eth1Transaction

func (*Eth1Block) GetTxHash

func (x *Eth1Block) GetTxHash() []byte

func (*Eth1Block) GetUncleHash

func (x *Eth1Block) GetUncleHash() []byte

func (*Eth1Block) GetUncles

func (x *Eth1Block) GetUncles() []*Eth1Block

func (*Eth1Block) GetWithdrawals

func (x *Eth1Block) GetWithdrawals() []*Eth1Withdrawal

func (*Eth1Block) ProtoMessage

func (*Eth1Block) ProtoMessage()

func (*Eth1Block) ProtoReflect

func (x *Eth1Block) ProtoReflect() protoreflect.Message

func (*Eth1Block) Reset

func (x *Eth1Block) Reset()

func (*Eth1Block) String

func (x *Eth1Block) String() string

type Eth1BlockIndexed

type Eth1BlockIndexed struct {
	Hash             []byte               `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	ParentHash       []byte               `protobuf:"bytes,2,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"`
	UncleHash        []byte               `protobuf:"bytes,3,opt,name=uncle_hash,json=uncleHash,proto3" json:"uncle_hash,omitempty"`
	Coinbase         []byte               `protobuf:"bytes,4,opt,name=coinbase,proto3" json:"coinbase,omitempty"`
	Difficulty       []byte               `protobuf:"bytes,8,opt,name=difficulty,proto3" json:"difficulty,omitempty"`
	Number           uint64               `protobuf:"varint,9,opt,name=number,proto3" json:"number,omitempty"`
	GasLimit         uint64               `protobuf:"varint,10,opt,name=gas_limit,json=gasLimit,proto3" json:"gas_limit,omitempty"`
	GasUsed          uint64               `protobuf:"varint,11,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
	Time             *timestamp.Timestamp `protobuf:"bytes,12,opt,name=time,proto3" json:"time,omitempty"`
	BaseFee          []byte               `protobuf:"bytes,18,opt,name=base_fee,json=baseFee,proto3" json:"base_fee,omitempty"`
	UncleCount       uint64               `protobuf:"varint,19,opt,name=uncle_count,json=uncleCount,proto3" json:"uncle_count,omitempty"`
	TransactionCount uint64               `protobuf:"varint,20,opt,name=transaction_count,json=transactionCount,proto3" json:"transaction_count,omitempty"`
	Mev              []byte               `protobuf:"bytes,21,opt,name=mev,proto3" json:"mev,omitempty"`
	LowestGasPrice   []byte               `protobuf:"bytes,22,opt,name=lowest_gas_price,json=lowestGasPrice,proto3" json:"lowest_gas_price,omitempty"`
	HighestGasPrice  []byte               `protobuf:"bytes,23,opt,name=highest_gas_price,json=highestGasPrice,proto3" json:"highest_gas_price,omitempty"`
	// uint64 duration = 24;
	TxReward    []byte `protobuf:"bytes,25,opt,name=tx_reward,json=txReward,proto3" json:"tx_reward,omitempty"`
	UncleReward []byte `protobuf:"bytes,26,opt,name=uncle_reward,json=uncleReward,proto3" json:"uncle_reward,omitempty"`
	// bytes base_fee_change = 27;
	// bytes block_utilization_change = 28;
	InternalTransactionCount uint64 `` /* 137-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*Eth1BlockIndexed) Descriptor deprecated

func (*Eth1BlockIndexed) Descriptor() ([]byte, []int)

Deprecated: Use Eth1BlockIndexed.ProtoReflect.Descriptor instead.

func (*Eth1BlockIndexed) GetBaseFee

func (x *Eth1BlockIndexed) GetBaseFee() []byte

func (*Eth1BlockIndexed) GetCoinbase

func (x *Eth1BlockIndexed) GetCoinbase() []byte

func (*Eth1BlockIndexed) GetDifficulty

func (x *Eth1BlockIndexed) GetDifficulty() []byte

func (*Eth1BlockIndexed) GetGasLimit

func (x *Eth1BlockIndexed) GetGasLimit() uint64

func (*Eth1BlockIndexed) GetGasUsed

func (x *Eth1BlockIndexed) GetGasUsed() uint64

func (*Eth1BlockIndexed) GetHash

func (x *Eth1BlockIndexed) GetHash() []byte

func (*Eth1BlockIndexed) GetHighestGasPrice

func (x *Eth1BlockIndexed) GetHighestGasPrice() []byte

func (*Eth1BlockIndexed) GetInternalTransactionCount

func (x *Eth1BlockIndexed) GetInternalTransactionCount() uint64

func (*Eth1BlockIndexed) GetLowestGasPrice

func (x *Eth1BlockIndexed) GetLowestGasPrice() []byte

func (*Eth1BlockIndexed) GetMev

func (x *Eth1BlockIndexed) GetMev() []byte

func (*Eth1BlockIndexed) GetNumber

func (x *Eth1BlockIndexed) GetNumber() uint64

func (*Eth1BlockIndexed) GetParentHash

func (x *Eth1BlockIndexed) GetParentHash() []byte

func (*Eth1BlockIndexed) GetTime

func (x *Eth1BlockIndexed) GetTime() *timestamp.Timestamp

func (*Eth1BlockIndexed) GetTransactionCount

func (x *Eth1BlockIndexed) GetTransactionCount() uint64

func (*Eth1BlockIndexed) GetTxReward

func (x *Eth1BlockIndexed) GetTxReward() []byte

func (*Eth1BlockIndexed) GetUncleCount

func (x *Eth1BlockIndexed) GetUncleCount() uint64

func (*Eth1BlockIndexed) GetUncleHash

func (x *Eth1BlockIndexed) GetUncleHash() []byte

func (*Eth1BlockIndexed) GetUncleReward

func (x *Eth1BlockIndexed) GetUncleReward() []byte

func (*Eth1BlockIndexed) ProtoMessage

func (*Eth1BlockIndexed) ProtoMessage()

func (*Eth1BlockIndexed) ProtoReflect

func (x *Eth1BlockIndexed) ProtoReflect() protoreflect.Message

func (*Eth1BlockIndexed) Reset

func (x *Eth1BlockIndexed) Reset()

func (*Eth1BlockIndexed) String

func (x *Eth1BlockIndexed) String() string

type Eth1BlockPageData

type Eth1BlockPageData struct {
	Number                uint64
	PreviousBlock         uint64
	NextBlock             uint64
	TxCount               uint64
	WithdrawalCount       uint64
	UncleCount            uint64
	Hash                  string
	ParentHash            string
	MinerAddress          string
	MinerFormatted        template.HTML
	Reward                *big.Int
	MevReward             *big.Int
	MevBribe              *big.Int
	IsValidMev            bool
	MevRecipientFormatted template.HTML
	TxFees                *big.Int
	GasUsage              template.HTML
	GasLimit              uint64
	LowestGasPrice        *big.Int
	Ts                    time.Time
	Difficulty            *big.Int
	BaseFeePerGas         *big.Int
	BurnedFees            *big.Int
	Extra                 string
	Txs                   []Eth1BlockPageTransaction
	Uncles                []Eth1BlockPageData
	State                 string
}

type Eth1BlockPageTransaction

type Eth1BlockPageTransaction struct {
	Hash          string
	HashFormatted template.HTML
	From          string
	FromFormatted template.HTML
	To            string
	ToFormatted   template.HTML
	Value         *big.Int
	Fee           *big.Int
	GasPrice      *big.Int
	Method        string
}

type Eth1BlockParsed

type Eth1BlockParsed struct {
	Hash                     string    `json:"hash,omitempty"`
	ParentHash               string    `json:"parent_hash,omitempty"`
	UncleHash                string    `json:"uncle_hash,omitempty"`
	Coinbase                 string    `json:"coinbase,omitempty"`
	TxReward                 string    `json:"tx_reward,omitempty"`
	Difficulty               string    `json:"difficulty,omitempty"`
	Number                   uint64    `json:"number,omitempty"`
	GasLimit                 uint64    `json:"gas_limit,omitempty"`
	GasUsed                  uint64    `json:"gas_used,omitempty"`
	Time                     time.Time `json:"time,omitempty"`
	BaseFee                  string    `json:"base_fee,omitempty"`
	UncleCount               uint64    `json:"uncle_count,omitempty"`
	TransactionCount         uint64    `json:"transaction_count,omitempty"`
	InternalTransactionCount uint64    `json:"internal_transaction_count,omitempty"`
	Mev                      string    `json:"mev,omitempty"`
	LowestGasPrice           string    `json:"lowest_gas_price,omitempty"`
	HighestGasPrice          string    `json:"highest_gas_price,omitempty"`
	// Duration uint64 `json:"duration,omitempty"`
	UncleReward string `json:"uncle_reward,omitempty"`
}

type Eth1Data

type Eth1Data struct {
	DepositRoot  []byte
	DepositCount uint64
	BlockHash    []byte
}

Eth1Data is a struct to hold the ETH1 data

type Eth1DecodedEventData

type Eth1DecodedEventData struct {
	Type    string
	Value   string
	Raw     string
	Address common.Address
}

type Eth1Deposit

type Eth1Deposit struct {
	TxHash                []byte `db:"tx_hash"`
	TxInput               []byte `db:"tx_input"`
	TxIndex               uint64 `db:"tx_index"`
	BlockNumber           uint64 `db:"block_number"`
	BlockTs               int64  `db:"block_ts"`
	FromAddress           []byte `db:"from_address"`
	PublicKey             []byte `db:"publickey"`
	WithdrawalCredentials []byte `db:"withdrawal_credentials"`
	Amount                uint64 `db:"amount"`
	Signature             []byte `db:"signature"`
	MerkletreeIndex       []byte `db:"merkletree_index"`
	Removed               bool   `db:"removed"`
	ValidSignature        bool   `db:"valid_signature"`
}

Eth1Deposit is a struct to hold eth1-deposit data

type Eth1ERC20Indexed

type Eth1ERC20Indexed struct {
	ParentHash   []byte               `protobuf:"bytes,1,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"`
	BlockNumber  uint64               `protobuf:"varint,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
	TokenAddress []byte               `protobuf:"bytes,3,opt,name=token_address,json=tokenAddress,proto3" json:"token_address,omitempty"`
	Time         *timestamp.Timestamp `protobuf:"bytes,4,opt,name=time,proto3" json:"time,omitempty"`
	From         []byte               `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty"`
	To           []byte               `protobuf:"bytes,6,opt,name=to,proto3" json:"to,omitempty"`
	Value        []byte               `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1ERC20Indexed) Descriptor deprecated

func (*Eth1ERC20Indexed) Descriptor() ([]byte, []int)

Deprecated: Use Eth1ERC20Indexed.ProtoReflect.Descriptor instead.

func (*Eth1ERC20Indexed) GetBlockNumber

func (x *Eth1ERC20Indexed) GetBlockNumber() uint64

func (*Eth1ERC20Indexed) GetFrom

func (x *Eth1ERC20Indexed) GetFrom() []byte

func (*Eth1ERC20Indexed) GetParentHash

func (x *Eth1ERC20Indexed) GetParentHash() []byte

func (*Eth1ERC20Indexed) GetTime

func (x *Eth1ERC20Indexed) GetTime() *timestamp.Timestamp

func (*Eth1ERC20Indexed) GetTo

func (x *Eth1ERC20Indexed) GetTo() []byte

func (*Eth1ERC20Indexed) GetTokenAddress

func (x *Eth1ERC20Indexed) GetTokenAddress() []byte

func (*Eth1ERC20Indexed) GetValue

func (x *Eth1ERC20Indexed) GetValue() []byte

func (*Eth1ERC20Indexed) ProtoMessage

func (*Eth1ERC20Indexed) ProtoMessage()

func (*Eth1ERC20Indexed) ProtoReflect

func (x *Eth1ERC20Indexed) ProtoReflect() protoreflect.Message

func (*Eth1ERC20Indexed) Reset

func (x *Eth1ERC20Indexed) Reset()

func (*Eth1ERC20Indexed) String

func (x *Eth1ERC20Indexed) String() string

type Eth1ERC721Indexed

type Eth1ERC721Indexed struct {
	ParentHash   []byte               `protobuf:"bytes,1,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"`
	BlockNumber  uint64               `protobuf:"varint,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
	TokenAddress []byte               `protobuf:"bytes,3,opt,name=token_address,json=tokenAddress,proto3" json:"token_address,omitempty"`
	Time         *timestamp.Timestamp `protobuf:"bytes,4,opt,name=time,proto3" json:"time,omitempty"`
	From         []byte               `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty"`
	To           []byte               `protobuf:"bytes,6,opt,name=to,proto3" json:"to,omitempty"`
	TokenId      []byte               `protobuf:"bytes,7,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1ERC721Indexed) Descriptor deprecated

func (*Eth1ERC721Indexed) Descriptor() ([]byte, []int)

Deprecated: Use Eth1ERC721Indexed.ProtoReflect.Descriptor instead.

func (*Eth1ERC721Indexed) GetBlockNumber

func (x *Eth1ERC721Indexed) GetBlockNumber() uint64

func (*Eth1ERC721Indexed) GetFrom

func (x *Eth1ERC721Indexed) GetFrom() []byte

func (*Eth1ERC721Indexed) GetParentHash

func (x *Eth1ERC721Indexed) GetParentHash() []byte

func (*Eth1ERC721Indexed) GetTime

func (x *Eth1ERC721Indexed) GetTime() *timestamp.Timestamp

func (*Eth1ERC721Indexed) GetTo

func (x *Eth1ERC721Indexed) GetTo() []byte

func (*Eth1ERC721Indexed) GetTokenAddress

func (x *Eth1ERC721Indexed) GetTokenAddress() []byte

func (*Eth1ERC721Indexed) GetTokenId

func (x *Eth1ERC721Indexed) GetTokenId() []byte

func (*Eth1ERC721Indexed) ProtoMessage

func (*Eth1ERC721Indexed) ProtoMessage()

func (*Eth1ERC721Indexed) ProtoReflect

func (x *Eth1ERC721Indexed) ProtoReflect() protoreflect.Message

func (*Eth1ERC721Indexed) Reset

func (x *Eth1ERC721Indexed) Reset()

func (*Eth1ERC721Indexed) String

func (x *Eth1ERC721Indexed) String() string

type Eth1EventData

type Eth1EventData struct {
	Address     common.Address
	Name        string
	Topics      []common.Hash
	Data        []byte
	DecodedData map[string]Eth1DecodedEventData
}

type Eth1InternalTransaction

type Eth1InternalTransaction struct {
	Type     string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	From     []byte `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"`
	To       []byte `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"`
	Value    []byte `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
	ErrorMsg string `protobuf:"bytes,5,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"`
	Path     string `protobuf:"bytes,6,opt,name=path,proto3" json:"path,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1InternalTransaction) Descriptor deprecated

func (*Eth1InternalTransaction) Descriptor() ([]byte, []int)

Deprecated: Use Eth1InternalTransaction.ProtoReflect.Descriptor instead.

func (*Eth1InternalTransaction) GetErrorMsg

func (x *Eth1InternalTransaction) GetErrorMsg() string

func (*Eth1InternalTransaction) GetFrom

func (x *Eth1InternalTransaction) GetFrom() []byte

func (*Eth1InternalTransaction) GetPath

func (x *Eth1InternalTransaction) GetPath() string

func (*Eth1InternalTransaction) GetTo

func (x *Eth1InternalTransaction) GetTo() []byte

func (*Eth1InternalTransaction) GetType

func (x *Eth1InternalTransaction) GetType() string

func (*Eth1InternalTransaction) GetValue

func (x *Eth1InternalTransaction) GetValue() []byte

func (*Eth1InternalTransaction) ProtoMessage

func (*Eth1InternalTransaction) ProtoMessage()

func (*Eth1InternalTransaction) ProtoReflect

func (x *Eth1InternalTransaction) ProtoReflect() protoreflect.Message

func (*Eth1InternalTransaction) Reset

func (x *Eth1InternalTransaction) Reset()

func (*Eth1InternalTransaction) String

func (x *Eth1InternalTransaction) String() string

type Eth1InternalTransactionIndexed

type Eth1InternalTransactionIndexed struct {
	ParentHash  []byte               `protobuf:"bytes,1,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"`
	BlockNumber uint64               `protobuf:"varint,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
	Type        string               `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	Time        *timestamp.Timestamp `protobuf:"bytes,4,opt,name=time,proto3" json:"time,omitempty"`
	From        []byte               `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty"`
	To          []byte               `protobuf:"bytes,6,opt,name=to,proto3" json:"to,omitempty"`
	Value       []byte               `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1InternalTransactionIndexed) Descriptor deprecated

func (*Eth1InternalTransactionIndexed) Descriptor() ([]byte, []int)

Deprecated: Use Eth1InternalTransactionIndexed.ProtoReflect.Descriptor instead.

func (*Eth1InternalTransactionIndexed) GetBlockNumber

func (x *Eth1InternalTransactionIndexed) GetBlockNumber() uint64

func (*Eth1InternalTransactionIndexed) GetFrom

func (x *Eth1InternalTransactionIndexed) GetFrom() []byte

func (*Eth1InternalTransactionIndexed) GetParentHash

func (x *Eth1InternalTransactionIndexed) GetParentHash() []byte

func (*Eth1InternalTransactionIndexed) GetTime

func (*Eth1InternalTransactionIndexed) GetTo

func (x *Eth1InternalTransactionIndexed) GetTo() []byte

func (*Eth1InternalTransactionIndexed) GetType

func (*Eth1InternalTransactionIndexed) GetValue

func (x *Eth1InternalTransactionIndexed) GetValue() []byte

func (*Eth1InternalTransactionIndexed) ProtoMessage

func (*Eth1InternalTransactionIndexed) ProtoMessage()

func (*Eth1InternalTransactionIndexed) ProtoReflect

func (*Eth1InternalTransactionIndexed) Reset

func (x *Eth1InternalTransactionIndexed) Reset()

func (*Eth1InternalTransactionIndexed) String

type Eth1InternalTransactionParsed

type Eth1InternalTransactionParsed struct {
	ParentHash  string    `json:"parent"`
	BlockNumber uint64    `json:"block"`
	Type        string    `json:"type"`
	Time        time.Time `json:"time"`
	From        string    `json:"from"`
	To          string    `json:"to"`
	Value       string    `json:"value"`
}

type Eth1Log

type Eth1Log struct {
	Address []byte   `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Data    []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	Removed bool     `protobuf:"varint,3,opt,name=removed,proto3" json:"removed,omitempty"`
	Topics  [][]byte `protobuf:"bytes,4,rep,name=topics,proto3" json:"topics,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1Log) Descriptor deprecated

func (*Eth1Log) Descriptor() ([]byte, []int)

Deprecated: Use Eth1Log.ProtoReflect.Descriptor instead.

func (*Eth1Log) GetAddress

func (x *Eth1Log) GetAddress() []byte

func (*Eth1Log) GetData

func (x *Eth1Log) GetData() []byte

func (*Eth1Log) GetRemoved

func (x *Eth1Log) GetRemoved() bool

func (*Eth1Log) GetTopics

func (x *Eth1Log) GetTopics() [][]byte

func (*Eth1Log) ProtoMessage

func (*Eth1Log) ProtoMessage()

func (*Eth1Log) ProtoReflect

func (x *Eth1Log) ProtoReflect() protoreflect.Message

func (*Eth1Log) Reset

func (x *Eth1Log) Reset()

func (*Eth1Log) String

func (x *Eth1Log) String() string

type Eth1TokenPageData

type Eth1TokenPageData struct {
	Token            string `json:"token"`
	Address          string `json:"address"`
	QRCode           string `json:"qr_code_base64"`
	QRCodeInverse    string
	Metadata         *ERC20Metadata
	Balance          *Eth1AddressBalance
	Holders          template.HTML `json:"holders"`
	Transfers        template.HTML `json:"transfers"`
	Price            template.HTML `json:"price"`
	MarketCap        template.HTML `json:"marketCap"`
	DilutedMarketCap template.HTML `json:"dilutedMarketCap"`
	Decimals         template.HTML `json:"decimals"`
	Contract         template.HTML `json:"contract"`
	WebSite          template.HTML `json:"website"`
	SocialProfiles   template.HTML `json:"socialProfiles"`
	TransfersTable   *DataTableResponse
	HoldersTable     *DataTableResponse
}

type Eth1TokenTxParsed

type Eth1TokenTxParsed struct {
	ParentHash   string    `json:"transaction,omitempty"`
	BlockNumber  uint64    `json:"block,omitempty"`
	TokenAddress string    `json:"token_address,omitempty"`
	Time         time.Time `json:"time,omitempty"`
	From         string    `json:"from,omitempty"`
	To           string    `json:"to,omitempty"`
	Value        string    `json:"value,omitempty"`
	TokenId      string    `json:"token_id,omitempty"`
	Operator     string    `json:"operator,omitempty"`
}

type Eth1Transaction

type Eth1Transaction struct {
	Type                 uint32        `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
	Nonce                uint64        `protobuf:"varint,2,opt,name=nonce,proto3" json:"nonce,omitempty"`
	GasPrice             []byte        `protobuf:"bytes,3,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"`
	MaxPriorityFeePerGas []byte        `` /* 127-byte string literal not displayed */
	MaxFeePerGas         []byte        `protobuf:"bytes,5,opt,name=max_fee_per_gas,json=maxFeePerGas,proto3" json:"max_fee_per_gas,omitempty"`
	Gas                  uint64        `protobuf:"varint,6,opt,name=gas,proto3" json:"gas,omitempty"`
	Value                []byte        `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
	Data                 []byte        `protobuf:"bytes,8,opt,name=data,proto3" json:"data,omitempty"`
	To                   []byte        `protobuf:"bytes,12,opt,name=to,proto3" json:"to,omitempty"`
	From                 []byte        `protobuf:"bytes,13,opt,name=from,proto3" json:"from,omitempty"`
	ChainId              []byte        `protobuf:"bytes,14,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	AccessList           []*AccessList `protobuf:"bytes,15,rep,name=access_list,json=accessList,proto3" json:"access_list,omitempty"`
	Hash                 []byte        `protobuf:"bytes,16,opt,name=hash,proto3" json:"hash,omitempty"`
	// Receipt fields
	ContractAddress    []byte     `protobuf:"bytes,17,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"`
	CommulativeGasUsed uint64     `protobuf:"varint,18,opt,name=commulative_gas_used,json=commulativeGasUsed,proto3" json:"commulative_gas_used,omitempty"`
	GasUsed            uint64     `protobuf:"varint,19,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
	LogsBloom          []byte     `protobuf:"bytes,20,opt,name=logs_bloom,json=logsBloom,proto3" json:"logs_bloom,omitempty"`
	Status             uint64     `protobuf:"varint,21,opt,name=status,proto3" json:"status,omitempty"`
	ErrorMsg           string     `protobuf:"bytes,22,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"`
	Logs               []*Eth1Log `protobuf:"bytes,23,rep,name=logs,proto3" json:"logs,omitempty"`
	// Internal transactions
	Itx []*Eth1InternalTransaction `protobuf:"bytes,24,rep,name=itx,proto3" json:"itx,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1Transaction) Descriptor deprecated

func (*Eth1Transaction) Descriptor() ([]byte, []int)

Deprecated: Use Eth1Transaction.ProtoReflect.Descriptor instead.

func (*Eth1Transaction) GetAccessList

func (x *Eth1Transaction) GetAccessList() []*AccessList

func (*Eth1Transaction) GetChainId

func (x *Eth1Transaction) GetChainId() []byte

func (*Eth1Transaction) GetCommulativeGasUsed

func (x *Eth1Transaction) GetCommulativeGasUsed() uint64

func (*Eth1Transaction) GetContractAddress

func (x *Eth1Transaction) GetContractAddress() []byte

func (*Eth1Transaction) GetData

func (x *Eth1Transaction) GetData() []byte

func (*Eth1Transaction) GetErrorMsg

func (x *Eth1Transaction) GetErrorMsg() string

func (*Eth1Transaction) GetFrom

func (x *Eth1Transaction) GetFrom() []byte

func (*Eth1Transaction) GetGas

func (x *Eth1Transaction) GetGas() uint64

func (*Eth1Transaction) GetGasPrice

func (x *Eth1Transaction) GetGasPrice() []byte

func (*Eth1Transaction) GetGasUsed

func (x *Eth1Transaction) GetGasUsed() uint64

func (*Eth1Transaction) GetHash

func (x *Eth1Transaction) GetHash() []byte

func (*Eth1Transaction) GetItx

func (*Eth1Transaction) GetLogs

func (x *Eth1Transaction) GetLogs() []*Eth1Log

func (*Eth1Transaction) GetLogsBloom

func (x *Eth1Transaction) GetLogsBloom() []byte

func (*Eth1Transaction) GetMaxFeePerGas

func (x *Eth1Transaction) GetMaxFeePerGas() []byte

func (*Eth1Transaction) GetMaxPriorityFeePerGas

func (x *Eth1Transaction) GetMaxPriorityFeePerGas() []byte

func (*Eth1Transaction) GetNonce

func (x *Eth1Transaction) GetNonce() uint64

func (*Eth1Transaction) GetStatus

func (x *Eth1Transaction) GetStatus() uint64

func (*Eth1Transaction) GetTo

func (x *Eth1Transaction) GetTo() []byte

func (*Eth1Transaction) GetType

func (x *Eth1Transaction) GetType() uint32

func (*Eth1Transaction) GetValue

func (x *Eth1Transaction) GetValue() []byte

func (*Eth1Transaction) ProtoMessage

func (*Eth1Transaction) ProtoMessage()

func (*Eth1Transaction) ProtoReflect

func (x *Eth1Transaction) ProtoReflect() protoreflect.Message

func (*Eth1Transaction) Reset

func (x *Eth1Transaction) Reset()

func (*Eth1Transaction) String

func (x *Eth1Transaction) String() string

type Eth1TransactionIndexed

type Eth1TransactionIndexed struct {
	Hash               []byte               `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	BlockNumber        uint64               `protobuf:"varint,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
	Time               *timestamp.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
	MethodId           []byte               `protobuf:"bytes,4,opt,name=method_id,json=methodId,proto3" json:"method_id,omitempty"`
	From               []byte               `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty"`
	To                 []byte               `protobuf:"bytes,6,opt,name=to,proto3" json:"to,omitempty"`
	Value              []byte               `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
	TxFee              []byte               `protobuf:"bytes,8,opt,name=tx_fee,json=txFee,proto3" json:"tx_fee,omitempty"`
	GasPrice           []byte               `protobuf:"bytes,9,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"`
	IsContractCreation bool                 `protobuf:"varint,10,opt,name=is_contract_creation,json=isContractCreation,proto3" json:"is_contract_creation,omitempty"`
	InvokesContract    bool                 `protobuf:"varint,11,opt,name=invokes_contract,json=invokesContract,proto3" json:"invokes_contract,omitempty"`
	ErrorMsg           string               `protobuf:"bytes,12,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1TransactionIndexed) Descriptor deprecated

func (*Eth1TransactionIndexed) Descriptor() ([]byte, []int)

Deprecated: Use Eth1TransactionIndexed.ProtoReflect.Descriptor instead.

func (*Eth1TransactionIndexed) GetBlockNumber

func (x *Eth1TransactionIndexed) GetBlockNumber() uint64

func (*Eth1TransactionIndexed) GetErrorMsg

func (x *Eth1TransactionIndexed) GetErrorMsg() string

func (*Eth1TransactionIndexed) GetFrom

func (x *Eth1TransactionIndexed) GetFrom() []byte

func (*Eth1TransactionIndexed) GetGasPrice

func (x *Eth1TransactionIndexed) GetGasPrice() []byte

func (*Eth1TransactionIndexed) GetHash

func (x *Eth1TransactionIndexed) GetHash() []byte

func (*Eth1TransactionIndexed) GetInvokesContract

func (x *Eth1TransactionIndexed) GetInvokesContract() bool

func (*Eth1TransactionIndexed) GetIsContractCreation

func (x *Eth1TransactionIndexed) GetIsContractCreation() bool

func (*Eth1TransactionIndexed) GetMethodId

func (x *Eth1TransactionIndexed) GetMethodId() []byte

func (*Eth1TransactionIndexed) GetTime

func (*Eth1TransactionIndexed) GetTo

func (x *Eth1TransactionIndexed) GetTo() []byte

func (*Eth1TransactionIndexed) GetTxFee

func (x *Eth1TransactionIndexed) GetTxFee() []byte

func (*Eth1TransactionIndexed) GetValue

func (x *Eth1TransactionIndexed) GetValue() []byte

func (*Eth1TransactionIndexed) ProtoMessage

func (*Eth1TransactionIndexed) ProtoMessage()

func (*Eth1TransactionIndexed) ProtoReflect

func (x *Eth1TransactionIndexed) ProtoReflect() protoreflect.Message

func (*Eth1TransactionIndexed) Reset

func (x *Eth1TransactionIndexed) Reset()

func (*Eth1TransactionIndexed) String

func (x *Eth1TransactionIndexed) String() string

type Eth1TransactionParsed

type Eth1TransactionParsed struct {
	Hash               string    `json:"hash,omitempty"`
	BlockNumber        uint64    `json:"block,omitempty"`
	Time               time.Time `json:"time,omitempty"`
	MethodId           string    `json:"method,omitempty"`
	From               string    `json:"from,omitempty"`
	To                 string    `json:"to,omitempty"`
	Value              string    `json:"value,omitempty"`
	TxFee              string    `json:"fee,omitempty"`
	GasPrice           string    `json:"gasPrice,omitempty"`
	IsContractCreation bool      `json:"is_contract_creation,omitempty"`
	InvokesContract    bool      `json:"invokes_contract,omitempty"`
}

type Eth1TxData

type Eth1TxData struct {
	From         common.Address
	To           *common.Address
	InternalTxns []Transfer
	FromName     string
	ToName       string
	Gas          struct {
		BlockBaseFee   []byte
		MaxFee         []byte
		MaxPriorityFee []byte
		Used           uint64
		UsedPerc       float64
		Limit          uint64
		TxFee          []byte
		EffectiveFee   []byte
	}
	Epoch struct {
		Finalized     bool    `db:"finalized"`
		Participation float64 `db:"globalparticipationrate"`
	}
	TypeFormatted               string
	Type                        uint8
	Nonce                       uint64
	TxnPosition                 uint
	Hash                        common.Hash
	Value                       []byte
	Receipt                     *geth_types.Receipt
	ErrorMsg                    string
	BlockNumber                 int64
	Timestamp                   uint64
	IsPending                   bool
	TargetIsContract            bool
	IsContractCreation          bool
	CallData                    string
	Method                      string
	Events                      []*Eth1EventData
	Transfers                   []*Transfer
	DepositContractInteractions []DepositContractInteraction
	CurrentEtherPrice           template.HTML
	HistoricEtherPrice          template.HTML
}

type Eth1UncleIndexed

type Eth1UncleIndexed struct {
	BlockNumber uint64               `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
	Number      uint64               `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
	GasLimit    uint64               `protobuf:"varint,3,opt,name=gas_limit,json=gasLimit,proto3" json:"gas_limit,omitempty"`
	GasUsed     uint64               `protobuf:"varint,4,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
	BaseFee     []byte               `protobuf:"bytes,5,opt,name=base_fee,json=baseFee,proto3" json:"base_fee,omitempty"`
	Difficulty  []byte               `protobuf:"bytes,6,opt,name=difficulty,proto3" json:"difficulty,omitempty"`
	Time        *timestamp.Timestamp `protobuf:"bytes,7,opt,name=time,proto3" json:"time,omitempty"`
	Reward      []byte               `protobuf:"bytes,8,opt,name=reward,proto3" json:"reward,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1UncleIndexed) Descriptor deprecated

func (*Eth1UncleIndexed) Descriptor() ([]byte, []int)

Deprecated: Use Eth1UncleIndexed.ProtoReflect.Descriptor instead.

func (*Eth1UncleIndexed) GetBaseFee

func (x *Eth1UncleIndexed) GetBaseFee() []byte

func (*Eth1UncleIndexed) GetBlockNumber

func (x *Eth1UncleIndexed) GetBlockNumber() uint64

func (*Eth1UncleIndexed) GetDifficulty

func (x *Eth1UncleIndexed) GetDifficulty() []byte

func (*Eth1UncleIndexed) GetGasLimit

func (x *Eth1UncleIndexed) GetGasLimit() uint64

func (*Eth1UncleIndexed) GetGasUsed

func (x *Eth1UncleIndexed) GetGasUsed() uint64

func (*Eth1UncleIndexed) GetNumber

func (x *Eth1UncleIndexed) GetNumber() uint64

func (*Eth1UncleIndexed) GetReward

func (x *Eth1UncleIndexed) GetReward() []byte

func (*Eth1UncleIndexed) GetTime

func (x *Eth1UncleIndexed) GetTime() *timestamp.Timestamp

func (*Eth1UncleIndexed) ProtoMessage

func (*Eth1UncleIndexed) ProtoMessage()

func (*Eth1UncleIndexed) ProtoReflect

func (x *Eth1UncleIndexed) ProtoReflect() protoreflect.Message

func (*Eth1UncleIndexed) Reset

func (x *Eth1UncleIndexed) Reset()

func (*Eth1UncleIndexed) String

func (x *Eth1UncleIndexed) String() string

type Eth1UncleParsed

type Eth1UncleParsed struct {
	BlockNumber uint64    `json:"block,omitempty"`
	Number      uint64    `json:"number,omitempty"`
	GasLimit    uint64    `json:"gas_limit,omitempty"`
	GasUsed     uint64    `json:"gas_used,omitempty"`
	BaseFee     string    `json:"base_fee,omitempty"`
	Difficulty  string    `json:"difficulty,omitempty"`
	Time        time.Time `json:"time,omitempty"`
	Reward      string    `json:"reward,omitempty"`
}

type Eth1Withdrawal

type Eth1Withdrawal struct {
	Index          uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	ValidatorIndex uint64 `protobuf:"varint,2,opt,name=validator_index,json=validatorIndex,proto3" json:"validator_index,omitempty"`
	Address        []byte `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
	Amount         []byte `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1Withdrawal) Descriptor deprecated

func (*Eth1Withdrawal) Descriptor() ([]byte, []int)

Deprecated: Use Eth1Withdrawal.ProtoReflect.Descriptor instead.

func (*Eth1Withdrawal) GetAddress

func (x *Eth1Withdrawal) GetAddress() []byte

func (*Eth1Withdrawal) GetAmount

func (x *Eth1Withdrawal) GetAmount() []byte

func (*Eth1Withdrawal) GetIndex

func (x *Eth1Withdrawal) GetIndex() uint64

func (*Eth1Withdrawal) GetValidatorIndex

func (x *Eth1Withdrawal) GetValidatorIndex() uint64

func (*Eth1Withdrawal) ProtoMessage

func (*Eth1Withdrawal) ProtoMessage()

func (*Eth1Withdrawal) ProtoReflect

func (x *Eth1Withdrawal) ProtoReflect() protoreflect.Message

func (*Eth1Withdrawal) Reset

func (x *Eth1Withdrawal) Reset()

func (*Eth1Withdrawal) String

func (x *Eth1Withdrawal) String() string

type Eth1WithdrawalIndexed

type Eth1WithdrawalIndexed struct {
	BlockNumber    uint64               `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
	Index          uint64               `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
	ValidatorIndex uint64               `protobuf:"varint,3,opt,name=validator_index,json=validatorIndex,proto3" json:"validator_index,omitempty"`
	Address        []byte               `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"`
	Amount         []byte               `protobuf:"bytes,5,opt,name=amount,proto3" json:"amount,omitempty"`
	Time           *timestamp.Timestamp `protobuf:"bytes,6,opt,name=time,proto3" json:"time,omitempty"`
	// contains filtered or unexported fields
}

func (*Eth1WithdrawalIndexed) Descriptor deprecated

func (*Eth1WithdrawalIndexed) Descriptor() ([]byte, []int)

Deprecated: Use Eth1WithdrawalIndexed.ProtoReflect.Descriptor instead.

func (*Eth1WithdrawalIndexed) GetAddress

func (x *Eth1WithdrawalIndexed) GetAddress() []byte

func (*Eth1WithdrawalIndexed) GetAmount

func (x *Eth1WithdrawalIndexed) GetAmount() []byte

func (*Eth1WithdrawalIndexed) GetBlockNumber

func (x *Eth1WithdrawalIndexed) GetBlockNumber() uint64

func (*Eth1WithdrawalIndexed) GetIndex

func (x *Eth1WithdrawalIndexed) GetIndex() uint64

func (*Eth1WithdrawalIndexed) GetTime

func (*Eth1WithdrawalIndexed) GetValidatorIndex

func (x *Eth1WithdrawalIndexed) GetValidatorIndex() uint64

func (*Eth1WithdrawalIndexed) ProtoMessage

func (*Eth1WithdrawalIndexed) ProtoMessage()

func (*Eth1WithdrawalIndexed) ProtoReflect

func (x *Eth1WithdrawalIndexed) ProtoReflect() protoreflect.Message

func (*Eth1WithdrawalIndexed) Reset

func (x *Eth1WithdrawalIndexed) Reset()

func (*Eth1WithdrawalIndexed) String

func (x *Eth1WithdrawalIndexed) String() string

type Eth2Deposit

type Eth2Deposit struct {
	BlockSlot             uint64 `db:"block_slot"`
	BlockIndex            uint64 `db:"block_index"`
	BlockRoot             []byte `db:"block_root"`
	Proof                 []byte `db:"proof"`
	Publickey             []byte `db:"publickey"`
	Withdrawalcredentials []byte `db:"withdrawalcredentials"`
	Amount                uint64 `db:"amount"`
	Signature             []byte `db:"signature"`
}

Eth2Deposit is a struct to hold eth2-deposit data

type EthOneDepositLeaderBoardPageData

type EthOneDepositLeaderBoardPageData struct {
	DepositContract string
}

type EthOneDepositLeaderboardData

type EthOneDepositLeaderboardData struct {
	FromAddress        []byte `db:"from_address"`
	Amount             uint64 `db:"amount"`
	ValidCount         uint64 `db:"validcount"`
	InvalidCount       uint64 `db:"invalidcount"`
	TotalCount         uint64 `db:"totalcount"`
	PendingCount       uint64 `db:"pendingcount"`
	SlashedCount       uint64 `db:"slashedcount"`
	ActiveCount        uint64 `db:"activecount"`
	VoluntaryExitCount uint64 `db:"voluntary_exit_count"`
}

type EthOneDepositsData

type EthOneDepositsData struct {
	TxHash                []byte    `db:"tx_hash"`
	TxInput               []byte    `db:"tx_input"`
	TxIndex               uint64    `db:"tx_index"`
	BlockNumber           uint64    `db:"block_number"`
	BlockTs               time.Time `db:"block_ts"`
	FromAddress           []byte    `db:"from_address"`
	PublicKey             []byte    `db:"publickey"`
	WithdrawalCredentials []byte    `db:"withdrawal_credentials"`
	Amount                uint64    `db:"amount"`
	Signature             []byte    `db:"signature"`
	MerkletreeIndex       []byte    `db:"merkletree_index"`
	State                 string    `db:"state"`
	ValidSignature        bool      `db:"valid_signature"`
}

EpochsPageData is a struct to hold epoch data for the epochs page

type EthStoreDay

type EthStoreDay struct {
	Pool                   string          `db:"pool"`
	Day                    uint64          `db:"day"`
	EffectiveBalancesSum   decimal.Decimal `db:"effective_balances_sum_wei"`
	StartBalancesSum       decimal.Decimal `db:"start_balances_sum_wei"`
	EndBalancesSum         decimal.Decimal `db:"end_balances_sum_wei"`
	DepositsSum            decimal.Decimal `db:"deposits_sum_wei"`
	TxFeesSumWei           decimal.Decimal `db:"tx_fees_sum_wei"`
	ConsensusRewardsSumWei decimal.Decimal `db:"consensus_rewards_sum_wei"`
	TotalRewardsWei        decimal.Decimal `db:"total_rewards_wei"`
	APR                    decimal.Decimal `db:"apr"`
}

EthStoreDay is a struct to hold performance data for a specific beaconchain-day. All fields use Gwei unless specified otherwise by the field name

type EthStoreStatistics

type EthStoreStatistics struct {
	EffectiveBalances         [][]float64
	TotalRewards              [][]float64
	APRs                      [][]float64
	YesterdayRewards          float64
	YesterdayEffectiveBalance float64
	ProjectedAPR              float64
	YesterdayTs               int64
	StartEpoch                uint64
}

type EthTwoDepositData

type EthTwoDepositData struct {
	BlockSlot             uint64 `db:"block_slot"`
	BlockIndex            uint64 `db:"block_index"`
	Proof                 []byte `db:"proof"`
	Publickey             []byte `db:"publickey"`
	ValidatorIndex        uint64 `db:"validatorindex"`
	Withdrawalcredentials []byte `db:"withdrawalcredentials"`
	Amount                uint64 `db:"amount"`
	Signature             []byte `db:"signature"`
}

type EtherscanContractMetadata

type EtherscanContractMetadata struct {
	Message string `json:"message"`
	Result  []struct {
		Abi                  string `json:"ABI"`
		CompilerVersion      string `json:"CompilerVersion"`
		ConstructorArguments string `json:"ConstructorArguments"`
		ContractName         string `json:"ContractName"`
		EVMVersion           string `json:"EVMVersion"`
		Implementation       string `json:"Implementation"`
		Library              string `json:"Library"`
		LicenseType          string `json:"LicenseType"`
		OptimizationUsed     string `json:"OptimizationUsed"`
		Proxy                string `json:"Proxy"`
		Runs                 string `json:"Runs"`
		SourceCode           string `json:"SourceCode"`
		SwarmSource          string `json:"SwarmSource"`
	} `json:"result"`
	Status string `json:"status"`
}

type EventName

type EventName string
const (
	ValidatorBalanceDecreasedEventName               EventName = "validator_balance_decreased"
	ValidatorMissedProposalEventName                 EventName = "validator_proposal_missed"
	ValidatorExecutedProposalEventName               EventName = "validator_proposal_submitted"
	ValidatorMissedAttestationEventName              EventName = "validator_attestation_missed"
	ValidatorGotSlashedEventName                     EventName = "validator_got_slashed"
	ValidatorDidSlashEventName                       EventName = "validator_did_slash"
	ValidatorIsOfflineEventName                      EventName = "validator_is_offline"
	ValidatorReceivedWithdrawalEventName             EventName = "validator_withdrawal"
	ValidatorReceivedDepositEventName                EventName = "validator_received_deposit"
	NetworkSlashingEventName                         EventName = "network_slashing"
	NetworkValidatorActivationQueueFullEventName     EventName = "network_validator_activation_queue_full"
	NetworkValidatorActivationQueueNotFullEventName  EventName = "network_validator_activation_queue_not_full"
	NetworkValidatorExitQueueFullEventName           EventName = "network_validator_exit_queue_full"
	NetworkValidatorExitQueueNotFullEventName        EventName = "network_validator_exit_queue_not_full"
	NetworkLivenessIncreasedEventName                EventName = "network_liveness_increased"
	EthClientUpdateEventName                         EventName = "eth_client_update"
	MonitoringMachineOfflineEventName                EventName = "monitoring_machine_offline"
	MonitoringMachineDiskAlmostFullEventName         EventName = "monitoring_hdd_almostfull"
	MonitoringMachineCpuLoadEventName                EventName = "monitoring_cpu_load"
	MonitoringMachineMemoryUsageEventName            EventName = "monitoring_memory_usage"
	MonitoringMachineSwitchedToETH2FallbackEventName EventName = "monitoring_fallback_eth2inuse"
	MonitoringMachineSwitchedToETH1FallbackEventName EventName = "monitoring_fallback_eth1inuse"
	TaxReportEventName                               EventName = "user_tax_report"
	RocketpoolCommissionThresholdEventName           EventName = "rocketpool_commision_threshold"
	RocketpoolNewClaimRoundStartedEventName          EventName = "rocketpool_new_claimround"
	RocketpoolCollateralMinReached                   EventName = "rocketpool_colleteral_min"
	RocketpoolCollateralMaxReached                   EventName = "rocketpool_colleteral_max"
	SyncCommitteeSoon                                EventName = "validator_synccommittee_soon"
)

func EventNameFromString

func EventNameFromString(event string) (EventName, error)

type EventNameCheckbox

type EventNameCheckbox struct {
	EventLabel string
	EventName
	Active  bool
	Warning template.HTML
	Info    template.HTML
}

type EventNameDesc

type EventNameDesc struct {
	Desc    string
	Event   EventName
	Info    template.HTML
	Warning template.HTML
}

type ExecBlockProposer

type ExecBlockProposer struct {
	ExecBlock uint64 `db:"exec_block_number" json:"executionBlockNumber"`
	Proposer  uint64 `db:"proposer" json:"proposerIndex"`
	Slot      uint64 `db:"slot" json:"slot"`
	Epoch     uint64 `db:"epoch" json:"epoch"`
	Finalized bool   `json:"finalized"`
}

type ExecutionBlockApiResponse

type ExecutionBlockApiResponse struct {
	Hash               string                `json:"blockHash"`
	BlockNumber        uint64                `json:"blockNumber"`
	Timestamp          uint64                `json:"timestamp"`
	BlockReward        *big.Int              `json:"blockReward"`
	BlockMevReward     *big.Int              `json:"blockMevReward"`
	FeeRecipientReward *big.Int              `json:"producerReward"`
	FeeRecipient       string                `json:"feeRecipient"`
	GasLimit           uint64                `json:"gasLimit"`
	GasUsed            uint64                `json:"gasUsed"`
	BaseFee            *big.Int              `json:"baseFee"`
	TxCount            uint64                `json:"txCount"`
	InternalTxCount    uint64                `json:"internalTxCount"`
	UncleCount         uint64                `json:"uncleCount"`
	ParentHash         string                `json:"parentHash"`
	UncleHash          string                `json:"uncleHash"`
	Difficulty         *big.Int              `json:"difficulty"`
	PoSData            *ExecBlockProposer    `json:"posConsensus"`
	RelayData          *RelayDataApiResponse `json:"relay"`
	ConsensusAlgorithm string                `json:"consensusAlgorithm"`
}

type ExecutionPayload

type ExecutionPayload struct {
	ParentHash    []byte
	FeeRecipient  []byte
	StateRoot     []byte
	ReceiptsRoot  []byte
	LogsBloom     []byte
	Random        []byte
	BlockNumber   uint64
	GasLimit      uint64
	GasUsed       uint64
	Timestamp     uint64
	ExtraData     []byte
	BaseFeePerGas uint64
	BlockHash     []byte
	Transactions  []*Transaction
	Withdrawals   []*Withdrawals
}

type ExecutionPerformanceResponse

type ExecutionPerformanceResponse struct {
	Performance1d  *big.Int `json:"performance1d"`
	Performance7d  *big.Int `json:"performance7d"`
	Performance31d *big.Int `json:"performance31d"`
	ValidatorIndex uint64   `json:"validatorindex"`
}

type ExplorerConfig

type ExplorerConfig struct {
	Category ExplorerConfigurationCategory `db:"category"`
	Key      ExplorerConfigurationKey      `db:"key"`
	ExplorerConfigValue
}

type ExplorerConfigValue

type ExplorerConfigValue struct {
	Value    string `db:"value"`
	DataType string `db:"data_type"`
}

type ExplorerConfigurationCategory

type ExplorerConfigurationCategory string

type ExplorerConfigurationKey

type ExplorerConfigurationKey string

type ExplorerConfigurationMap

func (ExplorerConfigurationMap) GetConfigValue

func (ExplorerConfigurationMap) GetStringValue

func (configMap ExplorerConfigurationMap) GetStringValue(category ExplorerConfigurationCategory, configKey ExplorerConfigurationKey) (string, error)

func (ExplorerConfigurationMap) GetUInt64Value

func (configMap ExplorerConfigurationMap) GetUInt64Value(category ExplorerConfigurationCategory, configKey ExplorerConfigurationKey) (uint64, error)

type ExplorerConfigurationPageData

type ExplorerConfigurationPageData struct {
	Configurations ExplorerConfigurationMap
	CsrfField      template.HTML
}

type FilterSubscription

type FilterSubscription struct {
	User     uint64
	PriceIds []string
}

type FinalityCheckpoints

type FinalityCheckpoints struct {
	PreviousJustified struct {
		Epoch uint64 `json:"epoch"`
		Root  string `json:"root"`
	} `json:"previous_justified"`
	CurrentJustified struct {
		Epoch uint64 `json:"epoch"`
		Root  string `json:"root"`
	} `json:"current_justified"`
	Finalized struct {
		Epoch uint64 `json:"epoch"`
		Root  string `json:"root"`
	} `json:"finalized"`
}

type ForkVersion

type ForkVersion struct {
	Epoch           uint64
	CurrentVersion  []byte
	PreviousVersion []byte
}

type GasNowHistory

type GasNowHistory struct {
	Ts       time.Time
	Slow     *big.Int
	Standard *big.Int
	Fast     *big.Int
	Rapid    *big.Int
}

type GasNowPageData

type GasNowPageData struct {
	Code int `json:"code"`
	Data struct {
		Rapid     *big.Int `json:"rapid"`
		Fast      *big.Int `json:"fast"`
		Standard  *big.Int `json:"standard"`
		Slow      *big.Int `json:"slow"`
		Timestamp int64    `json:"timestamp"`
		Price     float64  `json:"price,omitempty"`
		PriceUSD  float64  `json:"priceUSD"`
		Currency  string   `json:"currency,omitempty"`
	} `json:"data"`
}

type GenericChartData

type GenericChartData struct {
	IsNormalChart                   bool
	ShowGapHider                    bool
	XAxisLabelsFormatter            template.JS
	TooltipFormatter                template.JS
	TooltipShared                   bool
	TooltipUseHTML                  bool
	TooltipSplit                    bool
	TooltipFollowPointer            bool
	PlotOptionsSeriesEventsClick    template.JS
	PlotOptionsPie                  template.JS
	DataLabelsEnabled               bool
	DataLabelsFormatter             template.JS
	PlotOptionsSeriesCursor         string
	Title                           string                    `json:"title"`
	Subtitle                        string                    `json:"subtitle"`
	XAxisTitle                      string                    `json:"x_axis_title"`
	YAxisTitle                      string                    `json:"y_axis_title"`
	Type                            string                    `json:"type"`
	StackingMode                    string                    `json:"stacking_mode"`
	ColumnDataGroupingApproximation string                    // "average", "averages", "open", "high", "low", "close" and "sum"
	Series                          []*GenericChartDataSeries `json:"series"`
	Drilldown                       interface{}               `json:"drilldown"`
}

GenericChartData is a struct to hold chart data

type GenericChartDataSeries

type GenericChartDataSeries struct {
	Name  string      `json:"name"`
	Data  interface{} `json:"data"`
	Stack string      `json:"stack,omitempty"`
	Type  string      `json:"type,omitempty"`
	Color string      `json:"color,omitempty"`
}

GenericChartDataSeries is a struct to hold chart series data

type GetBlockTimings

type GetBlockTimings struct {
	Headers  time.Duration
	Receipts time.Duration
	Traces   time.Duration
}

type GoogleRecaptchaResponse

type GoogleRecaptchaResponse struct {
	Success            bool     `json:"success"`
	ChallengeTimestamp string   `json:"challenge_ts"`
	Hostname           string   `json:"hostname"`
	ErrorCodes         []string `json:"error-codes"`
	Score              float32  `json:"score,omitempty"`
	Action             string   `json:"action,omitempty"`
}

GoogleRecaptchaResponse ...

type GraffitiwallData

type GraffitiwallData struct {
	X         uint64 `db:"x" json:"x"`
	Y         uint64 `db:"y" json:"y"`
	Color     string `db:"color" json:"color"`
	Slot      uint64 `db:"slot" json:"slot"`
	Validator uint64 `db:"validator" json:"validator"`
}

type HeatmapData

type HeatmapData struct {
	// BalanceHistory DashboardValidatorBalanceHistory `json:"balance_history"`
	// Earnings       ValidatorEarnings                `json:"earnings"`
	// Validators     [][]interface{}                  `json:"validators"`
	Csrf           string `json:"csrf"`
	ValidatorLimit int    `json:"valLimit"`
	Epochs         []uint64
	Validators     []uint64
	IncomeData     [][3]int64
	MinIncome      int64
	MaxIncome      int64
}

type HistoricEthPrice

type HistoricEthPrice struct {
	MarketData struct {
		CurrentPrice struct {
			Aed float64 `json:"aed"`
			Ars float64 `json:"ars"`
			Aud float64 `json:"aud"`
			Bdt float64 `json:"bdt"`
			Bhd float64 `json:"bhd"`
			Bmd float64 `json:"bmd"`
			Brl float64 `json:"brl"`
			Btc float64 `json:"btc"`
			Cad float64 `json:"cad"`
			Chf float64 `json:"chf"`
			Clp float64 `json:"clp"`
			Cny float64 `json:"cny"`
			Czk float64 `json:"czk"`
			Dkk float64 `json:"dkk"`
			Eth float64 `json:"eth"`
			Eur float64 `json:"eur"`
			Gbp float64 `json:"gbp"`
			Hkd float64 `json:"hkd"`
			Huf float64 `json:"huf"`
			Idr float64 `json:"idr"`
			Ils float64 `json:"ils"`
			Inr float64 `json:"inr"`
			Jpy float64 `json:"jpy"`
			Krw float64 `json:"krw"`
			Kwd float64 `json:"kwd"`
			Lkr float64 `json:"lkr"`
			Ltc float64 `json:"ltc"`
			Mmk float64 `json:"mmk"`
			Mxn float64 `json:"mxn"`
			Myr float64 `json:"myr"`
			Ngn float64 `json:"ngn"`
			Nok float64 `json:"nok"`
			Nzd float64 `json:"nzd"`
			Php float64 `json:"php"`
			Pkr float64 `json:"pkr"`
			Pln float64 `json:"pln"`
			Rub float64 `json:"rub"`
			Sar float64 `json:"sar"`
			Sek float64 `json:"sek"`
			Sgd float64 `json:"sgd"`
			Thb float64 `json:"thb"`
			Try float64 `json:"try"`
			Twd float64 `json:"twd"`
			Uah float64 `json:"uah"`
			Usd float64 `json:"usd"`
			Vef float64 `json:"vef"`
			Vnd float64 `json:"vnd"`
			Xag float64 `json:"xag"`
			Xau float64 `json:"xau"`
			Xdr float64 `json:"xdr"`
			Zar float64 `json:"zar"`
		} `json:"current_price"`
		MarketCap struct {
			Aed float64 `json:"aed"`
			Ars float64 `json:"ars"`
			Aud float64 `json:"aud"`
			Bdt float64 `json:"bdt"`
			Bhd float64 `json:"bhd"`
			Bmd float64 `json:"bmd"`
			Brl float64 `json:"brl"`
			Btc float64 `json:"btc"`
			Cad float64 `json:"cad"`
			Chf float64 `json:"chf"`
			Clp float64 `json:"clp"`
			Cny float64 `json:"cny"`
			Czk float64 `json:"czk"`
			Dkk float64 `json:"dkk"`
			Eth float64 `json:"eth"`
			Eur float64 `json:"eur"`
			Gbp float64 `json:"gbp"`
			Hkd float64 `json:"hkd"`
			Huf float64 `json:"huf"`
			Idr float64 `json:"idr"`
			Ils float64 `json:"ils"`
			Inr float64 `json:"inr"`
			Jpy float64 `json:"jpy"`
			Krw float64 `json:"krw"`
			Kwd float64 `json:"kwd"`
			Lkr float64 `json:"lkr"`
			Ltc float64 `json:"ltc"`
			Mmk float64 `json:"mmk"`
			Mxn float64 `json:"mxn"`
			Myr float64 `json:"myr"`
			Ngn float64 `json:"ngn"`
			Nok float64 `json:"nok"`
			Nzd float64 `json:"nzd"`
			Php float64 `json:"php"`
			Pkr float64 `json:"pkr"`
			Pln float64 `json:"pln"`
			Rub float64 `json:"rub"`
			Sar float64 `json:"sar"`
			Sek float64 `json:"sek"`
			Sgd float64 `json:"sgd"`
			Thb float64 `json:"thb"`
			Try float64 `json:"try"`
			Twd float64 `json:"twd"`
			Uah float64 `json:"uah"`
			Usd float64 `json:"usd"`
			Vef float64 `json:"vef"`
			Vnd float64 `json:"vnd"`
			Xag float64 `json:"xag"`
			Xau float64 `json:"xau"`
			Xdr float64 `json:"xdr"`
			Zar float64 `json:"zar"`
		} `json:"market_cap"`
		TotalVolume struct {
			Aed float64 `json:"aed"`
			Ars float64 `json:"ars"`
			Aud float64 `json:"aud"`
			Bdt float64 `json:"bdt"`
			Bhd float64 `json:"bhd"`
			Bmd float64 `json:"bmd"`
			Brl float64 `json:"brl"`
			Btc float64 `json:"btc"`
			Cad float64 `json:"cad"`
			Chf float64 `json:"chf"`
			Clp float64 `json:"clp"`
			Cny float64 `json:"cny"`
			Czk float64 `json:"czk"`
			Dkk float64 `json:"dkk"`
			Eth float64 `json:"eth"`
			Eur float64 `json:"eur"`
			Gbp float64 `json:"gbp"`
			Hkd float64 `json:"hkd"`
			Huf float64 `json:"huf"`
			Idr float64 `json:"idr"`
			Ils float64 `json:"ils"`
			Inr float64 `json:"inr"`
			Jpy float64 `json:"jpy"`
			Krw float64 `json:"krw"`
			Kwd float64 `json:"kwd"`
			Lkr float64 `json:"lkr"`
			Ltc float64 `json:"ltc"`
			Mmk float64 `json:"mmk"`
			Mxn float64 `json:"mxn"`
			Myr float64 `json:"myr"`
			Ngn float64 `json:"ngn"`
			Nok float64 `json:"nok"`
			Nzd float64 `json:"nzd"`
			Php float64 `json:"php"`
			Pkr float64 `json:"pkr"`
			Pln float64 `json:"pln"`
			Rub float64 `json:"rub"`
			Sar float64 `json:"sar"`
			Sek float64 `json:"sek"`
			Sgd float64 `json:"sgd"`
			Thb float64 `json:"thb"`
			Try float64 `json:"try"`
			Twd float64 `json:"twd"`
			Uah float64 `json:"uah"`
			Usd float64 `json:"usd"`
			Vef float64 `json:"vef"`
			Vnd float64 `json:"vnd"`
			Xag float64 `json:"xag"`
			Xau float64 `json:"xau"`
			Xdr float64 `json:"xdr"`
			Zar float64 `json:"zar"`
		} `json:"total_volume"`
	} `json:"market_data"`
	Name   string `json:"name"`
	Symbol string `json:"symbol"`
}

type IndexPageData

type IndexPageData struct {
	NetworkName               string `json:"networkName"`
	DepositContract           string `json:"depositContract"`
	ShowSyncingMessage        bool
	CurrentEpoch              uint64                 `json:"current_epoch"`
	CurrentFinalizedEpoch     uint64                 `json:"current_finalized_epoch"`
	CurrentSlot               uint64                 `json:"current_slot"`
	ScheduledCount            uint8                  `json:"scheduled_count"`
	FinalityDelay             uint64                 `json:"finality_delay"`
	ActiveValidators          uint64                 `json:"active_validators"`
	EnteringValidators        uint64                 `json:"entering_validators"`
	ExitingValidators         uint64                 `json:"exiting_validators"`
	StakedEther               string                 `json:"staked_ether"`
	AverageBalance            string                 `json:"average_balance"`
	DepositedTotal            float64                `json:"deposit_total"`
	DepositThreshold          float64                `json:"deposit_threshold"`
	ValidatorsRemaining       float64                `json:"validators_remaining"`
	NetworkStartTs            int64                  `json:"network_start_ts"`
	MinGenesisTime            int64                  `json:"minGenesisTime"`
	Blocks                    []*IndexPageDataBlocks `json:"blocks"`
	Epochs                    []*IndexPageDataEpochs `json:"epochs"`
	StakedEtherChartData      [][]float64            `json:"staked_ether_chart_data"`
	ActiveValidatorsChartData [][]float64            `json:"active_validators_chart_data"`
	Subtitle                  template.HTML          `json:"subtitle"`
	Genesis                   bool                   `json:"genesis"`
	GenesisPeriod             bool                   `json:"genesis_period"`
	Mainnet                   bool                   `json:"mainnet"`
	DepositChart              *ChartsPageDataChart
	DepositDistribution       *ChartsPageDataChart
	Countdown                 interface{}
	SlotVizData               *SlotVizPageData `json:"slotVizData"`
}

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"`
	Ts                   time.Time     `json:"ts"`
	Proposer             uint64        `db:"proposer" json:"proposer"`
	ProposerFormatted    template.HTML `json:"proposer_formatted"`
	BlockRoot            []byte        `db:"blockroot" json:"block_root"`
	BlockRootFormatted   string        `json:"block_root_formatted"`
	ParentRoot           []byte        `db:"parentroot" json:"parent_root"`
	Attestations         uint64        `db:"attestationscount" json:"attestations"`
	Deposits             uint64        `db:"depositscount" json:"deposits"`
	Withdrawals          uint64        `db:"withdrawalcount" json:"withdrawals"`
	Exits                uint64        `db:"voluntaryexitscount" json:"exits"`
	Proposerslashings    uint64        `db:"proposerslashingscount" json:"proposerslashings"`
	Attesterslashings    uint64        `db:"attesterslashingscount" json:"attesterslashings"`
	SyncAggParticipation float64       `db:"syncaggregate_participation" json:"sync_aggregate_participation"`
	Status               uint64        `db:"status" json:"status"`
	StatusFormatted      template.HTML `json:"status_formatted"`
	Votes                uint64        `db:"votes" json:"votes"`
	Graffiti             []byte        `db:"graffiti"`
	ProposerName         string        `db:"name"`
	ExecutionBlockNumber int           `db:"exec_block_number" json:"exec_block_number"`
}

IndexPageDataBlocks is a struct to hold detail data for the main web page

type IndexPageDataEpochs

type IndexPageDataEpochs struct {
	Epoch                            uint64        `json:"epoch"`
	Ts                               time.Time     `json:"ts"`
	Finalized                        bool          `json:"finalized"`
	FinalizedFormatted               template.HTML `json:"finalized_formatted"`
	EligibleEther                    uint64        `json:"eligibleether"`
	EligibleEtherFormatted           template.HTML `json:"eligibleether_formatted"`
	GlobalParticipationRate          float64       `json:"globalparticipationrate"`
	GlobalParticipationRateFormatted template.HTML `json:"globalparticipationrate_formatted"`
	VotedEther                       uint64        `json:"votedether"`
	VotedEtherFormatted              template.HTML `json:"votedether_formatted"`
}

type IndexPageEpochHistory

type IndexPageEpochHistory struct {
	Epoch                   uint64 `db:"epoch"`
	ValidatorsCount         uint64 `db:"validatorscount"`
	EligibleEther           uint64 `db:"eligibleether"`
	Finalized               bool   `db:"finalized"`
	AverageValidatorBalance uint64 `db:"averagevalidatorbalance"`
}

IndexPageEpochHistory is a struct to hold the epoch history for the main web page

type IndexedAttestation

type IndexedAttestation struct {
	Data             *AttestationData
	AttestingIndices []uint64
	Signature        []byte
}

IndexedAttestation is a struct to hold indexed attestation data

type LatestState

type LatestState struct {
	LastProposedSlot      uint64        `json:"lastProposedSlot"`
	CurrentSlot           uint64        `json:"currentSlot"`
	CurrentEpoch          uint64        `json:"currentEpoch"`
	CurrentFinalizedEpoch uint64        `json:"currentFinalizedEpoch"`
	FinalityDelay         uint64        `json:"finalityDelay"`
	IsSyncing             bool          `json:"syncing"`
	EthPrice              float64       `json:"ethPrice"`
	EthRoundPrice         uint64        `json:"ethRoundPrice"`
	EthTruncPrice         template.HTML `json:"ethTruncPrice"`
	UsdRoundPrice         uint64        `json:"usdRoundPrice"`
	UsdTruncPrice         template.HTML `json:"usdTruncPrice"`
	EurRoundPrice         uint64        `json:"eurRoundPrice"`
	EurTruncPrice         template.HTML `json:"eurTruncPrice"`
	GbpRoundPrice         uint64        `json:"gbpRoundPrice"`
	GbpTruncPrice         template.HTML `json:"gbpTruncPrice"`
	CnyRoundPrice         uint64        `json:"cnyRoundPrice"`
	CnyTruncPrice         template.HTML `json:"cnyTruncPrice"`
	RubRoundPrice         uint64        `json:"rubRoundPrice"`
	RubTruncPrice         template.HTML `json:"rubTruncPrice"`
	CadRoundPrice         uint64        `json:"cadRoundPrice"`
	CadTruncPrice         template.HTML `json:"cadTruncPrice"`
	AudRoundPrice         uint64        `json:"audRoundPrice"`
	AudTruncPrice         template.HTML `json:"audTruncPrice"`
	JpyRoundPrice         uint64        `json:"jpyRoundPrice"`
	JpyTruncPrice         template.HTML `json:"jpyTruncPrice"`
	Currency              string        `json:"currency"`
}

LatestState is a struct to hold data for the banner

type MachineMetricNode

type MachineMetricNode struct {
	Timestamp       uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	ExporterVersion string `protobuf:"bytes,2,opt,name=exporter_version,json=exporterVersion,proto3" json:"exporter_version,omitempty"`
	// process
	CpuProcessSecondsTotal     uint64 `` /* 132-byte string literal not displayed */
	MemoryProcessBytes         uint64 `protobuf:"varint,4,opt,name=memory_process_bytes,json=memoryProcessBytes,proto3" json:"memory_process_bytes,omitempty"`
	ClientName                 string `protobuf:"bytes,5,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"`
	ClientVersion              string `protobuf:"bytes,6,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
	ClientBuild                uint64 `protobuf:"varint,7,opt,name=client_build,json=clientBuild,proto3" json:"client_build,omitempty"`
	SyncEth2FallbackConfigured bool   `` /* 144-byte string literal not displayed */
	SyncEth2FallbackConnected  bool   `` /* 141-byte string literal not displayed */
	// node
	DiskBeaconchainBytesTotal       uint64 `` /* 142-byte string literal not displayed */
	NetworkLibp2PBytesTotalReceive  uint64 `` /* 159-byte string literal not displayed */
	NetworkLibp2PBytesTotalTransmit uint64 `` /* 162-byte string literal not displayed */
	NetworkPeersConnected           uint64 `` /* 128-byte string literal not displayed */
	SyncEth1Connected               bool   `protobuf:"varint,14,opt,name=sync_eth1_connected,json=syncEth1Connected,proto3" json:"sync_eth1_connected,omitempty"`
	SyncEth2Synced                  bool   `protobuf:"varint,15,opt,name=sync_eth2_synced,json=syncEth2Synced,proto3" json:"sync_eth2_synced,omitempty"`
	SyncBeaconHeadSlot              uint64 `protobuf:"varint,16,opt,name=sync_beacon_head_slot,json=syncBeaconHeadSlot,proto3" json:"sync_beacon_head_slot,omitempty"`
	SyncEth1FallbackConfigured      bool   `` /* 145-byte string literal not displayed */
	SyncEth1FallbackConnected       bool   `` /* 142-byte string literal not displayed */
	// do not store in bigtable but include them in generated model
	Machine *string `protobuf:"bytes,19,opt,name=machine,proto3,oneof" json:"machine,omitempty"`
	// contains filtered or unexported fields
}

func (*MachineMetricNode) Descriptor deprecated

func (*MachineMetricNode) Descriptor() ([]byte, []int)

Deprecated: Use MachineMetricNode.ProtoReflect.Descriptor instead.

func (*MachineMetricNode) GetClientBuild

func (x *MachineMetricNode) GetClientBuild() uint64

func (*MachineMetricNode) GetClientName

func (x *MachineMetricNode) GetClientName() string

func (*MachineMetricNode) GetClientVersion

func (x *MachineMetricNode) GetClientVersion() string

func (*MachineMetricNode) GetCpuProcessSecondsTotal

func (x *MachineMetricNode) GetCpuProcessSecondsTotal() uint64

func (*MachineMetricNode) GetDiskBeaconchainBytesTotal

func (x *MachineMetricNode) GetDiskBeaconchainBytesTotal() uint64

func (*MachineMetricNode) GetExporterVersion

func (x *MachineMetricNode) GetExporterVersion() string

func (*MachineMetricNode) GetMachine

func (x *MachineMetricNode) GetMachine() string

func (*MachineMetricNode) GetMemoryProcessBytes

func (x *MachineMetricNode) GetMemoryProcessBytes() uint64

func (*MachineMetricNode) GetNetworkLibp2PBytesTotalReceive

func (x *MachineMetricNode) GetNetworkLibp2PBytesTotalReceive() uint64

func (*MachineMetricNode) GetNetworkLibp2PBytesTotalTransmit

func (x *MachineMetricNode) GetNetworkLibp2PBytesTotalTransmit() uint64

func (*MachineMetricNode) GetNetworkPeersConnected

func (x *MachineMetricNode) GetNetworkPeersConnected() uint64

func (*MachineMetricNode) GetSyncBeaconHeadSlot

func (x *MachineMetricNode) GetSyncBeaconHeadSlot() uint64

func (*MachineMetricNode) GetSyncEth1Connected

func (x *MachineMetricNode) GetSyncEth1Connected() bool

func (*MachineMetricNode) GetSyncEth1FallbackConfigured

func (x *MachineMetricNode) GetSyncEth1FallbackConfigured() bool

func (*MachineMetricNode) GetSyncEth1FallbackConnected

func (x *MachineMetricNode) GetSyncEth1FallbackConnected() bool

func (*MachineMetricNode) GetSyncEth2FallbackConfigured

func (x *MachineMetricNode) GetSyncEth2FallbackConfigured() bool

func (*MachineMetricNode) GetSyncEth2FallbackConnected

func (x *MachineMetricNode) GetSyncEth2FallbackConnected() bool

func (*MachineMetricNode) GetSyncEth2Synced

func (x *MachineMetricNode) GetSyncEth2Synced() bool

func (*MachineMetricNode) GetTimestamp

func (x *MachineMetricNode) GetTimestamp() uint64

func (*MachineMetricNode) ProtoMessage

func (*MachineMetricNode) ProtoMessage()

func (*MachineMetricNode) ProtoReflect

func (x *MachineMetricNode) ProtoReflect() protoreflect.Message

func (*MachineMetricNode) Reset

func (x *MachineMetricNode) Reset()

func (*MachineMetricNode) String

func (x *MachineMetricNode) String() string

type MachineMetricSystem

type MachineMetricSystem struct {
	Timestamp       uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	ExporterVersion string `protobuf:"bytes,2,opt,name=exporter_version,json=exporterVersion,proto3" json:"exporter_version,omitempty"`
	// system
	CpuCores                      uint64 `protobuf:"varint,3,opt,name=cpu_cores,json=cpuCores,proto3" json:"cpu_cores,omitempty"`
	CpuThreads                    uint64 `protobuf:"varint,4,opt,name=cpu_threads,json=cpuThreads,proto3" json:"cpu_threads,omitempty"`
	CpuNodeSystemSecondsTotal     uint64 `` /* 143-byte string literal not displayed */
	CpuNodeUserSecondsTotal       uint64 `` /* 137-byte string literal not displayed */
	CpuNodeIowaitSecondsTotal     uint64 `` /* 143-byte string literal not displayed */
	CpuNodeIdleSecondsTotal       uint64 `` /* 137-byte string literal not displayed */
	MemoryNodeBytesTotal          uint64 `` /* 126-byte string literal not displayed */
	MemoryNodeBytesFree           uint64 `protobuf:"varint,10,opt,name=memory_node_bytes_free,json=memoryNodeBytesFree,proto3" json:"memory_node_bytes_free,omitempty"`
	MemoryNodeBytesCached         uint64 `` /* 130-byte string literal not displayed */
	MemoryNodeBytesBuffers        uint64 `` /* 133-byte string literal not displayed */
	DiskNodeBytesTotal            uint64 `protobuf:"varint,13,opt,name=disk_node_bytes_total,json=diskNodeBytesTotal,proto3" json:"disk_node_bytes_total,omitempty"`
	DiskNodeBytesFree             uint64 `protobuf:"varint,14,opt,name=disk_node_bytes_free,json=diskNodeBytesFree,proto3" json:"disk_node_bytes_free,omitempty"`
	DiskNodeIoSeconds             uint64 `protobuf:"varint,15,opt,name=disk_node_io_seconds,json=diskNodeIoSeconds,proto3" json:"disk_node_io_seconds,omitempty"`
	DiskNodeReadsTotal            uint64 `protobuf:"varint,16,opt,name=disk_node_reads_total,json=diskNodeReadsTotal,proto3" json:"disk_node_reads_total,omitempty"`
	DiskNodeWritesTotal           uint64 `protobuf:"varint,17,opt,name=disk_node_writes_total,json=diskNodeWritesTotal,proto3" json:"disk_node_writes_total,omitempty"`
	NetworkNodeBytesTotalReceive  uint64 `` /* 153-byte string literal not displayed */
	NetworkNodeBytesTotalTransmit uint64 `` /* 156-byte string literal not displayed */
	MiscNodeBootTsSeconds         uint64 `` /* 132-byte string literal not displayed */
	MiscOs                        string `protobuf:"bytes,21,opt,name=misc_os,json=miscOs,proto3" json:"misc_os,omitempty"`
	// do not store in bigtable but include them in generated model
	Machine *string `protobuf:"bytes,22,opt,name=machine,proto3,oneof" json:"machine,omitempty"`
	// contains filtered or unexported fields
}

func (*MachineMetricSystem) Descriptor deprecated

func (*MachineMetricSystem) Descriptor() ([]byte, []int)

Deprecated: Use MachineMetricSystem.ProtoReflect.Descriptor instead.

func (*MachineMetricSystem) GetCpuCores

func (x *MachineMetricSystem) GetCpuCores() uint64

func (*MachineMetricSystem) GetCpuNodeIdleSecondsTotal

func (x *MachineMetricSystem) GetCpuNodeIdleSecondsTotal() uint64

func (*MachineMetricSystem) GetCpuNodeIowaitSecondsTotal

func (x *MachineMetricSystem) GetCpuNodeIowaitSecondsTotal() uint64

func (*MachineMetricSystem) GetCpuNodeSystemSecondsTotal

func (x *MachineMetricSystem) GetCpuNodeSystemSecondsTotal() uint64

func (*MachineMetricSystem) GetCpuNodeUserSecondsTotal

func (x *MachineMetricSystem) GetCpuNodeUserSecondsTotal() uint64

func (*MachineMetricSystem) GetCpuThreads

func (x *MachineMetricSystem) GetCpuThreads() uint64

func (*MachineMetricSystem) GetDiskNodeBytesFree

func (x *MachineMetricSystem) GetDiskNodeBytesFree() uint64

func (*MachineMetricSystem) GetDiskNodeBytesTotal

func (x *MachineMetricSystem) GetDiskNodeBytesTotal() uint64

func (*MachineMetricSystem) GetDiskNodeIoSeconds

func (x *MachineMetricSystem) GetDiskNodeIoSeconds() uint64

func (*MachineMetricSystem) GetDiskNodeReadsTotal

func (x *MachineMetricSystem) GetDiskNodeReadsTotal() uint64

func (*MachineMetricSystem) GetDiskNodeWritesTotal

func (x *MachineMetricSystem) GetDiskNodeWritesTotal() uint64

func (*MachineMetricSystem) GetExporterVersion

func (x *MachineMetricSystem) GetExporterVersion() string

func (*MachineMetricSystem) GetMachine

func (x *MachineMetricSystem) GetMachine() string

func (*MachineMetricSystem) GetMemoryNodeBytesBuffers

func (x *MachineMetricSystem) GetMemoryNodeBytesBuffers() uint64

func (*MachineMetricSystem) GetMemoryNodeBytesCached

func (x *MachineMetricSystem) GetMemoryNodeBytesCached() uint64

func (*MachineMetricSystem) GetMemoryNodeBytesFree

func (x *MachineMetricSystem) GetMemoryNodeBytesFree() uint64

func (*MachineMetricSystem) GetMemoryNodeBytesTotal

func (x *MachineMetricSystem) GetMemoryNodeBytesTotal() uint64

func (*MachineMetricSystem) GetMiscNodeBootTsSeconds

func (x *MachineMetricSystem) GetMiscNodeBootTsSeconds() uint64

func (*MachineMetricSystem) GetMiscOs

func (x *MachineMetricSystem) GetMiscOs() string

func (*MachineMetricSystem) GetNetworkNodeBytesTotalReceive

func (x *MachineMetricSystem) GetNetworkNodeBytesTotalReceive() uint64

func (*MachineMetricSystem) GetNetworkNodeBytesTotalTransmit

func (x *MachineMetricSystem) GetNetworkNodeBytesTotalTransmit() uint64

func (*MachineMetricSystem) GetTimestamp

func (x *MachineMetricSystem) GetTimestamp() uint64

func (*MachineMetricSystem) ProtoMessage

func (*MachineMetricSystem) ProtoMessage()

func (*MachineMetricSystem) ProtoReflect

func (x *MachineMetricSystem) ProtoReflect() protoreflect.Message

func (*MachineMetricSystem) Reset

func (x *MachineMetricSystem) Reset()

func (*MachineMetricSystem) String

func (x *MachineMetricSystem) String() string

type MachineMetricSystemUser

type MachineMetricSystemUser struct {
	UserID                    uint64
	Machine                   string
	CurrentData               *MachineMetricSystem
	CurrentDataInsertTs       int64
	FiveMinuteOldData         *MachineMetricSystem
	FiveMinuteOldDataInsertTs int64
}

type MachineMetricValidator

type MachineMetricValidator struct {
	Timestamp       uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	ExporterVersion string `protobuf:"bytes,2,opt,name=exporter_version,json=exporterVersion,proto3" json:"exporter_version,omitempty"`
	// process
	CpuProcessSecondsTotal     uint64 `` /* 132-byte string literal not displayed */
	MemoryProcessBytes         uint64 `protobuf:"varint,4,opt,name=memory_process_bytes,json=memoryProcessBytes,proto3" json:"memory_process_bytes,omitempty"`
	ClientName                 string `protobuf:"bytes,5,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"`
	ClientVersion              string `protobuf:"bytes,6,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
	ClientBuild                uint64 `protobuf:"varint,7,opt,name=client_build,json=clientBuild,proto3" json:"client_build,omitempty"`
	SyncEth2FallbackConfigured bool   `` /* 144-byte string literal not displayed */
	SyncEth2FallbackConnected  bool   `` /* 141-byte string literal not displayed */
	// validator
	ValidatorTotal  uint64 `protobuf:"varint,10,opt,name=validator_total,json=validatorTotal,proto3" json:"validator_total,omitempty"`
	ValidatorActive uint64 `protobuf:"varint,11,opt,name=validator_active,json=validatorActive,proto3" json:"validator_active,omitempty"`
	// do not store in bigtable but include them in generated model
	Machine *string `protobuf:"bytes,12,opt,name=machine,proto3,oneof" json:"machine,omitempty"`
	// contains filtered or unexported fields
}

func (*MachineMetricValidator) Descriptor deprecated

func (*MachineMetricValidator) Descriptor() ([]byte, []int)

Deprecated: Use MachineMetricValidator.ProtoReflect.Descriptor instead.

func (*MachineMetricValidator) GetClientBuild

func (x *MachineMetricValidator) GetClientBuild() uint64

func (*MachineMetricValidator) GetClientName

func (x *MachineMetricValidator) GetClientName() string

func (*MachineMetricValidator) GetClientVersion

func (x *MachineMetricValidator) GetClientVersion() string

func (*MachineMetricValidator) GetCpuProcessSecondsTotal

func (x *MachineMetricValidator) GetCpuProcessSecondsTotal() uint64

func (*MachineMetricValidator) GetExporterVersion

func (x *MachineMetricValidator) GetExporterVersion() string

func (*MachineMetricValidator) GetMachine

func (x *MachineMetricValidator) GetMachine() string

func (*MachineMetricValidator) GetMemoryProcessBytes

func (x *MachineMetricValidator) GetMemoryProcessBytes() uint64

func (*MachineMetricValidator) GetSyncEth2FallbackConfigured

func (x *MachineMetricValidator) GetSyncEth2FallbackConfigured() bool

func (*MachineMetricValidator) GetSyncEth2FallbackConnected

func (x *MachineMetricValidator) GetSyncEth2FallbackConnected() bool

func (*MachineMetricValidator) GetTimestamp

func (x *MachineMetricValidator) GetTimestamp() uint64

func (*MachineMetricValidator) GetValidatorActive

func (x *MachineMetricValidator) GetValidatorActive() uint64

func (*MachineMetricValidator) GetValidatorTotal

func (x *MachineMetricValidator) GetValidatorTotal() uint64

func (*MachineMetricValidator) ProtoMessage

func (*MachineMetricValidator) ProtoMessage()

func (*MachineMetricValidator) ProtoReflect

func (x *MachineMetricValidator) ProtoReflect() protoreflect.Message

func (*MachineMetricValidator) Reset

func (x *MachineMetricValidator) Reset()

func (*MachineMetricValidator) String

func (x *MachineMetricValidator) String() string
type MainMenuItem struct {
	Label        string
	Path         string
	IsActive     bool
	HasBigGroups bool // if HasBigGroups is set to true then the NavigationGroups will be ordered horizontally and their Label will be shown
	Groups       []NavigationGroup
}

type ManageNotificationModal

type ManageNotificationModal struct {
	CsrfField       template.HTML
	ValidatorIndex  int64
	ValidatorPubkey string
	Events          []EventNameCheckbox
}

type MempoolTxPageData

type MempoolTxPageData struct {
	RawMempoolTransaction
	TargetIsContract   bool
	IsContractCreation bool
}

type Meta

type Meta struct {
	Title       string
	Description string
	Path        string
	Tlabel1     string
	Tdata1      string
	Tlabel2     string
	Tdata2      string
	GATag       string
	NoTrack     bool
	Templates   string
}

Meta is a struct to hold metadata about the page

type MethodSignature

type MethodSignature struct {
	Id        int64  `json:"id"`
	CreatedAt string `json:"created_at"`
	Text      string `json:"text_signature"`
	Hex       string `json:"hex_signature"`
	Bytes     string `json:"bytes_signature"`
}

type MethodSignatureImportStatus

type MethodSignatureImportStatus struct {
	LatestTimestamp *string `json:"latestTimestamp"`
	NextPage        *string `json:"nextPage"`
	HasFinished     bool    `json:"hasFinished"`
}

type MinimalBlock

type MinimalBlock struct {
	Epoch      uint64 `db:"epoch"`
	Slot       uint64 `db:"slot"`
	BlockRoot  []byte `db:"blockroot"`
	ParentRoot []byte `db:"parentroot"`
	Canonical  bool   `db:"-"`
}

MinimalBlock is a struct to hold minimal block data

type MinimalTaggedValidators

type MinimalTaggedValidators struct {
	PubKey string
	Index  uint64
}

type MobilePricing

type MobilePricing struct {
	FlashMessage         string
	User                 *User
	CsrfField            template.HTML
	RecaptchaKey         string
	Subscription         UserSubscription
	StripePK             string
	Plankton             string
	Goldfish             string
	Whale                string
	ActiveMobileStoreSub bool
}

type MobileSettingsData

type MobileSettingsData struct {
	NotifyToken string `json:"notify_token"`
}

type MobileSubscription

type MobileSubscription struct {
	ProductID   string                               `json:"id"`
	PriceMicros uint64                               `json:"priceMicros"`
	Currency    string                               `json:"currency"`
	Transaction MobileSubscriptionTransactionGeneric `json:"transaction"`
	Valid       bool                                 `json:"valid"`
}

type MobileSubscriptionTransactionGeneric

type MobileSubscriptionTransactionGeneric struct {
	Type    string `json:"type"`
	Receipt string `json:"receipt"`
	ID      string `json:"id"`
}

type MyCryptoSignature

type MyCryptoSignature struct {
	Address string `json:"address"`
	Msg     string `json:"msg"`
	Sig     string `json:"sig"`
	Version string `json:"version"`
}
type NavigationGroup struct {
	Label string // only used for "BigGroups"
	Links []NavigationLink
}
type NavigationLink struct {
	Label         string
	Path          string
	CustomIcon    string
	Icon          string
	IsHidden      bool
	IsHighlighted bool
}

type NetworkEventModal

type NetworkEventModal struct {
	CsrfField       template.HTML
	ValidatorIndex  int64
	ValidatorPubkey string
	Events          []EventNameCheckbox
}

type NodeJob

type NodeJob struct {
	ID                  string        `db:"id"`
	CreatedTime         time.Time     `db:"created_time"`
	SubmittedToNodeTime sql.NullTime  `db:"submitted_to_node_time"`
	CompletedTime       sql.NullTime  `db:"completed_time"`
	Type                NodeJobType   `db:"type"`
	Status              NodeJobStatus `db:"status"`
	RawData             []byte        `db:"data"`
	Data                interface{}   `db:"-"`
}

func NewNodeJob

func NewNodeJob(data []byte) (*NodeJob, error)

func (NodeJob) GetBLSToExecutionChangesNodeJobData

func (nj NodeJob) GetBLSToExecutionChangesNodeJobData() ([]*capella.SignedBLSToExecutionChange, bool)

func (NodeJob) GetVoluntaryExitsNodeJobData

func (nj NodeJob) GetVoluntaryExitsNodeJobData() (*phase0.SignedVoluntaryExit, bool)

func (*NodeJob) ParseData

func (nj *NodeJob) ParseData() error

ParseData will try to unmarshal NodeJob.RawData into NodeJob.Data and determine NodeJob.Type by doing so. If it is not able to unmarshal any type it will return an error. It will sanitize NodeJob.RawData on success.

func (*NodeJob) SanitizeRawData

func (nj *NodeJob) SanitizeRawData() error

type NodeJobStatus

type NodeJobStatus string
const CompletedNodeJobStatus NodeJobStatus = "COMPLETED" // job has been submitted successfully and result is visible on chain
const FailedNodeJobStatus NodeJobStatus = "FAILED" // job has been submitted successfully but something went wrong
const PendingNodeJobStatus NodeJobStatus = "PENDING" // job is waiting to be submitted
const SubmittedToNodeNodeJobStatus NodeJobStatus = "SUBMITTED_TO_NODE" // job has been submitted successfully

type NodeJobType

type NodeJobType string
const BLSToExecutionChangesNodeJobType NodeJobType = "BLS_TO_EXECUTION_CHANGES"
const UnknownNodeJobType NodeJobType = "UNKNOWN"
const VoluntaryExitsNodeJobType NodeJobType = "VOLUNTARY_EXITS"

type NodeJobValidatorInfo

type NodeJobValidatorInfo struct {
	ValidatorIndex      uint64 `db:"validatorindex"`
	PublicKey           []byte `db:"pubkey"`
	WithdrawCredentials []byte `db:"withdrawalcredentials"`
	ExitEpoch           uint64 `db:"exitepoch"`
	Status              string
}

type Notification

type Notification interface {
	GetLatestState() string
	GetSubscriptionID() uint64
	GetEventName() EventName
	GetEpoch() uint64
	GetInfo(includeUrl bool) string
	GetTitle() string
	GetEventFilter() string
	GetEmailAttachment() *EmailAttachment
	GetUnsubscribeHash() string
	GetInfoMarkdown() string
}

type NotificationChannel

type NotificationChannel string
const (
	EmailNotificationChannel          NotificationChannel = "email"
	PushNotificationChannel           NotificationChannel = "push"
	WebhookNotificationChannel        NotificationChannel = "webhook"
	WebhookDiscordNotificationChannel NotificationChannel = "webhook_discord"
)

func GetNotificationChannel

func GetNotificationChannel(channel string) (NotificationChannel, error)

type NotificationChannelsModal

type NotificationChannelsModal struct {
	CsrfField            template.HTML
	NotificationChannels []UserNotificationChannels
}

type OAuthAppData

type OAuthAppData struct {
	ID          uint64 `db:"id"`
	Owner       uint64 `db:"owner_id"`
	AppName     string `db:"app_name"`
	RedirectURI string `db:"redirect_uri"`
	Active      bool   `db:"active"`
}

type OAuthCodeData

type OAuthCodeData struct {
	AppID  uint64 `db:"app_id"`
	UserID uint64 `db:"user_id"`
}

type PageData

type PageData struct {
	Active                string
	AdConfigurations      []*AdConfig
	Meta                  *Meta
	ShowSyncingMessage    bool
	User                  *User
	Data                  interface{}
	Version               string
	Year                  int
	ChainSlotsPerEpoch    uint64
	ChainSecondsPerSlot   uint64
	ChainGenesisTimestamp uint64
	CurrentEpoch          uint64
	LatestFinalizedEpoch  uint64
	CurrentSlot           uint64
	FinalizationDelay     uint64
	Mainnet               bool
	DepositContract       string
	Rates                 PageRates
	InfoBanner            *template.HTML
	ClientsUpdated        bool
	// IsUserClientUpdated   func(uint64) bool
	ChainConfig         ChainConfig
	Lang                string
	NoAds               bool
	Debug               bool
	DebugTemplates      []string
	DebugSession        map[string]interface{}
	GasNow              *GasNowPageData
	GlobalNotification  template.HTML
	AvailableCurrencies []string
	MainMenuItems       []MainMenuItem
}

PageData is a struct to hold web page data

type PageRates

type PageRates struct {
	EthPrice               float64
	EthRoundPrice          uint64
	EthTruncPrice          template.HTML
	UsdRoundPrice          uint64
	UsdTruncPrice          template.HTML
	EurRoundPrice          uint64
	EurTruncPrice          template.HTML
	GbpRoundPrice          uint64
	GbpTruncPrice          template.HTML
	CnyRoundPrice          uint64
	CnyTruncPrice          template.HTML
	RubRoundPrice          uint64
	RubTruncPrice          template.HTML
	CadRoundPrice          uint64
	CadTruncPrice          template.HTML
	AudRoundPrice          uint64
	AudTruncPrice          template.HTML
	JpyRoundPrice          uint64
	JpyTruncPrice          template.HTML
	Currency               string
	CurrentPriceFormatted  template.HTML
	CurrentPriceKFormatted template.HTML
	CurrentSymbol          string
	ExchangeRate           float64
}

type PairedDevice

type PairedDevice struct {
	ID            uint      `json:"id"`
	DeviceName    string    `json:"device_name"`
	NotifyEnabled bool      `json:"notify_enabled"`
	Active        bool      `json:"active"`
	AppName       string    `json:"app_name"`
	CreatedAt     time.Time `json:"created_ts"`
}

type PoolInfo

type PoolInfo struct {
	Name                   string  `db:"name"`
	Count                  int64   `db:"count"`
	AvgPerformance31d      float64 `db:"avg_performance_31d"`
	AvgPerformance7d       float64 `db:"avg_performance_7d"`
	AvgPerformance1d       float64 `db:"avg_performance_1d"`
	EthstoreCompoarison1d  float64
	EthstoreCompoarison7d  float64
	EthstoreCompoarison31d float64
}

type PoolsResp

type PoolsResp struct {
	PoolsDistribution       ChartsPageDataChart
	HistoricPoolPerformance ChartsPageDataChart
	PoolInfos               []*PoolInfo
}

type PremiumData

type PremiumData struct {
	ID        uint64    `db:"id"`
	Receipt   string    `db:"receipt"`
	Store     string    `db:"store"`
	Active    bool      `db:"active"`
	ProductID string    `db:"product_id"`
	ExpiresAt time.Time `db:"expires_at"`
}

type Price

type Price struct {
	TS  time.Time `db:"ts"`
	EUR float64   `db:"eur"`
	USD float64   `db:"usd"`
	GBP float64   `db:"gbp"`
	CAD float64   `db:"cad"`
	JPY float64   `db:"jpy"`
	CNY float64   `db:"cny"`
	RUB float64   `db:"rub"`
	AUD float64   `db:"aud"`
}

type ProposerSlashing

type ProposerSlashing struct {
	ProposerIndex uint64
	Header1       *Block
	Header2       *Block
}

ProposerSlashing is a struct to hold proposer slashing data

type RateLimitError

type RateLimitError struct {
	TimeLeft time.Duration
}

func (*RateLimitError) Error

func (e *RateLimitError) Error() string

type RawMempoolResponse

type RawMempoolResponse struct {
	Pending map[string]map[int]*RawMempoolTransaction `json:"pending"`
	Queued  map[string]map[int]*RawMempoolTransaction `json:"queued"`
	BaseFee map[string]map[int]*RawMempoolTransaction `json:"baseFee"`

	TxsByHash map[common.Hash]*RawMempoolTransaction
}

func (RawMempoolResponse) FindTxByHash

func (mempool RawMempoolResponse) FindTxByHash(txHashString string) *RawMempoolTransaction

type RawMempoolTransaction

type RawMempoolTransaction struct {
	Hash             common.Hash     `json:"hash"`
	From             *common.Address `json:"from"`
	To               *common.Address `json:"to"`
	Value            *hexutil.Big    `json:"value"`
	Gas              *hexutil.Big    `json:"gas"`
	GasFeeCap        *hexutil.Big    `json:"maxFeePerGas,omitempty"`
	GasTipCap        *hexutil.Big    `json:"maxPriorityFeePerGas,omitempty"`
	GasPrice         *hexutil.Big    `json:"gasPrice"`
	Nonce            *hexutil.Big    `json:"nonce"`
	Input            *string         `json:"input"`
	TransactionIndex *hexutil.Big    `json:"transactionIndex"`
}

type Relay

type Relay struct {
	ID                  string         `db:"tag_id"`
	Endpoint            string         `db:"endpoint"`
	Link                sql.NullString `db:"public_link"`
	IsCensoring         sql.NullBool   `db:"is_censoring"`
	IsEthical           sql.NullBool   `db:"is_ethical"`
	ExportFailureCount  uint64         `db:"export_failure_count"`
	LastExportTryTs     time.Time      `db:"last_export_try_ts"`
	LastExportSuccessTs time.Time      `db:"last_export_success_ts"`
	Logger              logrus.Entry
}

type RelayBlock

type RelayBlock struct {
	ID                   string `db:"tag_id" json:"tag_id"`
	BlockSlot            uint64 `db:"block_slot" json:"block_slot"`
	BlockRoot            string `db:"block_root" json:"block_root"`
	ExecBlockHash        string `db:"exec_block_hash"`
	Value                uint64 `db:"value" json:"value"`
	BuilderPubkey        string `db:"builder_pubkey" json:"builder_pubkey"`
	ProposerPubkey       string `db:"proposer_pubkey" json:"proposer_pubkey"`
	ProposerFeeRecipient string `db:"proposer_fee_recipient" json:"proposer_fee_recipient"`
}

type RelayBlockSlice

type RelayBlockSlice []RelayBlock

func (*RelayBlockSlice) Scan

func (s *RelayBlockSlice) Scan(src interface{}) error

type RelayDataApiResponse

type RelayDataApiResponse struct {
	TagID                string `json:"tag"`
	BuilderPubKey        string `json:"builderPubkey"`
	ProposerFeeRecipient string `json:"producerFeeRecipient"`
}

type RelayInfo

type RelayInfo struct {
	RelayID        string         `db:"relay_id"`
	Name           sql.NullString `db:"name"`
	Link           sql.NullString `db:"link"`
	Censors        sql.NullBool   `db:"censors"`
	Ethical        sql.NullBool   `db:"ethical"`
	BlockCount     uint64         `db:"block_count"`
	UniqueBuilders uint64         `db:"unique_builders"`
	NetworkUsage   float64        `db:"network_usage"`
	TotalValue     WeiString      `db:"total_value"`
	AverageValue   WeiString      `db:"avg_value"`
	MaxValue       WeiString      `db:"max_value"`
	MaxValueSlot   uint64         `db:"max_value_slot"`
}

type RelayInfoContainer

type RelayInfoContainer struct {
	Days                 uint64
	IsFirst              bool
	RelaysInfo           []*RelayInfo
	NetworkParticipation float64
}

type RelaysData

type RelaysData struct {
	MevRecipient  []byte    `db:"proposer_fee_recipient"`
	MevBribe      WeiString `db:"value"`
	ExecBlockHash []byte    `db:"exec_block_hash"`
	TagID         string    `db:"tag_id"`
	BuilderPubKey []byte    `db:"builder_pubkey"`
}

type RelaysResp

type RelaysResp struct {
	RelaysInfoContainers [3]RelayInfoContainer
	RecentBlocks         []*RelaysRespBlock
	TopBlocks            []*RelaysRespBlock
	LastUpdated          time.Time
	TopBuilders          []*struct {
		Tags       TagMetadataSlice `db:"tags"`
		Builder    []byte           `db:"builder_pubkey"`
		BlockCount uint64           `db:"c"`
		LatestSlot uint64           `db:"latest_slot"`
		BlockPerc  float64
	}
}

type RelaysRespBlock

type RelaysRespBlock struct {
	Tags                 TagMetadataSlice `db:"tags"`
	Value                WeiString        `db:"value"`
	Slot                 uint64           `db:"slot"`
	Builder              []byte           `db:"builder_pubkey"`
	ProposerFeeRecipient []byte           `db:"proposer_fee_recipient"`
	Proposer             uint64           `db:"proposer"`
	BlockExtraData       string           `db:"block_extra_data"`
}

type RocketpoolPageData

type RocketpoolPageData struct{}

type RocketpoolPageDataDAOMember

type RocketpoolPageDataDAOMember struct {
	TotalCount               uint64    `db:"total_count"`
	RocketpoolStorageAddress []byte    `db:"rocketpool_storage_address"`
	Address                  []byte    `db:"address"`
	ID                       string    `db:"id"`
	URL                      string    `url:"url"`
	JoinedTime               time.Time `db:"joined_time"`
	LastProposalTime         time.Time `db:"last_proposal_time"`
	RPLBondAmount            string    `db:"rpl_bond_amount"`
	UnbondedValidatorCount   uint64    `db:"unbonded_validator_count"`
}

type RocketpoolPageDataDAOProposal

type RocketpoolPageDataDAOProposal struct {
	TotalCount               uint64    `db:"total_count"`
	RocketpoolStorageAddress []byte    `db:"rocketpool_storage_address"`
	ID                       uint64    `db:"id"`
	DAO                      string    `db:"dao"`
	ProposerAddress          []byte    `db:"proposer_address"`
	Message                  string    `db:"message"`
	CreatedTime              time.Time `db:"created_time"`
	StartTime                time.Time `db:"start_time"`
	EndTime                  time.Time `db:"end_time"`
	ExpiryTime               time.Time `db:"expiry_time"`
	VotesRequired            float64   `db:"votes_required"`
	VotesFor                 float64   `db:"votes_for"`
	VotesAgainst             float64   `db:"votes_against"`
	MemberVoted              bool      `db:"member_voted"`
	MemberSupported          bool      `db:"member_supported"`
	IsCancelled              bool      `db:"is_cancelled"`
	IsExecuted               bool      `db:"is_executed"`
	Payload                  []byte    `db:"payload"`
	State                    string    `db:"state"`
	MemberVotesJSON          []byte    `db:"member_votes"`
}

type RocketpoolPageDataDAOProposalMemberVotes

type RocketpoolPageDataDAOProposalMemberVotes struct {
	Address   string `json:"member_address"`
	Name      string `json:"name"`
	Voted     bool   `json:"voted"`
	Supported bool   `json:"supported"`
}

type RocketpoolPageDataMinipool

type RocketpoolPageDataMinipool struct {
	TotalCount               uint64    `db:"total_count"`
	RocketpoolStorageAddress []byte    `db:"rocketpool_storage_address"`
	ValidatorName            string    `db:"validator_name"`
	ValidatorIndex           *uint64   `db:"validator_index"`
	Address                  []byte    `db:"address"`
	Pubkey                   []byte    `db:"pubkey"`
	NodeAddress              []byte    `db:"node_address"`
	NodeFee                  float64   `db:"node_fee"`
	DepositType              string    `db:"deposit_type"`
	Status                   string    `db:"status"`
	StatusTime               time.Time `db:"status_time"`
	PenaltyCount             uint64    `db:"penalty_count"`
	DepositEth               int       `db:"node_deposit_balance"`
}

type RocketpoolPageDataNode

type RocketpoolPageDataNode struct {
	TotalCount               uint64 `db:"total_count"`
	RocketpoolStorageAddress []byte `db:"rocketpool_storage_address"`
	Address                  []byte `db:"address"`
	TimezoneLocation         string `db:"timezone_location"`
	RPLStake                 string `db:"rpl_stake"`
	MinRPLStake              string `db:"min_rpl_stake"`
	MaxRPLStake              string `db:"max_rpl_stake"`
	CumulativeRPL            string `db:"rpl_cumulative_rewards"`
	ClaimedSmoothingPool     string `db:"claimed_smoothing_pool"`
	UnclaimedSmoothingPool   string `db:"unclaimed_smoothing_pool"`
	UnclaimedRplRewards      string `db:"unclaimed_rpl_rewards"`
	SmoothingPoolOptIn       bool   `db:"smoothing_pool_opted_in"`
	DepositCredit            string `db:"deposit_credit"`
}

type RocketpoolValidatorPageData

type RocketpoolValidatorPageData struct {
	NodeAddress          *[]byte    `db:"node_address"`
	MinipoolAddress      *[]byte    `db:"minipool_address"`
	MinipoolNodeFee      *float64   `db:"minipool_node_fee"`
	MinipoolDepositType  *string    `db:"minipool_deposit_type"`
	MinipoolStatus       *string    `db:"minipool_status"`
	MinipoolStatusTime   *time.Time `db:"minipool_status_time"`
	NodeTimezoneLocation *string    `db:"node_timezone_location"`
	NodeRPLStake         *string    `db:"node_rpl_stake"`
	NodeMinRPLStake      *string    `db:"node_min_rpl_stake"`
	NodeMaxRPLStake      *string    `db:"node_max_rpl_stake"`
	CumulativeRPL        *string    `db:"rpl_cumulative_rewards"`
	SmoothingClaimed     *string    `db:"claimed_smoothing_pool"`
	SmoothingUnclaimed   *string    `db:"unclaimed_smoothing_pool"`
	UnclaimedRPL         *string    `db:"unclaimed_rpl_rewards"`
	SmoothingPoolOptIn   bool       `db:"smoothing_pool_opted_in"`
	PenaltyCount         int        `db:"penalty_count"`
	RocketscanUrl        string     `db:"-"`
	NodeDepositBalance   *string    `db:"node_deposit_balance"`
	NodeRefundBalance    *string    `db:"node_refund_balance"`
	UserDepositBalance   *string    `db:"user_deposit_balance"`
	IsVacant             bool       `db:"is_vacant"`
	Version              *string    `db:"version"`
	NodeDepositCredit    *string    `db:"deposit_credit"`
	EffectiveRPLStake    *string    `db:"effective_rpl_stake"`
}

type SearchAheadBlocksResult

type SearchAheadBlocksResult []struct {
	Block uint64 `json:"block,omitempty"`
	Hash  string `json:"hash,omitempty"`
}

SearchAheadBlockssResult is a struct to hold the search ahead block results

type SearchAheadEpochsResult

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

SearchAheadEpochsResult is a struct to hold the search ahead epochs results

type SearchAheadEth1Result

type SearchAheadEth1Result []struct {
	Publickey   string `db:"publickey" json:"publickey,omitempty"`
	Eth1Address string `db:"from_address" json:"address,omitempty"`
}

SearchAheadEth1Result is a struct to hold the search ahead eth1 results

type SearchAheadGraffitiResult

type SearchAheadGraffitiResult []struct {
	Graffiti string `db:"graffiti" json:"graffiti,omitempty"`
	Count    string `db:"count" 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 `db:"slot" json:"slot,omitempty"`
	Root string `db:"blockroot" json:"blockroot,omitempty"`
}

SearchAheadSlotsResult is a struct to hold the search ahead slots results

type SearchAheadTransactionsResult

type SearchAheadTransactionsResult []struct {
	Slot   string `db:"slot" json:"slot,omitempty"`
	TxHash string `db:"txhash" json:"txhash,omitempty"`
}

type SearchAheadValidatorsResult

type SearchAheadValidatorsResult []struct {
	Index  string `db:"index" json:"index,omitempty"`
	Pubkey string `db:"pubkey" json:"pubkey,omitempty"`
}

SearchAheadValidatorsResult is a struct to hold the search ahead validators results

type SeriesDataItem

type SeriesDataItem struct {
	Name string `json:"name"`
	Y    uint64 `json:"y"`
}

type SignedBLSToExecutionChange

type SignedBLSToExecutionChange struct {
	Message   BLSToExecutionChange
	Signature []byte
}

type SlotVizEpochs

type SlotVizEpochs struct {
	Epoch          uint64          `json:"epoch"`
	Finalized      bool            `json:"finalized"`
	Justified      bool            `json:"justified"`
	Justifying     bool            `json:"justifying"`
	Particicpation float64         `json:"participation"`
	Slots          []*SlotVizSlots `json:"slots"`
}

type SlotVizPageData

type SlotVizPageData struct {
	Epochs   []*SlotVizEpochs
	Selector string
	Config   ExplorerConfigurationKeyMap
}

type SlotVizSlots

type SlotVizSlots struct {
	BlockRoot []byte
	Epoch     uint64
	Slot      uint64
	Status    string `json:"status"`
	Active    bool   `json:"active"`
}

type SourcifyContractMetadata

type SourcifyContractMetadata struct {
	Compiler struct {
		Version string `json:"version"`
	} `json:"compiler"`
	Language string `json:"language"`
	Output   struct {
		Abi []struct {
			Anonymous bool `json:"anonymous"`
			Inputs    []struct {
				Indexed      bool   `json:"indexed"`
				InternalType string `json:"internalType"`
				Name         string `json:"name"`
				Type         string `json:"type"`
			} `json:"inputs"`
			Name    string `json:"name"`
			Outputs []struct {
				InternalType string `json:"internalType"`
				Name         string `json:"name"`
				Type         string `json:"type"`
			} `json:"outputs"`
			StateMutability string `json:"stateMutability"`
			Type            string `json:"type"`
		} `json:"abi"`
	} `json:"output"`
	Settings struct {
		CompilationTarget struct {
			Browser_Stakehavens_sol string `json:"browser/Stakehavens.sol"`
		} `json:"compilationTarget"`
		EvmVersion string   `json:"evmVersion"`
		Libraries  struct{} `json:"libraries"`
		Metadata   struct {
			BytecodeHash string `json:"bytecodeHash"`
		} `json:"metadata"`
		Optimizer struct {
			Enabled bool  `json:"enabled"`
			Runs    int64 `json:"runs"`
		} `json:"optimizer"`
		Remappings []interface{} `json:"remappings"`
	} `json:"settings"`
	Sources struct {
		Browser_Stakehavens_sol struct {
			Keccak256 string   `json:"keccak256"`
			Urls      []string `json:"urls"`
		} `json:"browser/Stakehavens.sol"`
	} `json:"sources"`
	Version int64 `json:"version"`
}

type StakeWithUsPageData

type StakeWithUsPageData struct {
	FlashMessage string
	RecaptchaKey string
}

type StakingCalculatorPageData

type StakingCalculatorPageData struct {
	BestValidatorBalanceHistory *[]ValidatorBalanceHistory
	WatchlistBalanceHistory     [][]interface{}
	TotalStaked                 uint64
}

type Stats

type Stats struct {
	TopDepositors                  *[]StatsTopDepositors
	InvalidDepositCount            *uint64 `db:"count"`
	UniqueValidatorCount           *uint64 `db:"count"`
	TotalValidatorCount            *uint64 `db:"count"`
	ActiveValidatorCount           *uint64 `db:"count"`
	PendingValidatorCount          *uint64 `db:"count"`
	ValidatorChurnLimit            *uint64
	LatestValidatorWithdrawalIndex *uint64 `db:"index"`
	WithdrawableValidatorCount     *uint64 `db:"count"`
	// WithdrawableAmount             *uint64 `db:"amount"`
	PendingBLSChangeValidatorCount *uint64 `db:"count"`
	NonWithdrawableCount           *uint64 `db:"count"`
	TotalAmountWithdrawn           *uint64 `db:"amount"`
	WithdrawalCount                *uint64 `db:"count"`
	TotalAmountDeposited           *uint64 `db:"amount"`
	BLSChangeCount                 *uint64 `db:"count"`
}

type StatsAdditionalsBeaconnode

type StatsAdditionalsBeaconnode struct {
	DiskBeaconchainBytesTotal       uint64 `mapstructure:"disk_beaconchain_bytes_total"`
	NetworkLibp2pBytesTotalReceive  uint64 `mapstructure:"network_libp2p_bytes_total_receive"`
	NetworkLibp2pBytesTotalTransmit uint64 `mapstructure:"network_libp2p_bytes_total_transmit"`
	NetworkPeersConnected           uint64 `mapstructure:"network_peers_connected"`
	SyncEth1Connected               bool   `mapstructure:"sync_eth1_connected"`
	SyncEth2Synced                  bool   `mapstructure:"sync_eth2_synced"`
	SyncBeaconHeadSlot              uint64 `mapstructure:"sync_beacon_head_slot"`
	SyncEth1FallbackConfigured      bool   `mapstructure:"sync_eth1_fallback_configured"`
	SyncEth1FallbackConnected       bool   `mapstructure:"sync_eth1_fallback_connected"`
}

type StatsAdditionalsValidator

type StatsAdditionalsValidator struct {
	ValidatorTotal  uint64 `mapstructure:"validator_total"`
	ValidatorActive uint64 `mapstructure:"validator_active"`
}

type StatsDataStruct

type StatsDataStruct struct {
	Validator interface{} `json:"validator"`
	Node      interface{} `json:"node"`
	System    interface{} `json:"system"`
}

type StatsMeta

type StatsMeta struct {
	Version         uint64 `mapstructure:"version"`
	Timestamp       uint64 `mapstructure:"timestamp"`
	Process         string `mapstructure:"process"`
	Machine         string
	ExporterVersion string `mapstructure:"exporter_version"`
}

type StatsProcess

type StatsProcess struct {
	CPUProcessSecondsTotal     uint64 `mapstructure:"cpu_process_seconds_total"`
	MemoryProcessBytes         uint64 `mapstructure:"memory_process_bytes"`
	ClientName                 string `mapstructure:"client_name"`
	ClientVersion              string `mapstructure:"client_version"`
	ClientBuild                uint64 `mapstructure:"client_build"`
	SyncEth2FallbackConfigured bool   `mapstructure:"sync_eth2_fallback_configured"`
	SyncEth2FallbackConnected  bool   `mapstructure:"sync_eth2_fallback_connected"`
}

type StatsSystem

type StatsSystem struct {
	CPUCores                      uint64 `mapstructure:"cpu_cores"`
	CPUThreads                    uint64 `mapstructure:"cpu_threads"`
	CPUNodeSystemSecondsTotal     uint64 `mapstructure:"cpu_node_system_seconds_total"`
	CPUNodeUserSecondsTotal       uint64 `mapstructure:"cpu_node_user_seconds_total"`
	CPUNodeIowaitSecondsTotal     uint64 `mapstructure:"cpu_node_iowait_seconds_total"`
	CPUNodeIdleSecondsTotal       uint64 `mapstructure:"cpu_node_idle_seconds_total"`
	MemoryNodeBytesTotal          uint64 `mapstructure:"memory_node_bytes_total"`
	MemoryNodeBytesFree           uint64 `mapstructure:"memory_node_bytes_free"`
	MemoryNodeBytesCached         uint64 `mapstructure:"memory_node_bytes_cached"`
	MemoryNodeBytesBuffers        uint64 `mapstructure:"memory_node_bytes_buffers"`
	DiskNodeBytesTotal            uint64 `mapstructure:"disk_node_bytes_total"`
	DiskNodeBytesFree             uint64 `mapstructure:"disk_node_bytes_free"`
	DiskNodeIoSeconds             uint64 `mapstructure:"disk_node_io_seconds"`
	DiskNodeReadsTotal            uint64 `mapstructure:"disk_node_reads_total"`
	DiskNodeWritesTotal           uint64 `mapstructure:"disk_node_writes_total"`
	NetworkNodeBytesTotalReceive  uint64 `mapstructure:"network_node_bytes_total_receive"`
	NetworkNodeBytesTotalTransmit uint64 `mapstructure:"network_node_bytes_total_transmit"`
	MiscNodeBootTsSeconds         uint64 `mapstructure:"misc_node_boot_ts_seconds"`
	MiscOS                        string `mapstructure:"misc_os"`
}

type StatsTopDepositors

type StatsTopDepositors struct {
	Address      string `db:"from_address"`
	DepositCount uint64 `db:"count"`
}

type StripeSubscription

type StripeSubscription struct {
	CustomerID     *string `db:"customer_id"`
	SubscriptionID *string `db:"subscription_id"`
	PriceID        *string `db:"price_id"`
	Active         bool    `db:"active"`
}

type Subscription

type Subscription struct {
	ID          *uint64    `db:"id,omitempty"`
	UserID      *uint64    `db:"user_id,omitempty"`
	EventName   string     `db:"event_name"`
	EventFilter string     `db:"event_filter"`
	LastSent    *time.Time `db:"last_sent_ts"`
	LastEpoch   *uint64    `db:"last_sent_epoch"`
	// Channels        pq.StringArray `db:"channels"`
	CreatedTime     time.Time      `db:"created_ts"`
	CreatedEpoch    uint64         `db:"created_epoch"`
	EventThreshold  float64        `db:"event_threshold"`
	UnsubscribeHash sql.NullString `db:"unsubscribe_hash" swaggertype:"string"`
	State           sql.NullString `db:"internal_state" swaggertype:"string"`
}

type SyncAggregate

type SyncAggregate struct {
	SyncCommitteeValidators    []uint64
	SyncCommitteeBits          []byte
	SyncCommitteeSignature     []byte
	SyncAggregateParticipation float64
}

type SyncCommitteesStats

type SyncCommitteesStats struct {
	ParticipatedSlots uint64 `json:"participatedSlots"`
	MissedSlots       uint64 `json:"missedSlots"`
	ScheduledSlots    uint64 `json:"scheduledSlots"`
}

type Tag

type Tag string
const (
	ValidatorTagsWatchlist Tag = "watchlist"
)

type TagMetadata

type TagMetadata struct {
	Name        string `json:"name"`
	Summary     string `json:"summary"`
	PublicLink  string `json:"public_url"`
	Description string `json:"description"`
	Color       string `json:"color"`
}

type TagMetadataSlice

type TagMetadataSlice []TagMetadata

func (*TagMetadataSlice) Scan

func (s *TagMetadataSlice) Scan(src interface{}) error

type TaggedValidators

type TaggedValidators struct {
	UserID             uint64 `db:"user_id"`
	Tag                string `db:"tag"`
	ValidatorPublickey []byte `db:"validator_publickey"`
	Validator          *Validator
	Events             []EventName `db:"events"`
}

type Transaction

type Transaction struct {
	Raw []byte
	// Note: below values may be nil/0 if Raw fails to decode into a valid transaction
	TxHash       []byte
	AccountNonce uint64
	// big endian
	Price     []byte
	GasLimit  uint64
	Sender    []byte
	Recipient []byte
	// big endian
	Amount  []byte
	Payload []byte

	MaxPriorityFeePerGas uint64
	MaxFeePerGas         uint64
}

type Transfer

type Transfer struct {
	From   template.HTML
	To     template.HTML
	Amount template.HTML
	Token  template.HTML
}

type TransitDiscord

type TransitDiscord struct {
	Id      uint64       `db:"id,omitempty"`
	Created sql.NullTime `db:"created"`
	Sent    sql.NullTime `db:"sent"`
	// Delivered sql.NullTime          `db:"delivered"`
	Channel string                `db:"channel"`
	Content TransitDiscordContent `db:"content"`
}

type TransitDiscordContent

type TransitDiscordContent struct {
	Webhook        UserWebhook
	DiscordRequest DiscordReq `json:"discordRequest"`
}

func (*TransitDiscordContent) Scan

func (e *TransitDiscordContent) Scan(value interface{}) error

func (TransitDiscordContent) Value

func (a TransitDiscordContent) Value() (driver.Value, error)

type TransitEmail

type TransitEmail struct {
	Id      uint64       `db:"id,omitempty"`
	Created sql.NullTime `db:"created"`
	Sent    sql.NullTime `db:"sent"`
	// Delivered sql.NullTime        `db:"delivered"`
	Channel string              `db:"channel"`
	Content TransitEmailContent `db:"content"`
}

type TransitEmailContent

type TransitEmailContent struct {
	Address     string            `json:"address,omitempty"`
	Subject     string            `json:"subject,omitempty"`
	Email       Email             `json:"email,omitempty"`
	Attachments []EmailAttachment `json:"attachments,omitempty"`
}

func (*TransitEmailContent) Scan

func (e *TransitEmailContent) Scan(value interface{}) error

func (TransitEmailContent) Value

func (a TransitEmailContent) Value() (driver.Value, error)

type TransitPush

type TransitPush struct {
	Id      uint64       `db:"id,omitempty"`
	Created sql.NullTime `db:"created"`
	Sent    sql.NullTime `db:"sent"`
	// Delivered sql.NullTime       `db:"delivered"`
	Channel string             `db:"channel"`
	Content TransitPushContent `db:"content"`
}

type TransitPushContent

type TransitPushContent struct {
	Messages []*messaging.Message
}

func (*TransitPushContent) Scan

func (e *TransitPushContent) Scan(value interface{}) error

func (TransitPushContent) Value

func (a TransitPushContent) Value() (driver.Value, error)

type TransitWebhook

type TransitWebhook struct {
	Id      uint64       `db:"id,omitempty"`
	Created sql.NullTime `db:"created"`
	Sent    sql.NullTime `db:"sent"`
	// Delivered sql.NullTime          `db:"delivered"`
	Channel string                `db:"channel"`
	Content TransitWebhookContent `db:"content"`
}

type TransitWebhookContent

type TransitWebhookContent struct {
	Webhook UserWebhook
	Event   WebhookEvent `json:"event"`
}

func (*TransitWebhookContent) Scan

func (e *TransitWebhookContent) Scan(value interface{}) error

func (TransitWebhookContent) Value

func (a TransitWebhookContent) Value() (driver.Value, error)

type User

type User struct {
	UserID        uint64 `json:"user_id"`
	Authenticated bool   `json:"authenticated"`
	Subscription  string `json:"subscription"`
	UserGroup     string `json:"user_group"`
}

type UserAuthorizeConfirmPageData

type UserAuthorizeConfirmPageData struct {
	AppData *OAuthAppData
	AuthData
}

type UserNotificationChannels

type UserNotificationChannels struct {
	Channel NotificationChannel `db:"channel"`
	Active  bool                `db:"active"`
}

type UserNotificationsCenterPageData

type UserNotificationsCenterPageData struct {
	AuthData
	Metrics                    interface{}                          `json:"metrics"`
	Validators                 []UserValidatorNotificationTableData `json:"validators"`
	Network                    interface{}                          `json:"network"`
	MonitoringSubscriptions    []Subscription                       `json:"monitoring_subscriptions"`
	Machines                   []string
	DashboardLink              string `json:"dashboardLink"`
	NotificationChannelsModal  NotificationChannelsModal
	AddValidatorWatchlistModal AddValidatorWatchlistModal
	ManageNotificationModal    ManageNotificationModal
	NetworkEventModal          NetworkEventModal
}

type UserNotificationsPageData

type UserNotificationsPageData struct {
	Email              string   `json:"email"`
	CountWatchlist     int      `json:"countwatchlist"`
	CountSubscriptions int      `json:"countsubscriptions"`
	WatchlistIndices   []uint64 `json:"watchlistIndices"`
	DashboardLink      string   `json:"dashboardLink"`
	AuthData
}

type UserPremiumSubscription

type UserPremiumSubscription struct {
	UserID       uint64 `db:"user_id"`
	Store        string `db:"store"`
	Active       bool   `db:"active"`
	Package      string `db:"product_id"`
	RejectReason string `db:"reject_reason"`
}

type UserSettingsPageData

type UserSettingsPageData struct {
	CsrfField template.HTML
	AuthData
	Subscription        UserSubscription
	Premium             UserPremiumSubscription
	PairedDevices       []PairedDevice
	Sapphire            *string
	Emerald             *string
	Diamond             *string
	ShareMonitoringData bool
	ApiStatistics       *ApiStatistics
}

type UserSubscription

type UserSubscription struct {
	UserID         uint64  `db:"id"`
	Email          string  `db:"email"`
	Active         *bool   `db:"active"`
	CustomerID     *string `db:"stripe_customer_id"`
	SubscriptionID *string `db:"subscription_id"`
	PriceID        *string `db:"price_id"`
	ApiKey         *string `db:"api_key"`
}

type UserValidatorNotificationTableData

type UserValidatorNotificationTableData struct {
	Index        uint64
	Pubkey       string
	Notification []struct {
		Notification string
		Timestamp    uint64
		Threshold    string
	}
}

type UserWebhook

type UserWebhook struct {
	ID          uint64         `db:"id" json:"id"`
	UserID      uint64         `db:"user_id" json:"-"`
	Url         string         `db:"url" json:"url"`
	Retries     uint64         `db:"retries" json:"retries"`
	LastSent    sql.NullTime   `db:"last_sent" json:"lastRetry"`
	Response    sql.NullString `db:"response" json:"response"`
	Request     sql.NullString `db:"request" json:"request"`
	Destination sql.NullString `db:"destination" json:"destination"`
	EventNames  pq.StringArray `db:"event_names" json:"-"`
}

type UserWebhookRow

type UserWebhookRow struct {
	ID           uint64 `db:"id" json:"id"`
	UrlFull      string
	Url          template.HTML `db:"url" json:"url"`
	Retries      template.HTML `db:"retries" json:"retries"`
	LastSent     template.HTML `db:"last_retry" json:"lastSent"`
	Destination  template.HTML `db:"destination" json:"destination"`
	WebhookError UserWebhookRowError
	Response     *http.Response          `db:"response" json:"response"`
	Request      *map[string]interface{} `db:"request" json:"request"`
	Events       []EventNameCheckbox     `db:"event_names" json:"-"`
	Discord      bool
	CsrfField    template.HTML
}

type UserWebhookRowError

type UserWebhookRowError struct {
	SummaryRequest  template.HTML
	SummaryResponse template.HTML
	ContentRequest  template.HTML
	ContentResponse template.HTML
}

type UserWebhookSubscriptions

type UserWebhookSubscriptions struct {
	ID             uint64 `db:"id"`
	UserID         uint64 `db:"user_id"`
	WebhookID      uint64 `db:"webhook_id"`
	SubscriptionID uint64 `db:"subscription_id"`
}

type UserWithPremium

type UserWithPremium struct {
	ID      uint64         `db:"id"`
	Product sql.NullString `db:"product_id"`
}

type UsersNotificationsRequest

type UsersNotificationsRequest struct {
	EventNames    []string `json:"event_names"`
	EventFilters  []string `json:"event_filters"`
	Search        string   `json:"search"`
	Limit         uint64   `json:"limit"`
	Offset        uint64   `json:"offset"`
	JoinValidator bool     `json:"join_validator"`
}

type Validator

type Validator struct {
	Index                      uint64 `db:"validatorindex"`
	PublicKey                  []byte `db:"pubkey"`
	PublicKeyHex               string `db:"pubkeyhex"`
	Balance                    uint64 `db:"balance"`
	EffectiveBalance           uint64 `db:"effectivebalance"`
	Slashed                    bool   `db:"slashed"`
	ActivationEligibilityEpoch uint64 `db:"activationeligibilityepoch"`
	ActivationEpoch            uint64 `db:"activationepoch"`
	ExitEpoch                  uint64 `db:"exitepoch"`
	WithdrawableEpoch          uint64 `db:"withdrawableepoch"`
	WithdrawalCredentials      []byte `db:"withdrawalcredentials"`

	BalanceActivation sql.NullInt64 `db:"balanceactivation"`
	Status            string        `db:"status"`

	LastAttestationSlot sql.NullInt64 `db:"lastattestationslot"`
	LastProposalSlot    sql.NullInt64 `db:"lastproposalslot"`
}

Validator is a struct to hold validator data

type ValidatorAttestation

type ValidatorAttestation struct {
	Index          uint64
	Epoch          uint64 `db:"epoch"`
	AttesterSlot   uint64 `db:"attesterslot"`
	CommitteeIndex uint64 `db:"committeeindex"`
	Status         uint64 `db:"status"`
	InclusionSlot  uint64 `db:"inclusionslot"`
	Delay          int64  `db:"delay"`
}

ValidatorAttestation is a struct for the validators attestations data

type ValidatorAttestationSlashing

type ValidatorAttestationSlashing struct {
	Epoch                  uint64        `db:"epoch" json:"epoch,omitempty"`
	Slot                   uint64        `db:"slot" json:"slot,omitempty"`
	Proposer               uint64        `db:"proposer" json:"proposer,omitempty"`
	Attestestation1Indices pq.Int64Array `db:"attestation1_indices" json:"attestation1_indices,omitempty"`
	Attestestation2Indices pq.Int64Array `db:"attestation2_indices" json:"attestation2_indices,omitempty"`
}

ValidatorAttestationSlashing is a struct to hold data of an attestation-slashing

type ValidatorBalance

type ValidatorBalance struct {
	Epoch            uint64 `db:"epoch"`
	Balance          uint64 `db:"balance"`
	EffectiveBalance uint64 `db:"effectivebalance"`
	Index            uint64 `db:"validatorindex"`
	PublicKey        []byte `db:"pubkey"`
}

ValidatorBalance is a struct for the validator balance data

type ValidatorBalanceHistory

type ValidatorBalanceHistory struct {
	Day              uint64 `db:"day"`
	Balance          uint64 `db:"balance"`
	EffectiveBalance uint64 `db:"effectivebalance"`
}

ValidatorBalanceHistory is a struct for the validator balance history data

type ValidatorBalanceHistoryChartData

type ValidatorBalanceHistoryChartData struct {
	Epoch   uint64
	Balance uint64
}

type ValidatorBalanceStatistic

type ValidatorBalanceStatistic struct {
	Index                 uint64
	MinEffectiveBalance   uint64
	MaxEffectiveBalance   uint64
	MinBalance            uint64
	MaxBalance            uint64
	StartEffectiveBalance uint64
	EndEffectiveBalance   uint64
	StartBalance          uint64
	EndBalance            uint64
}

type ValidatorDeposits

type ValidatorDeposits struct {
	Eth1Deposits      []Eth1Deposit
	LastEth1DepositTs int64
	Eth2Deposits      []Eth2Deposit
}

type ValidatorEarnings

type ValidatorEarnings struct {
	Income1d                ClElInt64     `json:"income1d"`
	Income7d                ClElInt64     `json:"income7d"`
	Income31d               ClElInt64     `json:"income31d"`
	IncomeTotal             ClElInt64     `json:"incomeTotal"`
	Apr7d                   ClElFloat64   `json:"apr"`
	Apr31d                  ClElFloat64   `json:"apr31d"`
	Apr365d                 ClElFloat64   `json:"apr365d"`
	TotalDeposits           int64         `json:"totalDeposits"`
	TotalWithdrawals        uint64        `json:"totalWithdrawals"`
	EarningsInPeriodBalance int64         `json:"earningsInPeriodBalance"`
	EarningsInPeriod        int64         `json:"earningsInPeriod"`
	EpochStart              int64         `json:"epochStart"`
	EpochEnd                int64         `json:"epochEnd"`
	LastDayFormatted        template.HTML `json:"lastDayFormatted"`
	LastWeekFormatted       template.HTML `json:"lastWeekFormatted"`
	LastMonthFormatted      template.HTML `json:"lastMonthFormatted"`
	ProposerTotalFormatted  template.HTML `json:"proposerTotalFormatted"`
	TotalFormatted          template.HTML `json:"totalFormatted"`
	TotalChangeFormatted    template.HTML `json:"totalChangeFormatted"`
	TotalBalance            template.HTML `json:"totalBalance"`
}

type ValidatorEffectiveness

type ValidatorEffectiveness struct {
	Validatorindex        uint64  `json:"validatorindex"`
	AttestationEfficiency float64 `json:"attestation_efficiency"`
}

type ValidatorHistory

type ValidatorHistory struct {
	Epoch             uint64                       `db:"epoch" json:"epoch,omitempty"`
	BalanceChange     sql.NullInt64                `db:"balancechange" json:"balance_change,omitempty"`
	AttesterSlot      sql.NullInt64                `db:"attestatation_attesterslot" json:"attester_slot,omitempty"`
	InclusionSlot     sql.NullInt64                `db:"attestation_inclusionslot" json:"inclusion_slot,omitempty"`
	AttestationStatus uint64                       `db:"attestation_status" json:"attestation_status,omitempty"`
	ProposalStatus    sql.NullInt64                `db:"proposal_status" json:"proposal_status,omitempty"`
	ProposalSlot      sql.NullInt64                `db:"proposal_slot" json:"proposal_slot,omitempty"`
	IncomeDetails     *itypes.ValidatorEpochIncome `db:"-" json:"income_details,omitempty"`
	WithdrawalStatus  sql.NullInt64                `db:"withdrawal_status" json:"withdrawal_status,omitempty"`
	WithdrawalSlot    sql.NullInt64                `db:"withdrawal_slot" json:"withdrawal_slot,omitempty"`
}

type ValidatorIncomeHistory

type ValidatorIncomeHistory struct {
	Day              int64         `db:"day"` // day can be -1 which is pre-genesis
	ClRewards        int64         `db:"cl_rewards_gwei"`
	EndBalance       sql.NullInt64 `db:"end_balance"`
	StartBalance     sql.NullInt64 `db:"start_balance"`
	DepositAmount    sql.NullInt64 `db:"deposits_amount"`
	WithdrawalAmount sql.NullInt64 `db:"withdrawals_amount"`
}

ValidatorBalanceHistory is a struct for the validator income history data

type ValidatorMissedAttestationsStatistic

type ValidatorMissedAttestationsStatistic struct {
	Index              uint64
	MissedAttestations uint64
}

type ValidatorPageData

type ValidatorPageData struct {
	Epoch                                    uint64 `db:"epoch"`
	ValidatorIndex                           uint64 `db:"validatorindex"`
	PublicKey                                []byte `db:"pubkey"`
	WithdrawableEpoch                        uint64 `db:"withdrawableepoch"`
	WithdrawCredentials                      []byte `db:"withdrawalcredentials"`
	CurrentBalance                           uint64 `db:"balance"`
	BalanceActivation                        uint64 `db:"balanceactivation"`
	EffectiveBalance                         uint64 `db:"effectivebalance"`
	Slashed                                  bool   `db:"slashed"`
	SlashedBy                                uint64
	SlashedAt                                uint64
	SlashedFor                               string
	ActivationEligibilityEpoch               uint64         `db:"activationeligibilityepoch"`
	ActivationEpoch                          uint64         `db:"activationepoch"`
	ExitEpoch                                uint64         `db:"exitepoch"`
	Index                                    uint64         `db:"index"`
	LastAttestationSlot                      *uint64        `db:"lastattestationslot"`
	Name                                     string         `db:"name"`
	Pool                                     string         `db:"pool"`
	Tags                                     pq.StringArray `db:"tags"`
	WithdrawableTs                           time.Time
	ActivationEligibilityTs                  time.Time
	ActivationTs                             time.Time
	ExitTs                                   time.Time
	Status                                   string `db:"status"`
	BlocksCount                              uint64
	ScheduledBlocksCount                     uint64
	MissedBlocksCount                        uint64
	OrphanedBlocksCount                      uint64
	ProposedBlocksCount                      uint64
	UnmissedBlocksPercentage                 float64 // missed/(executed+orphaned+scheduled)
	AttestationsCount                        uint64
	ExecutedAttestationsCount                uint64
	MissedAttestationsCount                  uint64
	OrphanedAttestationsCount                uint64
	UnmissedAttestationsPercentage           float64 // missed/(executed+orphaned)
	StatusProposedCount                      uint64
	StatusMissedCount                        uint64
	DepositsCount                            uint64
	WithdrawalCount                          uint64
	SlashingsCount                           uint64
	PendingCount                             uint64
	SyncCount                                uint64 // amount of sync committees the validator was (and is) part of
	SlotsPerSyncCommittee                    uint64
	SlotsDoneInCurrentSyncCommittee          uint64
	ScheduledSyncCountSlots                  uint64
	ParticipatedSyncCountSlots               uint64
	MissedSyncCountSlots                     uint64
	OrphanedSyncCountSlots                   uint64
	UnmissedSyncPercentage                   float64        // participated/(participated+missed)
	IncomeToday                              ClElInt64      `json:"incomeToday"`
	Income1d                                 ClElInt64      `json:"income1d"`
	Income7d                                 ClElInt64      `json:"income7d"`
	Income31d                                ClElInt64      `json:"income31d"`
	IncomeTotal                              ClElInt64      `json:"incomeTotal"`
	IncomeTotalFormatted                     template.HTML  `json:"incomeTotalFormatted"`
	IncomeProposerFormatted                  *template.HTML `json:"incomeProposerFormatted"`
	Apr7d                                    ClElFloat64    `json:"apr7d"`
	Apr31d                                   ClElFloat64    `json:"apr31d"`
	Apr365d                                  ClElFloat64    `json:"apr365d"`
	ProposalLuck                             float64
	SyncLuck                                 float64
	ProposalEstimate                         *time.Time
	SyncEstimate                             *time.Time
	AvgSlotInterval                          *time.Duration
	AvgSyncInterval                          *time.Duration
	Rank7d                                   int64 `db:"rank7d"`
	RankCount                                int64 `db:"rank_count"`
	RankPercentage                           float64
	Proposals                                [][]uint64
	IncomeHistoryChartData                   []*ChartDataPoint
	ExecutionIncomeHistoryData               []*ChartDataPoint
	Deposits                                 *ValidatorDeposits
	Eth1DepositAddress                       []byte
	FlashMessage                             string
	Watchlist                                []*TaggedValidators
	SubscriptionFlash                        []interface{}
	User                                     *User
	AverageAttestationInclusionDistance      float64
	AttestationInclusionEffectiveness        float64
	CsrfField                                template.HTML
	NetworkStats                             *IndexPageData
	ChurnRate                                uint64
	QueuePosition                            uint64
	EstimatedActivationTs                    time.Time
	EstimatedActivationEpoch                 uint64
	InclusionDelay                           int64
	CurrentAttestationStreak                 uint64
	LongestAttestationStreak                 uint64
	IsRocketpool                             bool
	Rocketpool                               *RocketpoolValidatorPageData
	ShowMultipleWithdrawalCredentialsWarning bool
	CappellaHasHappened                      bool
	BLSChange                                *BLSChange
	IsWithdrawableAddress                    bool
	EstimatedNextWithdrawal                  template.HTML
	AddValidatorWatchlistModal               *AddValidatorWatchlistModal
	NextWithdrawalRow                        [][]interface{}
}

ValidatorPageData is a struct to hold data for the validators page

type ValidatorParticipation

type ValidatorParticipation struct {
	Epoch                   uint64
	GlobalParticipationRate float32
	VotedEther              uint64
	EligibleEther           uint64
}

ValidatorParticipation is a struct to hold validator participation data

type ValidatorPerformance

type ValidatorPerformance struct {
	Rank            uint64 `db:"rank"`
	Index           uint64 `db:"validatorindex"`
	PublicKey       []byte `db:"pubkey"`
	Name            string `db:"name"`
	Balance         uint64 `db:"balance"`
	Performance1d   int64  `db:"performance1d"`
	Performance7d   int64  `db:"performance7d"`
	Performance31d  int64  `db:"performance31d"`
	Performance365d int64  `db:"performance365d"`
	Rank7d          int64  `db:"rank7d"`
	TotalCount      uint64 `db:"total_count"`
}

ValidatorPerformance is a struct for the validator performance data

type ValidatorProposal

type ValidatorProposal struct {
	Index  uint64
	Slot   uint64
	Status uint64
}

type ValidatorProposerSlashing

type ValidatorProposerSlashing struct {
	Epoch         uint64 `db:"epoch" json:"epoch,omitempty"`
	Slot          uint64 `db:"slot" json:"slot,omitempty"`
	Proposer      uint64 `db:"proposer" json:"proposer,omitempty"`
	ProposerIndex uint64 `db:"proposerindex" json:"proposer_index,omitempty"`
}

type ValidatorQueue

type ValidatorQueue struct {
	Activating uint64
	Exiting    uint64
}

ValidatorQueue is a struct to hold validator queue data

type ValidatorRank

type ValidatorRank struct {
	Rank int64 `db:"rank" json:"rank"`
}

ValidatorRank is a struct for validator rank data

type ValidatorSlashing

type ValidatorSlashing struct {
	Epoch                  uint64        `db:"epoch" json:"epoch,omitempty"`
	Slot                   uint64        `db:"slot" json:"slot,omitempty"`
	Proposer               uint64        `db:"proposer" json:"proposer,omitempty"`
	SlashedValidator       *uint64       `db:"slashedvalidator" json:"slashed_validator,omitempty"`
	Attestestation1Indices pq.Int64Array `db:"attestation1_indices" json:"attestation1_indices,omitempty"`
	Attestestation2Indices pq.Int64Array `db:"attestation2_indices" json:"attestation2_indices,omitempty"`
	Type                   string        `db:"type" json:"type"`
}

type ValidatorStatsTablePageData

type ValidatorStatsTablePageData struct {
	ValidatorIndex uint64
	Rows           []*ValidatorStatsTableRow
	Currency       string
}

type ValidatorStatsTableRow

type ValidatorStatsTableRow struct {
	ValidatorIndex         uint64
	Day                    int64         `db:"day"`
	StartBalance           sql.NullInt64 `db:"start_balance"`
	EndBalance             sql.NullInt64 `db:"end_balance"`
	Income                 int64         `db:"cl_rewards_gwei"`
	IncomeExchangeRate     float64       `db:"-"`
	IncomeExchangeCurrency string        `db:"-"`
	IncomeExchanged        float64       `db:"-"`
	MinBalance             sql.NullInt64 `db:"min_balance"`
	MaxBalance             sql.NullInt64 `db:"max_balance"`
	StartEffectiveBalance  sql.NullInt64 `db:"start_effective_balance"`
	EndEffectiveBalance    sql.NullInt64 `db:"end_effective_balance"`
	MinEffectiveBalance    sql.NullInt64 `db:"min_effective_balance"`
	MaxEffectiveBalance    sql.NullInt64 `db:"max_effective_balance"`
	MissedAttestations     sql.NullInt64 `db:"missed_attestations"`
	OrphanedAttestations   sql.NullInt64 `db:"orphaned_attestations"`
	ProposedBlocks         sql.NullInt64 `db:"proposed_blocks"`
	MissedBlocks           sql.NullInt64 `db:"missed_blocks"`
	OrphanedBlocks         sql.NullInt64 `db:"orphaned_blocks"`
	AttesterSlashings      sql.NullInt64 `db:"attester_slashings"`
	ProposerSlashings      sql.NullInt64 `db:"proposer_slashings"`
	Deposits               sql.NullInt64 `db:"deposits"`
	DepositsAmount         sql.NullInt64 `db:"deposits_amount"`
	ParticipatedSync       sql.NullInt64 `db:"participated_sync"`
	MissedSync             sql.NullInt64 `db:"missed_sync"`
	OrphanedSync           sql.NullInt64 `db:"orphaned_sync"`
}

type ValidatorSyncDutiesStatistic

type ValidatorSyncDutiesStatistic struct {
	Index            uint64
	ParticipatedSync uint64
	MissedSync       uint64
}

type ValidatorSyncParticipation

type ValidatorSyncParticipation struct {
	Period uint64 `db:"period"`
	Slot   uint64 `db:"slot"`
	Status uint64 `db:"status"`
}

ValidatorSyncParticipation hold information about sync-participation of a validator

type ValidatorWithdrawal

type ValidatorWithdrawal struct {
	Index  uint64
	Epoch  uint64
	Slot   uint64
	Amount uint64
}

type ValidatorsBLSChange

type ValidatorsBLSChange struct {
	Slot                     uint64 `db:"slot" json:"slot,omitempty"`
	BlockRoot                []byte `db:"block_root" json:"blockroot,omitempty"`
	Validatorindex           uint64 `db:"validatorindex" json:"validatorindex,omitempty"`
	BlsPubkey                []byte `db:"pubkey" json:"pubkey,omitempty"`
	Address                  []byte `db:"address" json:"address,omitempty"`
	Signature                []byte `db:"signature" json:"signature,omitempty"`
	WithdrawalCredentialsOld []byte `db:"withdrawalcredentials" json:"withdrawalcredentials,omitempty"`
}

type ValidatorsPageData

type ValidatorsPageData struct {
	TotalCount           uint64
	DepositedCount       uint64
	PendingCount         uint64
	ActiveCount          uint64
	ActiveOnlineCount    uint64
	ActiveOfflineCount   uint64
	SlashingCount        uint64
	SlashingOnlineCount  uint64
	SlashingOfflineCount uint64
	Slashed              uint64
	ExitingCount         uint64
	ExitingOnlineCount   uint64
	ExitingOfflineCount  uint64
	ExitedCount          uint64
	VoluntaryExitsCount  uint64
	UnknownCount         uint64
	Validators           []*ValidatorsPageDataValidators
	CappellaHasHappened  bool
}

ValidatorsPageData is a struct to hold data about the validators page

type ValidatorsPageDataValidators

type ValidatorsPageDataValidators struct {
	TotalCount                 uint64 `db:"total_count"`
	Epoch                      uint64 `db:"epoch"`
	PublicKey                  []byte `db:"pubkey"`
	ValidatorIndex             uint64 `db:"validatorindex"`
	WithdrawableEpoch          uint64 `db:"withdrawableepoch"`
	CurrentBalance             uint64 `db:"balance"`
	EffectiveBalance           uint64 `db:"effectivebalance"`
	Slashed                    bool   `db:"slashed"`
	ActivationEligibilityEpoch uint64 `db:"activationeligibilityepoch"`
	ActivationEpoch            uint64 `db:"activationepoch"`
	ExitEpoch                  uint64 `db:"exitepoch"`
	LastAttestationSlot        *int64 `db:"lastattestationslot"`
	Name                       string `db:"name"`
	State                      string `db:"state"`
	MissedProposals            uint64 `db:"missedproposals"`
	ExecutedProposals          uint64 `db:"executedproposals"`
	MissedAttestations         uint64 `db:"missedattestations"`
	ExecutedAttestations       uint64 `db:"executedattestations"`
	Performance7d              int64  `db:"performance7d"`
}

ValidatorsPageDataValidators is a struct to hold data about validators for the validators page

type VisChartData

type VisChartData struct {
	Slot       uint64 `db:"slot" json:"-"`
	BlockRoot  []byte `db:"blockroot" json:"-"`
	ParentRoot []byte `db:"parentroot" json:"-"`

	Proposer uint64 `db:"proposer" json:"proposer"`

	Number     uint64   `json:"number"`
	Timestamp  uint64   `json:"timestamp"`
	Hash       string   `json:"hash"`
	Parents    []string `json:"parents"`
	Difficulty uint64   `json:"difficulty"`
}

VisChartData is a struct to hold the visualizations chart data

type VisPageData

type VisPageData struct {
	ChartData  []*VisChartData
	StartEpoch uint64
	EndEpoch   uint64
}

VisPageData is a struct to hold the visualizations page data

type VisVotesPageData

type VisVotesPageData struct {
	ChartData []*VotesVisChartData
}

VisVotesPageData is a struct for the visualization votes page data

type VoluntaryExit

type VoluntaryExit struct {
	Epoch          uint64
	ValidatorIndex uint64
	Signature      []byte
}

VoluntaryExit is a struct to hold voluntary exit data

type VotesVisChartData

type VotesVisChartData struct {
	Slot       uint64        `db:"slot" json:"slot"`
	BlockRoot  string        `db:"blockroot" json:"blockRoot"`
	ParentRoot string        `db:"parentroot" json:"parentRoot"`
	Validators pq.Int64Array `db:"validators" json:"validators"`
}

VotesVisChartData is a struct for the visualization chart data

type WebhookEvent

type WebhookEvent struct {
	Network     string `json:"network,omitempty"`
	Name        string `json:"event,omitempty"`
	Title       string `json:"title,omitempty"`
	Description string `json:"description,omitempty"`
	Epoch       uint64 `json:"epoch,omitempty"`
	Target      string `json:"target,omitempty"`
}

type WebhookPageData

type WebhookPageData struct {
	WebhookRows  []UserWebhookRow
	Webhooks     []UserWebhook
	Events       []EventNameCheckbox
	CsrfField    template.HTML
	Allowed      uint64
	WebhookCount uint64
	Flashes      []interface{}
}

type WeiString

type WeiString struct {
	pgtype.Numeric
}

func (*WeiString) BigInt

func (b *WeiString) BigInt() *big.Int

func (WeiString) MarshalJSON

func (b WeiString) MarshalJSON() ([]byte, error)

func (*WeiString) UnmarshalJSON

func (b *WeiString) UnmarshalJSON(p []byte) error

type WidgetResponse

type WidgetResponse struct {
	Eff             any   `json:"efficiency"`
	Validator       any   `json:"validator"`
	Epoch           int64 `json:"epoch"`
	RocketpoolStats any   `json:"rocketpool_network_stats"`
}

type WithdrawalStats

type WithdrawalStats struct {
	WithdrawalsCount             uint64
	WithdrawalsTotal             uint64
	BLSChangeCount               uint64
	ValidatorsWithBLSCredentials uint64
}

type Withdrawals

type Withdrawals struct {
	Slot           uint64 `json:"slot,omitempty"`
	BlockRoot      []byte `json:"blockroot,omitempty"`
	Index          uint64 `json:"index"`
	ValidatorIndex uint64 `json:"validatorindex"`
	Address        []byte `json:"address"`
	Amount         uint64 `json:"amount"`
}

type WithdrawalsByEpoch

type WithdrawalsByEpoch struct {
	Epoch          uint64
	ValidatorIndex uint64
	Amount         uint64
}

type WithdrawalsNotification

type WithdrawalsNotification struct {
	Slot           uint64 `json:"slot,omitempty"`
	Index          uint64 `json:"index"`
	ValidatorIndex uint64 `json:"validatorindex"`
	Address        []byte `json:"address"`
	Amount         uint64 `json:"amount"`
	Pubkey         []byte `json:"pubkey"`
}

type WithdrawalsPageData

type WithdrawalsPageData struct {
	Stats           *Stats
	WithdrawalChart *ChartsPageDataChart
	Withdrawals     *DataTableResponse
	BlsChanges      *DataTableResponse
}

Jump to

Keyboard shortcuts

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