testnode

package
v2.0.0-rc0 Latest Latest
Warning

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

Go to latest
Published: May 9, 2024 License: Apache-2.0 Imports: 53 Imported by: 2

Documentation

Index

Constants

View Source
const (
	DefaultValidatorAccountName = "validator"
	DefaultInitialBalance       = genesis.DefaultInitialBalance
)
View Source
const (
	DefaultTimeout = 30 * time.Second
)

Variables

This section is empty.

Functions

func CalculateMeanGas

func CalculateMeanGas(ctx context.Context, rpcAddress, msgType string, fromHeight int64, toHeight int64) (float64, int64, error)

func CalculateMeanGasFromRecentBlocks

func CalculateMeanGasFromRecentBlocks(ctx context.Context, rpcAddress, msgType string, blocks int64) (float64, int64, error)

func DecodeBlockData

func DecodeBlockData(data types.Data) ([]sdk.Tx, error)

func DefaultAppConfig

func DefaultAppConfig() *srvconfig.Config

DefaultAppConfig wraps the default config described in the server

func DefaultConsensusParams

func DefaultConsensusParams() *tmproto.ConsensusParams

func DefaultTendermintConfig

func DefaultTendermintConfig() *tmconfig.Config

func FundKeyringAccounts

func FundKeyringAccounts(accounts ...string) (keyring.Keyring, []banktypes.Balance, []authtypes.GenesisAccount)

func GenerateAccounts

func GenerateAccounts(count int) []string

func NewCometNode

func NewCometNode(baseDir string, cfg *UniversalTestingConfig) (*node.Node, srvtypes.Application, error)

NewCometNode creates a ready to use comet node that operates a single validator celestia-app network. It expects that all configuration files are already initialized and saved to the baseDir.

func NewKeyring

func NewKeyring(accounts ...string) (keyring.Keyring, []sdk.AccAddress)

func NewOfflineSigner

func NewOfflineSigner() (*user.Signer, error)

func NewSignerFromContext

func NewSignerFromContext(ctx Context, acc string) (*user.Signer, error)

func NewSingleSignerFromContext

func NewSingleSignerFromContext(ctx Context) (*user.Signer, error)

func QueryTx

func QueryTx(clientCtx client.Context, hashHexStr string, prove bool) (*rpctypes.ResultTx, error)

func QueryWithoutProof

func QueryWithoutProof(clientCtx client.Context, hashHexStr string) (*rpctypes.ResultTx, error)

func RandomAccounts

func RandomAccounts(n int) (accounts []string)

RandomAccounts returns a list of n random accounts

func RandomAddress

func RandomAddress() sdk.Address

func ReadBlockHeights

func ReadBlockHeights(ctx context.Context, rpcAddress string, fromHeight, toHeight int64) ([]*types.Block, error)

func ReadBlockchain

func ReadBlockchain(ctx context.Context, rpcAddress string) ([]*types.Block, error)

func ReadRecentBlocks

func ReadRecentBlocks(ctx context.Context, rpcAddress string, blocks int64) ([]*types.Block, error)

func StartAPIServer

func StartAPIServer(app srvtypes.Application, appCfg srvconfig.Config, cctx Context) (*api.Server, error)

func TestAddress

func TestAddress() sdk.AccAddress

Types

type Config

type Config struct {
	Genesis *genesis.Genesis
	UniversalTestingConfig
}

Config is the configuration of a test node.

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig returns the default configuration of a test node.

func (*Config) WithAppConfig

func (c *Config) WithAppConfig(conf *srvconfig.Config) *Config

WithAppConfig sets the AppConfig and returns the Config.

func (*Config) WithAppCreator

func (c *Config) WithAppCreator(creator srvtypes.AppCreator) *Config

WithAppCreator sets the AppCreator and returns the Config.

func (*Config) WithAppOptions

func (c *Config) WithAppOptions(opts *KVAppOptions) *Config

WithAppOptions sets the AppOptions and returns the Config.

func (*Config) WithChainID

func (c *Config) WithChainID(id string) *Config

WithChainID sets the chain ID and returns the Config.

func (*Config) WithConsensusParams

func (c *Config) WithConsensusParams(params *tmproto.ConsensusParams) *Config

WithConsensusParams sets the consensus params and returns the Config.

func (*Config) WithFundedAccounts

func (c *Config) WithFundedAccounts(accounts ...string) *Config

WithFundedAccounts sets the genesis accounts and returns the Config.

func (*Config) WithGenesis

func (c *Config) WithGenesis(g *genesis.Genesis) *Config

func (*Config) WithGenesisTime

func (c *Config) WithGenesisTime(t time.Time) *Config

WithGenesisTime sets the genesis time and returns the Config.

func (*Config) WithModifiers

func (c *Config) WithModifiers(ops ...genesis.Modifier) *Config

WithModifiers sets the genesis options and returns the Config.

func (*Config) WithSuppressLogs

func (c *Config) WithSuppressLogs(sl bool) *Config

WithSuppressLogs sets the SuppressLogs and returns the Config.

func (*Config) WithTendermintConfig

func (c *Config) WithTendermintConfig(conf *tmconfig.Config) *Config

WithTendermintConfig sets the TmConfig and returns the *Config.

func (*Config) WithTimeoutCommit

func (c *Config) WithTimeoutCommit(d time.Duration) *Config

