unc/commands/contract/
mod.rs1use 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]
21pub enum ContractActions {
23 #[strum_discriminants(strum(
24 message = "call-function - Execute function (contract method)"
25 ))]
26 CallFunction(self::call_function::CallFunctionCommands),
28 #[strum_discriminants(strum(message = "deploy - Add a new contract code"))]
29 Deploy(self::deploy::Contract),
31 #[strum_discriminants(strum(
32 message = "inspect - Get a list of available function names"
33 ))]
34 Inspect(self::inspect::Contract),
36 #[strum_discriminants(strum(message = "download-abi - Download contract ABI"))]
37 DownloadAbi(self::download_abi::Contract),
39 #[strum_discriminants(strum(message = "download-wasm - Download wasm"))]
40 DownloadWasm(self::download_wasm::Contract),
42 #[strum_discriminants(strum(message = "view-storage - View contract storage state"))]
43 ViewStorage(self::view_storage::ViewStorage),
45}