Documentation ¶
Index ¶
- type Client
- func (c *Client) ABCIInfo(ctx context.Context) (*ctypes.ResultABCIInfo, error)
- func (c *Client) ABCIQuery(ctx context.Context, path string, data cmtbytes.HexBytes) (*ctypes.ResultABCIQuery, error)
- func (c *Client) ABCIQueryWithOptions(ctx context.Context, path string, data cmtbytes.HexBytes, ...) (*ctypes.ResultABCIQuery, error)
- func (c *Client) Block(ctx context.Context, height *int64) (*ctypes.ResultBlock, error)
- func (c *Client) BlockByHash(ctx context.Context, hash []byte) (*ctypes.ResultBlock, error)
- func (c *Client) BlockResults(ctx context.Context, height *int64) (*ctypes.ResultBlockResults, error)
- func (c *Client) BlockSearch(ctx context.Context, query string, page, perPage *int, orderBy string) (*ctypes.ResultBlockSearch, error)
- func (c *Client) BlockchainInfo(ctx context.Context, minHeight, maxHeight int64) (*ctypes.ResultBlockchainInfo, error)
- func (c *Client) BroadcastEvidence(ctx context.Context, ev types.Evidence) (*ctypes.ResultBroadcastEvidence, error)
- func (c *Client) BroadcastTxAsync(ctx context.Context, tx types.Tx) (*ctypes.ResultBroadcastTx, error)
- func (c *Client) BroadcastTxCommit(ctx context.Context, tx types.Tx) (*ctypes.ResultBroadcastTxCommit, error)
- func (c *Client) BroadcastTxSync(ctx context.Context, tx types.Tx) (*ctypes.ResultBroadcastTx, error)
- func (c *Client) CheckTx(ctx context.Context, tx types.Tx) (*ctypes.ResultCheckTx, error)
- func (c *Client) Commit(ctx context.Context, height *int64) (*ctypes.ResultCommit, error)
- func (c *Client) ConsensusParams(ctx context.Context, height *int64) (*ctypes.ResultConsensusParams, error)
- func (c *Client) ConsensusState(ctx context.Context) (*ctypes.ResultConsensusState, error)
- func (c *Client) DataCommitment(ctx context.Context, start uint64, end uint64) (*ctypes.ResultDataCommitment, error)
- func (c *Client) DataRootInclusionProof(ctx context.Context, height uint64, start uint64, end uint64) (*ctypes.ResultDataRootInclusionProof, error)
- func (c *Client) DumpConsensusState(ctx context.Context) (*ctypes.ResultDumpConsensusState, error)
- func (c *Client) Genesis(ctx context.Context) (*ctypes.ResultGenesis, error)
- func (c *Client) GenesisChunked(ctx context.Context, id uint) (*ctypes.ResultGenesisChunk, error)
- func (c *Client) Header(ctx context.Context, height *int64) (*ctypes.ResultHeader, error)
- func (c *Client) HeaderByHash(ctx context.Context, hash cmtbytes.HexBytes) (*ctypes.ResultHeader, error)
- func (c *Client) Health(ctx context.Context) (*ctypes.ResultHealth, error)
- func (c *Client) NetInfo(ctx context.Context) (*ctypes.ResultNetInfo, error)
- func (c *Client) NumUnconfirmedTxs(ctx context.Context) (*ctypes.ResultUnconfirmedTxs, error)
- func (c *Client) OnStart() error
- func (c *Client) OnStop()
- func (c *Client) ProveShares(ctx context.Context, height uint64, startShare uint64, endShare uint64) (types.ShareProof, error)
- func (c *Client) RegisterOpDecoder(typ string, dec merkle.OpDecoder)
- func (c *Client) SignedBlock(ctx context.Context, height *int64) (*ctypes.ResultSignedBlock, error)
- func (c *Client) Status(ctx context.Context) (*ctypes.ResultStatus, error)
- func (c *Client) Subscribe(ctx context.Context, subscriber, query string, outCapacity ...int) (out <-chan ctypes.ResultEvent, err error)
- func (c *Client) SubscribeWS(ctx *rpctypes.Context, query string) (*ctypes.ResultSubscribe, error)
- func (c *Client) Tx(ctx context.Context, hash []byte, prove bool) (*ctypes.ResultTx, error)
- func (c *Client) TxSearch(ctx context.Context, query string, prove bool, page, perPage *int, ...) (*ctypes.ResultTxSearch, error)
- func (c *Client) UnconfirmedTxs(ctx context.Context, limit *int) (*ctypes.ResultUnconfirmedTxs, error)
- func (c *Client) Unsubscribe(ctx context.Context, subscriber, query string) error
- func (c *Client) UnsubscribeAll(ctx context.Context, subscriber string) error
- func (c *Client) UnsubscribeAllWS(ctx *rpctypes.Context) (*ctypes.ResultUnsubscribe, error)
- func (c *Client) UnsubscribeWS(ctx *rpctypes.Context, query string) (*ctypes.ResultUnsubscribe, error)
- func (c *Client) Validators(ctx context.Context, height *int64, pagePtr, perPagePtr *int) (*ctypes.ResultValidators, error)
- type KeyPathFunc
- type LightClient
- type Option
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { service.BaseService // 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) ABCIQuery ¶
func (c *Client) ABCIQuery(ctx context.Context, path string, data cmtbytes.HexBytes) (*ctypes.ResultABCIQuery, error)
ABCIQuery requests proof by default.
func (*Client) ABCIQueryWithOptions ¶
func (c *Client) ABCIQueryWithOptions(ctx context.Context, path string, data cmtbytes.HexBytes, opts rpcclient.ABCIQueryOptions) (*ctypes.ResultABCIQuery, error)
ABCIQueryWithOptions returns an error if opts.Prove is false.
func (*Client) BlockByHash ¶
BlockByHash calls rpcclient#BlockByHash and then verifies the result.
func (*Client) BlockResults ¶
func (c *Client) BlockResults(ctx context.Context, height *int64) (*ctypes.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 ¶
func (*Client) BlockchainInfo ¶
func (c *Client) BlockchainInfo(ctx context.Context, minHeight, maxHeight int64) (*ctypes.ResultBlockchainInfo, error)
BlockchainInfo calls rpcclient#BlockchainInfo and then verifies every header returned.
func (*Client) BroadcastEvidence ¶
func (*Client) BroadcastTxAsync ¶
func (*Client) BroadcastTxCommit ¶
func (*Client) BroadcastTxSync ¶
func (*Client) ConsensusParams ¶
func (*Client) ConsensusState ¶
func (*Client) DataCommitment ¶
func (*Client) DataRootInclusionProof ¶
func (c *Client) DataRootInclusionProof( ctx context.Context, height uint64, start uint64, end uint64, ) (*ctypes.ResultDataRootInclusionProof, error)
DataRootInclusionProof calls rpcclient#DataRootInclusionProof method and returns a merkle proof for the data root of block height `height` to the set of blocks defined by `start` and `end`.
func (*Client) DumpConsensusState ¶
func (*Client) GenesisChunked ¶
func (*Client) HeaderByHash ¶
func (c *Client) HeaderByHash(ctx context.Context, hash cmtbytes.HexBytes) (*ctypes.ResultHeader, error)
HeaderByHash calls rpcclient#HeaderByHash and updates the client if it's falling behind.
func (*Client) NumUnconfirmedTxs ¶
func (*Client) ProveShares ¶
func (c *Client) ProveShares( ctx context.Context, height uint64, startShare uint64, endShare uint64, ) (types.ShareProof, error)
ProveShares calls rpcclient#ProveShares method and returns an NMT proof for a set of shares, defined by `startShare` and `endShare`, to the corresponding rows. Then, a binary merkle inclusion proof from the latter rows to the data root.
func (*Client) RegisterOpDecoder ¶
func (*Client) SignedBlock ¶
SignedBlock calls rpcclient#SignedBlock and then verifies the result.
func (*Client) SubscribeWS ¶
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) UnconfirmedTxs ¶
func (*Client) Unsubscribe ¶
func (*Client) UnsubscribeAll ¶
func (*Client) UnsubscribeAllWS ¶
UnsubscribeAllWS calls original client's UnsubscribeAll using remote address as a subscriber.
func (*Client) UnsubscribeWS ¶
func (c *Client) UnsubscribeWS(ctx *rpctypes.Context, query string) (*ctypes.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, ) (*ctypes.ResultValidators, error)
Validators fetches and verifies validators.
type KeyPathFunc ¶
KeyPathFunc builds a merkle path out of the given path and key.
func DefaultMerkleKeyPathFn ¶
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.