rpctypes

package
v1.4.2 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2023 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Uint64Unmarshal

func Uint64Unmarshal(v *uint64, b []byte) error

Parse a uint64, with or without quotes, in any base, with common prefixes accepted to change base.

Types

type Attestation

type Attestation struct {
	AggregationBits BytesHexStr     `json:"aggregation_bits"`
	Signature       BytesHexStr     `json:"signature"`
	Data            AttestationData `json:"data"`
}

type AttestationData

type AttestationData struct {
	Slot            Uint64Str   `json:"slot"`
	Index           Uint64Str   `json:"index"`
	BeaconBlockRoot BytesHexStr `json:"beacon_block_root"`
	Source          Checkpoint  `json:"source"`
	Target          Checkpoint  `json:"target"`
}

type AttesterSlashing

type AttesterSlashing struct {
	Attestation1 IndexedAttestation `json:"attestation_1"`
	Attestation2 IndexedAttestation `json:"attestation_2"`
}

type BLSToExecutionChange

type BLSToExecutionChange struct {
	ValidatorIndex     Uint64Str   `json:"validator_index"`
	FromBlsPubkey      BytesHexStr `json:"from_bls_pubkey"`
	ToExecutionAddress BytesHexStr `json:"to_execution_address"`
}

type BeaconBlock

type BeaconBlock struct {
	Slot          Uint64Str       `json:"slot"`
	ProposerIndex Uint64Str       `json:"proposer_index"`
	ParentRoot    BytesHexStr     `json:"parent_root"`
	StateRoot     BytesHexStr     `json:"state_root"`
	Body          BeaconBlockBody `json:"body"`
}

type BeaconBlockBody

type BeaconBlockBody struct {
	RandaoReveal      BytesHexStr           `json:"randao_reveal"`
	Eth1Data          Eth1Data              `json:"eth1_data"`
	Graffiti          BytesHexStr           `json:"graffiti"`
	ProposerSlashings []ProposerSlashing    `json:"proposer_slashings"`
	AttesterSlashings []AttesterSlashing    `json:"attester_slashings"`
	Attestations      []Attestation         `json:"attestations"`
	Deposits          []Deposit             `json:"deposits"`
	VoluntaryExits    []SignedVoluntaryExit `json:"voluntary_exits"`

	// present only after altair
	SyncAggregate *SyncAggregate `json:"sync_aggregate,omitempty"`

	// present only after bellatrix
	ExecutionPayload *ExecutionPayload `json:"execution_payload"`

	// present only after capella
	SignedBLSToExecutionChange []*SignedBLSToExecutionChange `json:"bls_to_execution_changes"`

	// present only after deneb
	BlobKzgCommitments []BytesHexStr `json:"blob_kzg_commitments"`
}

type BeaconBlockHeader

type BeaconBlockHeader struct {
	Slot          Uint64Str   `json:"slot"`
	ProposerIndex Uint64Str   `json:"proposer_index"`
	ParentRoot    BytesHexStr `json:"parent_root"`
	StateRoot     BytesHexStr `json:"state_root"`
	BodyRoot      BytesHexStr `json:"body_root"`
}

type BlobSidecar

type BlobSidecar struct {
	BlockRoot       BytesHexStr `json:"block_root"`
	Index           Uint64Str   `json:"index"`
	Slot            Uint64Str   `json:"slot"`
	BlockParentRoot BytesHexStr `json:"block_parent_root"`
	ProposerIndex   Uint64Str   `json:"proposer_index"`
	Blob            BytesHexStr `json:"blob"`
	KzgCommitment   BytesHexStr `json:"kzg_commitment"`
	KzgProof        BytesHexStr `json:"kzg_proof"`
}

type BytesHexStr

type BytesHexStr []byte

func (*BytesHexStr) MarshalJSON

func (s *BytesHexStr) MarshalJSON() ([]byte, error)

func (BytesHexStr) String

func (s BytesHexStr) String() string

func (*BytesHexStr) UnmarshalJSON added in v1.3.0

func (s *BytesHexStr) UnmarshalJSON(b []byte) error

func (*BytesHexStr) UnmarshalText

func (s *BytesHexStr) UnmarshalText(b []byte) error

type Checkpoint

type Checkpoint struct {
	Epoch Uint64Str   `json:"epoch"`
	Root  BytesHexStr `json:"root"`
}

type CombinedBlockResponse

type CombinedBlockResponse struct {
	Root     []byte
	Header   *SignedBeaconBlockHeader
	Block    *SignedBeaconBlock
	Orphaned bool
}

type Deposit

type Deposit struct {
	Proof []BytesHexStr `json:"proof"`
	Data  DepositData   `json:"data"`
}

type DepositData

