use std::path::PathBuf;
mod derive;
mod eigen;
mod fees;
mod pool;
mod whitelist;
pub use derive::*;
pub use eigen::*;
pub use fees::*;
pub use pool::*;
pub use whitelist::*;
use clap::{Args as ClapArgs, Parser, Subcommand};
use solana_sdk::pubkey::Pubkey;
#[derive(Parser)]
#[clap(author, version, about)]
pub struct Args {
#[clap(subcommand)]
pub command: Commands,
}
#[derive(Subcommand)]
pub enum Commands {
Decode(DecodeArgs),
#[clap(subcommand)]
Derive(DeriveSubcommands),
Download(DownloadArgs),
Error(ErrorArgs),
#[clap(subcommand)]
Fees(FeesSubcommands),
#[clap(subcommand)]
Pool(PoolSubcommands),
#[clap(subcommand, name = "self")]
Eigen(EigenSubcommands),
#[clap(subcommand)]
Whitelist(WhitelistSubcommands),
}
#[derive(ClapArgs)]
pub struct ReadOptions {
#[arg(short, long)]
pub rpc_url: Option<String>,
}
#[derive(ClapArgs)]
pub struct WriteOptions {
#[arg(short, long)]
pub keypair_path: Option<PathBuf>,
#[arg(short, long)]
pub rpc_url: Option<String>,
}
#[derive(ClapArgs)]
pub struct DecodeArgs {
#[command(flatten)]
pub read_options: ReadOptions,
pub address: Pubkey,
#[arg(long)]
pub raw: bool,
}
#[derive(ClapArgs)]
pub struct DownloadArgs {
#[clap(flatten)]
pub read_options: ReadOptions,
pub address: Pubkey,
pub output_dir: Option<PathBuf>,
}
#[derive(ClapArgs)]
pub struct ErrorArgs {
pub error_code: String,
}