1use clap::{Parser, Subcommand};
2
3pub const DEFAULT_SOURCE_NETWORK_GATEWAY_URL: &str = "https://alpha4-2.starknet.io/feeder_gateway";
4pub const DEFAULT_DESTINATION_NETWORK_GATEWAY_URL: &str =
5 "https://alpha-mainnet.starknet.io/feeder_gateway";
6
7#[derive(Parser)]
9#[command(author, version, about, long_about = None)]
10pub struct Cli {
11 #[command(subcommand)]
13 pub command: Commands,
14}
15
16#[derive(Subcommand)]
18pub enum Commands {
19 #[command(about = "Fees related subcommands")]
21 Fees(FeesCommands),
22}
23
24#[derive(Parser, Debug)]
26pub struct FeesCommands {
27 #[command(subcommand)]
29 pub command: FeesSubCommands,
30}
31
32#[derive(Subcommand, Debug)]
34pub enum FeesSubCommands {
35 EstimateOnNetwork {
37 #[arg(short, long, value_name = "TX_HASH")]
39 tx_hash: String,
40 #[arg(long, value_name = "SOURCE_NETWORK_GATEWAY_URL", default_value = DEFAULT_SOURCE_NETWORK_GATEWAY_URL)]
43 source_network_gateway_url: String,
44 #[arg(long, value_name = "DESTINATION_NETWORK_GATEWAY_URL", default_value = DEFAULT_DESTINATION_NETWORK_GATEWAY_URL)]
48 destination_network_gateway_url: String,
49 #[arg(long, value_name = "SOURCE_BLOCK_NUMBER")]
52 source_block_number: Option<u32>,
53 #[arg(long, value_name = "DESTINATION_BLOCK_NUMBER")]
56 destination_block_number: Option<u32>,
57 },
58}