use clap::{Parser, Subcommand};
pub const DEFAULT_SOURCE_NETWORK_GATEWAY_URL: &str = "https://alpha4-2.starknet.io/feeder_gateway";
pub const DEFAULT_DESTINATION_NETWORK_GATEWAY_URL: &str =
"https://alpha-mainnet.starknet.io/feeder_gateway";
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand)]
pub enum Commands {
#[command(about = "Fees related subcommands")]
Fees(FeesCommands),
}
#[derive(Parser, Debug)]
pub struct FeesCommands {
#[command(subcommand)]
pub command: FeesSubCommands,
}
#[derive(Subcommand, Debug)]
pub enum FeesSubCommands {
EstimateOnNetwork {
#[arg(short, long, value_name = "TX_HASH")]
tx_hash: String,
#[arg(long, value_name = "SOURCE_NETWORK_GATEWAY_URL", default_value = DEFAULT_SOURCE_NETWORK_GATEWAY_URL)]
source_network_gateway_url: String,
#[arg(long, value_name = "DESTINATION_NETWORK_GATEWAY_URL", default_value = DEFAULT_DESTINATION_NETWORK_GATEWAY_URL)]
destination_network_gateway_url: String,
#[arg(long, value_name = "SOURCE_BLOCK_NUMBER")]
source_block_number: Option<u32>,
#[arg(long, value_name = "DESTINATION_BLOCK_NUMBER")]
destination_block_number: Option<u32>,
},
}