http

package
v0.18.2 Latest Latest
Warning

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

Go to latest
Published: Aug 22, 2023 License: Apache-2.0 Imports: 33 Imported by: 52

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(ctx context.Context, params ...Parameter) (eth2client.Service, error)

New creates a new Ethereum 2 client service, connecting with a standard HTTP.

Types

type ContentType added in v0.18.0

type ContentType int

ContentType defines the builder spec version.

const (
	// ContentTypeUnknown implies an unknown content type.
	ContentTypeUnknown ContentType = iota
	// ContentTypeSSZ implies an SSZ content type.
	ContentTypeSSZ
	// ContentTypeJSON implies a JSON content type.
	ContentTypeJSON
)

func ParseFromMediaType added in v0.18.0

func ParseFromMediaType(input string) (ContentType, error)

ParseFromMediaType parses a content type string as per http://www.iana.org/assignments/media-types/media-types.xhtml

func (*ContentType) MarshalJSON added in v0.18.0

func (c *ContentType) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (ContentType) MediaType added in v0.18.0

func (c ContentType) MediaType() string

MediaType returns the IANA name of the media type.

func (ContentType) String added in v0.18.0

func (c ContentType) String() string

String returns a string representation of the struct.

func (*ContentType) UnmarshalJSON added in v0.18.0

