pub struct NodeConfigBuilder<S> { /* private fields */ }Expand description
A node configuration builder, used to build a NodeConfig declaratively with fields validation.
Implementations§
Source§impl NodeConfigBuilder<Initial>
impl NodeConfigBuilder<Initial>
pub fn new( chain_context: ChainDefaultContext, validation_context: Rc<RefCell<ValidationContext>>, ) -> Self
Source§impl NodeConfigBuilder<Buildable>
impl NodeConfigBuilder<Buildable>
Sourcepub fn with_command<T>(self, command: T) -> Self
pub fn with_command<T>(self, command: T) -> Self
Set the command that will be executed to launch the node. Override the default.
Sourcepub fn with_subcommand<T>(self, subcommand: T) -> Self
pub fn with_subcommand<T>(self, subcommand: T) -> Self
Set the subcommand that will be executed to launch the node.
Sourcepub fn with_image<T>(self, image: T) -> Self
pub fn with_image<T>(self, image: T) -> Self
Set the image that will be used for the node (only podman/k8s). Override the default.
Sourcepub fn with_args(self, args: Vec<Arg>) -> Self
pub fn with_args(self, args: Vec<Arg>) -> Self
Set the arguments that will be used when launching the node. Override the default.
Sourcepub fn invulnerable(self, choice: bool) -> Self
pub fn invulnerable(self, choice: bool) -> Self
Set whether the node is invulnerable.
Sourcepub fn with_override_eth_key(self, session_key: impl Into<String>) -> Self
pub fn with_override_eth_key(self, session_key: impl Into<String>) -> Self
Override the EVM session key to use for the node
Sourcepub fn with_initial_balance(self, initial_balance: u128) -> Self
pub fn with_initial_balance(self, initial_balance: u128) -> Self
Set the node initial balance.
Sourcepub fn with_env(self, env: Vec<impl Into<EnvVar>>) -> Self
pub fn with_env(self, env: Vec<impl Into<EnvVar>>) -> Self
Set the node environment variables that will be used when launched. Override the default.
Sourcepub fn with_raw_bootnodes_addresses<T>(
self,
bootnodes_addresses: Vec<T>,
) -> Self
pub fn with_raw_bootnodes_addresses<T>( self, bootnodes_addresses: Vec<T>, ) -> Self
Set the bootnodes addresses that the node will try to connect to. Override the default.
Note: Bootnode address replacements are NOT supported here.
Only arguments (args) support dynamic replacements. Bootnode addresses must be a valid address.
Sourcepub fn with_resources(
self,
f: impl FnOnce(ResourcesBuilder) -> ResourcesBuilder,
) -> Self
pub fn with_resources( self, f: impl FnOnce(ResourcesBuilder) -> ResourcesBuilder, ) -> Self
Set the resources limits what will be used for the node (only podman/k8s). Override the default.
Sourcepub fn with_ws_port(self, ws_port: Port) -> Self
pub fn with_ws_port(self, ws_port: Port) -> Self
Set the websocket port that will be exposed. Uniqueness across config will be checked.
Sourcepub fn with_rpc_port(self, rpc_port: Port) -> Self
pub fn with_rpc_port(self, rpc_port: Port) -> Self
Set the RPC port that will be exposed. Uniqueness across config will be checked.
Sourcepub fn with_prometheus_port(self, prometheus_port: Port) -> Self
pub fn with_prometheus_port(self, prometheus_port: Port) -> Self
Set the Prometheus port that will be exposed for metrics. Uniqueness across config will be checked.
Sourcepub fn with_p2p_port(self, p2p_port: Port) -> Self
pub fn with_p2p_port(self, p2p_port: Port) -> Self
Set the P2P port that will be exposed. Uniqueness across config will be checked.
Sourcepub fn with_p2p_cert_hash(self, p2p_cert_hash: impl Into<String>) -> Self
pub fn with_p2p_cert_hash(self, p2p_cert_hash: impl Into<String>) -> Self
Set the P2P cert hash that will be used as part of the multiaddress
if and only if the multiaddress is set to use webrtc.
Sourcepub fn with_db_snapshot(self, location: impl Into<AssetLocation>) -> Self
pub fn with_db_snapshot(self, location: impl Into<AssetLocation>) -> Self
Set the database snapshot that will be used to launch the node. Override the default.
Sourcepub fn with_log_path(self, log_path: impl Into<PathBuf>) -> Self
pub fn with_log_path(self, log_path: impl Into<PathBuf>) -> Self
Set the node log path that will be used to launch the node.
Sourcepub fn with_keystore_path(self, keystore_path: impl Into<PathBuf>) -> Self
pub fn with_keystore_path(self, keystore_path: impl Into<PathBuf>) -> Self
Set the keystore path override.
Sourcepub fn with_keystore_key_types(self, key_types: Vec<impl Into<String>>) -> Self
pub fn with_keystore_key_types(self, key_types: Vec<impl Into<String>>) -> Self
Set the keystore key types to generate.
Each key type can be specified in short form (e.g., “audi”) using predefined schemas
(defaults to sr if no predefined schema exists for the key type),
or in long form (e.g., “audi_sr”) with an explicit schema (sr, ed, ec).
§Examples
use zombienet_configuration::shared::{node::NodeConfigBuilder, types::ChainDefaultContext};
let config = NodeConfigBuilder::new(ChainDefaultContext::default(), Default::default())
.with_name("node")
.with_keystore_key_types(vec!["audi", "gran", "cust_sr"])
.build()
.unwrap();
assert_eq!(config.keystore_key_types(), &["audi", "gran", "cust_sr"]);Sourcepub fn build(self) -> Result<NodeConfig, (String, Vec<Error>)>
pub fn build(self) -> Result<NodeConfig, (String, Vec<Error>)>
Seals the builder and returns a NodeConfig if there are no validation errors, else returns errors.