client

package
v0.42.4 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2021 License: Apache-2.0 Imports: 40 Imported by: 16,153

Documentation

Index

Constants

View Source
const ClientContextKey = sdk.ContextKey("client.context")

ClientContextKey defines the context key used to retrieve a client.Context from a command's Context.

Variables

This section is empty.

Functions

func CheckTendermintError added in v0.40.0

func CheckTendermintError(err error, txBytes []byte) *sdk.TxResponse

CheckTendermintError checks if the error returned from BroadcastTx is a Tendermint error that is returned before the tx is submitted due to precondition checks that failed. If an Tendermint error is detected, this function returns the correct code back in TxResponse.

TODO: Avoid brittle string matching in favor of error matching. This requires a change to Tendermint's RPCError type to allow retrieval or matching against a concrete error type.

func GetFromFields added in v0.36.0

func GetFromFields(kr keyring.Keyring, from string, genOnly bool) (sdk.AccAddress, string, keyring.KeyType, error)

GetFromFields returns a from account address, account name and keyring type, given either an address or key name. If genOnly is true, only a valid Bech32 cosmos address is returned.

func Paginate

func Paginate(numObjs, page, limit, defLimit int) (start, end int)

Paginate returns the correct starting and ending index for a paginated query, given that client provides a desired page and limit of objects and the handler provides the total number of objects. The start page is assumed to be 1-indexed. If the start page is invalid, non-positive values are returned signaling the request is invalid; it returns non-positive values if limit is non-positive and defLimit is negative.

func ReadPageRequest added in v0.40.0

func ReadPageRequest(flagSet *pflag.FlagSet) (*query.PageRequest, error)

ReadPageRequest reads and builds the necessary page request flags for pagination.

func RunGRPCQuery added in v0.41.1

func RunGRPCQuery(ctx Context, grpcCtx gocontext.Context, method string, req interface{}, md metadata.MD) (abci.ResponseQuery, metadata.MD, error)

RunGRPCQuery runs a gRPC query from the clientCtx, given all necessary arguments for the gRPC method, and returns the ABCI response. It is used to factorize code between client (Invoke) and server (RegisterGRPCServer) gRPC handlers.

func SetCmdClientContext added in v0.40.0

func SetCmdClientContext(cmd *cobra.Command, clientCtx Context) error

SetCmdClientContext sets a command's Context value to the provided argument.

func SetCmdClientContextHandler added in v0.40.0

func SetCmdClientContextHandler(clientCtx Context, cmd *cobra.Command) (err error)

SetCmdClientContextHandler is to be used in a command pre-hook execution to read flags that populate a Context and sets that to the command's Context.

func TxServiceBroadcast added in v0.40.0

func TxServiceBroadcast(grpcCtx context.Context, clientCtx Context, req *tx.BroadcastTxRequest) (*tx.BroadcastTxResponse, error)

TxServiceBroadcast is a helper function to broadcast a Tx with the correct gRPC types from the tx service. Calls `clientCtx.BroadcastTx` under the hood.

func ValidateCmd

func ValidateCmd(cmd *cobra.Command, args []string) error

ValidateCmd returns unknown command error or Help display if help flag set

Types

type Account added in v0.40.0

type Account interface {
	GetAddress() sdk.AccAddress
	GetPubKey() cryptotypes.PubKey // can return nil.
	GetAccountNumber() uint64
	GetSequence() uint64
}

Account defines a read-only version of the auth module's AccountI.

type AccountRetriever added in v0.40.0

type AccountRetriever interface {
	GetAccount(clientCtx Context, addr sdk.AccAddress) (Account, error)
	GetAccountWithHeight(clientCtx Context, addr sdk.AccAddress) (Account, int64, error)
	EnsureExists(clientCtx Context, addr sdk.AccAddress) error
	GetAccountNumberSequence(clientCtx Context, addr sdk.AccAddress) (accNum uint64, accSeq uint64, err error)
}