func (c *ContentType) UnmarshalJSON(input []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Error added in v0.14.1

type Error struct {
	Method     string
	Endpoint   string
	StatusCode int
	Data       []byte
}

Error represents an http error.

func (Error) Error added in v0.14.1

func (e Error) Error() string

type Parameter

type Parameter interface {
	// contains filtered or unexported methods
}

Parameter is the interface for service parameters.

func WithAddress

func WithAddress(address string) Parameter

WithAddress provides the address for the endpoint.

func WithExtraHeaders added in v0.15.4

func WithExtraHeaders(headers map[string]string) Parameter

WithExtraHeaders sets additional headers to be sent with each HTTP request.

func WithIndexChunkSize added in v0.8.1

func WithIndexChunkSize(indexChunkSize int) Parameter

WithIndexChunkSize sets the maximum number of indices to send for individual validator requests.

func WithLogLevel

func WithLogLevel(logLevel zerolog.Level) Parameter

WithLogLevel sets the log level for the module.

func WithPubKeyChunkSize added in v0.8.1

func WithPubKeyChunkSize(pubKeyChunkSize int) Parameter

WithPubKeyChunkSize sets the maximum number of public kyes to send for individual validator requests.

func WithTimeout

func WithTimeout(timeout time.Duration) Parameter

WithTimeout sets the maximum duration for all requests to the endpoint.

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service is an Ethereum 2 client service.

func (*Service) Address

func (s *Service) Address() string

Address provides the address for the connection.

func (*Service) AggregateAttestation

func (s *Service) AggregateAttestation(ctx context.Context, slot phase0.Slot, attestationDataRoot phase0.Root) (*phase0.Attestation, error)

AggregateAttestation fetches the aggregate attestation given an attestation. N.B if an aggregate attestation for the attestation is not available this will return nil without an error.

func (*Service) AttestationData

func (s *Service) AttestationData(ctx context.Context, slot phase0.Slot, committeeIndex phase0.CommitteeIndex) (*phase0.AttestationData, error)

AttestationData obtains attestation data for a slot.

func (*Service) AttestationPool

func (s *Service) AttestationPool(ctx context.Context, slot phase0.Slot) ([]*phase0.Attestation, error)

AttestationPool obtains the attestation pool for a given slot.

func (*Service) AttesterDuties

func (s *Service) AttesterDuties(ctx context.Context, epoch phase0.Epoch, validatorIndices []phase0.ValidatorIndex) ([]*api.AttesterDuty, error)

AttesterDuties obtains attester duties.

func (*Service) BeaconBlockBlobs added in v0.17.0

func (s *Service) BeaconBlockBlobs(ctx context.Context, blockID string) ([]*deneb.BlobSidecar, error)

BeaconBlockBlobs fetches the blobs given a block ID.

func (*Service) BeaconBlockHeader

func (s *Service) BeaconBlockHeader(ctx context.Context, blockID string) (*api.BeaconBlockHeader, error)

BeaconBlockHeader provides the block header of a given block ID.

func (*Service) BeaconBlockProposal

func (s *Service) BeaconBlockProposal(ctx context.Context, slot phase0.Slot, randaoReveal phase0.BLSSignature, graffiti []byte) (*spec.VersionedBeaconBlock, error)

BeaconBlockProposal fetches a proposed beacon block for signing.

func (*Service) BeaconBlockRoot

func (s *Service) BeaconBlockRoot(ctx context.Context, blockID string) (*phase0.Root, error)

BeaconBlockRoot fetches a block's root given a block ID. N.B if a signed beacon block for the block ID is not available this will return nil without an error.

func (*Service) BeaconCommittees

func (s *Service) BeaconCommittees(ctx context.Context, stateID string) ([]*api.BeaconCommittee, error)

BeaconCommittees fetches all beacon committees for the epoch at the given state.

func (*Service) BeaconCommitteesAtEpoch added in v0.8.1

func (s *Service) BeaconCommitteesAtEpoch(ctx context.Context, stateID string, epoch phase0.Epoch) ([]*api.BeaconCommittee, error)

BeaconCommitteesAtEpoch fetches all beacon committees for the given epoch at the given state.

func (*Service) BeaconState

func (s *Service) BeaconState(ctx context.Context, stateID string) (*spec.VersionedBeaconState, error)

BeaconState fetches a beacon state. N.B if the requested beacon state is not available this will return nil without an error.

func (*Service) BeaconStateRandao added in v0.14.1

func (s *Service) BeaconStateRandao(ctx context.Context, stateID string) (*phase0.Root, error)

BeaconStateRandao fetches a beacon state RANDAO given a state ID.

func (*Service) BeaconStateRoot added in v0.9.0

func (s *Service) BeaconStateRoot(ctx context.Context, stateID string) (*spec.Root, error)

BeaconStateRoot fetches a beacon state root given a state ID.

func (*Service) BlindedBeaconBlockProposal added in v0.11.0

func (s *Service) BlindedBeaconBlockProposal(ctx context.Context, slot phase0.Slot, randaoReveal phase0.BLSSignature, graffiti []byte) (*api.VersionedBlindedBeaconBlock, error)

BlindedBeaconBlockProposal fetches a proposed beacon block for signing.

func (*Service) DepositContract

func (s *Service) DepositContract(ctx context.Context) (*api.DepositContract, error)

DepositContract provides details of the Ethereum 1 deposit contract for the chain.

func (*Service) Domain

func (s *Service) Domain(ctx context.Context, domainType phase0.DomainType, epoch phase0.Epoch) (phase0.Domain, error)

Domain provides a domain for a given domain type at a given epoch.

func (*Service) EpochFromStateID

func (s *Service) EpochFromStateID(ctx context.Context, stateID string) (phase0.Epoch, error)

EpochFromStateID parses the state ID and returns the relevant epoch.

func (*Service) Events

func (s *Service) Events(ctx context.Context, topics []string, handler client.EventHandlerFunc) error

Events feeds requested events with the given topics to the supplied handler.

func (*Service) FarFutureEpoch

func (s *Service) FarFutureEpoch(_ context.Context) (phase0.Epoch, error)

FarFutureEpoch provides the values for FAR_FUTURE_EOPCH of the chain.

func (*Service) Finality

func (s *Service) Finality(ctx context.Context, stateID string) (*api.Finality, error)

Finality provides the finality given a state ID.

func (*Service) Fork

func (s *Service) Fork(ctx context.Context, stateID string) (*phase0.Fork, error)

Fork fetches fork information for the given state.

func (*Service) ForkChoice added in v0.18.1

func (s *Service) ForkChoice(ctx context.Context) (*api.ForkChoice, error)

ForkChoice fetches all current fork choice context.

func (*Service) ForkSchedule

func (s *Service) ForkSchedule(ctx context.Context) ([]*phase0.Fork, error)

ForkSchedule provides details of past and future changes in the chain's fork version.

func (*Service) Genesis

func (s *Service) Genesis(ctx context.Context) (*api.Genesis, error)

Genesis provides the genesis information of the chain.

func (*Service) GenesisDomain added in v0.15.5

func (s *Service) GenesisDomain(ctx context.Context, domainType phase0.DomainType) (phase0.Domain, error)

GenesisDomain returns the domain for the given domain type at genesis. N.B. this is not always the same as the the domain at epoch 0. It is possible for a chain's fork schedule to have multiple forks at genesis. In this situation, GenesisDomain() will return the first, and Domain() will return the last.

func (*Service) GenesisTime

func (s *Service) GenesisTime(ctx context.Context) (time.Time, error)

GenesisTime provides the genesis time of the chain.

func (*Service) Name

func (s *Service) Name() string

Name provides the name of the service.

func (*Service) NodeClient added in v0.11.7

func (s *Service) NodeClient(ctx context.Context) (string, error)

NodeClient provides the client for the node.

func (*Service) NodeSyncing

func (s *Service) NodeSyncing(ctx context.Context) (*api.SyncState, error)

NodeSyncing provides the syncing information for the node.

func (*Service) NodeVersion

func (s *Service) NodeVersion(ctx context.Context) (string, error)

NodeVersion provides the version information of the node.

func (*Service) ProposerDuties

func (s *Service) ProposerDuties(ctx context.Context, epoch phase0.Epoch, validatorIndices []phase0.ValidatorIndex) ([]*api.ProposerDuty, error)

ProposerDuties obtains proposer duties for the given epoch. If validators is empty all duties are returned, otherwise only matching duties are returned.

func (*Service) SignedBeaconBlock

func (s *Service) SignedBeaconBlock(ctx context.Context, blockID string) (*spec.VersionedSignedBeaconBlock, error)

SignedBeaconBlock fetches a signed beacon block given a block ID. N.B if a signed beacon block for the block ID is not available this will return nil without an error.

func (*Service) SlotDuration

func (s *Service) SlotDuration(ctx context.Context) (time.Duration, error)

SlotDuration provides the duration of a slot for the chain.

func (*Service) SlotFromStateID

func (s *Service) SlotFromStateID(_ context.Context, stateID string) (phase0.Slot, error)

SlotFromStateID parses the state ID and returns the relevant slot.

func (*Service) SlotsPerEpoch

func (s *Service) SlotsPerEpoch(ctx context.Context) (uint64, error)

SlotsPerEpoch provides the number of slots per epoch for the chain.

func (*Service) Spec

func (s *Service) Spec(ctx context.Context) (map[string]interface{}, error)

Spec provides the spec information of the chain.

func (*Service) SubmitAggregateAttestations

func (s *Service) SubmitAggregateAttestations(ctx context.Context, aggregateAndProofs []*phase0.SignedAggregateAndProof) error

SubmitAggregateAttestations submits aggregate attestations.

func (*Service) SubmitAttestations

func (s *Service) SubmitAttestations(ctx context.Context, attestations []*phase0.Attestation) error

SubmitAttestations submits attestations.

func (*Service) SubmitBLSToExecutionChanges added in v0.15.0

func (s *Service) SubmitBLSToExecutionChanges(ctx context.Context, blsToExecutionChanges []*capella.SignedBLSToExecutionChange) error

SubmitBLSToExecutionChanges submits BLS to execution address change operations.

func (*Service) SubmitBeaconBlock

func (s *Service) SubmitBeaconBlock(ctx context.Context, block *spec.VersionedSignedBeaconBlock) error

SubmitBeaconBlock submits a beacon block.

func (*Service) SubmitBeaconCommitteeSubscriptions

func (s *Service) SubmitBeaconCommitteeSubscriptions(ctx context.Context, subscriptions []*api.BeaconCommitteeSubscription) error

SubmitBeaconCommitteeSubscriptions subscribes to beacon committees.

func (*Service) SubmitBlindedBeaconBlock added in v0.11.0

func (s *Service) SubmitBlindedBeaconBlock(ctx context.Context, block *api.VersionedSignedBlindedBeaconBlock) error

SubmitBlindedBeaconBlock submits a blinded beacon block.

func (*Service) SubmitProposalPreparations added in v0.11.0

func (s *Service) SubmitProposalPreparations(ctx context.Context, preparations []*apiv1.ProposalPreparation) error

SubmitProposalPreparations provides the beacon node with information required if a proposal for the given validators shows up in the next epoch.

func (*Service) SubmitSyncCommitteeContributions

func (s *Service) SubmitSyncCommitteeContributions(ctx context.Context, contributionAndProofs []*altair.SignedContributionAndProof) error

SubmitSyncCommitteeContributions submits sync committee contributions.

func (*Service) SubmitSyncCommitteeMessages

func (s *Service) SubmitSyncCommitteeMessages(ctx context.Context, messages []*altair.SyncCommitteeMessage) error

SubmitSyncCommitteeMessages submits sync committee messages.

func (*Service) SubmitSyncCommitteeSubscriptions

func (s *Service) SubmitSyncCommitteeSubscriptions(ctx context.Context, subscriptions []*api.SyncCommitteeSubscription) error

SubmitSyncCommitteeSubscriptions subscribes to sync committees.

func (*Service) SubmitValidatorRegistrations added in v0.12.0

func (s *Service) SubmitValidatorRegistrations(ctx context.Context, registrations []*api.VersionedSignedValidatorRegistration) error

SubmitValidatorRegistrations submits a validator registration.

func (*Service) SubmitVoluntaryExit

func (s *Service) SubmitVoluntaryExit(ctx context.Context, voluntaryExit *phase0.SignedVoluntaryExit) error

SubmitVoluntaryExit submits a voluntary exit.

func (*Service) SyncCommittee

func (s *Service) SyncCommittee(ctx context.Context, stateID string) (*api.SyncCommittee, error)

SyncCommittee fetches the sync committee for epoch at the given state.

func (*Service) SyncCommitteeAtEpoch added in v0.8.1

func (s *Service) SyncCommitteeAtEpoch(ctx context.Context, stateID string, epoch phase0.Epoch) (*api.SyncCommittee, error)

SyncCommitteeAtEpoch fetches the sync committee for the given epoch at the given state.

func (*Service) SyncCommitteeContribution

func (s *Service) SyncCommitteeContribution(ctx context.Context,
	slot phase0.Slot,
	subcommitteeIndex uint64,
	beaconBlockRoot phase0.Root,
) (
	*altair.SyncCommitteeContribution,
	error,
)

SyncCommitteeContribution provides a sync committee contribution.

func (*Service) SyncCommitteeDuties

func (s *Service) SyncCommitteeDuties(ctx context.Context, epoch phase0.Epoch, validatorIndices []phase0.ValidatorIndex) ([]*api.SyncCommitteeDuty, error)

SyncCommitteeDuties obtains sync committee duties.

func (*Service) TargetAggregatorsPerCommittee

func (s *Service) TargetAggregatorsPerCommittee(ctx context.Context) (uint64, error)

TargetAggregatorsPerCommittee provides the target aggregators per committee of the chain.

func (*Service) ValidatorBalances

func (s *Service) ValidatorBalances(ctx context.Context, stateID string, validatorIndices []phase0.ValidatorIndex) (map[phase0.ValidatorIndex]phase0.Gwei, error)

ValidatorBalances provides the validator balances for a given state. stateID can be a slot number or state root, or one of the special values "genesis", "head", "justified" or "finalized". validatorIndices is a list of validator indices to restrict the returned values. If no validators are supplied no filter will be applied.

func (*Service) Validators

func (s *Service) Validators(ctx context.Context, stateID string, validatorIndices []phase0.ValidatorIndex) (map[phase0.ValidatorIndex]*api.Validator, error)

Validators provides the validators, with their balance and status, for a given state. stateID can be a slot number or state root, or one of the special values "genesis", "head", "justified" or "finalized". validatorIndices is a list of validators to restrict the returned values. If no validators are supplied no filter will be applied.

func (*Service) ValidatorsByPubKey

func (s *Service) ValidatorsByPubKey(ctx context.Context, stateID string, validatorPubKeys []phase0.BLSPubKey) (map[phase0.ValidatorIndex]*api.Validator, error)

ValidatorsByPubKey provides the validators, with their balance and status, for a given state. stateID can be a slot number or state root, or one of the special values "genesis", "head", "justified" or "finalized". validatorPubKeys is a list of validator public keys to restrict the returned values. If no validators public keys are supplied no filter will be applied.

func (*Service) VoluntaryExitPool added in v0.18.2

func (s *Service) VoluntaryExitPool(ctx context.Context) ([]*phase0.SignedVoluntaryExit, error)

VoluntaryExitPool obtains the voluntary exit pool.

Jump to

Keyboard shortcuts

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