types

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2025 License: GPL-3.0 Imports: 8 Imported by: 0

Documentation

Overview

Package types includes important structs used by end to end tests, such as a configuration type, an evaluator type, and more.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenesisFork

func GenesisFork() int

Types

type BeaconNodeSet

type BeaconNodeSet interface {
	ComponentRunner
	// SetENR provides the relevant bootnode's enr to the beacon nodes.
	SetENR(enr string)
}

BeaconNodeSet defines an interface for an object that fulfills the duties of a group of beacon nodes.

type ComponentRunner

type ComponentRunner interface {
	// Start starts a component.
	Start(ctx context.Context) error
	// Started checks whether an underlying component is started and ready to be queried.
	Started() <-chan struct{}
	// Pause pauses a component.
	Pause() error
	// Resume resumes a component.
	Resume() error
	// Stop stops a component.
	Stop() error
	// UnderlyingProcess is the underlying process, once started.
	UnderlyingProcess() *os.Process
}

ComponentRunner defines an interface via which E2E component's configuration, execution and termination is managed.

type DepositBalancer

type DepositBalancer interface {
	Balances(DepositBatch) map[[field_params.DilithiumPubkeyLength]byte]uint64
}

DepositBalancer represents a type that can sum, by validator, all deposits made in E2E prior to the function call.

type DepositBatch

type DepositBatch int

DepositBatch represents a group of deposits that are sent together during an e2e run.

const (

	// GenesisDepositBatch deposits are sent to populate the initial set of validators for genesis.
	GenesisDepositBatch DepositBatch
	// PostGenesisDepositBatch deposits are sent to test that deposits appear in blocks as expected
	// and validators become active.
	PostGenesisDepositBatch
)

type E2EConfig

type E2EConfig struct {
	// TestCheckpointSync  bool
	TestSync            bool
	TestFeature         bool
	UseQrysmShValidator bool
	UsePprof            bool
	// UseWeb3RemoteSigner bool
	TestDeposits        bool
	UseFixedPeerIDs     bool
	UseBeaconRestApi    bool
	UseBuilder          bool
	EpochsToRun         uint64
	Seed                int64
	TracingSinkEndpoint string
	Evaluators          []Evaluator
	EvalInterceptor     func(*EvaluationContext, uint64, []*grpc.ClientConn) bool
	BeaconFlags         []string
	ValidatorFlags      []string
	PeerIDs             []string
	ExtraEpochs         uint64
}

E2EConfig defines the struct for all configurations needed for E2E testing.

type E2EConfigOpt

type E2EConfigOpt func(*E2EConfig)

func WithBuilder

func WithBuilder() E2EConfigOpt

func WithEpochs

func WithEpochs(e uint64) E2EConfigOpt

func WithValidatorRESTApi

func WithValidatorRESTApi() E2EConfigOpt

type EmptyComponent

type EmptyComponent struct {
	sync.Mutex
	// contains filtered or unexported fields
}

EmptyComponent satisfies the component interface. It can be embedded in other types in order to turn them into components.

func (*EmptyComponent) Pause

func (*EmptyComponent) Pause() error

func (*EmptyComponent) Resume

func (*EmptyComponent) Resume() error

func (*EmptyComponent) Start

func (c *EmptyComponent) Start(context.Context) error

func (*EmptyComponent) Started

func (c *EmptyComponent) Started() <-chan struct{}

func (*EmptyComponent) Stop

func (*EmptyComponent) Stop() error

type EngineProxy

type EngineProxy interface {
	ComponentRunner
	// AddRequestInterceptor adds in a json-rpc request interceptor.
	AddRequestInterceptor(rpcMethodName string, responseGen func() interface{}, trigger func() bool)
	// RemoveRequestInterceptor removes the request interceptor for the provided method.
	RemoveRequestInterceptor(rpcMethodName string)
	// ReleaseBackedUpRequests releases backed up http requests.
	ReleaseBackedUpRequests(rpcMethodName string)
}

type EvaluationContext

type EvaluationContext struct {
	DepositBalancer
	ExitedVals           map[[field_params.DilithiumPubkeyLength]byte]bool
	SeenVotes            map[primitives.Slot][]byte
	ExpectedEth1DataVote []byte
}

EvaluationContext allows for additional data to be provided to evaluators that need extra state.

func NewEvaluationContext

func NewEvaluationContext(d DepositBalancer) *EvaluationContext

NewEvaluationContext handles initializing internal datastructures (like maps) provided by the EvaluationContext.

type Evaluator

type Evaluator struct {
	Name   string
	Policy func(currentEpoch primitives.Epoch) bool
	// Evaluation accepts one or many/all conns, depending on what is needed by the set of evaluators.
	Evaluation func(ec *EvaluationContext, conn ...*grpc.ClientConn) error
}

Evaluator defines the structure of the evaluators used to conduct the current beacon state during the E2E.

type MultipleComponentRunners

type MultipleComponentRunners interface {
	ComponentRunner
	// ComponentAtIndex returns the component at index
	ComponentAtIndex(i int) (ComponentRunner, error)
	// PauseAtIndex pauses the grouped component element at the desired index.
	PauseAtIndex(i int) error
	// ResumeAtIndex resumes the grouped component element at the desired index.
	ResumeAtIndex(i int) error
	// StopAtIndex stops the grouped component element at the desired index.
	StopAtIndex(i int) error
}

Jump to

Keyboard shortcuts

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