cosmos-sdk: github.com/cosmos/cosmos-sdk/client Index | Files | Directories

package client

import "github.com/cosmos/cosmos-sdk/client"

Index

Package Files

account_retriever.go broadcast.go cmd.go context.go errors.go grpc_query.go query.go test_helpers.go tx_config.go utils.go

Constants

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

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

func CheckTendermintError Uses

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 ErrInvalidAccount Uses

func ErrInvalidAccount(addr sdk.AccAddress) error

ErrInvalidAccount returns a standardized error reflecting that a given account address does not exist.

func ErrVerifyCommit Uses

func ErrVerifyCommit(height int64) error

ErrVerifyCommit returns a common error reflecting that the blockchain commit at a given height can't be verified. The reason is that the base checkpoint of the certifier is newer than the given height

func GetFromFields Uses

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

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

func Paginate Uses

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 Uses

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

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

func SetCmdClientContext Uses

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

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

func SetCmdClientContextHandler Uses

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 ValidateCmd Uses

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

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

type AccountRetriever Uses

type AccountRetriever interface {
    EnsureExists(nodeQuerier NodeQuerier, addr types.AccAddress) error
    GetAccountNumberSequence(nodeQuerier NodeQuerier, addr types.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 Uses

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
    From              string
    BroadcastMode     string
    FromName          string
    UseLedger         bool
    Simulate          bool
    GenerateOnly      bool
    Offline           bool
    SkipConfirm       bool
    TxConfig          TxConfig
    AccountRetriever  AccountRetriever
    NodeURI           string

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

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

func GetClientContextFromCmd Uses

func GetClientContextFromCmd(cmd *cobra.Command) Context

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

func ReadPersistentCommandFlags Uses

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 ReadQueryCommandFlags Uses

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

ReadQueryCommandFlags returns an updated Context with fields set based on flags defined in AddQueryFlagsToCmd. An error is returned if any flag query fails.

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 ReadTxCommandFlags Uses

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

ReadTxCommandFlags returns an updated Context with fields set based on flags defined in AddTxFlagsToCmd. An error is returned if any flag query fails.

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

func (ctx Context) GetFromAddress() sdk.AccAddress

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

func (Context) GetFromName Uses

func (ctx Context) GetFromName() string

GetFromName returns the key name for the current context.

func (Context) GetNode Uses

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 Uses

func (ctx Context) Invoke(_ gocontext.Context, method string, args, reply interface{}, _ ...grpc.CallOption) error

Invoke implements the grpc ClientConn.Invoke method

func (Context) NewStream Uses

func (Context) NewStream(gocontext.Context, *grpc.StreamDesc, string, ...grpc.CallOption) (grpc.ClientStream, error)

NewStream implements the grpc ClientConn.NewStream method

func (Context) PrintOutput Uses

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

PrintOutput 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 Uses

func (ctx Context) PrintString(str string) error

PrintString prints the raw string to ctx.Output or os.Stdout

func (Context) Query Uses

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 Uses

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 Uses

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) QuerySubspace Uses

func (ctx Context) QuerySubspace(subspace []byte, storeName string) (res []sdk.KVPair, height int64, err error)

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

func (Context) QueryWithData Uses

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 Uses

func (ctx Context) WithAccountRetriever(retriever AccountRetriever) Context

WithAccountRetriever returns the context with an updated AccountRetriever

func (Context) WithBroadcastMode Uses

func (ctx Context) WithBroadcastMode(mode string) Context

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

func (Context) WithChainID Uses

func (ctx Context) WithChainID(chainID string) Context

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

func (Context) WithClient Uses

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

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

func (Context) WithCodec Uses

func (ctx Context) WithCodec(cdc *codec.Codec) Context

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

func (Context) WithFrom Uses

func (ctx Context) WithFrom(from string) Context

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

func (Context) WithFromAddress Uses

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

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

func (Context) WithFromName Uses

func (ctx Context) WithFromName(name string) Context

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

func (Context) WithGenerateOnly Uses

func (ctx Context) WithGenerateOnly(generateOnly bool) Context

WithGenerateOnly returns a copy of the context with updated GenerateOnly value

func (Context) WithHeight Uses

func (ctx Context) WithHeight(height int64) Context

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

func (Context) WithHomeDir Uses

func (ctx Context) WithHomeDir(dir string) Context

WithHomeDir returns a copy of the Context with HomeDir set.

func (Context) WithInput Uses

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

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

func (Context) WithInterfaceRegistry Uses

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

WithInterfaceRegistry returns the context with an updated InterfaceRegistry

func (Context) WithJSONMarshaler Uses

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

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

func (Context) WithKeyring Uses

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

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

func (Context) WithNodeURI Uses

func (ctx Context) WithNodeURI(nodeURI string) Context

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

func (Context) WithOffline Uses

func (ctx Context) WithOffline(offline bool) Context

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

func (Context) WithOutput Uses

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 Uses

func (ctx Context) WithOutputFormat(format string) Context

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

func (Context) WithSimulation Uses

func (ctx Context) WithSimulation(simulate bool) Context

WithSimulation returns a copy of the context with updated Simulate value

func (Context) WithSkipConfirmation Uses

func (ctx Context) WithSkipConfirmation(skip bool) Context

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

func (Context) WithTxConfig Uses

func (ctx Context) WithTxConfig(generator TxConfig) Context

WithTxConfig returns the context with an updated TxConfig

func (Context) WithUseLedger Uses

func (ctx Context) WithUseLedger(useLedger bool) Context

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

type NodeQuerier Uses

type NodeQuerier interface {
    // 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.
    QueryWithData(path string, data []byte) ([]byte, int64, error)
}

NodeQuerier is an interface that is satisfied by types that provide the QueryWithData method

type TestAccountRetriever Uses

type TestAccountRetriever struct {
    Accounts map[string]struct {
        Address sdk.AccAddress
        Num     uint64
        Seq     uint64
    }
}

TestAccountRetriever is an AccountRetriever that can be used in unit tests

func (TestAccountRetriever) EnsureExists Uses

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

EnsureExists implements AccountRetriever.EnsureExists

func (TestAccountRetriever) GetAccountNumberSequence Uses

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

GetAccountNumberSequence implements AccountRetriever.GetAccountNumberSequence

type TxBuilder Uses

type TxBuilder interface {
    GetTx() signing.SigFeeMemoTx

    SetMsgs(msgs ...sdk.Msg) error
    SetSignatures(signatures ...signingtypes.SignatureV2) error
    SetMemo(memo string)
    SetFeeAmount(amount sdk.Coins)
    SetGasLimit(limit 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 Uses

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 Uses

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

PathSynopsis
debug
docs/statikPackage statik contains static assets.
flags
input
keys
rpc
testutil
tx

Package client imports 31 packages (graph) and is imported by 240 packages. Updated 2020-08-04. Refresh now. Tools for package owners.