Documentation ¶
Index ¶
- Constants
- func CheckTendermintError(err error, txBytes []byte) *sdk.TxResponse
- func CreateVerifier(ctx CLIContext, cacheSize int) (tmlite.Verifier, error)
- func ErrInvalidAccount(addr sdk.AccAddress) error
- func ErrVerifyCommit(height int64) error
- func GetFromFields(input io.Reader, from string, genOnly bool) (sdk.AccAddress, string, error)
- type AccountRetriever
- type CLIContext
- func (ctx CLIContext) BroadcastTx(txBytes []byte) (res sdk.TxResponse, err error)
- func (ctx CLIContext) BroadcastTxAsync(txBytes []byte) (sdk.TxResponse, error)
- func (ctx CLIContext) BroadcastTxCommit(txBytes []byte) (sdk.TxResponse, error)
- func (ctx CLIContext) BroadcastTxSync(txBytes []byte) (sdk.TxResponse, error)
- func (ctx CLIContext) GetFromAddress() sdk.AccAddress
- func (ctx CLIContext) GetFromName() string
- func (ctx CLIContext) GetNode() (rpcclient.Client, error)
- func (ctx CLIContext) PrintOutput(toPrint interface{}) error
- func (ctx CLIContext) Query(path string) ([]byte, int64, error)
- func (ctx CLIContext) QueryStore(key tmbytes.HexBytes, storeName string) ([]byte, int64, error)
- func (ctx CLIContext) QuerySubspace(subspace []byte, storeName string) (res []sdk.KVPair, height int64, err error)
- func (ctx CLIContext) QueryWithData(path string, data []byte) ([]byte, int64, error)
- func (ctx CLIContext) Verify(height int64) (tmtypes.SignedHeader, error)
- func (ctx CLIContext) WithBroadcastMode(mode string) CLIContext
- func (ctx CLIContext) WithChainID(chainID string) CLIContext
- func (ctx CLIContext) WithClient(client rpcclient.Client) CLIContext
- func (ctx CLIContext) WithCodec(cdc *codec.Codec) CLIContext
- func (ctx CLIContext) WithFrom(from string) CLIContext
- func (ctx CLIContext) WithFromAddress(addr sdk.AccAddress) CLIContext
- func (ctx CLIContext) WithFromName(name string) CLIContext
- func (ctx CLIContext) WithGenerateOnly(generateOnly bool) CLIContext
- func (ctx CLIContext) WithHeight(height int64) CLIContext
- func (ctx CLIContext) WithInput(r io.Reader) CLIContext
- func (ctx CLIContext) WithNodeURI(nodeURI string) CLIContext
- func (ctx CLIContext) WithOutput(w io.Writer) CLIContext
- func (ctx CLIContext) WithSimulation(simulate bool) CLIContext
- func (ctx CLIContext) WithTrustNode(trustNode bool) CLIContext
- func (ctx CLIContext) WithUseLedger(useLedger bool) CLIContext
- func (ctx CLIContext) WithVerifier(verifier tmlite.Verifier) CLIContext
- type ClientFee
- type ClientSignature
- type NodeQuerier
- type TxBuilder
- type TxGenerator
Constants ¶
const (
// DefaultVerifierCacheSize defines the default Tendermint cache size.
DefaultVerifierCacheSize = 10
)
Variables ¶
This section is empty.
Functions ¶
func CheckTendermintError ¶
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 CreateVerifier ¶
func CreateVerifier(ctx CLIContext, cacheSize int) (tmlite.Verifier, error)
CreateVerifier returns a Tendermint verifier from a CLIContext object and cache size. An error is returned if the CLIContext is missing required values or if the verifier could not be created. A CLIContext must at the very least have the chain ID and home directory set. If the CLIContext has TrustNode enabled, no verifier will be created.
func ErrInvalidAccount ¶
func ErrInvalidAccount(addr sdk.AccAddress) error
ErrInvalidAccount returns a standardized error reflecting that a given account address does not exist.
func ErrVerifyCommit ¶
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 ¶
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.
Types ¶
type AccountRetriever ¶ added in v0.0.2
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 CLIContext ¶
type CLIContext struct { FromAddress sdk.AccAddress Client rpcclient.Client ChainID string Keybase keys.Keybase Input io.Reader Output io.Writer OutputFormat string Height int64 HomeDir string NodeURI string From string BroadcastMode string Verifier tmlite.Verifier FromName string Codec *codec.Codec TrustNode bool UseLedger bool Simulate bool GenerateOnly bool Indent bool SkipConfirm bool }
CLIContext implements a typical CLI context created in SDK modules for transaction handling and queries.
func NewCLIContext ¶
func NewCLIContext() CLIContext
NewCLIContext returns a new initialized CLIContext with parameters from the command line using Viper.
func NewCLIContextWithFrom ¶
func NewCLIContextWithFrom(from string) CLIContext
NewCLIContextWithFrom returns a new initialized CLIContext with parameters from the command line using Viper. It takes a key name or address and populates the FromName and FromAddress field accordingly. It will also create Tendermint verifier using the chain ID, home directory and RPC URI provided by the command line. If using a CLIContext in tests or any non CLI-based environment, the verifier will not be created and will be set as nil because FlagTrustNode must be set.
func NewCLIContextWithInput ¶
func NewCLIContextWithInput(input io.Reader) CLIContext
NewCLIContextWithInput returns a new initialized CLIContext with a io.Reader and parameters from the command line using Viper.
func NewCLIContextWithInputAndFrom ¶
func NewCLIContextWithInputAndFrom(input io.Reader, from string) CLIContext
NewCLIContextWithInputAndFrom returns a new initialized CLIContext with parameters from the command line using Viper. It takes a io.Reader and and key name or address and populates the FromName and FromAddress field accordingly. It will also create Tendermint verifier using the chain ID, home directory and RPC URI provided by the command line. If using a CLIContext in tests or any non CLI-based environment, the verifier will not be created and will be set as nil because FlagTrustNode must be set.
func (CLIContext) BroadcastTx ¶
func (ctx CLIContext) 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 (CLIContext) BroadcastTxAsync ¶
func (ctx CLIContext) BroadcastTxAsync(txBytes []byte) (sdk.TxResponse, error)
BroadcastTxAsync broadcasts transaction bytes to a Tendermint node asynchronously (i.e. returns immediately).
func (CLIContext) BroadcastTxCommit ¶
func (ctx CLIContext) 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 (CLIContext) BroadcastTxSync ¶
func (ctx CLIContext) BroadcastTxSync(txBytes []byte) (sdk.TxResponse, error)
BroadcastTxSync broadcasts transaction bytes to a Tendermint node synchronously (i.e. returns after CheckTx execution).
func (CLIContext) GetFromAddress ¶
func (ctx CLIContext) GetFromAddress() sdk.AccAddress
GetFromAddress returns the from address from the context's name.
func (CLIContext) GetFromName ¶
func (ctx CLIContext) GetFromName() string
GetFromName returns the key name for the current context.
func (CLIContext) GetNode ¶
func (ctx CLIContext) GetNode() (rpcclient.Client, error)
GetNode returns an RPC client. If the context's client is not defined, an error is returned.
func (CLIContext) PrintOutput ¶
func (ctx CLIContext) PrintOutput(toPrint interface{}) error
PrintOutput prints output while respecting output and indent flags NOTE: pass in marshalled structs that have been unmarshaled because this function will panic on marshaling errors
func (CLIContext) Query ¶
func (ctx CLIContext) 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 (CLIContext) QueryStore ¶
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 (CLIContext) QuerySubspace ¶
func (ctx CLIContext) 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 (CLIContext) QueryWithData ¶
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 (CLIContext) Verify ¶
func (ctx CLIContext) Verify(height int64) (tmtypes.SignedHeader, error)
Verify verifies the consensus proof at given height.
func (CLIContext) WithBroadcastMode ¶
func (ctx CLIContext) WithBroadcastMode(mode string) CLIContext
WithBroadcastMode returns a copy of the context with an updated broadcast mode.
func (CLIContext) WithChainID ¶
func (ctx CLIContext) WithChainID(chainID string) CLIContext
WithChainID returns a copy of the context with an updated chain ID.
func (CLIContext) WithClient ¶
func (ctx CLIContext) WithClient(client rpcclient.Client) CLIContext
WithClient returns a copy of the context with an updated RPC client instance.
func (CLIContext) WithCodec ¶
func (ctx CLIContext) WithCodec(cdc *codec.Codec) CLIContext
WithCodec returns a copy of the context with an updated codec.
func (CLIContext) WithFrom ¶
func (ctx CLIContext) WithFrom(from string) CLIContext
WithFrom returns a copy of the context with an updated from address or name.
func (CLIContext) WithFromAddress ¶
func (ctx CLIContext) WithFromAddress(addr sdk.AccAddress) CLIContext
WithFromAddress returns a copy of the context with an updated from account address.
func (CLIContext) WithFromName ¶
func (ctx CLIContext) WithFromName(name string) CLIContext
WithFromName returns a copy of the context with an updated from account name.
func (CLIContext) WithGenerateOnly ¶
func (ctx CLIContext) WithGenerateOnly(generateOnly bool) CLIContext
WithGenerateOnly returns a copy of the context with updated GenerateOnly value
func (CLIContext) WithHeight ¶
func (ctx CLIContext) WithHeight(height int64) CLIContext
WithHeight returns a copy of the context with an updated height.
func (CLIContext) WithInput ¶
func (ctx CLIContext) WithInput(r io.Reader) CLIContext
WithInput returns a copy of the context with an updated input.
func (CLIContext) WithNodeURI ¶
func (ctx CLIContext) WithNodeURI(nodeURI string) CLIContext
WithNodeURI returns a copy of the context with an updated node URI.
func (CLIContext) WithOutput ¶
func (ctx CLIContext) WithOutput(w io.Writer) CLIContext
WithOutput returns a copy of the context with an updated output writer (e.g. stdout).
func (CLIContext) WithSimulation ¶
func (ctx CLIContext) WithSimulation(simulate bool) CLIContext
WithSimulation returns a copy of the context with updated Simulate value
func (CLIContext) WithTrustNode ¶
func (ctx CLIContext) WithTrustNode(trustNode bool) CLIContext
WithTrustNode returns a copy of the context with an updated TrustNode flag.
func (CLIContext) WithUseLedger ¶
func (ctx CLIContext) WithUseLedger(useLedger bool) CLIContext
WithUseLedger returns a copy of the context with an updated UseLedger flag.
func (CLIContext) WithVerifier ¶
func (ctx CLIContext) WithVerifier(verifier tmlite.Verifier) CLIContext
WithVerifier returns a copy of the context with an updated Verifier.
type ClientSignature ¶ added in v0.0.2
type NodeQuerier ¶ added in v0.0.2
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 TxBuilder ¶ added in v0.0.2
type TxBuilder interface { GetTx() types.Tx SetMsgs(...types.Msg) error GetSignatures() []types.Signature SetSignatures(...ClientSignature) error GetFee() types.Fee SetFee(ClientFee) error GetMemo() string SetMemo(string) // CanonicalSignBytes returns the canonical sign bytes to sign over, given a // chain ID, along with an account and sequence number. CanonicalSignBytes(cid string, num, seq uint64) ([]byte, error) }
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 TxGenerator ¶ added in v0.0.2
type TxGenerator interface { NewTx() TxBuilder NewFee() ClientFee NewSignature() ClientSignature MarshalTx(tx types.Tx) ([]byte, error) }
TxGenerator defines an interface a client can utilize to generate an application-defined concrete transaction type. The type returned must implement TxBuilder.