websocket

package
Version: v0.0.0-...-c91f2dd Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2021 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package websocket implements a websocket connection to an Ethereum node.

Deprecated: This package has been superseded by the node.Client interface.

This package is frozen and no new functionality will be added.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrBlockNotFound       = errors.New("block not found")
	ErrTransactionNotFound = errors.New("transaction not found")
)

Functions

This section is empty.

Types

type Connection

type Connection interface {
	// URL returns the backend URL we are connected to
	URL() string

	// BlockNumber returns the current block number at head
	BlockNumber(ctx context.Context) (uint64, error)

	// BlockByNumber can be used to get a block by its number
	BlockByNumber(ctx context.Context, number uint64, full bool) (*eth.Block, error)

	// BlockByHash can be used to get a block by its hash
	BlockByHash(ctx context.Context, hash string, full bool) (*eth.Block, error)

	// eth_getTransactionByHash can be used to get transaction by its hash
	TransactionByHash(ctx context.Context, hash string) (*eth.Transaction, error)

	// Request method can be used by downstream consumers of ChangeEvent to make generic JSONRPC requests
	Request(ctx context.Context, r *jsonrpc.Request) (*jsonrpc.RawResponse, error)

	// Subscibe method can be used to make subscription requests
	Subscribe(ctx context.Context, r *jsonrpc.Request) (Subscription, error)

	// NewHeads subscription
	NewHeads(ctx context.Context) (Subscription, error)

	// NewPendingTransactions subscriptions
	NewPendingTransaction(ctx context.Context, full ...bool) (Subscription, error)

	// TransactionReceipt for a particular transaction
	TransactionReceipt(ctx context.Context, hash string) (*eth.TransactionReceipt, error)

	// GetLogs
	GetLogs(ctx context.Context, filter eth.LogFilter) ([]eth.Log, error)
}

Connection represents a websocket connection to a backend ethereum client node.

func NewConnection

func NewConnection(ctx context.Context, url string) (Connection, error)

NewConnection creates a Connection to the passed in URL. Use the supplied Context to shutdown the connection by cancelling or otherwise aborting the context.

type Subscription

type Subscription interface {
	Response() *jsonrpc.RawResponse
	ID() string
	Ch() chan *jsonrpc.Notification
	Unsubscribe(ctx context.Context) error
	Done() <-chan struct{}
	Err() error
}

type SubscriptionParams

type SubscriptionParams struct {
	Subscription string          `json:"subscription"`
	Result       json.RawMessage `json:"result"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL