mirror of
https://github.com/pezkuwichain/revive-differential-tests.git
synced 2026-06-28 12:57:30 +00:00
Cleanup implementation
This commit is contained in:
+19
-4
@@ -6,6 +6,7 @@ use std::{
|
||||
thread,
|
||||
};
|
||||
|
||||
use alloy::{network::TxSigner, signers::Signature};
|
||||
use anyhow::Context;
|
||||
use revive_dt_config::Arguments;
|
||||
|
||||
@@ -23,7 +24,14 @@ where
|
||||
T: Node + Send + 'static,
|
||||
{
|
||||
/// Create a new Pool. This will start as many nodes as there are workers in `config`.
|
||||
pub fn new(config: &Arguments) -> anyhow::Result<Self> {
|
||||
pub fn new(
|
||||
config: &Arguments,
|
||||
additional_signers: impl IntoIterator<Item: TxSigner<Signature> + Send + Sync + 'static>
|
||||
+ Clone
|
||||
+ Send
|
||||
+ Sync
|
||||
+ 'static,
|
||||
) -> anyhow::Result<Self> {
|
||||
let nodes = config.workers;
|
||||
let genesis = read_to_string(&config.genesis_file).context(format!(
|
||||
"can not read genesis file: {}",
|
||||
@@ -34,7 +42,10 @@ where
|
||||
for _ in 0..nodes {
|
||||
let config = config.clone();
|
||||
let genesis = genesis.clone();
|
||||
handles.push(thread::spawn(move || spawn_node::<T>(&config, genesis)));
|
||||
let additional_signers = additional_signers.clone();
|
||||
handles.push(thread::spawn(move || {
|
||||
spawn_node::<T>(&config, additional_signers, genesis)
|
||||
}));
|
||||
}
|
||||
|
||||
let mut nodes = Vec::with_capacity(nodes);
|
||||
@@ -60,8 +71,12 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
fn spawn_node<T: Node + Send>(args: &Arguments, genesis: String) -> anyhow::Result<T> {
|
||||
let mut node = T::new(args);
|
||||
fn spawn_node<T: Node + Send>(
|
||||
args: &Arguments,
|
||||
additional_signers: impl IntoIterator<Item: TxSigner<Signature> + Send + Sync + 'static>,
|
||||
genesis: String,
|
||||
) -> anyhow::Result<T> {
|
||||
let mut node = T::new(args, additional_signers);
|
||||
tracing::info!("starting node: {}", node.connection_string());
|
||||
node.spawn(genesis)?;
|
||||
Ok(node)
|
||||
|
||||
Reference in New Issue
Block a user