//! Additional Node command arguments. //! clap [Args](clap::Args) for optimism rollup configuration /// Parameters for rollup configuration #[derive(Debug, Clone, Default, PartialEq, Eq, clap::Args)] #[command(next_help_heading = "Rollup")] pub struct RollupArgs { /// HTTP endpoint for the sequencer mempool #[arg(long = "rollup.sequencer-http", value_name = "HTTP_URL")] pub sequencer_http: Option, /// Disable transaction pool gossip #[arg(long = "rollup.disable-tx-pool-gossip")] pub disable_txpool_gossip: bool, /// Enable walkback to genesis on startup. This is useful for re-validating the existing DB /// prior to beginning normal syncing. #[arg(long = "rollup.enable-genesis-walkback")] pub enable_genesis_walkback: bool, /// By default the pending block equals the latest block /// to save resources and not leak txs from the tx-pool, /// this flag enables computing of the pending block /// from the tx-pool instead. /// /// If `compute_pending_block` is not enabled, the payload builder /// will use the payload attributes from the latest block. Note /// that this flag is not yet functional. #[arg(long = "rollup.compute-pending-block")] pub compute_pending_block: bool, /// enables discovery v4 if provided #[arg(long = "rollup.discovery.v4", default_value = "false")] pub discovery_v4: bool, /// Enable the engine2 experimental features on op-reth binary #[arg(long = "engine.experimental", default_value = "false")] pub experimental: bool, } #[cfg(test)] mod tests { use super::*; use clap::{Args, Parser}; /// A helper type to parse Args more easily #[derive(Parser)] struct CommandParser { #[command(flatten)] args: T, } #[test] fn test_parse_database_args() { let default_args = RollupArgs::default(); let args = CommandParser::::parse_from(["reth"]).args; assert_eq!(args, default_args); } }