reth_ethereum_cli/
lib.rs

1//! Reth CLI implementation.
2
3#![doc(
4    html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png",
5    html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256",
6    issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/"
7)]
8#![cfg_attr(not(test), warn(unused_crate_dependencies))]
9#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
10
11/// Chain specification parser.
12pub mod chainspec;
13pub mod interface;
14pub use interface::Cli;
15
16#[cfg(test)]
17mod test {
18    use crate::chainspec::EthereumChainSpecParser;
19    use clap::Parser;
20    use reth_chainspec::DEV;
21    use reth_cli_commands::NodeCommand;
22
23    #[test]
24    #[ignore = "reth cmd will print op-reth output if optimism feature enabled"]
25    fn parse_dev() {
26        let cmd: NodeCommand<EthereumChainSpecParser> = NodeCommand::parse_from(["reth", "--dev"]);
27        let chain = DEV.clone();
28        assert_eq!(cmd.chain.chain, chain.chain);
29        assert_eq!(cmd.chain.genesis_hash(), chain.genesis_hash());
30        assert_eq!(
31            cmd.chain.paris_block_and_final_difficulty,
32            chain.paris_block_and_final_difficulty
33        );
34        assert_eq!(cmd.chain.hardforks, chain.hardforks);
35
36        assert!(cmd.rpc.http);
37        assert!(cmd.network.discovery.disable_discovery);
38
39        assert!(cmd.dev.dev);
40    }
41}