Documentation ¶
Index ¶
- type AggregateAndProofDomainProvider
- type AggregateAttestationProvider
- type AggregateAttestationsSubmitter
- type AttestationDataProvider
- type AttestationsSubmitter
- type AttesterDutiesProvider
- type BeaconAttesterDomainProvider
- type BeaconBlockHeadersProvider
- type BeaconBlockProposalProvider
- type BeaconBlockRootProvider
- type BeaconBlockSubmitter
- type BeaconChainHeadUpdatedHandler
- type BeaconChainHeadUpdatedSource
- type BeaconCommitteeSubscriptionsSubmitter
- type BeaconCommitteesProvider
- type BeaconProposerDomainProvider
- type BeaconStateProvider
- type DepositContractProvider
- type DepositDomainProvider
- type DomainProvider
- type EpochFromStateIDProvider
- type EventHandlerFunc
- type EventsProvider
- type FarFutureEpochProvider
- type FinalityProvider
- type ForkProvider
- type ForkScheduleProvider
- type GenesisProvider
- type GenesisTimeProvider
- type GenesisValidatorsRootProvider
- type NodeSyncingProvider
- type NodeVersionProvider
- type ProposerDutiesProvider
- type PrysmAggregateAttestationProvider
- type PrysmAttesterDutiesProvider
- type PrysmProposerDutiesProvider
- type PrysmValidatorBalancesProvider
- type RANDAODomainProvider
- type SelectionProofDomainProvider
- type Service
- type SignedBeaconBlockProvider
- type SlotDurationProvider
- type SlotFromStateIDProvider
- type SlotsPerEpochProvider
- type SpecProvider
- type SyncStateProvider
- type TargetAggregatorsPerCommitteeProvider
- type ValidatorBalancesProvider
- type ValidatorIDProvider
- type ValidatorIndexProvider
- type ValidatorPubKeyProvider
- type ValidatorsProvider
- type ValidatorsWithoutBalanceProvider
- type VoluntaryExitDomainProvider
- type VoluntaryExitSubmitter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AggregateAndProofDomainProvider ¶
type AggregateAndProofDomainProvider interface { // AggregateAndProofDomain provides the aggregate and proof domain. AggregateAndProofDomain(ctx context.Context) (spec.DomainType, error) }
AggregateAndProofDomainProvider is the interface for providing the aggregate and proof domain.
type AggregateAttestationProvider ¶
type AggregateAttestationProvider interface { // AggregateAttestation fetches the aggregate attestation given an attestation. AggregateAttestation(ctx context.Context, slot spec.Slot, attestationDataRoot spec.Root) (*spec.Attestation, error) }
AggregateAttestationProvider is the interface for providing aggregate attestations.
type AggregateAttestationsSubmitter ¶
type AggregateAttestationsSubmitter interface { // SubmitAggregateAttestations submits aggregate attestations. SubmitAggregateAttestations(ctx context.Context, aggregateAndProofs []*spec.SignedAggregateAndProof) error }
AggregateAttestationsSubmitter is the interface for submitting aggregate attestations.
type AttestationDataProvider ¶
type AttestationDataProvider interface { // AttestationData fetches the attestation data for the given slot and committee index. AttestationData(ctx context.Context, slot spec.Slot, committeeIndex spec.CommitteeIndex) (*spec.AttestationData, error) }
AttestationDataProvider is the interface for providing attestation data.
type AttestationsSubmitter ¶ added in v0.6.9
type AttestationsSubmitter interface { // SubmitAttestations submits attestations. SubmitAttestations(ctx context.Context, attestations []*spec.Attestation) error }
AttestationsSubmitter is the interface for submitting attestations.
type AttesterDutiesProvider ¶
type AttesterDutiesProvider interface { // AttesterDuties obtains attester duties. // If validatorIndicess is nil it will return all duties for the given epoch. AttesterDuties(ctx context.Context, epoch spec.Epoch, validatorIndices []spec.ValidatorIndex) ([]*api.AttesterDuty, error) }
AttesterDutiesProvider is the interface for providing attester duties
type BeaconAttesterDomainProvider ¶
type BeaconAttesterDomainProvider interface { // BeaconAttesterDomain provides the beacon attester domain. BeaconAttesterDomain(ctx context.Context) (spec.DomainType, error) }
BeaconAttesterDomainProvider is the interface for providing the beacon attester domain.
type BeaconBlockHeadersProvider ¶ added in v0.6.9
type BeaconBlockHeadersProvider interface { // BeaconBlockHeader provides the block header of a given block ID. BeaconBlockHeader(ctx context.Context, blockID string) (*api.BeaconBlockHeader, error) }
BeaconBlockHeadersProvider is the interface for providing beacon block headers.
type BeaconBlockProposalProvider ¶
type BeaconBlockProposalProvider interface { // BeaconBlockProposal fetches a proposed beacon block for signing. BeaconBlockProposal(ctx context.Context, slot spec.Slot, randaoReveal spec.BLSSignature, graffiti []byte) (*spec.BeaconBlock, error) }
BeaconBlockProposalProvider is the interface for providing beacon block proposals.
type BeaconBlockRootProvider ¶
type BeaconBlockRootProvider interface { // BeaconBlockRootBySlot fetches a block's root given its slot. BeaconBlockRootBySlot(ctx context.Context, slot uint64) ([]byte, error) }
BeaconBlockRootProvider is the interface for providing beacon block roots.
type BeaconBlockSubmitter ¶
type BeaconBlockSubmitter interface { // SubmitBeaconBlock submits a beacon block. SubmitBeaconBlock(ctx context.Context, block *spec.SignedBeaconBlock) error }
BeaconBlockSubmitter is the interface for submitting beacon blocks.
type BeaconChainHeadUpdatedHandler ¶
type BeaconChainHeadUpdatedHandler interface { // OnBeaconChainHeadUpdated is called whenever we receive a notification of an update to the beacon chain head. OnBeaconChainHeadUpdated(ctx context.Context, slot uint64, blockRoot []byte, stateRoot []byte, epochTransition bool) }
BeaconChainHeadUpdatedHandler is the interface that needs to be implemented by processes that wish to receive beacon chain head updated messages.
type BeaconChainHeadUpdatedSource ¶
type BeaconChainHeadUpdatedSource interface { // AddOnBeaconChainHeadUpdatedHandler adds a handler provided with beacon chain head updates. AddOnBeaconChainHeadUpdatedHandler(ctx context.Context, handler BeaconChainHeadUpdatedHandler) error }
BeaconChainHeadUpdatedSource is the interface for a service that provides beacon chain head updates.
type BeaconCommitteeSubscriptionsSubmitter ¶
type BeaconCommitteeSubscriptionsSubmitter interface { // SubmitBeaconCommitteeSubscriptions subscribes to beacon committees. SubmitBeaconCommitteeSubscriptions(ctx context.Context, subscriptions []*api.BeaconCommitteeSubscription) error }
BeaconCommitteeSubscriptionsSubmitter is the interface for submitting beacon committee subnet subscription requests.
type BeaconCommitteesProvider ¶
type BeaconCommitteesProvider interface { // BeaconCommittees fetches all beacon committees for the epoch at the given state. BeaconCommittees(ctx context.Context, stateID string) ([]*api.BeaconCommittee, error) }
BeaconCommitteesProvider is the interface for providing beacon committees.
type BeaconProposerDomainProvider ¶
type BeaconProposerDomainProvider interface { // BeaconProposerDomain provides the beacon proposer domain. BeaconProposerDomain(ctx context.Context) (spec.DomainType, error) }
BeaconProposerDomainProvider is the interface for providing the beacon proposer domain.
type BeaconStateProvider ¶ added in v0.6.9
type BeaconStateProvider interface { // BeaconState fetches a beacon state. BeaconState(ctx context.Context, stateID string) (*spec.BeaconState, error) }
BeaconStateProvider is the interface for providing beacon state.
type DepositContractProvider ¶
type DepositContractProvider interface { // DepositContractAddress provides the Ethereum 1 address of the deposit contract. DepositContractAddress(ctx context.Context) ([]byte, error) // DepositContractChainID provides the Ethereum 1 chain ID of the deposit contract. DepositContractChainID(ctx context.Context) (uint64, error) // DepositContractNetworkID provides the Ethereum 1 network ID of the deposit contract. DepositContractNetworkID(ctx context.Context) (uint64, error) }
DepositContractProvider is the interface for providng details about the deposit contract.
type DepositDomainProvider ¶
type DepositDomainProvider interface { // DepositDomain provides the deposit domain. DepositDomain(ctx context.Context) (spec.DomainType, error) }
DepositDomainProvider is the interface for providing the deposit domain.
type DomainProvider ¶ added in v0.6.9
type DomainProvider interface { // Domain provides a domain for a given domain type at a given epoch. Domain(ctx context.Context, domainType spec.DomainType, epoch spec.Epoch) (spec.Domain, error) }
DomainProvider provides a domain for a given domain type at an epoch.
type EpochFromStateIDProvider ¶ added in v0.6.9
type EpochFromStateIDProvider interface { // EpochFromStateID converts a state ID to its epoch. EpochFromStateID(ctx context.Context, stateID string) (spec.Epoch, error) }
EpochFromStateIDProvider is the interface for providing epochs from state IDs.
type EventHandlerFunc ¶ added in v0.6.9
EventHandlerFunc is the handler for events.
type EventsProvider ¶ added in v0.6.9
type EventsProvider interface { // Events feeds requested events with the given topics to the supplied handler. Events(ctx context.Context, topics []string, handler EventHandlerFunc) error }
EventsProvider is the interface for providing events.
type FarFutureEpochProvider ¶ added in v0.6.13
type FarFutureEpochProvider interface { // FarFutureEpoch provides the far future epoch of the chain. FarFutureEpoch(ctx context.Context) (spec.Epoch, error) }
FarFutureEpochProvider is the interface for providing the far future epoch of a chain.
type FinalityProvider ¶ added in v0.6.10
type FinalityProvider interface { // Finality provides the finality given a state ID. Finality(ctx context.Context, stateID string) (*api.Finality, error) }
FinalityProvider is the interface for providing finality information.
type ForkProvider ¶
type ForkProvider interface { // Fork fetches fork information for the given state. Fork(ctx context.Context, stateID string) (*spec.Fork, error) }
ForkProvider is the interface for providing fork information.
type ForkScheduleProvider ¶ added in v0.6.5
type ForkScheduleProvider interface { // ForkSchedule provides details of past and future changes in the chain's fork version. ForkSchedule(ctx context.Context) ([]*spec.Fork, error) }
ForkScheduleProvider is the interface for providing fork schedule data.
type GenesisProvider ¶
type GenesisProvider interface { // Genesis fetches genesis information for the chain. Genesis(ctx context.Context) (*api.Genesis, error) }
GenesisProvider is the interface for providing genesis information.
type GenesisTimeProvider ¶
type GenesisTimeProvider interface { // GenesisTime provides the genesis time of the chain. GenesisTime(ctx context.Context) (time.Time, error) }
GenesisTimeProvider is the interface for providing the genesis time of a chain.
type GenesisValidatorsRootProvider ¶
type GenesisValidatorsRootProvider interface { // GenesisValidatorsRoot provides the genesis validators root of the chain. GenesisValidatorsRoot(ctx context.Context) ([]byte, error) }
GenesisValidatorsRootProvider is the interface for providing the genesis validators root of a chain.
type NodeSyncingProvider ¶ added in v0.6.9
type NodeSyncingProvider interface { // NodeSyncing provides the state of the node's synchronization with the chain. NodeSyncing(ctx context.Context) (*api.SyncState, error) }
NodeSyncingProvider is the interface for providing synchronization state.
type NodeVersionProvider ¶
type NodeVersionProvider interface { // NodeVersion returns a free-text string with the node version. NodeVersion(ctx context.Context) (string, error) }
NodeVersionProvider is the interface for providing the node version.
type ProposerDutiesProvider ¶
type ProposerDutiesProvider interface { // ProposerDuties obtains proposer duties for the given epoch. // If validatorIndices is empty all duties are returned, otherwise only matching duties are returned. ProposerDuties(ctx context.Context, epoch spec.Epoch, validatorIndices []spec.ValidatorIndex) ([]*api.ProposerDuty, error) }
ProposerDutiesProvider is the interface for providing proposer duties.
type PrysmAggregateAttestationProvider ¶ added in v0.6.9
type PrysmAggregateAttestationProvider interface { // PrysmAggregateAttestation fetches the aggregate attestation given an attestation. PrysmAggregateAttestation(ctx context.Context, attestation *spec.Attestation, validatorPubKey spec.BLSPubKey, slotSignature spec.BLSSignature) (*spec.Attestation, error) }
PrysmAggregateAttestationProvider is the interface for providing aggregate attestations.
type PrysmAttesterDutiesProvider ¶ added in v0.6.9
type PrysmAttesterDutiesProvider interface { // PrysmAttesterDuties obtains attester duties with prysm-specific parameters. PrysmAttesterDuties(ctx context.Context, epoch spec.Epoch, validatorPubKeys []spec.BLSPubKey) ([]*api.AttesterDuty, error) }
PrysmAttesterDutiesProvider is the interface for providing attester duties with prysm-specific parameters.
type PrysmProposerDutiesProvider ¶ added in v0.6.9
type PrysmProposerDutiesProvider interface { // PrysmProposerDuties obtains proposer duties with prysm-specific parameters. PrysmProposerDuties(ctx context.Context, epoch spec.Epoch, validatorPubKeys []spec.BLSPubKey) ([]*api.ProposerDuty, error) }
PrysmProposerDutiesProvider is the interface for providing proposer duties with prysm-specific parameters.
type PrysmValidatorBalancesProvider ¶ added in v0.6.9
type PrysmValidatorBalancesProvider interface { // PrysmValidatorBalances 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". // validatorIDs is a list of validator indices to restrict the returned values. If no validators are supplied no filter // will be applied. PrysmValidatorBalances(ctx context.Context, stateID string, validatorPubKeys []spec.BLSPubKey) (map[spec.ValidatorIndex]spec.Gwei, error) }
PrysmValidatorBalancesProvider is the interface for providing validator balances.
type RANDAODomainProvider ¶
type RANDAODomainProvider interface { // RANDAODomain provides the RANDAO domain. RANDAODomain(ctx context.Context) (spec.DomainType, error) }
RANDAODomainProvider is the interface for providing the RANDAO domain.
type SelectionProofDomainProvider ¶
type SelectionProofDomainProvider interface { // SelectionProofDomain provides the selection proof domain. SelectionProofDomain(ctx context.Context) (spec.DomainType, error) }
SelectionProofDomainProvider is the interface for providing the selection proof domain.
type Service ¶
type Service interface { // Name returns the name of the client implementation. Name() string // Address returns the address of the client. Address() string }
Service is the service providing a connection to an Ethereum 2 client.
type SignedBeaconBlockProvider ¶
type SignedBeaconBlockProvider interface { // SignedBeaconBlock fetches a signed beacon block given a block ID. SignedBeaconBlock(ctx context.Context, blockID string) (*spec.SignedBeaconBlock, error) }
SignedBeaconBlockProvider is the interface for providing beacon blocks.
type SlotDurationProvider ¶
type SlotDurationProvider interface { // SlotDuration provides the duration of a slot of the chain. SlotDuration(ctx context.Context) (time.Duration, error) }
SlotDurationProvider is the interface for providing the duration of each slot of a chain.
type SlotFromStateIDProvider ¶ added in v0.6.9
type SlotFromStateIDProvider interface { // SlotFromStateID converts a state ID to its slot. SlotFromStateID(ctx context.Context, stateID string) (spec.Slot, error) }
SlotFromStateIDProvider is the interface for providing slots from state IDs.
type SlotsPerEpochProvider ¶
type SlotsPerEpochProvider interface { // SlotsPerEpoch provides the slots per epoch of the chain. SlotsPerEpoch(ctx context.Context) (uint64, error) }
SlotsPerEpochProvider is the interface for providing the number of slots in each epoch of a chain.
type SpecProvider ¶ added in v0.6.5
type SpecProvider interface { // Spec provides the spec information of the chain. Spec(ctx context.Context) (map[string]interface{}, error) }
SpecProvider is the interface for providing spec data.
type SyncStateProvider ¶
type SyncStateProvider interface { // SyncState provides the state of the node's synchronization with the chain. SyncState(ctx context.Context) (*api.SyncState, error) }
SyncStateProvider is the interface for providing synchronization state.
type TargetAggregatorsPerCommitteeProvider ¶
type TargetAggregatorsPerCommitteeProvider interface { // TargetAggregatorsPerCommittee provides the target number of aggregators for each attestation committee. TargetAggregatorsPerCommittee(ctx context.Context) (uint64, error) }
TargetAggregatorsPerCommitteeProvider is the interface for providing the target number of aggregators in each attestation committee.
type ValidatorBalancesProvider ¶
type ValidatorBalancesProvider interface { // 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. ValidatorBalances(ctx context.Context, stateID string, validatorIndices []spec.ValidatorIndex) (map[spec.ValidatorIndex]spec.Gwei, error) }
ValidatorBalancesProvider is the interface for providing validator balances.
type ValidatorIDProvider ¶
type ValidatorIDProvider interface { ValidatorIndexProvider ValidatorPubKeyProvider }
ValidatorIDProvider is the interface that provides the identifiers (pubkey, index) of a validator.
type ValidatorIndexProvider ¶
type ValidatorIndexProvider interface { // Index provides the index of the validator. Index(ctx context.Context) (spec.ValidatorIndex, error) }
ValidatorIndexProvider is the interface for entities that can provide the index of a validator.
type ValidatorPubKeyProvider ¶
type ValidatorPubKeyProvider interface { // PubKey provides the public key of the validator. PubKey(ctx context.Context) (spec.BLSPubKey, error) }
ValidatorPubKeyProvider is the interface for entities that can provide the public key of a validator.
type ValidatorsProvider ¶
type ValidatorsProvider interface { // 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 validator indices to restrict the returned values. If no validators IDs are supplied no filter // will be applied. Validators(ctx context.Context, stateID string, validatorIndices []spec.ValidatorIndex) (map[spec.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. ValidatorsByPubKey(ctx context.Context, stateID string, validatorPubKeys []spec.BLSPubKey) (map[spec.ValidatorIndex]*api.Validator, error) }
ValidatorsProvider is the interface for providing validator information.
type ValidatorsWithoutBalanceProvider ¶ added in v0.6.7
type ValidatorsWithoutBalanceProvider interface { // ValidatorsWithoutBalance provides the validators, with their status, for a given state. // Balances are set to 0. // This is a non-standard call, only to be used if fetching balances results in the call being too slow. // 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 IDs are supplied no filter // will be applied. ValidatorsWithoutBalance(ctx context.Context, stateID string, validatorIndices []spec.ValidatorIndex) (map[spec.ValidatorIndex]*api.Validator, error) // ValidatorsWithoutBalanceByPubKey provides the validators, with their status, for a given state. // This is a non-standard call, only to be used if fetching balances results in the call being too slow. // 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. ValidatorsWithoutBalanceByPubKey(ctx context.Context, stateID string, validatorPubKeys []spec.BLSPubKey) (map[spec.ValidatorIndex]*api.Validator, error) }
ValidatorsWithoutBalanceProvider is the interface for providing validator information, minus the balance.
type VoluntaryExitDomainProvider ¶
type VoluntaryExitDomainProvider interface { // VoluntaryExitDomain provides the voluntary exit domain. VoluntaryExitDomain(ctx context.Context) (spec.DomainType, error) }
VoluntaryExitDomainProvider is the interface for providing the voluntary exit domain.
type VoluntaryExitSubmitter ¶ added in v0.6.10
type VoluntaryExitSubmitter interface { // SubmitVoluntaryExit submits a voluntary exit. SubmitVoluntaryExit(ctx context.Context, voluntaryExit *spec.SignedVoluntaryExit) error }
VoluntaryExitSubmitter is the interface for submitting voluntary exits.