From 7fb3c9a00a5a8445d6d6994ca424aac609f7dc38 Mon Sep 17 00:00:00 2001 From: Marios Christou Date: Mon, 6 Oct 2025 14:18:31 +0300 Subject: [PATCH] Rename ZombienetConfiguration to PolkadotParachainConfiguration and update related usage --- crates/config/src/lib.rs | 44 ++++++------ crates/core/src/lib.rs | 8 +-- .../src/node_implementations/zombienet.rs | 70 ++++++++++++++----- 3 files changed, 78 insertions(+), 44 deletions(-) diff --git a/crates/config/src/lib.rs b/crates/config/src/lib.rs index 824f6b5..7e8814b 100644 --- a/crates/config/src/lib.rs +++ b/crates/config/src/lib.rs @@ -107,8 +107,8 @@ impl AsRef for Context { } } -impl AsRef for Context { - fn as_ref(&self) -> &ZombienetConfiguration { +impl AsRef for Context { + fn as_ref(&self) -> &PolkadotParachainConfiguration { match self { Self::Test(context) => context.as_ref().as_ref(), Self::Benchmark(context) => context.as_ref().as_ref(), @@ -235,9 +235,9 @@ pub struct TestExecutionContext { #[clap(flatten, next_help_heading = "Resolc Configuration")] pub resolc_configuration: ResolcConfiguration, - /// Configuration parameters for the Zombienet. - #[clap(flatten, next_help_heading = "Zombienet Configuration")] - pub zombienet_configuration: ZombienetConfiguration, + /// Configuration parameters for the Polkadot Parachain. + #[clap(flatten, next_help_heading = "Polkadot Parachain Configuration")] + pub polkadot_parachain_configuration: PolkadotParachainConfiguration, /// Configuration parameters for the geth node. #[clap(flatten, next_help_heading = "Geth Configuration")] @@ -332,9 +332,9 @@ pub struct BenchmarkingContext { #[clap(flatten, next_help_heading = "Kitchensink Configuration")] pub kitchensink_configuration: KitchensinkConfiguration, - /// Configuration parameters for the Zombienet. - #[clap(flatten, next_help_heading = "Zombienet Configuration")] - pub zombienet_configuration: ZombienetConfiguration, + /// Configuration parameters for the Polkadot Parachain. + #[clap(flatten, next_help_heading = "Polkadot Parachain Configuration")] + pub polkadot_parachain_configuration: PolkadotParachainConfiguration, /// Configuration parameters for the Revive Dev Node. #[clap(flatten, next_help_heading = "Revive Dev Node Configuration")] @@ -397,9 +397,9 @@ impl AsRef for TestExecutionContext { } } -impl AsRef for TestExecutionContext { - fn as_ref(&self) -> &ZombienetConfiguration { - &self.zombienet_configuration +impl AsRef for TestExecutionContext { + fn as_ref(&self) -> &PolkadotParachainConfiguration { + &self.polkadot_parachain_configuration } } @@ -499,9 +499,9 @@ impl AsRef for BenchmarkingContext { } } -impl AsRef for BenchmarkingContext { - fn as_ref(&self) -> &ZombienetConfiguration { - &self.zombienet_configuration +impl AsRef for BenchmarkingContext { + fn as_ref(&self) -> &PolkadotParachainConfiguration { + &self.polkadot_parachain_configuration } } @@ -575,24 +575,24 @@ pub struct ResolcConfiguration { pub path: PathBuf, } -/// A set of configuration parameters for Zombienet. +/// A set of configuration parameters for Polkadot Parachain. #[derive(Clone, Debug, Parser, Serialize)] -pub struct ZombienetConfiguration { - /// Specifies the path of the zombienet node to be used by the tool. +pub struct PolkadotParachainConfiguration { + /// Specifies the path of the polkadot-parachain node to be used by the tool. /// - /// If this is not specified, then the tool assumes that it should use the zombienet binary + /// If this is not specified, then the tool assumes that it should use the polkadot-parachain binary /// that's provided in the user's $PATH. #[clap( - id = "zombienet.path", - long = "zombienet.path", + id = "polkadot-parachain.path", + long = "polkadot-parachain.path", default_value = "polkadot-parachain" )] pub path: PathBuf, /// The amount of time to wait upon startup before considering that the node timed out. #[clap( - id = "zombienet.start-timeout-ms", - long = "zombienet.start-timeout-ms", + id = "polkadot-parachain.start-timeout-ms", + long = "polkadot-parachain.start-timeout-ms", default_value = "5000", value_parser = parse_duration )] diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs index c856f83..41ab789 100644 --- a/crates/core/src/lib.rs +++ b/crates/core/src/lib.rs @@ -384,12 +384,12 @@ impl Platform for ZombienetPolkavmResolcPlatform { context: Context, ) -> anyhow::Result>>> { let genesis_configuration = AsRef::::as_ref(&context); - let zombienet_path = AsRef::::as_ref(&context) + let polkadot_parachain_path = AsRef::::as_ref(&context) .path .clone(); let genesis = genesis_configuration.genesis()?.clone(); Ok(thread::spawn(move || { - let node = ZombieNode::new(zombienet_path, context); + let node = ZombieNode::new(polkadot_parachain_path, context); let node = spawn_node(node, genesis)?; Ok(Box::new(node) as Box<_>) })) @@ -432,12 +432,12 @@ impl Platform for ZombienetRevmSolcPlatform { context: Context, ) -> anyhow::Result>>> { let genesis_configuration = AsRef::::as_ref(&context); - let zombie_net_path = AsRef::::as_ref(&context) + let polkadot_parachain_path = AsRef::::as_ref(&context) .path .clone(); let genesis = genesis_configuration.genesis()?.clone(); Ok(thread::spawn(move || { - let node = ZombieNode::new(zombie_net_path, context); + let node = ZombieNode::new(polkadot_parachain_path, context); let node = spawn_node(node, genesis)?; Ok(Box::new(node) as Box<_>) })) diff --git a/crates/node/src/node_implementations/zombienet.rs b/crates/node/src/node_implementations/zombienet.rs index db32cf3..9a43f40 100644 --- a/crates/node/src/node_implementations/zombienet.rs +++ b/crates/node/src/node_implementations/zombienet.rs @@ -83,18 +83,30 @@ static NODE_COUNT: AtomicU32 = AtomicU32::new(0); /// an interface to interact with the parachain's Ethereum RPC. #[derive(Debug, Default)] pub struct ZombieNode { + /* Node Identifier */ id: u32, - node_binary: PathBuf, connection_string: String, + node_rpc_port: Option, + + /* Directory Paths */ base_directory: PathBuf, logs_directory: PathBuf, + + /* Binary Paths & Timeouts */ eth_proxy_binary: PathBuf, - wallet: Arc, - nonce_manager: CachedNonceManager, + polkadot_parachain_path: PathBuf, + + /* Spawned Processes */ + eth_rpc_process: Option, + + /* Zombienet Network */ network_config: Option, network: Option>, - eth_rpc_process: Option, - node_rpc_port: Option, + + /* Provider Related Fields */ + wallet: Arc, + nonce_manager: CachedNonceManager, + provider: OnceCell>>, } @@ -113,7 +125,7 @@ impl ZombieNode { const CHAIN_SPEC_JSON_FILE: &str = "template_chainspec.json"; pub fn new( - node_path: PathBuf, + polkadot_parachain_path: PathBuf, context: impl AsRef + AsRef + AsRef, @@ -134,7 +146,7 @@ impl ZombieNode { base_directory, logs_directory, wallet, - node_binary: node_path, + polkadot_parachain_path, eth_proxy_binary, nonce_manager: CachedNonceManager::default(), network_config: None, @@ -157,10 +169,10 @@ impl ZombieNode { let template_chainspec_path = self.base_directory.join(Self::CHAIN_SPEC_JSON_FILE); self.prepare_chainspec(template_chainspec_path.clone(), genesis)?; - let node_binary = self - .node_binary + let polkadot_parachain_path = self + .polkadot_parachain_path .to_str() - .context("Invalid node binary path")?; + .context("Invalid polkadot parachain path")?; let node_rpc_port = Self::NODE_BASE_RPC_PORT + self.id as u16; @@ -178,7 +190,7 @@ impl ZombieNode { .with_chain("asset-hub-westend-local") .with_collator(|n| { n.with_name("Collator") - .with_command(node_binary) + .with_command(polkadot_parachain_path) .with_rpc_port(node_rpc_port) }) }) @@ -259,7 +271,7 @@ impl ZombieNode { template_chainspec_path: PathBuf, mut genesis: Genesis, ) -> anyhow::Result<()> { - let mut cmd: Command = std::process::Command::new(&self.node_binary); + let mut cmd: Command = std::process::Command::new(&self.polkadot_parachain_path); cmd.arg(Self::EXPORT_CHAINSPEC_COMMAND) .arg("--chain") .arg("asset-hub-westend-local"); @@ -735,7 +747,7 @@ impl Node for ZombieNode { } fn version(&self) -> anyhow::Result { - let output = Command::new(&self.node_binary) + let output = Command::new(&self.polkadot_parachain_path) .arg("--version") .stdin(Stdio::null()) .stdout(Stdio::piped()) @@ -775,7 +787,10 @@ mod tests { pub async fn new_node() -> (TestExecutionContext, ZombieNode) { let context = test_config(); - let mut node = ZombieNode::new(context.zombienet_configuration.path.clone(), &context); + let mut node = ZombieNode::new( + context.polkadot_parachain_configuration.path.clone(), + &context, + ); let genesis = context.genesis_configuration.genesis().unwrap().clone(); node.init(genesis).unwrap(); @@ -840,7 +855,10 @@ mod tests { "#; let context = test_config(); - let mut node = ZombieNode::new(context.zombienet_configuration.path.clone(), &context); + let mut node = ZombieNode::new( + context.polkadot_parachain_configuration.path.clone(), + &context, + ); // Call `init()` node.init(serde_json::from_str(genesis_content).unwrap()) @@ -885,7 +903,10 @@ mod tests { "#; let context = test_config(); - let node = ZombieNode::new(context.zombienet_configuration.path.clone(), &context); + let node = ZombieNode::new( + context.polkadot_parachain_configuration.path.clone(), + &context, + ); let result = node .extract_balance_from_genesis_file(&serde_json::from_str(genesis_json).unwrap()) @@ -958,7 +979,10 @@ mod tests { fn eth_rpc_version_works() { // Arrange let context = test_config(); - let node = ZombieNode::new(context.zombienet_configuration.path.clone(), &context); + let node = ZombieNode::new( + context.polkadot_parachain_configuration.path.clone(), + &context, + ); // Act let version = node.eth_rpc_version().unwrap(); @@ -974,7 +998,10 @@ mod tests { fn version_works() { // Arrange let context = test_config(); - let node = ZombieNode::new(context.zombienet_configuration.path.clone(), &context); + let node = ZombieNode::new( + context.polkadot_parachain_configuration.path.clone(), + &context, + ); // Act let version = node.version().unwrap(); @@ -987,6 +1014,7 @@ mod tests { } #[tokio::test] + #[ignore = "Ignored since they take a long time to run"] async fn get_chain_id_from_node_should_succeed() { // Arrange let node = shared_node().await; @@ -1005,6 +1033,7 @@ mod tests { } #[tokio::test] + #[ignore = "Ignored since they take a long time to run"] async fn can_get_gas_limit_from_node() { // Arrange let node = shared_node().await; @@ -1022,6 +1051,7 @@ mod tests { } #[tokio::test] + #[ignore = "Ignored since they take a long time to run"] async fn can_get_coinbase_from_node() { // Arrange let node = shared_node().await; @@ -1039,6 +1069,7 @@ mod tests { } #[tokio::test] + #[ignore = "Ignored since they take a long time to run"] async fn can_get_block_difficulty_from_node() { // Arrange let node = shared_node().await; @@ -1056,6 +1087,7 @@ mod tests { } #[tokio::test] + #[ignore = "Ignored since they take a long time to run"] async fn can_get_block_hash_from_node() { // Arrange let node = shared_node().await; @@ -1073,6 +1105,7 @@ mod tests { } #[tokio::test] + #[ignore = "Ignored since they take a long time to run"] async fn can_get_block_timestamp_from_node() { // Arrange let node = shared_node().await; @@ -1090,6 +1123,7 @@ mod tests { } #[tokio::test] + #[ignore = "Ignored since they take a long time to run"] async fn can_get_block_number_from_node() { // Arrange let node = shared_node().await;