1use crate::script::ScriptConfig;
2
3extern crate proc_macro;
4
5mod account_component_metadata;
6mod component_macro;
7mod generate;
8mod script;
9
10#[proc_macro]
11pub fn generate(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
12 generate::expand(input)
13}
14
15#[proc_macro_attribute]
16pub fn note_script(
17 attr: proc_macro::TokenStream,
18 item: proc_macro::TokenStream,
19) -> proc_macro::TokenStream {
20 script::expand(
21 attr,
22 item,
23 ScriptConfig {
24 export_interface: "miden:base/note-script@1.0.0",
25 guest_trait_path: "self::bindings::exports::miden::base::note_script::Guest",
26 },
27 )
28}
29
30#[proc_macro_attribute]
31pub fn tx_script(
32 attr: proc_macro::TokenStream,
33 item: proc_macro::TokenStream,
34) -> proc_macro::TokenStream {
35 script::expand(
36 attr,
37 item,
38 ScriptConfig {
39 export_interface: "miden:base/transaction-script@1.0.0",
40 guest_trait_path: "self::bindings::exports::miden::base::transaction_script::Guest",
41 },
42 )
43}
44
45#[proc_macro_attribute]
46pub fn component(
47 attr: proc_macro::TokenStream,
48 item: proc_macro::TokenStream,
49) -> proc_macro::TokenStream {
50 component_macro::component(attr, item)
51}