electrs

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2024 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrBlockNotOnDisk = NewBlockNotOnDiskError(errors.New("block not on disk"))
	ErrNoTxAtPosition = NewNoTxAtPositionError(errors.New("no tx at position"))
)

Functions

This section is empty.

Types

type Balance

type Balance struct {
	Confirmed   uint64 `json:"confirmed"`
	Unconfirmed int64  `json:"unconfirmed"`
}

type BlockNotOnDiskError

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

func NewBlockNotOnDiskError

func NewBlockNotOnDiskError(err error) BlockNotOnDiskError

func (BlockNotOnDiskError) Error

func (e BlockNotOnDiskError) Error() string

func (BlockNotOnDiskError) Is

func (e BlockNotOnDiskError) Is(target error) bool

func (BlockNotOnDiskError) Unwrap

func (e BlockNotOnDiskError) Unwrap() error

type Client

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

Client implements an electrs JSON RPC client.

func NewClient

func NewClient(address string, opts *ClientOptions) (*Client, error)

NewClient returns an initialised electrs client.

func (*Client) Balance

func (c *Client) Balance(ctx context.Context, scriptHash []byte) (*Balance, error)

func (*Client) Broadcast

func (c *Client) Broadcast(ctx context.Context, rtx []byte) ([]byte, error)

func (*Client) Close

func (c *Client) Close() error

Close closes the client.

func (*Client) Height

func (c *Client) Height(ctx context.Context) (uint64, error)

func (*Client) Metrics

func (c *Client) Metrics() []prometheus.Collector

Metrics returns Prometheus metric collectors for the client.

func (*Client) RawBlockHeader

func (c *Client) RawBlockHeader(ctx context.Context, height uint64) (*bitcoin.BlockHeader, error)

func (*Client) RawTransaction

func (c *Client) RawTransaction(ctx context.Context, txHash []byte) ([]byte, error)

func (*Client) Transaction

func (c *Client) Transaction(ctx context.Context, txHash []byte) ([]byte, error)

func (*Client) TransactionAtPosition

func (c *Client) TransactionAtPosition(ctx context.Context, height, index uint64) ([]byte, []string, error)

func (*Client) UTXOs

func (c *Client) UTXOs(ctx context.Context, scriptHash []byte) ([]*UTXO, error)

type ClientOptions

type ClientOptions struct {
	// InitialConnections is the number of initial Electrs connections to open
	// and keep in the pool.
	InitialConnections int

	// MaxConnections is the maximum number of Electrs connections to keep in
	// the pool.
	//
	// If adding a connection back to the pool would result in the pool having
	// more connections than this value, the connection will be closed instead
	// of being added to the pool.
	MaxConnections int

	// PromNamespace is the application Prometheus namespace.
	PromNamespace string
}

type HeaderNotification

type HeaderNotification struct {
	Height       uint64 `json:"height"`
	BinaryHeader string `json:"hex"`
}

type JSONRPCError

type JSONRPCError struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
}

func NewJSONRPCError

func NewJSONRPCError(code int, msg string) *JSONRPCError

type JSONRPCRequest

type JSONRPCRequest struct {
	JSONRPC string          `json:"jsonrpc"`
	Method  string          `json:"method"`
	Params  json.RawMessage `json:"params,omitempty"`
	ID      uint64          `json:"id"`
}

func NewJSONRPCRequest

func NewJSONRPCRequest(id uint64, method string, params any) (*JSONRPCRequest, error)

NewJSONRPCRequest creates a new JSONRPCRequest.

type JSONRPCResponse

type JSONRPCResponse struct {
	JSONRPC string          `json:"jsonrpc"`
	Error   string          `json:"error,omitempty"`
	Result  json.RawMessage `json:"result"`
	ID      uint64          `json:"id"`
}

type NoTxAtPositionError

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

func NewNoTxAtPositionError

func NewNoTxAtPositionError(err error) NoTxAtPositionError

func (NoTxAtPositionError) Error

func (e NoTxAtPositionError) Error() string

func (NoTxAtPositionError) Is

func (e NoTxAtPositionError) Is(target error) bool

func (NoTxAtPositionError) Unwrap

func (e NoTxAtPositionError) Unwrap() error

type RPCError

type RPCError string

func (RPCError) Error

func (e RPCError) Error() string

type UTXO

type UTXO struct {
	Hash   []byte
	Height uint64
	Index  uint32
	Value  int64
}

Jump to

Keyboard shortcuts

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