WithTimeoutCommit sets the TimeoutCommit and returns the Config.

type Context

type Context struct {
	client.Context
	// contains filtered or unexported fields
}

func NewContext

func NewContext(goCtx context.Context, kr keyring.Keyring, tmCfg *tmconfig.Config, chainID, apiAddress string) Context

func NewNetwork

func NewNetwork(t testing.TB, cfg *Config) (cctx Context, rpcAddr, grpcAddr string)

NewNetwork starts a single validator celestia-app network using the provided configurations. Configured accounts will be funded and their keys can be accessed in keyring returned client.Context. All rpc, p2p, and grpc addresses in the provided configs are overwritten to use open ports. The node can be accessed via the returned client.Context or via the returned rpc and grpc addresses. Configured genesis options will be applied after all accounts have been initialized.

func StartGRPCServer

func StartGRPCServer(app srvtypes.Application, appCfg *srvconfig.Config, cctx Context) (Context, func() error, error)

StartGRPCServer starts the grpc server using the provided application and config. A grpc client connection to that server is also added to the client context. The returned function should be used to shutdown the server.

func StartNode

func StartNode(tmNode *node.Node, cctx Context) (Context, func() error, error)

StartNode starts the tendermint node along with a local core rpc client. The rpc is returned via the client.Context. The function returned should be called during cleanup to teardown the node, core client, along with canceling the internal context.Context in the returned Context.

func (*Context) APIAddress

func (c *Context) APIAddress() string

func (*Context) FillBlock

func (c *Context) FillBlock(squareSize int, account string, broadcastMode string) (*sdk.TxResponse, error)

FillBlock creates and submits a single transaction that is large enough to create a square of the desired size. broadcast mode indicates if the tx should be submitted async, sync, or block. (see flags.BroadcastModeSync). If broadcast mode is the string zero value, then it will be set to block.

func (*Context) GenesisTime

func (c *Context) GenesisTime() (time.Time, error)

GenesisTime returns the genesis block time.

func (*Context) GoContext

func (c *Context) GoContext() context.Context

func (*Context) HeightForTimestamp

func (c *Context) HeightForTimestamp(timestamp time.Time) (int64, error)

HeightForTimestamp returns the block height for the first block after a given timestamp.

func (*Context) LatestHeight

func (c *Context) LatestHeight() (int64, error)

LatestHeight returns the latest height of the network or an error if the query fails.

func (*Context) LatestTimestamp

func (c *Context) LatestTimestamp() (time.Time, error)

LatestTimestamp returns the latest timestamp of the network or an error if the query fails.

func (*Context) PostData

func (c *Context) PostData(account, broadcastMode string, ns appns.Namespace, blobData []byte) (*sdk.TxResponse, error)

PostData will create and submit PFB transaction containing the namespace and blobData. This function blocks until the PFB has been included in a block and returns an error if the transaction is invalid or is rejected by the mempool.

func (*Context) WaitForBlocks

func (c *Context) WaitForBlocks(n int64) error

WaitForBlocks waits until n blocks have been committed, returning an error upon failure.

func (*Context) WaitForHeight

func (c *Context) WaitForHeight(h int64) (int64, error)

WaitForHeight performs a blocking check where it waits for a block to be committed after a given block. If that height is not reached within a timeout, an error is returned. Regardless, the latest height queried is returned.

func (*Context) WaitForHeightWithTimeout

func (c *Context) WaitForHeightWithTimeout(h int64, t time.Duration) (int64, error)

WaitForHeightWithTimeout is the same as WaitForHeight except the caller can provide a custom timeout.

func (*Context) WaitForNextBlock

func (c *Context) WaitForNextBlock() error

WaitForNextBlock waits for the next block to be committed, returning an error upon failure.

func (*Context) WaitForTimestamp

func (c *Context) WaitForTimestamp(t time.Time) (time.Time, error)

WaitForTimestamp performs a blocking check where it waits for a block to be committed after a given timestamp. If that height is not reached within a timeout, an error is returned. Regardless, the latest timestamp queried is returned.

func (*Context) WaitForTimestampWithTimeout

func (c *Context) WaitForTimestampWithTimeout(t time.Time, d time.Duration) (time.Time, error)

WaitForTimestampWithTimeout waits for a block with a timestamp greater than t.

func (*Context) WaitForTx

func (c *Context) WaitForTx(hashHexStr string, blocks int) (*rpctypes.ResultTx, error)

type KVAppOptions

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

func DefaultAppOptions

func DefaultAppOptions() *KVAppOptions

DefaultAppOptions returns the default application options.

func (*KVAppOptions) Get

func (ao *KVAppOptions) Get(option string) interface{}

Get returns the option value for the given option key.

func (*KVAppOptions) Set

func (ao *KVAppOptions) Set(option string, value interface{})

Set sets a key-value app option.

type UniversalTestingConfig

type UniversalTestingConfig struct {
	// TmConfig is the Tendermint configuration used for the network.
	TmConfig *tmconfig.Config
	// AppConfig is the application configuration of the test node.
	AppConfig *srvconfig.Config
	// AppOptions are the application options of the test node.
	AppOptions *KVAppOptions
	// AppCreator is used to create the application for the testnode.
	AppCreator srvtypes.AppCreator
	// SuppressLogs in testnode. This should be set to true when running
	// testground tests.
	SuppressLogs bool
}

Jump to

Keyboard shortcuts

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