AccountRetriever defines the interfaces required by transactions to ensure an account exists and to be able to query for account fields necessary for signing.

type Context added in v0.40.0

type Context struct {
	FromAddress       sdk.AccAddress
	Client            rpcclient.Client
	ChainID           string
	JSONMarshaler     codec.JSONMarshaler
	InterfaceRegistry codectypes.InterfaceRegistry
	Input             io.Reader
	Keyring           keyring.Keyring
	Output            io.Writer
	OutputFormat      string
	Height            int64
	HomeDir           string
	KeyringDir        string
	From              string
	BroadcastMode     string
	FromName          string
	SignModeStr       string
	UseLedger         bool
	Simulate          bool
	GenerateOnly      bool
	Offline           bool
	SkipConfirm       bool
	TxConfig          TxConfig
	AccountRetriever  AccountRetriever
	NodeURI           string

	// TODO: Deprecated (remove).
	LegacyAmino *codec.LegacyAmino
}

Context implements a typical context created in SDK modules for transaction handling and queries.

func GetClientContextFromCmd added in v0.40.0

func GetClientContextFromCmd(cmd *cobra.Command) Context

GetClientContextFromCmd returns a Context from a command or an empty Context if it has not been set.

func GetClientQueryContext added in v0.40.0

func GetClientQueryContext(cmd *cobra.Command) (Context, error)

GetClientQueryContext returns a Context from a command with fields set based on flags defined in AddQueryFlagsToCmd. An error is returned if any flag query fails.

- client.Context field not pre-populated & flag not set: uses default flag value - client.Context field not pre-populated & flag set: uses set flag value - client.Context field pre-populated & flag not set: uses pre-populated value - client.Context field pre-populated & flag set: uses set flag value

func GetClientTxContext added in v0.40.0

func GetClientTxContext(cmd *cobra.Command) (Context, error)

GetClientTxContext returns a Context from a command with fields set based on flags defined in AddTxFlagsToCmd. An error is returned if any flag query fails.

- client.Context field not pre-populated & flag not set: uses default flag value - client.Context field not pre-populated & flag set: uses set flag value - client.Context field pre-populated & flag not set: uses pre-populated value - client.Context field pre-populated & flag set: uses set flag value

func ReadPersistentCommandFlags added in v0.40.0

func ReadPersistentCommandFlags(clientCtx Context, flagSet *pflag.FlagSet) (Context, error)

ReadPersistentCommandFlags returns a Context with fields set for "persistent" or common flags that do not necessarily change with context.

Note, the provided clientCtx may have field pre-populated. The following order of precedence occurs:

- client.Context field not pre-populated & flag not set: uses default flag value - client.Context field not pre-populated & flag set: uses set flag value - client.Context field pre-populated & flag not set: uses pre-populated value - client.Context field pre-populated & flag set: uses set flag value

func (Context) BroadcastTx added in v0.40.0

func (ctx Context) BroadcastTx(txBytes []byte) (res *sdk.TxResponse, err error)

BroadcastTx broadcasts a transactions either synchronously or asynchronously based on the context parameters. The result of the broadcast is parsed into an intermediate structure which is logged if the context has a logger defined.

func (Context) BroadcastTxAsync added in v0.40.0

func (ctx Context) BroadcastTxAsync(txBytes []byte) (*sdk.TxResponse, error)

BroadcastTxAsync broadcasts transaction bytes to a Tendermint node asynchronously (i.e. returns immediately).

func (Context) BroadcastTxCommit added in v0.40.0

func (ctx Context) BroadcastTxCommit(txBytes []byte) (*sdk.TxResponse, error)

BroadcastTxCommit broadcasts transaction bytes to a Tendermint node and waits for a commit. An error is only returned if there is no RPC node connection or if broadcasting fails.

NOTE: This should ideally not be used as the request may timeout but the tx may still be included in a block. Use BroadcastTxAsync or BroadcastTxSync instead.

func (Context) BroadcastTxSync added in v0.40.0

