utility_cli_rs/commands/transaction/
mod.rs

1#![allow(clippy::enum_variant_names, clippy::large_enum_variant)]
2use strum::{EnumDiscriminants, EnumIter, EnumMessage};
3
4pub mod construct_transaction;
5mod print_transaction;
6mod reconstruct_transaction;
7mod send_meta_transaction;
8mod send_signed_transaction;
9pub mod sign_transaction;
10mod view_status;
11
12#[derive(Debug, Clone, interactive_clap::InteractiveClap)]
13#[interactive_clap(context = crate::GlobalContext)]
14pub struct TransactionCommands {
15    #[interactive_clap(subcommand)]
16    transaction_actions: TransactionActions,
17}
18
19#[derive(Debug, EnumDiscriminants, Clone, interactive_clap::InteractiveClap)]
20#[interactive_clap(context = crate::GlobalContext)]
21#[strum_discriminants(derive(EnumMessage, EnumIter))]
22#[non_exhaustive]
23/// Сhoose action for transaction:
24pub enum TransactionActions {
25    #[strum_discriminants(strum(
26        message = "view-status              - View a transaction status"
27    ))]
28    /// Execute function (contract method)
29    ViewStatus(self::view_status::TransactionInfo),
30    #[strum_discriminants(strum(
31        message = "reconstruct-transaction  - Use any existing transaction from the chain to construct unc CLI command (helpful tool for re-submitting similar transactions)"
32    ))]
33    /// Use any existing transaction from the chain to construct unc CLI command (helpful tool for re-submitting similar transactions)
34    ReconstructTransaction(self::reconstruct_transaction::TransactionInfo),
35    #[strum_discriminants(strum(
36        message = "construct-transaction    - Construct a new transaction"
37    ))]
38    /// Construct a new transaction
39    ConstructTransaction(self::construct_transaction::ConstructTransaction),
40    #[strum_discriminants(strum(
41        message = "sign-transaction         - Sign previously prepared unsigned transaction"
42    ))]
43    /// Sign previously prepared unsigned transaction
44    SignTransaction(self::sign_transaction::SignTransaction),
45    #[strum_discriminants(strum(
46        message = "print-transaction        - Print all fields of previously prepared transaction without modification"
47    ))]
48    /// Print previously prepared unsigned transaction without modification
49    PrintTransaction(self::print_transaction::PrintTransactionCommands),
50    #[strum_discriminants(strum(
51        message = "send-signed-transaction  - Send a signed transaction"
52    ))]
53    /// Send a signed transaction
54    SendSignedTransaction(self::send_signed_transaction::SignedTransaction),
55    #[strum_discriminants(strum(
56        message = "send-meta-transaction    - Act as a relayer to send a signed delegate action (meta-transaction)"
57    ))]
58    /// Act as a relayer to send a signed delegate action (meta-transaction)
59    SendMetaTransaction(self::send_meta_transaction::SendMetaTransaction),
60}