fix(op-reth): --chain help message (#10661)

This commit is contained in:
Arsenii Kulikov
2024-09-02 20:46:32 +04:00
committed by GitHub
parent d58cf53850
commit cbad38a40f
8 changed files with 17 additions and 19 deletions

View File

@ -1,7 +1,7 @@
//! CLI definition and entrypoint to executable //! CLI definition and entrypoint to executable
use crate::{ use crate::{
args::{utils::chain_help, LogArgs}, args::LogArgs,
commands::debug_cmd, commands::debug_cmd,
version::{LONG_VERSION, SHORT_VERSION}, version::{LONG_VERSION, SHORT_VERSION},
}; };
@ -45,7 +45,7 @@ pub struct Cli<C: ChainSpecParser = DefaultChainSpecParser, Ext: clap::Args + fm
#[arg( #[arg(
long, long,
value_name = "CHAIN_OR_PATH", value_name = "CHAIN_OR_PATH",
long_help = chain_help(), long_help = C::help_messge(),
default_value = C::SUPPORTED_CHAINS[0], default_value = C::SUPPORTED_CHAINS[0],
value_parser = C::parser(), value_parser = C::parser(),
global = true, global = true,

View File

@ -55,4 +55,9 @@ pub trait ChainSpecParser: Clone + Send + Sync + 'static {
fn parser() -> impl TypedValueParser<Value = Arc<Self::ChainSpec>> { fn parser() -> impl TypedValueParser<Value = Arc<Self::ChainSpec>> {
Parser(std::marker::PhantomData::<Self>) Parser(std::marker::PhantomData::<Self>)
} }
/// Produces a help message for the chain spec argument.
fn help_messge() -> String {
format!("The chain this node is running.\nPossible values are either a built-in chain or the path to a chain specification file.\n\nBuilt-in chains:\n {}", Self::SUPPORTED_CHAINS.join(", "))
}
} }

View File

@ -10,7 +10,7 @@ use reth_db_common::init::init_genesis;
use reth_downloaders::{bodies::noop::NoopBodiesDownloader, headers::noop::NoopHeaderDownloader}; use reth_downloaders::{bodies::noop::NoopBodiesDownloader, headers::noop::NoopHeaderDownloader};
use reth_evm::noop::NoopBlockExecutorProvider; use reth_evm::noop::NoopBlockExecutorProvider;
use reth_node_core::{ use reth_node_core::{
args::{utils::chain_help, DatabaseArgs, DatadirArgs}, args::{DatabaseArgs, DatadirArgs},
dirs::{ChainPath, DataDirPath}, dirs::{ChainPath, DataDirPath},
}; };
use reth_primitives::B256; use reth_primitives::B256;
@ -38,7 +38,7 @@ pub struct EnvironmentArgs<C: ChainSpecParser> {
#[arg( #[arg(
long, long,
value_name = "CHAIN_OR_PATH", value_name = "CHAIN_OR_PATH",
long_help = chain_help(), long_help = C::help_messge(),
default_value = C::SUPPORTED_CHAINS[0], default_value = C::SUPPORTED_CHAINS[0],
value_parser = C::parser() value_parser = C::parser()
)] )]

View File

@ -4,7 +4,6 @@ use std::sync::Arc;
use clap::Parser; use clap::Parser;
use reth_chainspec::ChainSpec; use reth_chainspec::ChainSpec;
use reth_cli::chainspec::ChainSpecParser; use reth_cli::chainspec::ChainSpecParser;
use reth_node_core::args::utils::chain_help;
/// Dumps genesis block JSON configuration to stdout /// Dumps genesis block JSON configuration to stdout
#[derive(Debug, Parser)] #[derive(Debug, Parser)]
@ -15,7 +14,7 @@ pub struct DumpGenesisCommand<C: ChainSpecParser> {
#[arg( #[arg(
long, long,
value_name = "CHAIN_OR_PATH", value_name = "CHAIN_OR_PATH",
long_help = chain_help(), long_help = C::help_messge(),
default_value = C::SUPPORTED_CHAINS[0], default_value = C::SUPPORTED_CHAINS[0],
value_parser = C::parser() value_parser = C::parser()
)] )]

View File

