pub struct ChainDriver {
    pub command_path: String,
    pub chain_id: ChainId,
    pub home_path: String,
    pub account_prefix: String,
    pub rpc_port: u16,
    pub grpc_port: u16,
    pub grpc_web_port: u16,
    pub p2p_port: u16,
    pub tx_config: TxConfig,
    pub runtime: Arc<Runtime>,
}
Expand description

A driver for interacting with a chain full nodes through command line.

The name ChainDriver is inspired by WebDriver, which is the term used to describe programs that control spawning of the web browsers. In our case, the ChainDriver is used to spawn and manage chain full nodes.

Currently the ChainDriver is hardcoded to support only a single version of Gaia chain. In the future, we will want to turn this into one or more ChainDriver traits so that they can be used to spawn multiple chain implementations other than a single version of Gaia.

Fields

command_path: String

The filesystem path to the Gaia CLI. Defaults to gaiad.

chain_id: ChainId

The ID of the chain.

home_path: String

The home directory for the full node to store data files.

account_prefix: Stringrpc_port: u16

The port used for RPC.

grpc_port: u16

The port used for GRPC.

grpc_web_port: u16p2p_port: u16

The port used for P2P. (Currently unused other than for setup)

tx_config: TxConfigruntime: Arc<Runtime>

Implementations

Create a new ChainDriver

Returns the full URL for the RPC address.

Returns the full URL for the WebSocket address.

Returns the full URL for the GRPC address.

Returns the full URL for the RPC address to listen to when starting the full node.

This is somehow different from rpc_address as it requires the "tcp://" scheme.

Returns the full URL for the GRPC address to listen to when starting the full node.

This is somehow different from grpc_address as it requires no scheme to be specified.

Execute the gaiad command with the given command line arguments, and returns the STDOUT result as String.

This is not the most efficient way of interacting with the CLI, but is sufficient for testing purposes of interacting with the gaiad commmand.

The function also output debug logs that show what command is being executed, so that users can manually re-run the commands by copying from the logs.

Initialized the chain data stores.

This is used by bootstrap_single_node.

Modify the Gaia genesis file.

Write the string content to a file path relative to the chain home directory.

This is not efficient but is sufficient for testing purposes.

Read the content at a file path relative to the chain home directory, and return the result as a string.

This is not efficient but is sufficient for testing purposes.

Add a wallet with the given ID to the full node’s keyring.

Add a wallet address to the genesis account list for an uninitialized full node.

Add a wallet ID with the given stake amount to be the genesis validator for an uninitialized chain.

Call gaiad collect-gentxs to generate the genesis transactions.

Modify the Gaia chain config which is saved in toml format.

Start a full node by running in the background gaiad start.

Returns a ChildProcess that stops the full node process when the value is dropped.

Query for the balances for a given wallet address and denomination

Assert that a wallet should eventually have the expected amount in the given denomination.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Export the environment variables using the given EnvWriter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Borrow this concrete type as a &dyn Any

Borrow this concrete type as a &mut dyn Any

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Attaches the provided Context to this type, returning a WithContext wrapper. Read more

Attaches the current Context to this type, returning a WithContext wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Wrap the input message T in a tonic::Request

Set the foreground color generically Read more

Set the background color generically. Read more

Change the foreground color to black

Change the background color to black

Change the foreground color to red

Change the background color to red

Change the foreground color to green

Change the background color to green

Change the foreground color to yellow

Change the background color to yellow

Change the foreground color to blue

Change the background color to blue

Change the foreground color to magenta

Change the background color to magenta

Change the foreground color to purple

Change the background color to purple

Change the foreground color to cyan

Change the background color to cyan

Change the foreground color to white

Change the background color to white

Change the foreground color to the terminal default

Change the background color to the terminal default

Change the foreground color to bright black

Change the background color to bright black

Change the foreground color to bright red

Change the background color to bright red

Change the foreground color to bright green

Change the background color to bright green

Change the foreground color to bright yellow

Change the background color to bright yellow

Change the foreground color to bright blue

Change the background color to bright blue

Change the foreground color to bright magenta

Change the background color to bright magenta

Change the foreground color to bright purple

Change the background color to bright purple

Change the foreground color to bright cyan

Change the background color to bright cyan

Change the foreground color to bright white

Change the background color to bright white

Make the text bold

Make the text dim

Make the text italicized

Make the text italicized

Make the text blink

Make the text blink (but fast!)

Swap the foreground and background colors

Hide the text

Cross out the text

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more

Set the foreground color to a specific RGB value.

Set the background color to a specific RGB value.

Sets the foreground color to an RGB value.

Sets the background color to an RGB value.

Apply a runtime-determined style

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more