node

package
v1.7.4 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: MIT Imports: 16 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrHeaderTraversalAheadOfProvider            = errors.New("the HeaderTraversal's internal state is ahead of the provider")
	ErrHeaderTraversalAndProviderMismatchedState = errors.New("the HeaderTraversal and provider have diverged in state")
)
View Source
var (
	MetricsNamespace = "op_indexer_rpc"
)

Functions

This section is empty.

Types

type EthClient

type EthClient interface {
	BlockHeaderByNumber(*big.Int) (*types.Header, error)
	BlockHeaderByHash(common.Hash) (*types.Header, error)
	BlockHeadersByRange(*big.Int, *big.Int) ([]types.Header, error)

	TxByHash(common.Hash) (*types.Transaction, error)

	StorageHash(common.Address, *big.Int) (common.Hash, error)
	FilterLogs(ethereum.FilterQuery) (Logs, error)

	// Close closes the underlying RPC connection.
	// RPC close does not return any errors, but does shut down e.g. a websocket connection.
	Close()
}

func DialEthClient

func DialEthClient(ctx context.Context, rpcUrl string, metrics Metricer) (EthClient, error)

type HeaderTraversal

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

func NewHeaderTraversal

func NewHeaderTraversal(ethClient EthClient, fromHeader *types.Header, confDepth *big.Int) *HeaderTraversal

NewHeaderTraversal instantiates a new instance of HeaderTraversal against the supplied rpc client. The HeaderTraversal will start fetching blocks starting from the supplied header unless nil, indicating genesis.

func (*HeaderTraversal) LastTraversedHeader added in v1.4.2

func (f *HeaderTraversal) LastTraversedHeader() *types.Header

LastTraversedHeader returns the last header traversed.

  • This is useful for testing the state of the HeaderTraversal
  • LastTraversedHeader may be << LatestHeader depending on the number headers traversed via `NextHeaders`.

func (*HeaderTraversal) LatestHeader added in v1.4.2

func (f *HeaderTraversal) LatestHeader() *types.Header

LatestHeader returns the latest header reported by underlying eth client as headers are traversed via `NextHeaders`.

func (*HeaderTraversal) NextHeaders added in v1.4.2

func (f *HeaderTraversal) NextHeaders(maxSize uint64) ([]types.Header, error)

NextHeaders retrieves the next set of headers that have been marked as finalized by the connected client, bounded by the supplied size

type Logs added in v1.4.2

type Logs struct {
	Logs          []types.Log
	ToBlockHeader *types.Header
}

type Metricer added in v1.1.6

type Metricer interface {
	RecordRPCClientRequest(method string) func(err error)
	RecordRPCClientBatchRequest(b []rpc.BatchElem) func(err error)
}

func NewMetrics added in v1.1.6

func NewMetrics(registry *prometheus.Registry, subsystem string) Metricer

type MockEthClient added in v1.1.6

type MockEthClient struct {
	mock.Mock
}

func (*MockEthClient) BlockHeaderByHash added in v1.1.6

func (m *MockEthClient) BlockHeaderByHash(hash common.Hash) (*types.Header, error)

func (*MockEthClient) BlockHeaderByNumber added in v1.1.6

func (m *MockEthClient) BlockHeaderByNumber(number *big.Int) (*types.Header, error)

func (*MockEthClient) BlockHeadersByRange added in v1.1.6

func (m *MockEthClient) BlockHeadersByRange(from, to *big.Int) ([]types.Header, error)

func (*MockEthClient) Close added in v1.4.2

func (m *MockEthClient) Close()

func (*MockEthClient) FilterLogs added in v1.1.6

func (m *MockEthClient) FilterLogs(query ethereum.FilterQuery) (Logs, error)

func (*MockEthClient) StorageHash added in v1.1.6

func (m *MockEthClient) StorageHash(address common.Address, blockNumber *big.Int) (common.Hash, error)

func (*MockEthClient) TxByHash added in v1.1.6

func (m *MockEthClient) TxByHash(hash common.Hash) (*types.Transaction, error)

type RPC added in v1.1.6

type RPC interface {
	Close()
	CallContext(ctx context.Context, result any, method string, args ...any) error
	BatchCallContext(ctx context.Context, b []rpc.BatchElem) error
}

func NewRPC added in v1.2.0

func NewRPC(client *rpc.Client, metrics Metricer) RPC

Jump to

Keyboard shortcuts

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