mirror of
https://github.com/pezkuwichain/revive-differential-tests.git
synced 2026-04-30 08:17:59 +00:00
55 lines
1.6 KiB
Rust
55 lines
1.6 KiB
Rust
//! This crate implements the testing nodes.
|
|
|
|
use alloy::genesis::Genesis;
|
|
use revive_common::EVMVersion;
|
|
use revive_dt_config::*;
|
|
use revive_dt_node_interaction::EthereumNode;
|
|
|
|
pub mod common;
|
|
pub mod constants;
|
|
pub mod geth;
|
|
pub mod kitchensink;
|
|
pub mod pool;
|
|
|
|
/// An abstract interface for testing nodes.
|
|
pub trait Node: EthereumNode {
|
|
/// Create a new uninitialized instance.
|
|
fn new(
|
|
context: impl AsRef<WorkingDirectoryConfiguration>
|
|
+ AsRef<ConcurrencyConfiguration>
|
|
+ AsRef<GenesisConfiguration>
|
|
+ AsRef<WalletConfiguration>
|
|
+ AsRef<GethConfiguration>
|
|
+ AsRef<KitchensinkConfiguration>
|
|
+ AsRef<ReviveDevNodeConfiguration>
|
|
+ AsRef<EthRpcConfiguration>
|
|
+ Clone,
|
|
) -> Self;
|
|
|
|
/// Returns the identifier of the node.
|
|
fn id(&self) -> usize;
|
|
|
|
/// Spawns a node configured according to the genesis json.
|
|
///
|
|
/// Blocking until it's ready to accept transactions.
|
|
fn spawn(&mut self, genesis: Genesis) -> anyhow::Result<()>;
|
|
|
|
/// Prune the node instance and related data.
|
|
///
|
|
/// Blocking until it's completely stopped.
|
|
fn shutdown(&mut self) -> anyhow::Result<()>;
|
|
|
|
/// Returns the nodes connection string.
|
|
fn connection_string(&self) -> String;
|
|
|
|
/// Returns the node version.
|
|
fn version(&self) -> anyhow::Result<String>;
|
|
|
|
/// Given a list of targets from the metadata file, this function determines if the metadata
|
|
/// file can be ran on this node or not.
|
|
fn matches_target(targets: Option<&[String]>) -> bool;
|
|
|
|
/// Returns the EVM version of the node.
|
|
fn evm_version() -> EVMVersion;
|
|
}
|