multiversx_sc_scenario/
scenario_macros.rs

1#[macro_export]
2macro_rules! rust_biguint {
3    ($value:expr) => {{
4        multiversx_sc_scenario::num_bigint::BigUint::from($value as u64)
5    }};
6}
7
8#[macro_export]
9macro_rules! managed_biguint {
10    ($value:expr) => {{
11        multiversx_sc::types::BigUint::from($value as u64)
12    }};
13}
14
15#[macro_export]
16macro_rules! managed_buffer {
17    ($value:expr) => {{
18        multiversx_sc::types::ManagedBuffer::new_from_bytes($value)
19    }};
20}
21
22#[macro_export]
23macro_rules! managed_address {
24    ($address:expr) => {{
25        multiversx_sc::types::ManagedAddress::from_address($address)
26    }};
27}
28
29#[macro_export]
30macro_rules! managed_token_id {
31    ($bytes:expr) => {{
32        multiversx_sc::types::EsdtTokenIdentifier::from_esdt_bytes($bytes)
33    }};
34}
35
36#[macro_export]
37macro_rules! managed_token_id_wrapped {
38    ($bytes:expr) => {{
39        let ___esdt_token_id___ =
40            multiversx_sc::types::EsdtTokenIdentifier::from_esdt_bytes($bytes);
41        multiversx_sc::types::EgldOrEsdtTokenIdentifier::esdt(___esdt_token_id___)
42    }};
43}
44
45#[macro_export]
46macro_rules! managed_egld_token_id {
47    () => {{
48        multiversx_sc::types::EgldOrEsdtTokenIdentifier::egld()
49    }};
50}
51
52#[macro_export]
53macro_rules! assert_sc_error {
54    ($sc_result:expr, $expected_string:expr) => {{
55        match $sc_result {
56            multiversx_sc::types::SCResult::Ok(t) => {
57                panic!("Expected SCError, but got SCResult::Ok: {:?}", t)
58            }
59            multiversx_sc::types::SCResult::Err(err) => {
60                let as_str = String::from_utf8(err.as_bytes().to_vec()).unwrap();
61                assert_eq!(as_str, $expected_string);
62            }
63        }
64    }};
65}
66
67#[macro_export]
68macro_rules! assert_values_eq {
69    ($left:expr, $right:expr) => {{
70        assert!(
71            $left == $right,
72            "Assert mismatch: \n Left: {:?} \n Right: {:?}",
73            $left,
74            $right
75        )
76    }};
77}
78
79#[macro_export]
80macro_rules! unwrap_or_panic {
81    ($sc_result:expr) => {{
82        match $sc_result {
83            multiversx_sc::types::SCResult::Ok(t) => t,
84            multiversx_sc::types::SCResult::Err(err) => {
85                let as_str = String::from_utf8(err.as_bytes().to_vec()).unwrap();
86                panic!("{}", as_str);
87            }
88        }
89    }};
90}