wevm/modules/
v1.rs

1use wevm_proc_macro::module;
2
3#[module(env1)]
4mod test {
5    // Asset
6    fn get_balance(
7        offset_asset_id: *const u8,
8        length_asset_id: usize,
9        offset_holder: *const u8,
10        length_holder: usize,
11        type_: u32,
12        version: u32,
13    ) -> (i32, i64) {
14        |caller: Caller<Runtime>| {
15            env::asset::get_balance(
16                offset_asset_id,
17                length_asset_id,
18                offset_holder,
19                length_holder,
20                type_,
21                version,
22                caller,
23            )
24        }
25    }
26
27    fn transfer(
28        offset_asset_id: *const u8,
29        length_asset_id: usize,
30        offset_recipient: *const u8,
31        length_recipient: usize,
32        type_: u32,
33        version: u32,
34        amount: i64,
35    ) -> i32 {
36        |caller: Caller<Runtime>| {
37            env::asset::transfer(
38                offset_asset_id,
39                length_asset_id,
40                offset_recipient,
41                length_recipient,
42                type_,
43                version,
44                amount,
45                caller,
46            )
47        }
48    }
49
50    fn issue(
51        offset_name: *const u8,
52        length_name: usize,
53        offset_description: *const u8,
54        length_description: usize,
55        quantity: i64,
56        decimals: i64,
57        is_reissuable: bool,
58    ) -> (i32, *const u8, usize) {
59        |caller: Caller<Runtime>| {
60            env::asset::issue(
61                offset_name,
62                length_name,
63                offset_description,
64                length_description,
65                quantity,
66                decimals,
67                is_reissuable,
68                caller,
69            )
70        }
71    }
72
73    // Block
74    fn block(offset_field: *const u8, length_field: usize) -> (i32, *const u8, usize) {
75        |caller: Caller<Runtime>| {
76            env::block::block(env::Field::Binary(offset_field, length_field), caller)
77        }
78    }
79
80    // Tx
81    fn get_payments() -> (i32, i64) {
82        |caller: Caller<Runtime>| env::tx::get_payments(caller)
83    }
84
85    fn get_payment_asset_id(number: i64) -> (i32, *const u8, usize) {
86        |caller: Caller<Runtime>| env::tx::get_payment_asset_id(number, caller)
87    }
88
89    fn get_payment_amount(number: i64) -> (i32, i64) {
90        |caller: Caller<Runtime>| env::tx::get_payment_amount(number, caller)
91    }
92
93    fn tx(offset_field: *const u8, length_field: usize) -> (i32, *const u8, usize) {
94        |caller: Caller<Runtime>| {
95            env::tx::tx(env::Field::Binary(offset_field, length_field), caller)
96        }
97    }
98}