func (ctx Context) BroadcastTxSync(txBytes []byte) (*sdk.TxResponse, error)

BroadcastTxSync broadcasts transaction bytes to a Tendermint node synchronously (i.e. returns after CheckTx execution).

func (Context) GetFromAddress added in v0.40.0

func (ctx Context) GetFromAddress() sdk.AccAddress

GetFromAddress returns the from address from the context's name.

func (Context) GetFromName added in v0.40.0

func (ctx Context) GetFromName() string

GetFromName returns the key name for the current context.

func (Context) GetNode added in v0.40.0

func (ctx Context) GetNode() (rpcclient.Client, error)

GetNode returns an RPC client. If the context's client is not defined, an error is returned.

func (Context) Invoke added in v0.40.0

func (ctx Context) Invoke(grpcCtx gocontext.Context, method string, req, reply interface{}, opts ...grpc.CallOption) (err error)

Invoke implements the grpc ClientConn.Invoke method

func (Context) NewStream added in v0.40.0

NewStream implements the grpc ClientConn.NewStream method

func (Context) PrintBytes added in v0.40.0

func (ctx Context) PrintBytes(o []byte) error

PrintBytes prints the raw bytes to ctx.Output if it's defined, otherwise to os.Stdout. NOTE: for printing a complex state object, you should use ctx.PrintOutput

func (Context) PrintObjectLegacy added in v0.40.0

func (ctx Context) PrintObjectLegacy(toPrint interface{}) error

PrintObjectLegacy is a variant of PrintProto that doesn't require a proto.Message type and uses amino JSON encoding. Deprecated: It will be removed in the near future!

func (Context) PrintProto added in v0.40.0

func (ctx Context) PrintProto(toPrint proto.Message) error

PrintProto outputs toPrint to the ctx.Output based on ctx.OutputFormat which is either text or json. If text, toPrint will be YAML encoded. Otherwise, toPrint will be JSON encoded using ctx.JSONMarshaler. An error is returned upon failure.

func (Context) PrintString added in v0.40.0

func (ctx Context) PrintString(str string) error

PrintString prints the raw string to ctx.Output if it's defined, otherwise to os.Stdout

func (Context) Query added in v0.40.0

func (ctx Context) Query(path string) ([]byte, int64, error)

Query performs a query to a Tendermint node with the provided path. It returns the result and height of the query upon success or an error if the query fails.

func (Context) QueryABCI added in v0.40.0

func (ctx Context) QueryABCI(req abci.RequestQuery) (abci.ResponseQuery, error)

QueryABCI performs a query to a Tendermint node with the provide RequestQuery. It returns the ResultQuery obtained from the query.

func (Context) QueryStore added in v0.40.0

func (ctx Context) QueryStore(key tmbytes.HexBytes, storeName string) ([]byte, int64, error)

QueryStore performs a query to a Tendermint node with the provided key and store name. It returns the result and height of the query upon success or an error if the query fails.

func (Context) QueryWithData added in v0.40.0

func (ctx Context) QueryWithData(path string, data []byte) ([]byte, int64, error)

QueryWithData performs a query to a Tendermint node with the provided path and a data payload. It returns the result and height of the query upon success or an error if the query fails.

func (Context) WithAccountRetriever added in v0.40.0

func (ctx Context) WithAccountRetriever(retriever AccountRetriever) Context

WithAccountRetriever returns the context with an updated AccountRetriever

func (Context) WithBroadcastMode added in v0.40.0

func (ctx Context) WithBroadcastMode(mode string) Context

WithBroadcastMode returns a copy of the context with an updated broadcast mode.

func (Context) WithChainID added in v0.40.0

func (ctx Context) WithChainID(chainID string) Context

WithChainID returns a copy of the context with an updated chain ID.

func (Context) WithClient added in v0.40.0

func (ctx Context) WithClient(client rpcclient.Client) Context

WithClient returns a copy of the context with an updated RPC client instance.

