unc/commands/contract/
mod.rs

1use strum::{EnumDiscriminants, EnumIter, EnumMessage};
2
3pub mod call_function;
4pub mod deploy;
5mod download_abi;
6mod download_wasm;
7mod inspect;
8mod view_storage;
9
10#[derive(Debug, Clone, interactive_clap::InteractiveClap)]
11#[interactive_clap(context = crate::GlobalContext)]
12pub struct ContractCommands {
13    #[interactive_clap(subcommand)]
14    contract_actions: ContractActions,
15}
16
17#[derive(Debug, EnumDiscriminants, Clone, interactive_clap::InteractiveClap)]
18#[interactive_clap(context = crate::GlobalContext)]
19#[strum_discriminants(derive(EnumMessage, EnumIter))]
20#[non_exhaustive]
21/// Choose a contract action:
22pub enum ContractActions {
23    #[strum_discriminants(strum(
24        message = "call-function   - Execute function (contract method)"
25    ))]
26    /// Execute function (contract method)
27    CallFunction(self::call_function::CallFunctionCommands),
28    #[strum_discriminants(strum(message = "deploy          - Add a new contract code"))]
29    /// Add a contract code
30    Deploy(self::deploy::Contract),
31    #[strum_discriminants(strum(
32        message = "inspect         - Get a list of available function names"
33    ))]
34    /// Get a list of available function names
35    Inspect(self::inspect::Contract),
36    #[strum_discriminants(strum(message = "download-abi    - Download contract ABI"))]
37    /// Download contract ABI
38    DownloadAbi(self::download_abi::Contract),
39    #[strum_discriminants(strum(message = "download-wasm   - Download wasm"))]
40    /// Download wasm
41    DownloadWasm(self::download_wasm::Contract),
42    #[strum_discriminants(strum(message = "view-storage    - View contract storage state"))]
43    /// View contract storage state
44    ViewStorage(self::view_storage::ViewStorage),
45}