crema-cli 0.1.0

Blockchain, Crema for Solana
Documentation
use clap::{App, Arg, SubCommand};

pub trait FarmingSubCommands {
    fn farming_subcommands(self) -> Self;
}

impl FarmingSubCommands for App<'_, '_> {
    fn farming_subcommands(self) -> Self {
        self.subcommand(
            SubCommand::with_name("farming")
                .about("farming")
                .alias("farming")
                .subcommands(
                    vec![


// ---------------------  mint_wrapper  -------------------------------
SubCommand::with_name("mint-wrapper")
    .about("The quarry_mint_wrapper:MintWrapper sub commands")
    .alias("mint-wrapper")
    .subcommands(
        vec![
            SubCommand::with_name("new")
                .args(
                    &[
                        Arg::with_name("mint")
                            .index(1)
                            .value_name("MINT")
                            .required(true)
                            .help("The token mint address"),
                        Arg::with_name("hardcap")
                            .index(2)
                            .value_name("HardCap")
                            .required(true)
                            .help("The token mint hardcap"),
                    ]
                ),
            SubCommand::with_name("list"),
            SubCommand::with_name("info")
                .arg(
                    Arg::with_name("wrapper")
                        .index(1)
                        .value_name("WRAPPER")
                        .required(true)
                        .help("The mint wrapper address."),
                ),
            SubCommand::with_name("back-authority")
                .args(
                    &[
                        Arg::with_name("wrapper")
                            .index(1)
                            .value_name("WRAPPER")
                            .required(true)
                            .help("The mint wrapper address"),
                        Arg::with_name("authority")
                            .index(2)
                            .value_name("Authority")
                            .required(true)
                            .help("The dest Authority"),
                    ]
                ),
            SubCommand::with_name("transfer-authority")
                .arg(
                    Arg::with_name("wrapper")
                        .index(1)
                        .value_name("WRAPPER")
                        .required(true)
                        .help("The mint wrapper address."),
                ),
        ]
    ),
SubCommand::with_name("minter")
    .about("The quarry_mint_wrapper:Minter sub commands")
    .alias("minter")
    .subcommands(
        vec![
            SubCommand::with_name("new")
                .args(
                    &[
                        Arg::with_name("wrapper")
                            .index(1)
                            .value_name("WRAPPER")
                            .required(true)
                            .help("The mint wrapper address"),
                        Arg::with_name("allowance")
                            .index(2)
                            .value_name("Allowance")
                            .required(true)
                            .help("The minter allowance"),
                        Arg::with_name("authority")
                            .index(3)
                            .value_name("Authority")
                            .required(true)
                            .help("The minter authority address"),
                    ]
                ),
            SubCommand::with_name("list")
                .arg(
                    Arg::with_name("wrapper")
                        .index(1)
                        .value_name("WRAPPER")
                        .required(true)
                        .help("The mint wrapper address"),
                ),
            SubCommand::with_name("info")
                .args(
                    &[
                        Arg::with_name("wrapper")
                            .index(1)
                            .value_name("WRAPPER")
                            .required(true)
                            .help("The mint wrapper address"),
                        Arg::with_name("authority")
                            .index(2)
                            .value_name("Authority")
                            .required(true)
                            .help("The authority of the minter"),
                    ]
                ),
            SubCommand::with_name("update")
                .args(
                    &[
                        Arg::with_name("wrapper")
                            .index(1)
                            .value_name("WRAPPER")
                            .required(true)
                            .help("The mint wrapper address"),
                        Arg::with_name("authority")
                            .index(2)
                            .value_name("Authority")
                            .required(true)
                            .help("The authority of the minter"),
                        Arg::with_name("allowance")
                            .index(3)
                            .value_name("Allowance")
                            .required(true)
                            .help("The minter's new allowance."),
                    ]
                ),
            SubCommand::with_name("mint")
                .args(
                    &[
                        Arg::with_name("wrapper")
                            .index(1)
                            .value_name("WRAPPER")
                            .required(true)
                            .help("The mint wrapper address"),
                        Arg::with_name("dest_owner")
                            .index(2)
                            .value_name("DEST_OWNER")
                            .required(true)
                            .help("The dest owner"),
                        Arg::with_name("amount")
                            .index(3)
                            .value_name("AMOUNT")
                            .required(true)
                            .help("The minter's new allowance."),
                    ]
                ),
        ]
    ),

// ---------------------  mine  -------------------------------
SubCommand::with_name("quarry-mine")
    .about("The quarry_mine:Quarry sub commands")
    .alias("quarry")
    .subcommands(
        vec![
            SubCommand::with_name("new")
                .args(
                    &[
                        Arg::with_name("rewarder")
                            .index(1)
                            .value_name("REWARDER")
                            .required(true)
                            .help("The rewarder address"),
                        Arg::with_name("mint")
                            .index(2)
                            .value_name("MINT")
                            .required(true)
                            .help("The stake token mint address"),
                        Arg::with_name("famine_ts")
                            .index(3)
                            .value_name("FAMINE_TS")
                            .required(true)
                            .help("The quarry's famine timestamp"),
                        Arg::with_name("share")
                            .index(4)
                            .value_name("SHARE")
                            .required(true)
                            .help("The quarry's rewards share"),
                    ]
                ),
            SubCommand::with_name("list"),
            SubCommand::with_name("info").args(
                &[
                    Arg::with_name("rewarder")
                        .index(1)
                        .value_name("REWARDER")
                        .required(true)
                        .help("The rewarder address"),
                    Arg::with_name("mint")
                        .index(2)
                        .value_name("MINT")
                        .required(true)
                        .help("The stake token mint address"),
                ]
            ),
            SubCommand::with_name("update-share").args(
                &[
                    Arg::with_name("rewarder")
                        .index(1)
                        .value_name("REWARDER")
                        .required(true)
                        .help("The rewarder address"),
                    Arg::with_name("mint")
                        .index(2)
                        .value_name("MINT")
                        .required(true)
                        .help("The stake token mint address"),
                    Arg::with_name("share")
                        .index(3)
                        .value_name("SHARE")
                        .required(true)
                        .help("The quarry's rewards share"),
                ]
            ),
            SubCommand::with_name("set-famine").args(
                &[
                    Arg::with_name("rewarder")
                        .index(1)
                        .value_name("REWARDER")
                        .required(true)
                        .help("The rewarder address"),
                    Arg::with_name("mint")
                        .index(2)
                        .value_name("MINT")
                        .required(true)
                        .help("The stake token mint address"),
                    Arg::with_name("famine_ts")
                        .index(3)
                        .value_name("FAMINE_TS")
                        .required(true)
                        .help("The quarry's famine timestamp"),
                ]
            ),
        ]
    ),
SubCommand::with_name("mine-rewarder")
    .about("The quarry_mine:Rewarder sub commands")
    .alias("rewarder")
    .subcommands(
        vec![
            SubCommand::with_name("new")
                .args(
                    &[
                        Arg::with_name("wrapper")
                            .index(1)
                            .value_name("WRAPPER")
                            .required(true)
                            .help("The mint wrapper address"),
                        Arg::with_name("annual-rate")
                            .index(2)
                            .value_name("ANNUAL_RATE")
                            .required(true)
                            .help("The rewarder annual rewards rate"),
                    ]
                ),
            SubCommand::with_name("list"),
            SubCommand::with_name("info")
                .arg(
                    Arg::with_name("rewarder")
                        .index(1)
                        .value_name("REWARDER")
                        .required(true)
                        .help("The rewarder address"),
                ),
            SubCommand::with_name("set-annual-rate")
                .args(
                    &[
                        Arg::with_name("rewarder")
                            .index(1)
                            .value_name("REWARDER")
                            .required(true)
                            .help("The rewarder address"),
                        Arg::with_name("rate")
                            .index(2)
                            .value_name("RATE")
                            .required(true)
                            .help("The new annual reward rate"),
                    ]
                ),
            SubCommand::with_name("sync-quarry-rewards")
                .args(
                    &[
                        Arg::with_name("rewarder")
                            .index(1)
                            .value_name("REWARDER")
                            .required(true)
                            .help("The rewarder address"),
                        Arg::with_name("mint")
                            .index(2)
                            .value_name("MINT")
                            .required(true)
                            .help("The mint public list, separated by ',' "),
                    ]
                ),
        ]
    ),
// ---------------------  position_wrapper  -------------------------------
SubCommand::with_name("position-wrapper")
    .about("The position-wrapper sub commands")
    .alias("position-wrapper")
    .subcommands(
        vec![
            SubCommand::with_name("new"),
            SubCommand::with_name("update"),
            SubCommand::with_name("transfer-admin"),
            SubCommand::with_name("accept-admin"),
            SubCommand::with_name("mint"),
            SubCommand::with_name("mint-stake"),
            SubCommand::with_name("unstake-burn"),
            SubCommand::with_name("info"),
            SubCommand::with_name("burn"),
            SubCommand::with_name("stake-position-info"),
            SubCommand::with_name("stake-positions"),
            SubCommand::with_name("wrap-amount"),
            SubCommand::with_name("wrappers"),
            SubCommand::with_name("rate"),
        ]
    ),
                    ]
                )
        )
    }
}