use {super::*, bitcoincore_rpc::Auth};
#[derive(Clone, Default, Debug, Parser)]
#[command(group(
ArgGroup::new("chains")
.required(false)
.args(&["chain_argument", "signet", "regtest", "testnet"]),
))]
pub(crate) struct Options {
#[arg(long, help = "Load Bitcoin Core data dir from <BITCOIN_DATA_DIR>.")]
pub(crate) bitcoin_data_dir: Option<PathBuf>,
#[arg(long, help = "Authenticate to Bitcoin Core RPC with <RPC_PASS>.")]
pub(crate) bitcoin_rpc_pass: Option<String>,
#[arg(long, help = "Authenticate to Bitcoin Core RPC as <RPC_USER>.")]
pub(crate) bitcoin_rpc_user: Option<String>,
#[arg(
long = "chain",
value_enum,
default_value = "mainnet",
help = "Use <CHAIN>."
)]
pub(crate) chain_argument: Chain,
#[arg(long, help = "Load configuration from <CONFIG>.")]
pub(crate) config: Option<PathBuf>,
#[arg(long, help = "Load configuration from <CONFIG_DIR>.")]
pub(crate) config_dir: Option<PathBuf>,
#[arg(long, help = "Load Bitcoin Core RPC cookie file from <COOKIE_FILE>.")]