@ -9,9 +9,8 @@ use reth_db::{init_db, DatabaseEnv};
use reth_node_builder::{NodeBuilder, WithLaunchContext}; use reth_node_builder::{NodeBuilder, WithLaunchContext};
use reth_node_core::{ use reth_node_core::{
args::{ args::{
utils::{chain_help, DefaultChainSpecParser}, utils::DefaultChainSpecParser, DatabaseArgs, DatadirArgs, DebugArgs, DevArgs, NetworkArgs,
DatabaseArgs, DatadirArgs, DebugArgs, DevArgs, NetworkArgs, PayloadBuilderArgs, PayloadBuilderArgs, PruningArgs, RpcServerArgs, TxPoolArgs,
PruningArgs, RpcServerArgs, TxPoolArgs,
}, },
node_config::NodeConfig, node_config::NodeConfig,
version, version,
@ -35,7 +34,7 @@ pub struct NodeCommand<
#[arg( #[arg(
long, long,
value_name = "CHAIN_OR_PATH", value_name = "CHAIN_OR_PATH",
long_help = chain_help(), long_help = C::help_messge(),
default_value = C::SUPPORTED_CHAINS[0], default_value = C::SUPPORTED_CHAINS[0],
default_value_if("dev", "true", "dev"), default_value_if("dev", "true", "dev"),
value_parser = C::parser(), value_parser = C::parser(),

View File

@ -11,7 +11,7 @@ use reth_config::Config;
use reth_network::{BlockDownloaderProvider, NetworkConfigBuilder}; use reth_network::{BlockDownloaderProvider, NetworkConfigBuilder};
use reth_network_p2p::bodies::client::BodiesClient; use reth_network_p2p::bodies::client::BodiesClient;
use reth_node_core::{ use reth_node_core::{
args::{utils::chain_help, DatabaseArgs, DatadirArgs, NetworkArgs}, args::{DatabaseArgs, DatadirArgs, NetworkArgs},
utils::get_single_header, utils::get_single_header,
}; };
use reth_primitives::BlockHashOrNumber; use reth_primitives::BlockHashOrNumber;
@ -31,7 +31,7 @@ pub struct Command<C: ChainSpecParser> {
#[arg( #[arg(
long, long,
value_name = "CHAIN_OR_PATH", value_name = "CHAIN_OR_PATH",
long_help = chain_help(), long_help = C::help_messge(),
default_value = C::SUPPORTED_CHAINS[0], default_value = C::SUPPORTED_CHAINS[0],
value_parser = C::parser() value_parser = C::parser()
)] )]

View File

@ -19,11 +19,6 @@ pub const SUPPORTED_CHAINS: &[&str] =
/// Chains supported by reth. First value should be used as the default. /// Chains supported by reth. First value should be used as the default.
pub const SUPPORTED_CHAINS: &[&str] = &["mainnet", "sepolia", "holesky", "dev"]; pub const SUPPORTED_CHAINS: &[&str] = &["mainnet", "sepolia", "holesky", "dev"];
/// The help info for the --chain flag
pub fn chain_help() -> String {
format!("The chain this node is running.\nPossible values are either a built-in chain or the path to a chain specification file.\n\nBuilt-in chains:\n {}", SUPPORTED_CHAINS.join(", "))
}
/// Clap value parser for [`ChainSpec`]s. /// Clap value parser for [`ChainSpec`]s.
/// ///
/// The value parser matches either a known chain, the path /// The value parser matches either a known chain, the path

View File

@ -43,7 +43,7 @@ use reth_db::DatabaseEnv;
use reth_evm_optimism::OpExecutorProvider; use reth_evm_optimism::OpExecutorProvider;
use reth_node_builder::{NodeBuilder, WithLaunchContext}; use reth_node_builder::{NodeBuilder, WithLaunchContext};
use reth_node_core::{ use reth_node_core::{
args::{utils::chain_help, LogArgs}, args::LogArgs,
version::{LONG_VERSION, SHORT_VERSION}, version::{LONG_VERSION, SHORT_VERSION},
}; };
use reth_tracing::FileWorkerGuard; use reth_tracing::FileWorkerGuard;
@ -65,7 +65,7 @@ pub struct Cli<Ext: clap::Args + fmt::Debug = NoArgs> {
#[arg( #[arg(
long, long,
value_name = "CHAIN_OR_PATH", value_name = "CHAIN_OR_PATH",
long_help = chain_help(), long_help = OpChainSpecParser::help_messge(),
default_value = OpChainSpecParser::SUPPORTED_CHAINS[0], default_value = OpChainSpecParser::SUPPORTED_CHAINS[0],
value_parser = OpChainSpecParser::parser(), value_parser = OpChainSpecParser::parser(),
global = true, global = true,