Version: v0.35.0 Latest Latest

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

Go to latest
Published: Nov 4, 2021 License: Apache-2.0 Imports: 16 Imported by: 14




This section is empty.


This section is empty.


This section is empty.


type Client

type Client struct {
	// contains filtered or unexported fields

Client is an RPC client, which uses light#Client to verify data (if it can be proved). Note, merkle.DefaultProofRuntime is used to verify values returned by ABCI#Query.

func NewClient

func NewClient(next rpcclient.Client, lc LightClient, opts ...Option) *Client

NewClient returns a new client.

func (*Client) ABCIInfo

func (c *Client) ABCIInfo(ctx context.Context) (*coretypes.ResultABCIInfo, error)

func (*Client) ABCIQuery

func (c *Client) ABCIQuery(ctx context.Context, path string, data tmbytes.HexBytes) (*coretypes.ResultABCIQuery, error)

ABCIQuery requests proof by default.

func (*Client) ABCIQueryWithOptions

func (c *Client) ABCIQueryWithOptions(ctx context.Context, path string, data tmbytes.HexBytes,
	opts rpcclient.ABCIQueryOptions) (*coretypes.ResultABCIQuery, error)

ABCIQueryWithOptions returns an error if opts.Prove is false.

func (*Client) Block

func (c *Client) Block(ctx context.Context, height *int64) (*coretypes.ResultBlock, error)

Block calls rpcclient#Block and then verifies the result.

func (*Client) BlockByHash

func (c *Client) BlockByHash(ctx context.Context, hash tmbytes.HexBytes) (*coretypes.ResultBlock, error)

BlockByHash calls rpcclient#BlockByHash and then verifies the result.

func (*Client) BlockResults

func (c *Client) BlockResults(ctx context.Context, height *int64) (*coretypes.ResultBlockResults, error)

BlockResults returns the block results for the given height. If no height is provided, the results of the block preceding the latest are returned.

func (*Client) BlockSearch added in v0.34.9

func (c *Client) BlockSearch(
	ctx context.Context,
	query string,
	page, perPage *int,
	orderBy string,
) (*coretypes.ResultBlockSearch, error)

func (*Client) BlockchainInfo

func (c *Client) BlockchainInfo(ctx context.Context, minHeight, maxHeight int64) (*coretypes.ResultBlockchainInfo, error)

BlockchainInfo calls rpcclient#BlockchainInfo and then verifies every header returned.

func (*Client) BroadcastEvidence

func (c *Client) BroadcastEvidence(ctx context.Context, ev types.Evidence) (*coretypes.ResultBroadcastEvidence, error)

func (*Client) BroadcastTxAsync

func (c *Client) BroadcastTxAsync(ctx context.Context, tx types.Tx) (*coretypes.ResultBroadcastTx, error)

func (*Client) BroadcastTxCommit

func (c *Client) BroadcastTxCommit(ctx context.Context, tx types.Tx) (*coretypes.ResultBroadcastTxCommit, error)

func (*Client) BroadcastTxSync

func (c *Client) BroadcastTxSync(ctx context.Context, tx types.Tx) (*coretypes.ResultBroadcastTx, error)

func (*Client) CheckTx

func (c *Client) CheckTx(ctx context.Context, tx types.Tx) (*coretypes.ResultCheckTx, error)

func (*Client) Commit

func (c *Client) Commit(ctx context.Context, height *int64) (*coretypes.ResultCommit, error)

func (*Client) ConsensusParams

func (c *Client) ConsensusParams(ctx context.Context, height *int64) (*coretypes.ResultConsensusParams, error)

func (*Client) ConsensusState

func (c *Client) ConsensusState(ctx context.Context) (*coretypes.ResultConsensusState, error)

func (*Client) DumpConsensusState

func (c *Client) DumpConsensusState(ctx context.Context) (*coretypes.ResultDumpConsensusState, error)

func (*Client) Genesis

func (c *Client) Genesis(ctx context.Context) (*coretypes.ResultGenesis, error)

func (*Client) GenesisChunked added in v0.34.12

func (c *Client) GenesisChunked(ctx context.Context, id uint) (*coretypes.ResultGenesisChunk, error)

func (*Client) Health

func (c *Client) Health(ctx context.Context) (*coretypes.ResultHealth, error)

func (*Client) NetInfo

func (c *Client) NetInfo(ctx context.Context) (*coretypes.ResultNetInfo, error)

func (*Client) NumUnconfirmedTxs

func (c *Client) NumUnconfirmedTxs(ctx context.Context) (*coretypes.ResultUnconfirmedTxs, error)

func (*Client) OnStart

func (c *Client) OnStart() error

func (*Client) OnStop

func (c *Client) OnStop()

func (*Client) RegisterOpDecoder

func (c *Client) RegisterOpDecoder(typ string, dec merkle.OpDecoder)

func (*Client) RemoveTx added in v0.35.0

func (c *Client) RemoveTx(ctx context.Context, txKey types.TxKey) error

func (*Client) Status

func (c *Client) Status(ctx context.Context) (*coretypes.ResultStatus, error)

func (*Client) Subscribe

func (c *Client) Subscribe(ctx context.Context, subscriber, query string,
	outCapacity ...int) (out <-chan coretypes.ResultEvent, err error)

func (*Client) SubscribeWS

func (c *Client) SubscribeWS(ctx *rpctypes.Context, query string) (*coretypes.ResultSubscribe, error)

SubscribeWS subscribes for events using the given query and remote address as a subscriber, but does not verify responses (UNSAFE)! TODO: verify data

func (*Client) Tx

func (c *Client) Tx(ctx context.Context, hash tmbytes.HexBytes, prove bool) (*coretypes.ResultTx, error)

Tx calls rpcclient#Tx method and then verifies the proof if such was requested.

func (*Client) TxSearch

func (c *Client) TxSearch(
	ctx context.Context,
	query string,
	prove bool,
	page, perPage *int,
	orderBy string,
) (*coretypes.ResultTxSearch, error)

func (*Client) UnconfirmedTxs

func (c *Client) UnconfirmedTxs(ctx context.Context, limit *int) (*coretypes.ResultUnconfirmedTxs, error)

func (*Client) Unsubscribe

func (c *Client) Unsubscribe(ctx context.Context, subscriber, query string) error

func (*Client) UnsubscribeAll

func (c *Client) UnsubscribeAll(ctx context.Context, subscriber string) error

func (*Client) UnsubscribeAllWS

func (c *Client) UnsubscribeAllWS(ctx *rpctypes.Context) (*coretypes.ResultUnsubscribe, error)

UnsubscribeAllWS calls original client's UnsubscribeAll using remote address as a subscriber.

func (*Client) UnsubscribeWS

func (c *Client) UnsubscribeWS(ctx *rpctypes.Context, query string) (*coretypes.ResultUnsubscribe, error)

UnsubscribeWS calls original client's Unsubscribe using remote address as a subscriber.

func (*Client) Validators

func (c *Client) Validators(
	ctx context.Context,
	height *int64,
	pagePtr, perPagePtr *int,
) (*coretypes.ResultValidators, error)

Validators fetches and verifies validators.

type KeyPathFunc

type KeyPathFunc func(path string, key []byte) (merkle.KeyPath, error)

KeyPathFunc builds a merkle path out of the given path and key.

func DefaultMerkleKeyPathFn added in v0.34.9

func DefaultMerkleKeyPathFn() KeyPathFunc

DefaultMerkleKeyPathFn creates a function used to generate merkle key paths from a path string and a key. This is the default used by the cosmos SDK. This merkle key paths are required when verifying /abci_query calls

type LightClient

type LightClient interface {
	ChainID() string
	Update(ctx context.Context, now time.Time) (*types.LightBlock, error)
	VerifyLightBlockAtHeight(ctx context.Context, height int64, now time.Time) (*types.LightBlock, error)
	TrustedLightBlock(height int64) (*types.LightBlock, error)

LightClient is an interface that contains functionality needed by Client from the light client.

type Option

type Option func(*Client)

Option allow you to tweak Client.

func KeyPathFn

func KeyPathFn(fn KeyPathFunc) Option

KeyPathFn option can be used to set a function, which parses a given path and builds the merkle path for the prover. It must be provided if you want to call ABCIQuery or ABCIQueryWithOptions.

Source Files


Path Synopsis

Jump to

Keyboard shortcuts

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