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_args of the chain context.
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 with_chain_spec_key_types(
self,
key_types: Vec<impl Into<String>>,
) -> Self
pub fn with_chain_spec_key_types( self, key_types: Vec<impl Into<String>>, ) -> Self
Set the chain spec session key types to inject.
Each key type can be specified in short form (e.g., “aura”) using predefined schemas
(defaults to sr if no predefined schema exists for the key type),
or in long form (e.g., “aura_sr”) with an explicit schema (sr, ed, ec).
When specified, only these keys will be injected into the chain spec session keys. When empty, uses the default session keys from the chain spec.
§Examples
use zombienet_configuration::shared::{node::NodeConfigBuilder, types::ChainDefaultContext};
let config = NodeConfigBuilder::new(ChainDefaultContext::default(), Default::default())
.with_name("node")
.with_chain_spec_key_types(vec!["aura", "grandpa", "babe_sr"])
.build()
.unwrap();
assert_eq!(
config.chain_spec_key_types(),
&["aura", "grandpa", "babe_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.
Trait Implementations§
Auto Trait Implementations§
impl<S> Freeze for NodeConfigBuilder<S>
impl<S> !RefUnwindSafe for NodeConfigBuilder<S>
impl<S> !Send for NodeConfigBuilder<S>
impl<S> !Sync for NodeConfigBuilder<S>
impl<S> Unpin for NodeConfigBuilder<S>where
S: Unpin,
impl<S> UnsafeUnpin for NodeConfigBuilder<S>
impl<S> !UnwindSafe for NodeConfigBuilder<S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.