Documentation ¶
Overview ¶
package client is responsible for easily interacting with the protobuf API in Go. It contains wrappers for all the rpc methods that accept standard go-ethereum objects.
Index ¶
- Constants
- func SetLevel(level int) error
- type Block
- type Client
- func (c *Client) Close() error
- func (c *Client) Connect(ctx context.Context) error
- func (c *Client) SendRawTransaction(ctx context.Context, rawTx []byte) (string, int64, error)
- func (c *Client) SendRawTransactionSequence(ctx context.Context, rawTransactions ...[]byte) ([]string, int64, error)
- func (c *Client) SendTransaction(ctx context.Context, tx *types.Transaction) (string, int64, error)
- func (c *Client) SendTransactionSequence(ctx context.Context, transactions ...*types.Transaction) ([]string, int64, error)
- func (c *Client) SubmitBlock(ctx context.Context, sszBlock []byte) (uint64, []byte, uint64, error)
- func (c *Client) SubscribeNewBeaconBlocks(ch chan<- *SignedBeaconBlock) error
- func (c *Client) SubscribeNewBlobTxs(ch chan<- *TransactionWithSender) error
- func (c *Client) SubscribeNewExecutionPayloads(ch chan<- *Block) error
- func (c *Client) SubscribeNewRawBeaconBlocks(ch chan<- []byte) error
- func (c *Client) SubscribeNewRawTxs(filter *filter.Filter, ch chan<- *RawTransactionWithSender) error
- func (c *Client) SubscribeNewTxs(filter *filter.Filter, ch chan<- *TransactionWithSender) error
- type ClientConfig
- func (c *ClientConfig) EnableCompression() *ClientConfig
- func (c *ClientConfig) SetConnWindowSize(size int32) *ClientConfig
- func (c *ClientConfig) SetReadBufferSize(size int) *ClientConfig
- func (c *ClientConfig) SetWindowSize(size int32) *ClientConfig
- func (c *ClientConfig) SetWriteBufferSize(size int) *ClientConfig
- type MultiplexClient
- func (mc *MultiplexClient) Close() error
- func (mc *MultiplexClient) Connect(ctx context.Context) error
- func (mc *MultiplexClient) SendRawTransaction(ctx context.Context, rawTx []byte) (string, int64, error)
- func (mc *MultiplexClient) SendRawTransactionSequence(ctx context.Context, transactions ...[]byte) ([]string, int64, error)
- func (mc *MultiplexClient) SendTransaction(ctx context.Context, tx *types.Transaction) (string, int64, error)
- func (mc *MultiplexClient) SendTransactionSequence(ctx context.Context, transactions ...*types.Transaction) ([]string, int64, error)
- func (mc *MultiplexClient) SubscribeNewBeaconBlocks(ch chan<- *SignedBeaconBlock) error
- func (mc *MultiplexClient) SubscribeNewExecutionPayloads(ch chan<- *Block) error
- func (mc *MultiplexClient) SubscribeNewTxs(filter *filter.Filter, ch chan<- *TransactionWithSender) error
- type RawTransactionWithSender
- type SignedBeaconBlock
- type TransactionWithSender
Constants ¶
const DataVersionBellatrix uint32 = 3
const DataVersionCapella uint32 = 4
const DataVersionDeneb uint32 = 5
const Name = "gzip"
Name is the name registered for the gzip compressor.
const Version string = "fiber-go/1.9.1"
Client version string that is appended to each stream request.
Variables ¶
This section is empty.
Functions ¶
func SetLevel ¶ added in v1.8.2
SetLevel updates the registered gzip compressor to use the compression level specified (gzip.HuffmanOnly is not supported). NOTE: this function must only be called during initialization time (i.e. in an init() function), and is not thread-safe.
The error returned will be nil if the specified level is valid.
Types ¶
type Block ¶ added in v1.5.0
type Block struct { Hash common.Hash Header *types.Header Transactions []*types.Transaction Withdrawals []*types.Withdrawal }
Helper type that wraps go-ethereum core primitives for an Ethereum block, such as Header, Transactions and Withdrawals.
func DecodeBellatrixExecutionPayload ¶ added in v1.9.0
func DecodeBellatrixExecutionPayload(input *api.ExecutionPayloadMsg) (*Block, error)
func DecodeCapellaExecutionPayload ¶ added in v1.9.0
func DecodeCapellaExecutionPayload(input *api.ExecutionPayloadMsg) (*Block, error)
func DecodeDenebExecutionPayload ¶ added in v1.9.0
func DecodeDenebExecutionPayload(input *api.ExecutionPayloadMsg) (*Block, error)
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClientWithConfig ¶ added in v1.8.2
func NewClientWithConfig(target, apiKey string, config *ClientConfig) *Client
NewClientWithConfig creates a new client with the given config.
func (*Client) Close ¶
Close closes all the streams and then the underlying connection. IMPORTANT: you should call this to ensure correct API accounting.
func (*Client) Connect ¶
Connects sets up the gRPC channel and creates the stub. It blocks until connected or the given context expires. Always use a context with timeout.
func (*Client) SendRawTransaction ¶
SendRawTransaction sends the RLP-encoded transaction to Fibernet and returns the hash and a timestamp (us).
func (*Client) SendRawTransactionSequence ¶ added in v1.5.0
func (c *Client) SendRawTransactionSequence(ctx context.Context, rawTransactions ...[]byte) ([]string, int64, error)
SendRawTransactionSequence sends a sequence of RLP-encoded transactions to Fibernet and returns the hashes and a timestamp (us).
func (*Client) SendTransaction ¶
SendTransaction sends the (signed) transaction to Fibernet and returns the hash and a timestamp (us). It blocks until the transaction was sent.
func (*Client) SendTransactionSequence ¶ added in v1.5.0
func (c *Client) SendTransactionSequence(ctx context.Context, transactions ...*types.Transaction) ([]string, int64, error)
SendTransactionSequence sends a sequence of transactions to Fibernet and returns the hashes and a timestamp (us).
func (*Client) SubmitBlock ¶ added in v1.8.0
SubmitBlock submits an SSZ encoded signed block to Fiber and returns the slot, state root and timestamp (us).
func (*Client) SubscribeNewBeaconBlocks ¶ added in v1.6.0
func (c *Client) SubscribeNewBeaconBlocks(ch chan<- *SignedBeaconBlock) error
SubscribeNewBeaconBlocks subscribes to new beacon blocks, and sends blocks on the given channel. This function blocks and should be called in a goroutine. If there's an error receiving the new message it will close the channel and return the error.
func (*Client) SubscribeNewBlobTxs ¶ added in v1.9.1
func (c *Client) SubscribeNewBlobTxs(ch chan<- *TransactionWithSender) error
func (*Client) SubscribeNewExecutionPayloads ¶ added in v1.6.0
SubscribeNewBlocks subscribes to new execution payloads, and sends blocks on the given channel. This function blocks and should be called in a goroutine. If there's an error receiving the new message it will close the channel and return the error.
func (*Client) SubscribeNewRawBeaconBlocks ¶ added in v1.9.0
SubscribeNewRawBeaconBlocks subscribes to new SSZ-encoded raw signed beacon blocks, and sends blocks on the given channel. This function blocks and should be called in a goroutine. If there's an error receiving the new message it will close the channel and return the error.
func (*Client) SubscribeNewRawTxs ¶ added in v1.9.0
func (c *Client) SubscribeNewRawTxs(filter *filter.Filter, ch chan<- *RawTransactionWithSender) error
SubscribeNewRawTxs subscribes to new RLP-encoded transaction bytes, and sends transactions on the given channel according to the filter. This function blocks and should be called in a goroutine. If there's an error receiving the new message it will close the channel and return the error.
func (*Client) SubscribeNewTxs ¶
func (c *Client) SubscribeNewTxs(filter *filter.Filter, ch chan<- *TransactionWithSender) error
SubscribeNewTxs subscribes to new transactions, and sends transactions on the given channel according to the filter. This function blocks and should be called in a goroutine. If there's an error receiving the new message it will close the channel and return the error.
type ClientConfig ¶ added in v1.8.2
type ClientConfig struct {
// contains filtered or unexported fields
}
func NewConfig ¶ added in v1.8.2
func NewConfig() *ClientConfig
NewConfig creates a new config with sensible default values.
func (*ClientConfig) EnableCompression ¶ added in v1.8.2
func (c *ClientConfig) EnableCompression() *ClientConfig
func (*ClientConfig) SetConnWindowSize ¶ added in v1.8.2
func (c *ClientConfig) SetConnWindowSize(size int32) *ClientConfig
func (*ClientConfig) SetReadBufferSize ¶ added in v1.8.2
func (c *ClientConfig) SetReadBufferSize(size int) *ClientConfig
func (*ClientConfig) SetWindowSize ¶ added in v1.8.2
func (c *ClientConfig) SetWindowSize(size int32) *ClientConfig
func (*ClientConfig) SetWriteBufferSize ¶ added in v1.8.2
func (c *ClientConfig) SetWriteBufferSize(size int) *ClientConfig
type MultiplexClient ¶ added in v1.7.3
type MultiplexClient struct {
// contains filtered or unexported fields
}
func NewMultiplexClient ¶ added in v1.7.3
func NewMultiplexClient(targets []string, apiKey string) *MultiplexClient
Returns a new multiplex client with the given targets.
func (*MultiplexClient) Close ¶ added in v1.7.3
func (mc *MultiplexClient) Close() error
func (*MultiplexClient) Connect ¶ added in v1.7.3
func (mc *MultiplexClient) Connect(ctx context.Context) error
Connects all the underlying clients concurrently. It blocks until the connection succeeds / fails, or the given context expires.
func (*MultiplexClient) SendRawTransaction ¶ added in v1.7.3
func (mc *MultiplexClient) SendRawTransaction(ctx context.Context, rawTx []byte) (string, int64, error)
SendRawTransaction sends the RLP encoded, signed transaction on all clients, and returns the first response it receives.
func (*MultiplexClient) SendRawTransactionSequence ¶ added in v1.7.3
func (*MultiplexClient) SendTransaction ¶ added in v1.7.3
func (mc *MultiplexClient) SendTransaction(ctx context.Context, tx *types.Transaction) (string, int64, error)
SendTransaction sends the (signed) transaction on all clients, and returns the first response it receives.
func (*MultiplexClient) SendTransactionSequence ¶ added in v1.7.3
func (mc *MultiplexClient) SendTransactionSequence(ctx context.Context, transactions ...*types.Transaction) ([]string, int64, error)
func (*MultiplexClient) SubscribeNewBeaconBlocks ¶ added in v1.7.3
func (mc *MultiplexClient) SubscribeNewBeaconBlocks(ch chan<- *SignedBeaconBlock) error
SubscribeNewBeaconHeaders subscribes to new beacon headers, and sends headers on the given channel. This function blocks and should be called in a goroutine. It multiplexes the subscription across all clients.
func (*MultiplexClient) SubscribeNewExecutionPayloads ¶ added in v1.7.3
func (mc *MultiplexClient) SubscribeNewExecutionPayloads(ch chan<- *Block) error
SubscribeNewBeaconHeaders subscribes to new beacon headers, and sends headers on the given channel. This function blocks and should be called in a goroutine. It multiplexes the subscription across all clients.
func (*MultiplexClient) SubscribeNewTxs ¶ added in v1.7.3
func (mc *MultiplexClient) SubscribeNewTxs(filter *filter.Filter, ch chan<- *TransactionWithSender) error
SubscribeNewTxs subscribes to new transactions, and sends transactions on the given channel according to the filter. This function blocks and should be called in a goroutine. If there's an error receiving the new message it will close the channel and return the error. It multiplexes the subscription across all clients.
type RawTransactionWithSender ¶ added in v1.9.0
Helper type that wraps a raw, RLP-encoded transaction and its sender.
The sender address is included separately even though it could be calculated via ECDSA recovery from the raw RLP transaction bytes. The reason for this is that the recovery process is CPU-bound and takes time (order of magnitude of ~200 μs)
type SignedBeaconBlock ¶ added in v1.9.0
type SignedBeaconBlock struct { DataVersion uint32 Bellatrix *bellatrix.SignedBeaconBlock Capella *capella.SignedBeaconBlock Deneb *deneb.SignedBeaconBlock }
Helper type that wraps a signed beacon block from any of the supported hard-forks.
This type will either contain a Bellatrix, Capella, or Deneb signed beacon block.
DataVersion is used to indicate which type of payload is contained in the struct: 3: Bellatrix, 4: Capella, 5: Deneb
func (*SignedBeaconBlock) BlockHash ¶ added in v1.9.0
func (bb *SignedBeaconBlock) BlockHash() []byte
func (*SignedBeaconBlock) Slot ¶ added in v1.9.0
func (bb *SignedBeaconBlock) Slot() phase0.Slot
func (*SignedBeaconBlock) StateRoot ¶ added in v1.9.0
func (bb *SignedBeaconBlock) StateRoot() common.Hash
type TransactionWithSender ¶ added in v1.9.0
type TransactionWithSender struct { Sender *common.Address Transaction *types.Transaction }
Helper type that wraps a transaction and its sender.
The sender address is included separately even though it could be calculated via ECDSA recovery from the raw RLP transaction bytes. The reason for this is that the recovery process is CPU-bound and takes time (order of magnitude of ~200 μs)