func (Context) WithFrom added in v0.40.0

func (ctx Context) WithFrom(from string) Context

WithFrom returns a copy of the context with an updated from address or name.

func (Context) WithFromAddress added in v0.40.0

func (ctx Context) WithFromAddress(addr sdk.AccAddress) Context

WithFromAddress returns a copy of the context with an updated from account address.

func (Context) WithFromName added in v0.40.0

func (ctx Context) WithFromName(name string) Context

WithFromName returns a copy of the context with an updated from account name.

func (Context) WithGenerateOnly added in v0.40.0

func (ctx Context) WithGenerateOnly(generateOnly bool) Context

WithGenerateOnly returns a copy of the context with updated GenerateOnly value

func (Context) WithHeight added in v0.40.0

func (ctx Context) WithHeight(height int64) Context

WithHeight returns a copy of the context with an updated height.

func (Context) WithHomeDir added in v0.40.0

func (ctx Context) WithHomeDir(dir string) Context

WithHomeDir returns a copy of the Context with HomeDir set.

func (Context) WithInput added in v0.40.0

func (ctx Context) WithInput(r io.Reader) Context

WithInput returns a copy of the context with an updated input.

func (Context) WithInterfaceRegistry added in v0.40.0

func (ctx Context) WithInterfaceRegistry(interfaceRegistry codectypes.InterfaceRegistry) Context

WithInterfaceRegistry returns the context with an updated InterfaceRegistry

func (Context) WithJSONMarshaler added in v0.40.0

func (ctx Context) WithJSONMarshaler(m codec.JSONMarshaler) Context

WithJSONMarshaler returns a copy of the Context with an updated JSONMarshaler.

func (Context) WithKeyring added in v0.40.0

func (ctx Context) WithKeyring(k keyring.Keyring) Context

WithKeyring returns a copy of the context with an updated keyring.

func (Context) WithKeyringDir added in v0.40.0

func (ctx Context) WithKeyringDir(dir string) Context

WithKeyringDir returns a copy of the Context with KeyringDir set.

func (Context) WithLegacyAmino added in v0.40.0

func (ctx Context) WithLegacyAmino(cdc *codec.LegacyAmino) Context

WithLegacyAmino returns a copy of the context with an updated LegacyAmino codec. TODO: Deprecated (remove).

func (Context) WithNodeURI added in v0.40.0

func (ctx Context) WithNodeURI(nodeURI string) Context

WithNodeURI returns a copy of the context with an updated node URI.

func (Context) WithOffline added in v0.40.0

func (ctx Context) WithOffline(offline bool) Context

WithOffline returns a copy of the context with updated Offline value.

func (Context) WithOutput added in v0.40.0

func (ctx Context) WithOutput(w io.Writer) Context

WithOutput returns a copy of the context with an updated output writer (e.g. stdout).

func (Context) WithOutputFormat added in v0.40.0

func (ctx Context) WithOutputFormat(format string) Context

WithOutputFormat returns a copy of the context with an updated OutputFormat field.

func (Context) WithSignModeStr added in v0.40.0

func (ctx Context) WithSignModeStr(signModeStr string) Context

WithSignModeStr returns a copy of the context with an updated SignMode value.

func (Context) WithSimulation added in v0.40.0

func (ctx Context) WithSimulation(simulate bool) Context

WithSimulation returns a copy of the context with updated Simulate value

func (Context) WithSkipConfirmation added in v0.40.0

func (ctx Context) WithSkipConfirmation(skip bool) Context

WithSkipConfirmation returns a copy of the context with an updated SkipConfirm value.

func (Context) WithTxConfig added in v0.40.0

func (ctx Context) WithTxConfig(generator TxConfig) Context

WithTxConfig returns the context with an updated TxConfig

func (Context) WithUseLedger added in v0.40.0

func (ctx Context) WithUseLedger(useLedger bool) Context

WithUseLedger returns a copy of the context with an updated UseLedger flag.

