use clap::Args;
#[cfg(feature = "production")]
use fuel_core::service::sub_services::DEFAULT_GAS_PRICE_CHANGE_PERCENT;
use url::Url;
#[derive(Debug, Clone, Args)]
pub struct GasPriceArgs {
#[cfg_attr(
feature = "production",
arg(long = "starting-gas-price", default_value = "1000", env)
)]
#[cfg_attr(
not(feature = "production"),
arg(long = "starting-gas-price", default_value = "0", env)
)]
pub starting_gas_price: u64,
#[cfg_attr(
feature = "production",
arg(long = "gas-price-change-percent", default_value_t = DEFAULT_GAS_PRICE_CHANGE_PERCENT, env)
)]
#[cfg_attr(
not(feature = "production"),
arg(long = "gas-price-change-percent", default_value = "0", env)
)]
pub gas_price_change_percent: u16,
#[arg(long = "min-gas-price", default_value = "0", env)]
pub min_gas_price: u64,
#[arg(long = "gas-price-threshold-percent", default_value = "50", env)]
pub gas_price_threshold_percent: u8,
#[cfg_attr(
feature = "production",
arg(long = "min-da-gas-price", default_value = "1000", env)
)]
#[cfg_attr(
not(feature = "production"),
arg(long = "min-da-gas-price", default_value = "0", env)
)]
pub min_da_gas_price: u64,
#[arg(long = "max-da-gas-price", default_value = "100000", env)]
pub max_da_gas_price: u64,
#[arg(
long = "da-gas-price-p-component",
default_value = "799999999999993",
env
)]
pub da_gas_price_p_component: i64,
#[arg(
long = "da-gas-price-d-component",
default_value = "10000000000000000",
env
)]
pub da_gas_price_d_component: i64,
#[arg(long = "da-committer-url", env)]
pub da_committer_url: Option<Url>,
#[arg(long = "da-poll-interval", env)]
pub da_poll_interval: Option<humantime::Duration>,
#[arg(long = "da-starting-recorded-height", env)]
pub da_starting_recorded_height: Option<u32>,
}