type DepositData struct {
	Pubkey                BytesHexStr `json:"pubkey"`
	WithdrawalCredentials BytesHexStr `json:"withdrawal_credentials"`
	Amount                Uint64Str   `json:"amount"`
	Signature             BytesHexStr `json:"signature"`
}

type EpochAssignments

type EpochAssignments struct {
	DependendRoot       BytesHexStr         `json:"dep_root"`
	DependendStateRef   string              `json:"dep_state"`
	ProposerAssignments map[uint64]uint64   `json:"prop"`
	AttestorAssignments map[string][]uint64 `json:"att"`
	SyncAssignments     []uint64            `json:"sync"`
}

type Eth1Data

type Eth1Data struct {
	DepositRoot  BytesHexStr `json:"deposit_root"`
	DepositCount Uint64Str   `json:"deposit_count"`
	BlockHash    BytesHexStr `json:"block_hash"`
}

type ExecutionPayload

type ExecutionPayload struct {
	ParentHash    BytesHexStr   `json:"parent_hash"`
	FeeRecipient  BytesHexStr   `json:"fee_recipient"`
	StateRoot     BytesHexStr   `json:"state_root"`
	ReceiptsRoot  BytesHexStr   `json:"receipts_root"`
	LogsBloom     BytesHexStr   `json:"logs_bloom"`
	PrevRandao    BytesHexStr   `json:"prev_randao"`
	BlockNumber   Uint64Str     `json:"block_number"`
	GasLimit      Uint64Str     `json:"gas_limit"`
	GasUsed       Uint64Str     `json:"gas_used"`
	Timestamp     Uint64Str     `json:"timestamp"`
	ExtraData     BytesHexStr   `json:"extra_data"`
	BaseFeePerGas Uint64Str     `json:"base_fee_per_gas"`
	BlockHash     BytesHexStr   `json:"block_hash"`
	Transactions  []BytesHexStr `json:"transactions"`
	// present only after capella
	Withdrawals []WithdrawalPayload `json:"withdrawals"`
}

type IndexedAttestation

type IndexedAttestation struct {
	AttestingIndices []Uint64Str     `json:"attesting_indices"`
	Signature        BytesHexStr     `json:"signature"`
	Data             AttestationData `json:"data"`
}

type ProposerSlashing

type ProposerSlashing struct {
	SignedHeader1 SignedBeaconBlockHeader `json:"signed_header_1"`
	SignedHeader2 SignedBeaconBlockHeader `json:"signed_header_2"`
}

type SignedBLSToExecutionChange

type SignedBLSToExecutionChange struct {
	Message   BLSToExecutionChange `json:"message"`
	Signature BytesHexStr          `json:"signature"`
}

type SignedBeaconBlock

type SignedBeaconBlock struct {
	Message   BeaconBlock `json:"message"`
	Signature BytesHexStr `json:"signature"`
}

type SignedBeaconBlockHeader

type SignedBeaconBlockHeader struct {
	Message   BeaconBlockHeader `json:"message"`
	Signature BytesHexStr       `json:"signature"`
}

type SignedVoluntaryExit

type SignedVoluntaryExit struct {
	Message   VoluntaryExit `json:"message"`
	Signature BytesHexStr   `json:"signature"`
}

type StandardV1BeaconHeaderResponse

type StandardV1BeaconHeaderResponse struct {
	Finalized bool `json:"finalized"`
	Data      struct {
		Root      BytesHexStr             `json:"root"`
		Canonical bool                    `json:"canonical"`
		Header    SignedBeaconBlockHeader `json:"header"`
	} `json:"data"`
}

type StandardV1BeaconHeadersResponse

type StandardV1BeaconHeadersResponse struct {
	Finalized bool `json:"finalized"`
	Data      []struct {
		Root      BytesHexStr             `json:"root"`
		Canonical bool                    `json:"canonical"`
		Header    SignedBeaconBlockHeader `json:"header"`
	} `json:"data"`
}

type StandardV1BlobSidecarsResponse

type StandardV1BlobSidecarsResponse struct {
	Data []*BlobSidecar `json:"data"`
}

type StandardV1CommitteesResponse

type StandardV1CommitteesResponse struct {
	Data []struct {
		Index      Uint64Str `json:"index"`
		Slot       Uint64Str `json:"slot"`
		Validators []string  `json:"validators"`
	} `json:"data"`
}

type StandardV1GenesisResponse

type StandardV1GenesisResponse struct {
	Data struct {
		GenesisTime           Uint64Str   `json:"genesis_time"`
		GenesisValidatorsRoot BytesHexStr `json:"genesis_validators_root"`
		GenesisForkVersion    BytesHexStr `json:"genesis_fork_version"`
	} `json:"data"`
}