type TestAccount added in v0.40.0

type TestAccount struct {
	Address sdk.AccAddress
	Num     uint64
	Seq     uint64
}

TestAccount represents a client Account that can be used in unit tests

func (TestAccount) GetAccountNumber added in v0.40.0

func (t TestAccount) GetAccountNumber() uint64

GetAccountNumber implements client Account.GetAccountNumber

func (TestAccount) GetAddress added in v0.40.0

func (t TestAccount) GetAddress() sdk.AccAddress

GetAddress implements client Account.GetAddress

func (TestAccount) GetPubKey added in v0.40.0

func (t TestAccount) GetPubKey() cryptotypes.PubKey

GetPubKey implements client Account.GetPubKey

func (TestAccount) GetSequence added in v0.40.0

func (t TestAccount) GetSequence() uint64

GetSequence implements client Account.GetSequence

type TestAccountRetriever added in v0.40.0

type TestAccountRetriever struct {
	Accounts map[string]TestAccount
}

TestAccountRetriever is an AccountRetriever that can be used in unit tests

func (TestAccountRetriever) EnsureExists added in v0.40.0

func (t TestAccountRetriever) EnsureExists(_ Context, addr sdk.AccAddress) error

EnsureExists implements AccountRetriever.EnsureExists

func (TestAccountRetriever) GetAccount added in v0.40.0

func (t TestAccountRetriever) GetAccount(_ Context, addr sdk.AccAddress) (Account, error)

GetAccount implements AccountRetriever.GetAccount

func (TestAccountRetriever) GetAccountNumberSequence added in v0.40.0

func (t TestAccountRetriever) GetAccountNumberSequence(_ Context, addr sdk.AccAddress) (accNum uint64, accSeq uint64, err error)

GetAccountNumberSequence implements AccountRetriever.GetAccountNumberSequence

func (TestAccountRetriever) GetAccountWithHeight added in v0.40.0

func (t TestAccountRetriever) GetAccountWithHeight(clientCtx Context, addr sdk.AccAddress) (Account, int64, error)

GetAccountWithHeight implements AccountRetriever.GetAccountWithHeight

type TxBuilder added in v0.40.0

type TxBuilder interface {
	GetTx() signing.Tx

	SetMsgs(msgs ...sdk.Msg) error
	SetSignatures(signatures ...signingtypes.SignatureV2) error
	SetMemo(memo string)
	SetFeeAmount(amount sdk.Coins)
	SetGasLimit(limit uint64)
	SetTimeoutHeight(height uint64)
}

TxBuilder defines an interface which an application-defined concrete transaction type must implement. Namely, it must be able to set messages, generate signatures, and provide canonical bytes to sign over. The transaction must also know how to encode itself.

type TxConfig added in v0.40.0

type TxConfig interface {
	TxEncodingConfig

	NewTxBuilder() TxBuilder
	WrapTxBuilder(sdk.Tx) (TxBuilder, error)
	SignModeHandler() signing.SignModeHandler
}

TxConfig defines an interface a client can utilize to generate an application-defined concrete transaction type. The type returned must implement TxBuilder.

type TxEncodingConfig added in v0.40.0

type TxEncodingConfig interface {
	TxEncoder() sdk.TxEncoder
	TxDecoder() sdk.TxDecoder
	TxJSONEncoder() sdk.TxEncoder
	TxJSONDecoder() sdk.TxDecoder
	MarshalSignatureJSON([]signingtypes.SignatureV2) ([]byte, error)
	UnmarshalSignatureJSON([]byte) ([]signingtypes.SignatureV2, error)
}

TxEncodingConfig defines an interface that contains transaction encoders and decoders

Directories

Path Synopsis
module
docs
grpc
reflection
Package reflection is a reverse proxy.
Package reflection is a reverse proxy.
tmservice
Package tmservice is a reverse proxy.
Package tmservice is a reverse proxy.

Jump to

Keyboard shortcuts

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