diff --git a/integration_tests/src/test_suite_map.rs b/integration_tests/src/test_suite_map.rs index eec9bdf..77c03a8 100644 --- a/integration_tests/src/test_suite_map.rs +++ b/integration_tests/src/test_suite_map.rs @@ -23,10 +23,14 @@ use wallet::{ account::{AccountSubcommand, NewSubcommand}, config::ConfigSubcommand, programs::{ - ArgsDefinitionOwned, ArgsHolderMaybeUnowned, ArgsHolderOwned, ArgsReceiverMaybeUnowned, - ArgsSenderOwned, ArgsSupplyOwned, amm::AmmProgramAgnosticSubcommand, - native_token_transfer::AuthTransferSubcommand, pinata::PinataProgramAgnosticSubcommand, - token::TokenProgramAgnosticSubcommand, + ArgsReceiverMaybeUnowned, ArgsSenderOwned, + amm::AmmProgramAgnosticSubcommand, + native_token_transfer::AuthTransferSubcommand, + pinata::PinataProgramAgnosticSubcommand, + token::{ + ArgsDefinitionOwned, ArgsHolderMaybeUnowned, ArgsHolderOwned, ArgsSupplyOwned, + TokenProgramAgnosticSubcommand, + }, }, }, config::PersistentStorage, diff --git a/wallet/src/cli/programs/mod.rs b/wallet/src/cli/programs/mod.rs index e74a336..475d5b5 100644 --- a/wallet/src/cli/programs/mod.rs +++ b/wallet/src/cli/programs/mod.rs @@ -16,6 +16,7 @@ trait ParsePrivacyPreservingAccount { fn parse(&self) -> Result; } +#[macro_export] macro_rules! owned_account_name { ($classname: ident, $field: ident) => { #[derive(Debug, Args, Clone)] @@ -43,10 +44,8 @@ macro_rules! owned_account_name { } owned_account_name!(ArgsSenderOwned, from); -owned_account_name!(ArgsDefinitionOwned, definition_account_id); -owned_account_name!(ArgsSupplyOwned, supply_account_id); -owned_account_name!(ArgsHolderOwned, holder_account_id); +#[macro_export] macro_rules! maybe_unowned_account_name { ($classname: ident, $field: ident) => { paste! { @@ -107,4 +106,3 @@ macro_rules! maybe_unowned_account_name { } maybe_unowned_account_name!(ArgsReceiverMaybeUnowned, to); -maybe_unowned_account_name!(ArgsHolderMaybeUnowned, holder); diff --git a/wallet/src/cli/programs/token.rs b/wallet/src/cli/programs/token.rs index 9ecd96b..cae7410 100644 --- a/wallet/src/cli/programs/token.rs +++ b/wallet/src/cli/programs/token.rs @@ -1,22 +1,27 @@ use anyhow::Result; -use clap::Subcommand; +use clap::{Args, Subcommand}; use common::transaction::NSSATransaction; +use paste::paste; use crate::{ - WalletCore, + PrivacyPreservingAccount, WalletCore, cli::{ SubcommandReturnValue, WalletSubcommand, - programs::{ - ArgsDefinitionOwned, ArgsHolderMaybeUnowned, ArgsHolderOwned, ArgsReceiverMaybeUnowned, - ArgsSenderOwned, ArgsSupplyOwned, ParsePrivacyPreservingAccount, - }, + programs::{ArgsReceiverMaybeUnowned, ArgsSenderOwned, ParsePrivacyPreservingAccount}, }, + helperfunctions::{AccountPrivacyKind, parse_addr_with_privacy_prefix}, + maybe_unowned_account_name, owned_account_name, program_facades::{ send_privacy_preserving_transaction_unified, token::{Token, TokenBurnArgs, TokenDefinitionArgs, TokenMintArgs, TokenTransferArgs}, }, }; +owned_account_name!(ArgsDefinitionOwned, definition_account_id); +owned_account_name!(ArgsSupplyOwned, supply_account_id); +owned_account_name!(ArgsHolderOwned, holder_account_id); +maybe_unowned_account_name!(ArgsHolderMaybeUnowned, holder); + /// Represents generic CLI subcommand for a wallet working with token program #[derive(Subcommand, Debug, Clone)] pub enum TokenProgramAgnosticSubcommand {