type StandardV1NodeSyncingResponse added in v1.2.3

type StandardV1NodeSyncingResponse struct {
	Data struct {
		HeadSlot     Uint64Str `json:"head_slot"`
		SyncDistance Uint64Str `json:"sync_distance"`
		IsSyncing    bool      `json:"is_syncing"`
		IsOptimistic bool      `json:"is_optimistic"`
		ElOffline    bool      `json:"el_offline"`
	} `json:"data"`
}

type StandardV1NodeVersionResponse added in v1.3.0

type StandardV1NodeVersionResponse struct {
	Data struct {
		Version string `json:"version"`
	} `json:"data"`
}

type StandardV1ProposerDutiesResponse

type StandardV1ProposerDutiesResponse struct {
	DependentRoot BytesHexStr `json:"dependent_root"`
	Data          []struct {
		Pubkey         BytesHexStr `json:"pubkey"`
		ValidatorIndex Uint64Str   `json:"validator_index"`
		Slot           Uint64Str   `json:"slot"`
	} `json:"data"`
}

type StandardV1StateValidatorsResponse

type StandardV1StateValidatorsResponse struct {
	Data []*ValidatorEntry `json:"data"`
}

type StandardV1StreamedBlockEvent

type StandardV1StreamedBlockEvent struct {
	Slot                Uint64Str   `json:"slot"`
	Block               BytesHexStr `json:"block"`
	ExecutionOptimistic bool        `json:"execution_optimistic"`
}

type StandardV1StreamedFinalizedCheckpointEvent added in v1.3.0

type StandardV1StreamedFinalizedCheckpointEvent struct {
	Epoch               Uint64Str   `json:"epoch"`
	Block               BytesHexStr `json:"block"`
	State               BytesHexStr `json:"state"`
	ExecutionOptimistic bool        `json:"execution_optimistic"`
}

type StandardV1StreamedHeadEvent

type StandardV1StreamedHeadEvent struct {
	Slot                      Uint64Str   `json:"slot"`
	Block                     BytesHexStr `json:"block"`
	State                     BytesHexStr `json:"state"`
	EpochTransition           bool        `json:"epoch_transition"`
	PreviousDutyDependentRoot BytesHexStr `json:"previous_duty_dependent_root"`
	CurrentDutyDependentRoot  BytesHexStr `json:"current_duty_dependent_root"`
	ExecutionOptimistic       bool        `json:"execution_optimistic"`
}

type StandardV1SyncCommitteesResponse

type StandardV1SyncCommitteesResponse struct {
	Data struct {
		Validators          []string   `json:"validators"`
		ValidatorAggregates [][]string `json:"validator_aggregates"`
	} `json:"data"`
}

type StandardV2BeaconBlockResponse

type StandardV2BeaconBlockResponse struct {
	Finalized bool              `json:"finalized"`
	Data      SignedBeaconBlock `json:"data"`
}

type SyncAggregate

type SyncAggregate struct {
	SyncCommitteeBits      BytesHexStr `json:"sync_committee_bits"`
	SyncCommitteeSignature BytesHexStr `json:"sync_committee_signature"`
}

type Uint64Str

type Uint64Str uint64

func (*Uint64Str) UnmarshalJSON

func (s *Uint64Str) UnmarshalJSON(b []byte) error

type Validator

type Validator struct {
	PubKey                     BytesHexStr `json:"pubkey"`
	WithdrawalCredentials      BytesHexStr `json:"withdrawal_credentials"`
	EffectiveBalance           Uint64Str   `json:"effective_balance"`
	Slashed                    bool        `json:"slashed"`
	ActivationEligibilityEpoch Uint64Str   `json:"activation_eligibility_epoch"`
	ActivationEpoch            Uint64Str   `json:"activation_epoch"`
	ExitEpoch                  Uint64Str   `json:"exit_epoch"`
	WithdrawableEpoch          Uint64Str   `json:"withdrawable_epoch"`
}

type ValidatorEntry added in v1.1.0

type ValidatorEntry struct {
	Index     Uint64Str `json:"index"`
	Balance   Uint64Str `json:"balance"`
	Status    string    `json:"status"`
	Validator Validator `json:"validator"`
}

type VoluntaryExit

type VoluntaryExit struct {
	Epoch          Uint64Str `json:"epoch"`
	ValidatorIndex Uint64Str `json:"validator_index"`
}

type WithdrawalPayload

type WithdrawalPayload struct {
	Index          Uint64Str   `json:"index"`
	ValidatorIndex Uint64Str   `json:"validator_index"`
	Address        BytesHexStr `json:"address"`
	Amount         Uint64Str   `json:"amount"`
}

Jump to

Keyboard shortcuts

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