Versions in this module Expand all Collapse all v0 v0.1.1 Apr 22, 2026 v0.1.0 Apr 14, 2026 Changes in this version + const BuilderIndexFlag + func ConvertBuilderIndexToValidatorIndex(builderIndex gloas.BuilderIndex) phase0.ValidatorIndex + func GetBlockBody(v *spec.VersionedSignedBeaconBlock) any + func GetExecutionExtraData(v *spec.VersionedSignedBeaconBlock) ([]byte, error) + func GetPayloadExtraData(payload *gloas.SignedExecutionPayloadEnvelope) ([]byte, error) + type Block struct + Root phase0.Root + Slot phase0.Slot + func (block *Block) AwaitBlock(ctx context.Context, timeout time.Duration) *spec.VersionedSignedBeaconBlock + func (block *Block) AwaitHeader(ctx context.Context, timeout time.Duration) *phase0.SignedBeaconBlockHeader + func (block *Block) AwaitPayload(ctx context.Context, timeout time.Duration) *gloas.SignedExecutionPayloadEnvelope + func (block *Block) EnsureBlock(loadBlock func() (*spec.VersionedSignedBeaconBlock, error)) (bool, error) + func (block *Block) EnsureHeader(loadHeader func() (*phase0.SignedBeaconBlockHeader, error)) error + func (block *Block) EnsurePayload(loadPayload func() (*gloas.SignedExecutionPayloadEnvelope, error)) (bool, error) + func (block *Block) GetBlock() *spec.VersionedSignedBeaconBlock + func (block *Block) GetHeader() *phase0.SignedBeaconBlockHeader + func (block *Block) GetParentRoot() *phase0.Root + func (block *Block) GetPayload() *gloas.SignedExecutionPayloadEnvelope + func (block *Block) GetSeenBy() []*Client + func (block *Block) SetHeader(header *phase0.SignedBeaconBlockHeader) + func (block *Block) SetSeenBy(client *Client) + type BlockCache struct + func NewBlockCache(ctx context.Context, logger logrus.FieldLogger, followDistance uint32) (*BlockCache, error) + func (cache *BlockCache) AddBlock(root phase0.Root, slot phase0.Slot) (*Block, bool) + func (cache *BlockCache) GetBlockDistance(blockRoot, headRoot phase0.Root) (linked bool, distance uint64) + func (cache *BlockCache) GetCachedBlockByRoot(root phase0.Root) *Block + func (cache *BlockCache) GetCachedBlocks() []*Block + func (cache *BlockCache) GetCachedBlocksBySlot(slot phase0.Slot) []*Block + func (cache *BlockCache) GetFinalizedCheckpoint() (phase0.Epoch, phase0.Root) + func (cache *BlockCache) GetGenesis() *v1.Genesis + func (cache *BlockCache) GetSpecValues() map[string]interface{} + func (cache *BlockCache) GetSpecs() *ChainSpec + func (cache *BlockCache) GetWallclock() *ethwallclock.EthereumBeaconChain + func (cache *BlockCache) InitWallclock() + func (cache *BlockCache) IsCanonicalBlock(blockRoot, headRoot phase0.Root) bool + func (cache *BlockCache) SetBuilderSet(builders []*BuilderInfo) + func (cache *BlockCache) SetClientSpecs(specValues map[string]interface{}) error + func (cache *BlockCache) SetFinalizedCheckpoint(finalizedEpoch phase0.Epoch, finalizedRoot phase0.Root) + func (cache *BlockCache) SetGenesis(genesis *v1.Genesis) error + func (cache *BlockCache) SetMinFollowDistance(followDistance uint64) + func (cache *BlockCache) SetValidatorSet(valset map[phase0.ValidatorIndex]*v1.Validator) + func (cache *BlockCache) SubscribeBlockEvent(capacity int) *Subscription[*Block] + func (cache *BlockCache) SubscribeFinalizedEvent(capacity int) *Subscription[*FinalizedCheckpoint] + func (cache *BlockCache) SubscribePayloadEvent(capacity int) *Subscription[*Block] + func (cache *BlockCache) SubscribeWallclockEpochEvent(capacity int) *Subscription[*ethwallclock.Epoch] + func (cache *BlockCache) SubscribeWallclockSlotEvent(capacity int) *Subscription[*ethwallclock.Slot] + type BuilderInfo struct + Builder *gloas.Builder + Index gloas.BuilderIndex + type ChainSpec struct + AltairForkEpoch uint64 + AltairForkVersion phase0.Version + BellatrixForkEpoch uint64 + BellatrixForkVersion phase0.Version + CappellaForkEpoch uint64 + CappellaForkVersion phase0.Version + ConfigName string + DenebForkEpoch uint64 + ElectraForkEpoch uint64 + FuluForkEpoch uint64 + GenesisForkVersion phase0.Version + GloasForkEpoch uint64 + MaxCommitteesPerSlot uint64 + MinGenesisTime time.Time + PresetBase string + SlotDurationMs uint64 + SlotsPerEpoch uint64 + func (chain *ChainSpec) CheckMismatch(chain2 *ChainSpec) []string + func (chain *ChainSpec) IsGloasActive(slot phase0.Slot) bool + type Client struct + func (client *Client) GetClientType() ClientType + func (client *Client) GetEndpointConfig() *ClientConfig + func (client *Client) GetIndex() uint16 + func (client *Client) GetLastError() error + func (client *Client) GetLastEventTime() time.Time + func (client *Client) GetLastHead() (phase0.Slot, phase0.Root) + func (client *Client) GetName() string + func (client *Client) GetRPCClient() *rpc.BeaconClient + func (client *Client) GetStatus() ClientStatus + func (client *Client) GetVersion() string + func (client *Client) SubscribeBlockEvent(capacity int) *Subscription[*Block] + func (client *Client) SubscribeFinalizedEvent(capacity int) *Subscription[*FinalizedCheckpoint] + func (client *Client) UnsubscribeBlockEvent(subscription *Subscription[*Block]) + func (client *Client) UnsubscribeFinalizedEvent(subscription *Subscription[*FinalizedCheckpoint]) + type ClientConfig struct + Headers map[string]string + Name string + URL string + type ClientStatus uint8 + var ClientStatusOffline ClientStatus = 2 + var ClientStatusOnline ClientStatus = 1 + var ClientStatusOptimistic ClientStatus = 4 + var ClientStatusSynchronizing ClientStatus = 3 + type ClientType int8 + var AnyClient ClientType + var CaplinClient ClientType = 7 + var GrandineClient ClientType = 6 + var LighthouseClient ClientType = 1 + var LodestarClient ClientType = 2 + var NimbusClient ClientType = 3 + var PrysmClient ClientType = 4 + var TekuClient ClientType = 5 + var UnknownClient ClientType = -1 + func ParseClientType(name string) ClientType + func (clientType ClientType) String() string + type Dispatcher struct + func (d *Dispatcher[T]) Fire(data T) + func (d *Dispatcher[T]) Subscribe(capacity int) *Subscription[T] + func (d *Dispatcher[T]) Unsubscribe(subscription *Subscription[T]) + type FinalizedCheckpoint struct + Epoch phase0.Epoch + Root phase0.Root + type ForkVersion struct + CurrentVersion []byte + Epoch uint64 + PreviousVersion []byte + type HeadFork struct + AllClients []*Client + ReadyClients []*Client + Root phase0.Root + Slot phase0.Slot + func (fork *HeadFork) IsClientReady(client *Client) bool + type Pool struct + func NewPool(ctx context.Context, config *PoolConfig, logger logrus.FieldLogger) (*Pool, error) + func (pool *Pool) AddEndpoint(endpoint *ClientConfig) (*Client, error) + func (pool *Pool) AwaitReadyEndpoint(ctx context.Context, clientType ClientType) *Client + func (pool *Pool) GetAllEndpoints() []*Client + func (pool *Pool) GetBlockCache() *BlockCache + func (pool *Pool) GetBuilderSet() []*BuilderInfo + func (pool *Pool) GetCanonicalFork(forkDistance int64) *HeadFork + func (pool *Pool) GetHeadForks(forkDistance int64) []*HeadFork + func (pool *Pool) GetReadyEndpoint(clientType ClientType) *Client + func (pool *Pool) GetValidatorSet() map[phase0.ValidatorIndex]*v1.Validator + func (pool *Pool) IsClientReady(client *Client) bool + type PoolConfig struct + FollowDistance uint32 + ForkDistance uint32 + SchedulerMode string + type SchedulerMode uint8 + var RoundRobinScheduler SchedulerMode = 1 + type Subscription struct + func (s *Subscription[T]) Channel() <-chan T + func (s *Subscription[T]) Unsubscribe()