cli(op): simplify init-state cmd (#8126)

This commit is contained in:
Emilia Hane
2024-05-06 21:51:11 +02:00
committed by GitHub
parent c79c188745
commit 6f72c0ab5a

View File

@ -10,7 +10,7 @@ use crate::{
use clap::Parser; use clap::Parser;
use reth_config::config::EtlConfig; use reth_config::config::EtlConfig;
use reth_db::{database::Database, init_db}; use reth_db::{database::Database, init_db};
use reth_node_core::init::{init_from_state_dump, init_genesis}; use reth_node_core::init::init_from_state_dump;
use reth_primitives::{ChainSpec, B256}; use reth_primitives::{ChainSpec, B256};
use reth_provider::ProviderFactory; use reth_provider::ProviderFactory;
@ -44,7 +44,7 @@ pub struct InitStateCommand {
/// JSONL file with state dump. /// JSONL file with state dump.
/// ///
/// Must contain accounts in following format, additional account fields are ignored. Can /// Must contain accounts in following format, additional account fields are ignored. Must
/// also contain { "root": \<state-root\> } as first line. /// also contain { "root": \<state-root\> } as first line.
/// { /// {
/// "balance": "\<balance\>", /// "balance": "\<balance\>",
@ -59,8 +59,8 @@ pub struct InitStateCommand {
/// ///
/// Allows init at a non-genesis block. Caution! Blocks must be manually imported up until /// Allows init at a non-genesis block. Caution! Blocks must be manually imported up until
/// and including the non-genesis block to init chain at. See 'import' command. /// and including the non-genesis block to init chain at. See 'import' command.
#[arg(long, value_name = "STATE_DUMP_FILE", verbatim_doc_comment, default_value = None)] #[arg(value_name = "STATE_DUMP_FILE", verbatim_doc_comment)]
state: Option<PathBuf>, state: PathBuf,
#[command(flatten)] #[command(flatten)]
db: DatabaseArgs, db: DatabaseArgs,
@ -69,7 +69,7 @@ pub struct InitStateCommand {
impl InitStateCommand { impl InitStateCommand {
/// Execute the `init` command /// Execute the `init` command
pub async fn execute(self) -> eyre::Result<()> { pub async fn execute(self) -> eyre::Result<()> {
info!(target: "reth::cli", "reth init starting"); info!(target: "reth::cli", "Reth init-state starting");
// add network name to data dir // add network name to data dir
let data_dir = self.datadir.unwrap_or_chain_default(self.chain.chain); let data_dir = self.datadir.unwrap_or_chain_default(self.chain.chain);
@ -84,12 +84,9 @@ impl InitStateCommand {
EtlConfig::default_file_size(), EtlConfig::default_file_size(),
); );
info!(target: "reth::cli", "Writing genesis block"); info!(target: "reth::cli", "Initiating state dump");
let hash = match self.state { let hash = init_at_state(self.state, provider_factory, etl_config)?;
Some(path) => init_at_state(path, provider_factory, etl_config)?,
None => init_genesis(provider_factory)?,
};
info!(target: "reth::cli", hash = ?hash, "Genesis block written"); info!(target: "reth::cli", hash = ?hash, "Genesis block written");
Ok(()) Ok(())