diff --git a/Cargo.lock b/Cargo.lock index f7e6e957aab..67974c36335 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1369,19 +1369,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "console" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" -dependencies = [ - "encode_unicode", - "libc", - "once_cell", - "unicode-width 0.2.1", - "windows-sys 0.59.0", -] - [[package]] name = "console" version = "0.16.0" @@ -2399,7 +2386,7 @@ version = "0.1.0" dependencies = [ "cosmwasm-std", "quote", - "syn 1.0.109", + "syn 2.0.104", ] [[package]] @@ -3895,7 +3882,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70a646d946d06bedbbc4cac4c218acf4bbf2d87757a784857025f4d447e4e1cd" dependencies = [ - "console 0.16.0", + "console", "portable-atomic", "unicode-width 0.2.1", "unit-prefix", @@ -5711,14 +5698,6 @@ dependencies = [ "time", ] -[[package]] -name = "nym-execute" -version = "0.1.0" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "nym-exit-policy" version = "0.1.0" @@ -10317,7 +10296,7 @@ dependencies = [ "bip39", "bs58", "clap", - "console 0.16.0", + "console", "cw-utils", "dkg-bypass-contract", "humantime", @@ -11984,7 +11963,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ "windows-link", - "windows-result 0.3.4", + "windows-result", "windows-strings", ] diff --git a/Cargo.toml b/Cargo.toml index c69f0e7ee02..48a3a9e1cfd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,7 +53,6 @@ members = [ "common/ecash-signer-check", "common/ecash-signer-check-types", "common/ecash-time", - "common/execute", "common/exit-policy", "common/gateway-requests", "common/gateway-stats-storage", @@ -326,7 +325,7 @@ sqlx = "0.8.6" strum = "0.27.2" strum_macros = "0.27.2" subtle-encoding = "0.5" -syn = "1" +syn = "2" sysinfo = "0.37.0" tap = "1.0.1" tar = "0.4.44" diff --git a/common/execute/Cargo.toml b/common/execute/Cargo.toml deleted file mode 100644 index 613d5ebb5f7..00000000000 --- a/common/execute/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "nym-execute" -version = "0.1.0" -edition = "2021" -license.workspace = true - -[lib] -proc-macro = true - -[dependencies] -syn = { workspace = true, features = ["full"] } -quote = { workspace = true } diff --git a/common/execute/src/lib.rs b/common/execute/src/lib.rs deleted file mode 100644 index c05a2e8748d..00000000000 --- a/common/execute/src/lib.rs +++ /dev/null @@ -1,110 +0,0 @@ -use proc_macro::TokenStream; -use quote::quote; -use syn::{ - parse_macro_input, Block, ExprMethodCall, FnArg, Ident, ItemFn, LitStr, ReturnType, Token, - VisPublic, Visibility, -}; - -#[proc_macro_attribute] -pub fn execute(attr: TokenStream, item: TokenStream) -> TokenStream { - let f = parse_macro_input!(item as ItemFn); - let target = parse_macro_input!(attr as LitStr).value(); - - let cl = if target == "mixnet" { - quote! {self.mixnet_contract_address()} - } else if target == "vesting" { - quote! {self.vesting_contract_address()} - } else { - panic!("Only `mixnet` and `vesting` targets are supported!") - }; - let cl = proc_macro::TokenStream::from(cl); - let cl = parse_macro_input!(cl as ExprMethodCall); - - let orig_f = f.clone(); - let mut execute_f = f.clone(); - let mut simulate_f = f.clone(); - let name = f.sig.ident; - let name_str = name.to_string(); - let call_args = f.sig.inputs.into_iter().filter_map(|arg| match arg { - FnArg::Receiver(_) => None, - FnArg::Typed(arg) => Some(arg.pat), - }); - let execute_args = call_args.clone(); - let simulate_args = call_args; - - execute_f.sig.asyncness = Some(Token![async](execute_f.sig.ident.span())); - simulate_f.sig.asyncness = Some(Token![async](simulate_f.sig.ident.span())); - - execute_f.vis = Visibility::Public(VisPublic { - pub_token: Token![pub](execute_f.sig.ident.span()), - }); - simulate_f.vis = Visibility::Public(VisPublic { - pub_token: Token![pub](simulate_f.sig.ident.span()), - }); - - execute_f.sig.ident = Ident::new( - &format!("execute{}", execute_f.sig.ident), - execute_f.sig.ident.span(), - ); - - simulate_f.sig.ident = Ident::new( - &format!("simulate{}", simulate_f.sig.ident), - simulate_f.sig.ident.span(), - ); - - let execute_output = quote! { - -> Result - }; - let o_ts = proc_macro::TokenStream::from(execute_output); - execute_f.sig.output = parse_macro_input!(o_ts as ReturnType); - - let simulate_output = quote! { - -> Result - }; - let o_ts = proc_macro::TokenStream::from(simulate_output); - simulate_f.sig.output = parse_macro_input!(o_ts as ReturnType); - - let simulate_block = quote! { - { - let (msg, _fee) = self.#name(#(#simulate_args),*); - let msg = self.wrap_contract_execute_message( - #cl, - &msg, - vec![], - )?; - - self.simulate(vec![msg]).await - } - }; - - let ts = proc_macro::TokenStream::from(simulate_block); - simulate_f.block = Box::new(parse_macro_input!(ts as Block)); - - let execute_block = quote! { - { - let (req, fee) = self.#name(#(#execute_args),*); - let fee = fee.unwrap_or(Fee::Auto(Some(self.simulated_gas_multiplier))); - self.client - .execute( - self.address(), - #cl, - &req, - fee, - #name_str, - vec![], - ) - .await - } - }; - - let ts = proc_macro::TokenStream::from(execute_block); - execute_f.block = Box::new(parse_macro_input!(ts as Block)); - - let out = quote! { - #orig_f - #execute_f - #simulate_f - }; - - out.into() -}