Documentation ¶
Index ¶
- Constants
- Variables
- type Attestation
- type AttestationsResponse
- type BeaconBlockResponse
- type Committee
- type CommitteesResponse
- type Eth2ConfigResponse
- type Eth2DepositContractResponse
- type FinalityCheckpointsResponse
- type ForkResponse
- type GenesisResponse
- type ProposerDutiesResponse
- type ProposerDuty
- type StandardHttpClient
- func (c *StandardHttpClient) Close() error
- func (c *StandardHttpClient) ExitValidator(validatorIndex, epoch uint64, signature types.ValidatorSignature) error
- func (c *StandardHttpClient) GetBeaconBlock(blockId uint64) (beacon.BeaconBlock, bool, error)
- func (c *StandardHttpClient) GetBeaconHead() (beacon.BeaconHead, error)
- func (c *StandardHttpClient) GetClientType() (beacon.BeaconClientType, error)
- func (c *StandardHttpClient) GetEth1DataForEth2Block(blockId uint64) (beacon.Eth1Data, bool, error)
- func (c *StandardHttpClient) GetEth2Config() (beacon.Eth2Config, error)
- func (c *StandardHttpClient) GetEth2DepositContract() (beacon.Eth2DepositContract, error)
- func (c *StandardHttpClient) GetSyncStatus() (beacon.SyncStatus, error)
- func (c *StandardHttpClient) GetValidatorStatus(ctx context.Context, pubkey types.ValidatorPubkey, ...) (beacon.ValidatorStatus, error)
- func (c *StandardHttpClient) GetValidatorStatuses(ctx context.Context, pubkeys []types.ValidatorPubkey, ...) (map[types.ValidatorPubkey]beacon.ValidatorStatus, error)
- type SyncCommittee
- type SyncCommitteesResponse
- type SyncDutiesResponse
- type SyncDuty
- type SyncStatusResponse
- type Validator
- type ValidatorEpochIncome
- func (*ValidatorEpochIncome) Descriptor() ([]byte, []int)deprecated
- func (x *ValidatorEpochIncome) GetAttestationHeadReward() uint64
- func (x *ValidatorEpochIncome) GetAttestationSourcePenalty() uint64
- func (x *ValidatorEpochIncome) GetAttestationSourceReward() uint64
- func (x *ValidatorEpochIncome) GetAttestationTargetPenalty() uint64
- func (x *ValidatorEpochIncome) GetAttestationTargetReward() uint64
- func (x *ValidatorEpochIncome) GetFinalityDelayPenalty() uint64
- func (x *ValidatorEpochIncome) GetProposalsMissed() uint64
- func (x *ValidatorEpochIncome) GetProposerAttestationInclusionReward() uint64
- func (x *ValidatorEpochIncome) GetProposerSlashingInclusionReward() uint64
- func (x *ValidatorEpochIncome) GetProposerSyncInclusionReward() uint64
- func (x *ValidatorEpochIncome) GetSlashingPenalty() uint64
- func (x *ValidatorEpochIncome) GetSlashingReward() uint64
- func (x *ValidatorEpochIncome) GetSyncCommitteePenalty() uint64
- func (x *ValidatorEpochIncome) GetSyncCommitteeReward() uint64
- func (x *ValidatorEpochIncome) GetTxFeeRewardWei() []byte
- func (*ValidatorEpochIncome) ProtoMessage()
- func (x *ValidatorEpochIncome) ProtoReflect() protoreflect.Message
- func (x *ValidatorEpochIncome) Reset()
- func (x *ValidatorEpochIncome) String() string
- type ValidatorsResponse
- type VoluntaryExitMessage
- type VoluntaryExitRequest
- type WithdrawalPayload
Constants ¶
View Source
const ( RequestUrlFormat = "%s%s" RequestContentType = "application/json" RequestSyncStatusPath = "/eth/v1/node/syncing" RequestEth2ConfigPath = "/eth/v1/config/spec" RequestEth2DepositContractMethod = "/eth/v1/config/deposit_contract" RequestGenesisPath = "/eth/v1/beacon/genesis" RequestFinalityCheckpointsPath = "/eth/v1/beacon/states/%s/finality_checkpoints" RequestValidatorsPath = "/eth/v1/beacon/states/%s/validators" RequestVoluntaryExitPath = "/eth/v1/beacon/pool/voluntary_exits" RequestBeaconBlockPath = "/eth/v2/beacon/blocks/%d" MaxRequestValidatorsCount = 50 )
Config
Variables ¶
View Source
var File_types_types_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type Attestation ¶
type Attestation struct { AggregationBits string `json:"aggregation_bits"` Data struct { Slot uinteger `json:"slot"` Index uinteger `json:"index"` } `json:"data"` }
type AttestationsResponse ¶
type AttestationsResponse struct {
Data []Attestation `json:"data"`
}
type BeaconBlockResponse ¶
type BeaconBlockResponse struct { Version string `json:"version"` ExecutionOptimistic bool `json:"execution_optimistic"` Data struct { Message struct { Slot uinteger `json:"slot"` ProposerIndex uinteger `json:"proposer_index"` ParentRoot string `json:"parent_root"` StateRoot string `json:"state_root"` Body struct { RandaoReveal string `json:"randao_reveal"` Eth1Data struct { DepositRoot string `json:"deposit_root"` DepositCount uinteger `json:"deposit_count"` BlockHash string `json:"block_hash"` } `json:"eth1_data"` Graffiti string `json:"graffiti"` ProposerSlashings []struct { SignedHeader1 struct { Message struct { Slot uinteger `json:"slot"` ProposerIndex uinteger `json:"proposer_index"` ParentRoot string `json:"parent_root"` StateRoot string `json:"state_root"` BodyRoot string `json:"body_root"` } `json:"message"` Signature string `json:"signature"` } `json:"signed_header_1"` SignedHeader2 struct { Message struct { Slot uinteger `json:"slot"` ProposerIndex uinteger `json:"proposer_index"` ParentRoot string `json:"parent_root"` StateRoot string `json:"state_root"` BodyRoot string `json:"body_root"` } `json:"message"` Signature string `json:"signature"` } `json:"signed_header_2"` } `json:"proposer_slashings"` AttesterSlashings []struct { Attestation1 struct { AttestingIndices []uinteger `json:"attesting_indices"` Signature string `json:"signature"` Data struct { Slot uinteger `json:"slot"` Index uinteger `json:"index"` BeaconBlockRoot string `json:"beacon_block_root"` Source struct { Epoch uinteger `json:"epoch"` Root string `json:"root"` } `json:"source"` Target struct { Epoch uinteger `json:"epoch"` Root string `json:"root"` } `json:"target"` } `json:"data"` } `json:"attestation_1"` Attestation2 struct { AttestingIndices []uinteger `json:"attesting_indices"` Signature string `json:"signature"` Data struct { Slot uinteger `json:"slot"` Index uinteger `json:"index"` BeaconBlockRoot string `json:"beacon_block_root"` Source struct { Epoch uinteger `json:"epoch"` Root string `json:"root"` } `json:"source"` Target struct { Epoch uinteger `json:"epoch"` Root string `json:"root"` } `json:"target"` } `json:"data"` } `json:"attestation_2"` } `json:"attester_slashings"` Attestations []struct { AggregationBits string `json:"aggregation_bits"` Signature string `json:"signature"` Data struct { Slot uinteger `json:"slot"` Index uinteger `json:"index"` BeaconBlockRoot string `json:"beacon_block_root"` Source struct { Epoch uinteger `json:"epoch"` Root string `json:"root"` } `json:"source"` Target struct { Epoch uinteger `json:"epoch"` Root string `json:"root"` } `json:"target"` } `json:"data"` } `json:"attestations"` Deposits []struct { Proof []string `json:"proof"` Data struct { Pubkey string `json:"pubkey"` WithdrawalCredentials string `json:"withdrawal_credentials"` Amount uinteger `json:"amount"` Signature string `json:"signature"` } `json:"data"` } `json:"deposits"` VoluntaryExits []struct { Message struct { Epoch uinteger `json:"epoch"` ValidatorIndex uinteger `json:"validator_index"` } `json:"message"` Signature string `json:"signature"` } `json:"voluntary_exits"` SyncAggregate struct { SyncCommitteeBits string `json:"sync_committee_bits"` SyncCommitteeSignature string `json:"sync_committee_signature"` } `json:"sync_aggregate"` ExecutionPayload *struct { ParentHash string `json:"parent_hash"` FeeRecipient string `json:"fee_recipient"` StateRoot string `json:"state_root"` ReceiptsRoot string `json:"receipts_root"` LogsBloom string `json:"logs_bloom"` PrevRandao string `json:"prev_randao"` BlockNumber uinteger `json:"block_number"` GasLimit uinteger `json:"gas_limit"` GasUsed uinteger `json:"gas_used"` Timestamp uinteger `json:"timestamp"` ExtraData string `json:"extra_data"` BaseFeePerGas uinteger `json:"base_fee_per_gas"` BlockHash string `json:"block_hash"` Transactions []string `json:"transactions"` // present only after capella Withdrawals []WithdrawalPayload `json:"withdrawals"` } `json:"execution_payload"` } `json:"body"` } `json:"message"` Signature string `json:"signature"` } `json:"data"` }
type Committee ¶
type Committee struct { Index uinteger `json:"index"` Slot uinteger `json:"slot"` Validators []uinteger `json:"validators"` }
type CommitteesResponse ¶
type CommitteesResponse struct {
Data []Committee `json:"data"`
}
type Eth2ConfigResponse ¶
type Eth2ConfigResponse struct {
Data struct {
SecondsPerSlot uinteger `json:"SECONDS_PER_SLOT"`
SlotsPerEpoch uinteger `json:"SLOTS_PER_EPOCH"`
EpochsPerSyncCommitteePeriod uinteger `json:"EPOCHS_PER_SYNC_COMMITTEE_PERIOD"`
} `json:"data"`
}
type FinalityCheckpointsResponse ¶
type FinalityCheckpointsResponse struct {
Data struct {
PreviousJustified struct {
Epoch uinteger `json:"epoch"`
} `json:"previous_justified"`
CurrentJustified struct {
Epoch uinteger `json:"epoch"`
} `json:"current_justified"`
Finalized struct {
Epoch uinteger `json:"epoch"`
} `json:"finalized"`
} `json:"data"`
}
type ForkResponse ¶
type ForkResponse struct {
Data struct {
PreviousVersion byteArray `json:"previous_version"`
CurrentVersion byteArray `json:"current_version"`
Epoch uinteger `json:"epoch"`
} `json:"data"`
}
type GenesisResponse ¶
type GenesisResponse struct {
Data struct {
GenesisTime uinteger `json:"genesis_time"`
GenesisForkVersion byteArray `json:"genesis_fork_version"`
GenesisValidatorsRoot byteArray `json:"genesis_validators_root"`
} `json:"data"`
}
type ProposerDutiesResponse ¶
type ProposerDutiesResponse struct {
Data []ProposerDuty `json:"data"`
}
type ProposerDuty ¶
type ProposerDuty struct { ValidatorIndex uinteger `json:"validator_index"` Pubkey string `json:"pubkey"` Slot uinteger `json:"slot"` }
type StandardHttpClient ¶
type StandardHttpClient struct {
// contains filtered or unexported fields
}
Beacon client using the standard Beacon HTTP REST API (https://ethereum.github.io/beacon-APIs/)
func NewStandardHttpClient ¶
func NewStandardHttpClient(providerAddress string, chainID *big.Int) (*StandardHttpClient, error)
Create a new client instance
func (*StandardHttpClient) Close ¶
func (c *StandardHttpClient) Close() error
Close the client connection
func (*StandardHttpClient) ExitValidator ¶
func (c *StandardHttpClient) ExitValidator(validatorIndex, epoch uint64, signature types.ValidatorSignature) error
Perform a voluntary exit on a validator
func (*StandardHttpClient) GetBeaconBlock ¶
func (c *StandardHttpClient) GetBeaconBlock(blockId uint64) (beacon.BeaconBlock, bool, error)
func (*StandardHttpClient) GetBeaconHead ¶
func (c *StandardHttpClient) GetBeaconHead() (beacon.BeaconHead, error)
Get the beacon head
func (*StandardHttpClient) GetClientType ¶
func (c *StandardHttpClient) GetClientType() (beacon.BeaconClientType, error)
Get the client's process configuration type
func (*StandardHttpClient) GetEth1DataForEth2Block ¶
Get the ETH1 data for the target beacon block
func (*StandardHttpClient) GetEth2Config ¶
func (c *StandardHttpClient) GetEth2Config() (beacon.Eth2Config, error)
Get the eth2 config
func (*StandardHttpClient) GetEth2DepositContract ¶
func (c *StandardHttpClient) GetEth2DepositContract() (beacon.Eth2DepositContract, error)
Get the eth2 deposit contract info
func (*StandardHttpClient) GetSyncStatus ¶
func (c *StandardHttpClient) GetSyncStatus() (beacon.SyncStatus, error)
Get the node's sync status
func (*StandardHttpClient) GetValidatorStatus ¶
func (c *StandardHttpClient) GetValidatorStatus(ctx context.Context, pubkey types.ValidatorPubkey, opts *beacon.ValidatorStatusOptions) (beacon.ValidatorStatus, error)
Get a validator's status
func (*StandardHttpClient) GetValidatorStatuses ¶
func (c *StandardHttpClient) GetValidatorStatuses(ctx context.Context, pubkeys []types.ValidatorPubkey, opts *beacon.ValidatorStatusOptions) (map[types.ValidatorPubkey]beacon.ValidatorStatus, error)
Get multiple validators' statuses epoch in opts == the first slot of epoch
type SyncCommittee ¶
type SyncCommitteesResponse ¶
type SyncCommitteesResponse struct {
Data SyncCommittee `json:"data"`
}
type SyncDutiesResponse ¶
type SyncDutiesResponse struct {
Data []SyncDuty `json:"data"`
}
type SyncDuty ¶
type SyncDuty struct { Pubkey byteArray `json:"pubkey"` ValidatorIndex uinteger `json:"validator_index"` SyncCommitteeIndices []uinteger `json:"validator_sync_committee_indices"` }
type SyncStatusResponse ¶
type SyncStatusResponse struct { Data struct { IsSyncing bool `json:"is_syncing"` HeadSlot uinteger `json:"head_slot"` SyncDistance uinteger `json:"sync_distance"` } `json:"data"` }
Response types
type Validator ¶
type Validator struct { Index uinteger `json:"index"` Balance uinteger `json:"balance"` Status string `json:"status"` Validator struct { Pubkey byteArray `json:"pubkey"` WithdrawalCredentials byteArray `json:"withdrawal_credentials"` EffectiveBalance uinteger `json:"effective_balance"` Slashed bool `json:"slashed"` ActivationEligibilityEpoch uinteger `json:"activation_eligibility_epoch"` ActivationEpoch uinteger `json:"activation_epoch"` ExitEpoch uinteger `json:"exit_epoch"` WithdrawableEpoch uinteger `json:"withdrawable_epoch"` } `json:"validator"` }
type ValidatorEpochIncome ¶
type ValidatorEpochIncome struct { AttestationSourceReward uint64 `` /* 133-byte string literal not displayed */ AttestationSourcePenalty uint64 `` /* 136-byte string literal not displayed */ AttestationTargetReward uint64 `` /* 133-byte string literal not displayed */ AttestationTargetPenalty uint64 `` /* 136-byte string literal not displayed */ AttestationHeadReward uint64 `` /* 127-byte string literal not displayed */ FinalityDelayPenalty uint64 `protobuf:"varint,7,opt,name=finality_delay_penalty,json=finalityDelayPenalty,proto3" json:"finality_delay_penalty,omitempty"` ProposerSlashingInclusionReward uint64 `` /* 159-byte string literal not displayed */ ProposerAttestationInclusionReward uint64 `` /* 168-byte string literal not displayed */ ProposerSyncInclusionReward uint64 `` /* 148-byte string literal not displayed */ SyncCommitteeReward uint64 `protobuf:"varint,11,opt,name=sync_committee_reward,json=syncCommitteeReward,proto3" json:"sync_committee_reward,omitempty"` SyncCommitteePenalty uint64 `protobuf:"varint,12,opt,name=sync_committee_penalty,json=syncCommitteePenalty,proto3" json:"sync_committee_penalty,omitempty"` SlashingReward uint64 `protobuf:"varint,13,opt,name=slashing_reward,json=slashingReward,proto3" json:"slashing_reward,omitempty"` SlashingPenalty uint64 `protobuf:"varint,14,opt,name=slashing_penalty,json=slashingPenalty,proto3" json:"slashing_penalty,omitempty"` TxFeeRewardWei []byte `protobuf:"bytes,15,opt,name=tx_fee_reward_wei,json=txFeeRewardWei,proto3" json:"tx_fee_reward_wei,omitempty"` ProposalsMissed uint64 `protobuf:"varint,16,opt,name=proposals_missed,json=proposalsMissed,proto3" json:"proposals_missed,omitempty"` // contains filtered or unexported fields }
func (*ValidatorEpochIncome) Descriptor
deprecated
func (*ValidatorEpochIncome) Descriptor() ([]byte, []int)
Deprecated: Use ValidatorEpochIncome.ProtoReflect.Descriptor instead.
func (*ValidatorEpochIncome) GetAttestationHeadReward ¶
func (x *ValidatorEpochIncome) GetAttestationHeadReward() uint64
func (*ValidatorEpochIncome) GetAttestationSourcePenalty ¶
func (x *ValidatorEpochIncome) GetAttestationSourcePenalty() uint64
func (*ValidatorEpochIncome) GetAttestationSourceReward ¶
func (x *ValidatorEpochIncome) GetAttestationSourceReward() uint64
func (*ValidatorEpochIncome) GetAttestationTargetPenalty ¶
func (x *ValidatorEpochIncome) GetAttestationTargetPenalty() uint64
func (*ValidatorEpochIncome) GetAttestationTargetReward ¶
func (x *ValidatorEpochIncome) GetAttestationTargetReward() uint64
func (*ValidatorEpochIncome) GetFinalityDelayPenalty ¶
func (x *ValidatorEpochIncome) GetFinalityDelayPenalty() uint64
func (*ValidatorEpochIncome) GetProposalsMissed ¶
func (x *ValidatorEpochIncome) GetProposalsMissed() uint64
func (*ValidatorEpochIncome) GetProposerAttestationInclusionReward ¶
func (x *ValidatorEpochIncome) GetProposerAttestationInclusionReward() uint64
func (*ValidatorEpochIncome) GetProposerSlashingInclusionReward ¶
func (x *ValidatorEpochIncome) GetProposerSlashingInclusionReward() uint64
func (*ValidatorEpochIncome) GetProposerSyncInclusionReward ¶
func (x *ValidatorEpochIncome) GetProposerSyncInclusionReward() uint64
func (*ValidatorEpochIncome) GetSlashingPenalty ¶
func (x *ValidatorEpochIncome) GetSlashingPenalty() uint64
func (*ValidatorEpochIncome) GetSlashingReward ¶
func (x *ValidatorEpochIncome) GetSlashingReward() uint64
func (*ValidatorEpochIncome) GetSyncCommitteePenalty ¶
func (x *ValidatorEpochIncome) GetSyncCommitteePenalty() uint64
func (*ValidatorEpochIncome) GetSyncCommitteeReward ¶
func (x *ValidatorEpochIncome) GetSyncCommitteeReward() uint64
func (*ValidatorEpochIncome) GetTxFeeRewardWei ¶
func (x *ValidatorEpochIncome) GetTxFeeRewardWei() []byte
func (*ValidatorEpochIncome) ProtoMessage ¶
func (*ValidatorEpochIncome) ProtoMessage()
func (*ValidatorEpochIncome) ProtoReflect ¶
func (x *ValidatorEpochIncome) ProtoReflect() protoreflect.Message
func (*ValidatorEpochIncome) Reset ¶
func (x *ValidatorEpochIncome) Reset()
func (*ValidatorEpochIncome) String ¶
func (x *ValidatorEpochIncome) String() string
type ValidatorsResponse ¶
type ValidatorsResponse struct {
Data []Validator `json:"data"`
}
type VoluntaryExitMessage ¶
type VoluntaryExitMessage struct { Epoch uinteger `json:"epoch"` ValidatorIndex uinteger `json:"validator_index"` }
type VoluntaryExitRequest ¶
type VoluntaryExitRequest struct { Message VoluntaryExitMessage `json:"message"` Signature byteArray `json:"signature"` }
Request types
type WithdrawalPayload ¶
type WithdrawalPayload struct { Index uinteger `json:"index"` ValidatorIndex uinteger `json:"validator_index"` Address string `json:"address"` Amount uinteger `json:"amount"` }
Click to show internal directories.
Click to hide internal directories.