dirk

package
v1.9.1 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2024 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Parameter

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

Parameter is the interface for service parameters.

func WithAccountPaths

func WithAccountPaths(accountPaths []string) Parameter

WithAccountPaths sets the accounts paths for which to validate.

func WithCACert

func WithCACert(cert []byte) Parameter

WithCACert sets the bytes of the certificate authority TLS certificate.

func WithClientCert

func WithClientCert(cert []byte) Parameter

WithClientCert sets the bytes of the client TLS certificate.

func WithClientKey

func WithClientKey(key []byte) Parameter

WithClientKey sets the bytes of the client TLS key.

func WithClientMonitor added in v0.6.2

func WithClientMonitor(clientMonitor metrics.ClientMonitor) Parameter

WithClientMonitor sets the client monitor for the module.

func WithCurrentEpochProvider added in v1.0.3

func WithCurrentEpochProvider(provider chaintime.Service) Parameter

WithCurrentEpochProvider sets the current epoch provider.

func WithDomainProvider added in v0.9.0

func WithDomainProvider(provider eth2client.DomainProvider) Parameter

WithDomainProvider sets the signature domain provider.

func WithEndpoints

func WithEndpoints(endpoints []string) Parameter

WithEndpoints sets the endpoints to communicate with dirk.

func WithFarFutureEpochProvider added in v1.0.0

func WithFarFutureEpochProvider(provider eth2client.FarFutureEpochProvider) Parameter

WithFarFutureEpochProvider sets the far future epoch provider.

func WithLogLevel

func WithLogLevel(logLevel zerolog.Level) Parameter

WithLogLevel sets the log level for the module.

func WithMonitor

func WithMonitor(monitor metrics.Service) Parameter

WithMonitor sets the monitor for the module.

func WithProcessConcurrency added in v1.2.0

func WithProcessConcurrency(concurrency int64) Parameter

WithProcessConcurrency sets the concurrency for the service.

func WithTimeout added in v1.7.0

func WithTimeout(timeout time.Duration) Parameter

WithTimeout sets the timeout for the module.

func WithValidatorsManager added in v1.0.0

func WithValidatorsManager(provider validatorsmanager.Service) Parameter

WithValidatorsManager sets the validators manager.

type Service

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

Service is the manager for dirk accounts.

func New

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

New creates a new dirk account manager.

func (*Service) AccountByPublicKey added in v1.7.0

func (s *Service) AccountByPublicKey(_ context.Context, pubkey phase0.BLSPubKey) (e2wtypes.Account, error)

AccountByPublicKey returns the account for the given public key.

func (*Service) Refresh added in v1.0.0

func (s *Service) Refresh(ctx context.Context)

Refresh refreshes the accounts from Dirk, and account validator state from the validators provider. This is a relatively expensive operation, so should not be run in the validating path.

func (*Service) SyncCommitteeAccountsForEpoch added in v1.9.0

func (s *Service) SyncCommitteeAccountsForEpoch(ctx context.Context, epoch phase0.Epoch) (map[phase0.ValidatorIndex]e2wtypes.Account, error)

SyncCommitteeAccountsForEpoch obtains the accounts eligible for Sync Committee duty for a given epoch. The Ethereum specification has different criteria for Sync Committee eligibility compared to other validating duties. This includes an edge case where we are still in scope for sync committee duty between exited and withdrawal states.

func (*Service) SyncCommitteeAccountsForEpochByIndex added in v1.9.0

func (s *Service) SyncCommitteeAccountsForEpochByIndex(ctx context.Context, epoch phase0.Epoch, indices []phase0.ValidatorIndex) (map[phase0.ValidatorIndex]e2wtypes.Account, error)

SyncCommitteeAccountsForEpochByIndex obtains the specified Sync Committee eligible accounts for a given epoch. The Ethereum specification has different criteria for Sync Committee eligibility compared to other validating duties. This includes an edge case where we are still in scope for sync committee duty between exited and withdrawal states.

func (*Service) ValidatingAccountsForEpoch added in v1.0.0

func (s *Service) ValidatingAccountsForEpoch(ctx context.Context, epoch phase0.Epoch) (map[phase0.ValidatorIndex]e2wtypes.Account, error)

ValidatingAccountsForEpoch obtains the validating accounts for a given epoch.

func (*Service) ValidatingAccountsForEpochByIndex added in v1.0.0

func (s *Service) ValidatingAccountsForEpochByIndex(ctx context.Context, epoch phase0.Epoch, indices []phase0.ValidatorIndex) (map[phase0.ValidatorIndex]e2wtypes.Account, error)

ValidatingAccountsForEpochByIndex obtains the specified validating accounts for a given epoch.

Jump to

Keyboard shortcuts

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