cosmosclient

package
v0.24.0 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2022 License: Apache-2.0 Imports: 40 Imported by: 27

Documentation

Overview

Package cosmosclient provides a standalone client to connect to Cosmos SDK chains.

Index

Constants

This section is empty.

Variables

View Source
var (
	// FaucetTransferEnsureDuration is the duration that BroadcastTx will wait when a faucet transfer
	// is triggered prior to broadcasting but transfer's tx is not committed in the state yet.
	FaucetTransferEnsureDuration = time.Second * 40
)

Functions

This section is empty.

Types

type Client

type Client struct {
	// RPC is Tendermint RPC.
	RPC rpcclient.Client

	// TxFactory is a Cosmos SDK tx factory.
	TxFactory tx.Factory

	// AccountRegistry is the retistry to access accounts.
	AccountRegistry cosmosaccount.Registry
	// contains filtered or unexported fields
}

Client is a client to access your chain by querying and broadcasting transactions.

func New

func New(ctx context.Context, options ...Option) (Client, error)

New creates a new client with given options.

func (Client) Account

func (c Client) Account(nameOrAddress string) (cosmosaccount.Account, error)

Account returns the account with name or address equal to nameOrAddress.

func (Client) Address

func (c Client) Address(accountName string) (string, error)

Address returns the account address from account name.

func (Client) BankBalances added in v0.24.0

func (c Client) BankBalances(ctx context.Context, address string, pagination *query.PageRequest) (sdk.Coins, error)

func (Client) BankSendTx added in v0.24.0

func (c Client) BankSendTx(fromAccount cosmosaccount.Account, toAddress string, amount sdk.Coins) (TxService, error)

func (Client) BroadcastTx

func (c Client) BroadcastTx(account cosmosaccount.Account, msgs ...sdktypes.Msg) (Response, error)

func (Client) ConsensusInfo

func (c Client) ConsensusInfo(ctx context.Context, height int64) (ConsensusInfo, error)

ConsensusInfo returns the appropriate tendermint consensus state by given height and the validator set for the next height

func (Client) Context

func (c Client) Context() client.Context

Context returns client context

func (Client) CreateTx added in v0.24.0

func (c Client) CreateTx(account cosmosaccount.Account, msgs ...sdktypes.Msg) (TxService, error)

func (Client) LatestBlockHeight added in v0.24.0

func (c Client) LatestBlockHeight(ctx context.Context) (int64, error)

LatestBlockHeight returns the lastest block height of the app.

func (Client) SetConfigAddressPrefix added in v0.24.0

func (c Client) SetConfigAddressPrefix()

SetConfigAddressPrefix sets the account prefix in the SDK global config

func (Client) Status

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

Status returns the node status

func (Client) WaitForBlockHeight added in v0.24.0

func (c Client) WaitForBlockHeight(ctx context.Context, h int64, timeout time.Duration) error

WaitForBlockHeight waits until block height h is committed, or returns an error if ctx is canceled or if timeout is reached.

func (Client) WaitForNBlocks added in v0.24.0

func (c Client) WaitForNBlocks(ctx context.Context, n int64, timeout time.Duration) error

WaitForNBlocks reads the current block height and then waits for anothers n blocks to be committed.

func (Client) WaitForNextBlock added in v0.24.0

func (c Client) WaitForNextBlock(ctx context.Context) error

WaitForNextBlock waits until next block is committed. It reads the current block height and then waits for another block to be committed. A timeout occurs after 10 seconds, to customize the timeout, use the WaitForNBlocks(ctx, 1, timeout) function.

type ConsensusInfo

type ConsensusInfo struct {
	Timestamp          string                `json:"Timestamp"`
	Root               string                `json:"Root"`
	NextValidatorsHash string                `json:"NextValidatorsHash"`
	ValidatorSet       *tmproto.ValidatorSet `json:"ValidatorSet"`
}

ConsensusInfo is the validator consensus info

type FaucetClient added in v0.24.0

type FaucetClient interface {
	Transfer(context.Context, cosmosfaucet.TransferRequest) (cosmosfaucet.TransferResponse, error)
}

FaucetClient allows to mock the cosmosfaucet.Client.

type Gasometer added in v0.24.0

