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 + type Block struct + Hash common.Hash + Number uint64 + func (block *Block) AwaitBlock(ctx context.Context, timeout time.Duration) *types.Block + func (block *Block) AwaitSeenBy(ctx context.Context, client *Client) bool + func (block *Block) EnsureBlock(loadBlock func() (*types.Block, error)) (bool, error) + func (block *Block) GetBlock() *types.Block + func (block *Block) GetParentHash() *common.Hash + func (block *Block) GetSeenBy() []*Client + 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(hash common.Hash, number uint64) (*Block, bool) + func (cache *BlockCache) GetBlockDistance(blockRoot, headRoot common.Hash) (linked bool, distance uint64) + func (cache *BlockCache) GetCachedBlockByRoot(hash common.Hash) *Block + func (cache *BlockCache) GetCachedBlocks() []*Block + func (cache *BlockCache) GetChainID() *big.Int + func (cache *BlockCache) GetSpecs() *rpc.ChainSpec + func (cache *BlockCache) IsCanonicalBlock(blockRoot, headRoot common.Hash) bool + func (cache *BlockCache) SetClientSpecs(specs *rpc.ChainSpec) error + func (cache *BlockCache) SetMinFollowDistance(followDistance uint64) + func (cache *BlockCache) SubscribeBlockEvent(capacity int) *Subscription[*Block] + func (cache *BlockCache) UnsubscribeBlockEvent(subscription *Subscription[*Block]) + 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() (uint64, common.Hash) + func (client *Client) GetName() string + func (client *Client) GetRPCClient() *rpc.ExecutionClient + func (client *Client) GetStatus() ClientStatus + func (client *Client) GetVersion() string + func (client *Client) NotifyNewBlock(hash common.Hash, number uint64) + type ClientConfig struct + Headers map[string]string + Name string + URL string + type ClientStatus uint8 + var ClientStatusOffline ClientStatus = 2 + var ClientStatusOnline ClientStatus = 1 + var ClientStatusSynchronizing ClientStatus = 3 + type ClientType int8 + var AnyClient ClientType + var BesuClient ClientType = 1 + var ErigonClient ClientType = 2 + var EthjsClient ClientType = 3 + var GethClient ClientType = 4 + var NethermindClient ClientType = 5 + var RethClient ClientType = 6 + 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 HeadFork struct + AllClients []*Client + Hash common.Hash + Number uint64 + ReadyClients []*Client + 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) AwaitReadyEndpoints(ctx context.Context, shuffle bool) []*Client + func (pool *Pool) GetAllEndpoints() []*Client + func (pool *Pool) GetBlockCache() *BlockCache + func (pool *Pool) GetCanonicalFork(forkDistance int64) *HeadFork + func (pool *Pool) GetHeadForks(forkDistance int64) []*HeadFork + func (pool *Pool) GetReadyEndpoint(clientType ClientType) *Client + func (pool *Pool) GetReadyEndpoints(shuffle bool) []*Client + 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()