Documentation ¶
Index ¶
- type AttestationInfo
- type BeaconBlock
- type BeaconBlockHeader
- type BeaconClientType
- type BeaconHead
- type Client
- type Committees
- type Eth1Data
- type Eth2Config
- func (c *Eth2Config) EpochToSlot(epoch uint64) uint64
- func (c *Eth2Config) FirstSlotAtLeast(t int64) uint64
- func (c *Eth2Config) FirstSlotOfEpoch(epoch uint64) uint64
- func (c *Eth2Config) GetSlotTime(slot uint64) time.Time
- func (c *Eth2Config) LastSlotOfEpoch(epoch uint64) uint64
- func (c *Eth2Config) MarshalJSON() ([]byte, error)
- func (c *Eth2Config) SlotOfEpoch(epoch uint64, slot uint64) (uint64, error)
- func (c *Eth2Config) SlotToEpoch(slot uint64) uint64
- func (c *Eth2Config) UnmarshalJSON(data []byte) error
- type Eth2DepositContract
- type SyncStatus
- type ValidatorState
- type ValidatorStatus
- type ValidatorStatusOptions
- type WithdrawalInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AttestationInfo ¶ added in v1.5.0
type BeaconBlock ¶ added in v1.5.0
type BeaconBlock struct { Slot uint64 ProposerIndex string HasExecutionPayload bool Attestations []AttestationInfo FeeRecipient common.Address ExecutionBlockNumber uint64 Withdrawals []WithdrawalInfo }
type BeaconBlockHeader ¶ added in v1.12.0
type BeaconClientType ¶ added in v1.0.0
type BeaconClientType int
Beacon client type
const ( // This client is a traditional "split process" design, where the beacon // client and validator process are separate and run in different // containers SplitProcess BeaconClientType = iota // This client is a "single process" where the beacon client and // validator run in the same process (or run as separate processes // within the same docker container) SingleProcess // Unknown / missing client type Unknown )
type BeaconHead ¶
type Client ¶
type Client interface { GetClientType() (BeaconClientType, error) GetSyncStatus() (SyncStatus, error) GetEth2Config() (Eth2Config, error) GetEth2DepositContract() (Eth2DepositContract, error) GetAttestations(blockId string) ([]AttestationInfo, bool, error) GetBeaconBlock(blockId string) (BeaconBlock, bool, error) GetBeaconBlockHeader(blockId string) (BeaconBlockHeader, bool, error) GetBeaconHead() (BeaconHead, error) GetValidatorStatusByIndex(index string, opts *ValidatorStatusOptions) (ValidatorStatus, error) GetValidatorStatus(pubkey types.ValidatorPubkey, opts *ValidatorStatusOptions) (ValidatorStatus, error) GetValidatorStatuses(pubkeys []types.ValidatorPubkey, opts *ValidatorStatusOptions) (map[types.ValidatorPubkey]ValidatorStatus, error) GetValidatorIndex(pubkey types.ValidatorPubkey) (string, error) GetValidatorSyncDuties(indices []string, epoch uint64) (map[string]bool, error) GetValidatorProposerDuties(indices []string, epoch uint64) (map[string]uint64, error) GetValidatorBalances(indices []string, opts *ValidatorStatusOptions) (map[string]*big.Int, error) GetValidatorBalancesSafe(indices []string, opts *ValidatorStatusOptions) (map[string]*big.Int, error) GetDomainData(domainType []byte, epoch uint64, useGenesisFork bool) ([]byte, error) ExitValidator(validatorIndex string, epoch uint64, signature types.ValidatorSignature) error Close() error GetEth1DataForEth2Block(blockId string) (Eth1Data, bool, error) GetCommitteesForEpoch(epoch *uint64) (Committees, error) ChangeWithdrawalCredentials(validatorIndex string, fromBlsPubkey types.ValidatorPubkey, toExecutionAddress common.Address, signature types.ValidatorSignature) error }
Beacon client interface
type Committees ¶ added in v1.10.0
type Committees interface { // Index returns the index of the committee at the provided offset Index(int) uint64 // Slot returns the slot of the committee at the provided offset Slot(int) uint64 // Validators returns the list of validators of the committee at // the provided offset Validators(int) []string // Count returns the number of committees in the response Count() int // Release returns the reused validators slice buffer to the pool for // further reuse, and must be called when the user is done with this // committees instance Release() }
Committees is an interface as an optimization- since committees responses are quite large, there's a decent cpu/memory improvement to removing the translation to an intermediate storage class.
Instead, the interface provides the access pattern that smartnode (or more specifically, tree-gen) wants, and the underlying format is just the format of the Beacon Node response.
type Eth2Config ¶
type Eth2Config struct { GenesisForkVersion []byte `json:"genesis_fork_version"` GenesisValidatorsRoot []byte `json:"genesis_validators_root"` GenesisEpoch uint64 `json:"genesis_epoch"` GenesisTime uint64 `json:"genesis_time"` SecondsPerSlot uint64 `json:"seconds_per_slot"` SlotsPerEpoch uint64 `json:"slots_per_epoch"` SecondsPerEpoch uint64 `json:"seconds_per_epoch"` EpochsPerSyncCommitteePeriod uint64 `json:"epochs_per_sync_committee_period"` }
func (*Eth2Config) EpochToSlot ¶ added in v1.15.0
func (c *Eth2Config) EpochToSlot(epoch uint64) uint64
func (*Eth2Config) FirstSlotAtLeast ¶ added in v1.15.0
func (c *Eth2Config) FirstSlotAtLeast(t int64) uint64
FirstSlotAtLeast returns the first slot with a timestamp greater than or equal to t
func (*Eth2Config) FirstSlotOfEpoch ¶ added in v1.15.0
func (c *Eth2Config) FirstSlotOfEpoch(epoch uint64) uint64
func (*Eth2Config) GetSlotTime ¶ added in v1.15.0
func (c *Eth2Config) GetSlotTime(slot uint64) time.Time
GetSlotTime returns the time of a given slot for the network described by Eth2Config.
func (*Eth2Config) LastSlotOfEpoch ¶ added in v1.15.0
func (c *Eth2Config) LastSlotOfEpoch(epoch uint64) uint64
func (*Eth2Config) MarshalJSON ¶ added in v1.15.0
func (c *Eth2Config) MarshalJSON() ([]byte, error)
func (*Eth2Config) SlotOfEpoch ¶ added in v1.15.0
func (c *Eth2Config) SlotOfEpoch(epoch uint64, slot uint64) (uint64, error)
func (*Eth2Config) SlotToEpoch ¶ added in v1.15.0
func (c *Eth2Config) SlotToEpoch(slot uint64) uint64
func (*Eth2Config) UnmarshalJSON ¶ added in v1.15.0
func (c *Eth2Config) UnmarshalJSON(data []byte) error
type Eth2DepositContract ¶ added in v1.0.0
type ValidatorState ¶ added in v1.7.1
type ValidatorState string
const ( ValidatorState_PendingInitialized ValidatorState = "pending_initialized" ValidatorState_PendingQueued ValidatorState = "pending_queued" ValidatorState_ActiveOngoing ValidatorState = "active_ongoing" ValidatorState_ActiveExiting ValidatorState = "active_exiting" ValidatorState_ActiveSlashed ValidatorState = "active_slashed" ValidatorState_ExitedUnslashed ValidatorState = "exited_unslashed" ValidatorState_ExitedSlashed ValidatorState = "exited_slashed" ValidatorState_WithdrawalPossible ValidatorState = "withdrawal_possible" ValidatorState_WithdrawalDone ValidatorState = "withdrawal_done" )
type ValidatorStatus ¶
type ValidatorStatus struct { Pubkey types.ValidatorPubkey `json:"pubkey"` Index string `json:"index"` WithdrawalCredentials common.Hash `json:"withdrawal_credentials"` Balance uint64 `json:"balance"` Status ValidatorState `json:"status"` EffectiveBalance uint64 `json:"effective_balance"` Slashed bool `json:"slashed"` ActivationEligibilityEpoch uint64 `json:"activation_eligibility_epoch"` ActivationEpoch uint64 `json:"activation_epoch"` ExitEpoch uint64 `json:"exit_epoch"` WithdrawableEpoch uint64 `json:"withdrawable_epoch"` Exists bool `json:"exists"` }
type ValidatorStatusOptions ¶
API request options
Click to show internal directories.
Click to hide internal directories.