type Gasometer interface {
	CalculateGas(clientCtx gogogrpc.ClientConn, txf tx.Factory, msgs ...sdktypes.Msg) (*txtypes.SimulateResponse, uint64, error)
}

Gasometer allows to mock the tx.CalculateGas func.

type Option

type Option func(*Client)

Option configures your client.

func WithAccountRetriever added in v0.24.0

func WithAccountRetriever(accountRetriever client.AccountRetriever) Option

WithAccountRetriever sets the account retriever Already set by default.

func WithAddressPrefix

func WithAddressPrefix(prefix string) Option

func WithBankQueryClient added in v0.24.0

func WithBankQueryClient(bankQueryClient banktypes.QueryClient) Option

WithBankQueryClient sets the bank query client. Already set by default.

func WithBroadcastMode added in v0.24.0

func WithBroadcastMode(broadcastMode string) Option

WithBroadcastMode sets the broadcast mode

func WithFaucetClient added in v0.24.0

func WithFaucetClient(faucetClient FaucetClient) Option

WithFaucetClient sets the faucet client. Already set by default.

func WithFees added in v0.24.0

func WithFees(fees string) Option

WithFees sets the fees (e.g. 10uatom)

func WithGas added in v0.24.0

func WithGas(gas string) Option

WithGas sets an explicit gas-limit on transactions. Set to "auto" to calculate automatically

func WithGasPrices added in v0.24.0

func WithGasPrices(gasPrices string) Option

WithGasPrices sets the price per gas (e.g. 0.1uatom)

func WithGasometer added in v0.24.0

func WithGasometer(gasometer Gasometer) Option

WithGasometer sets the gasometer. Already set by default.

func WithGenerateOnly added in v0.24.0

func WithGenerateOnly(generateOnly bool) Option

WithGenerateOnly tells if txs will be generated only.

func WithHome

func WithHome(path string) Option

WithHome sets the data dir of your chain. This option is used to access your chain's file based keyring which is only needed when you deal with creating and signing transactions. when it is not provided, your data dir will be assumed as `$HOME/.your-chain-id`.

func WithKeyringBackend

func WithKeyringBackend(backend cosmosaccount.KeyringBackend) Option

WithKeyringBackend sets your keyring backend. By default, it is `test`.

func WithKeyringDir added in v0.24.0

func WithKeyringDir(keyringDir string) Option

WithKeyringDir sets the directory of the keyring. By default, it uses cosmosaccount.KeyringHome

func WithKeyringServiceName

func WithKeyringServiceName(name string) Option

WithKeyringServiceName used as the keyring's name when you are using OS keyring backend. by default it is `cosmos`.

func WithNodeAddress

func WithNodeAddress(addr string) Option

WithNodeAddress sets the node address of your chain. When this option is not provided `http://localhost:26657` is used as default.

func WithRPCClient added in v0.24.0

func WithRPCClient(rpc rpcclient.Client) Option

WithRPCClient sets a tendermint RPC client. Already set by default.

func WithUseFaucet

func WithUseFaucet(faucetAddress, denom string, minAmount uint64) Option

type Response

type Response struct {
	Codec codec.Codec

	// TxResponse is the underlying tx response.
	*sdktypes.TxResponse
}

Response of your broadcasted transaction.

func (Response) Decode

func (r Response) Decode(message proto.Message) error

Decode decodes the proto func response defined in your Msg service into your message type. message needs to be a pointer. and you need to provide the correct proto message(struct) type to the Decode func.

e.g., for the following CreateChain func the type would be: `types.MsgCreateChainResponse`.

```proto

service Msg {
  rpc CreateChain(MsgCreateChain) returns (MsgCreateChainResponse);
}

```

type TxService added in v0.24.0

type TxService struct {
	// contains filtered or unexported fields
}

func (TxService) Broadcast added in v0.24.0

func (s TxService) Broadcast() (Response, error)

Broadcast signs and broadcasts this tx.

func (TxService) EncodeJSON added in v0.24.0

func (s TxService) EncodeJSON() ([]byte, error)

EncodeJSON encodes the transaction as a json string

func (TxService) Gas added in v0.24.0

func (s TxService) Gas() uint64

Gas is gas decided to use for this tx. either calculated or configured by the caller.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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