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::TokenIdentifier::from_esdt_bytes($bytes)
33    }};
34}
35
36#[macro_export]
37macro_rules! managed_token_id_wrapped {
38    ($bytes:expr) => {{
39        let ___esdt_token_id___ = multiversx_sc::types::TokenIdentifier::from_esdt_bytes($bytes);
40        multiversx_sc::types::EgldOrEsdtTokenIdentifier::esdt(___esdt_token_id___)
41    }};
42}
43
44#[macro_export]
45macro_rules! managed_egld_token_id {
46    () => {{
47        multiversx_sc::types::EgldOrEsdtTokenIdentifier::egld()
48    }};
49}
50
51#[macro_export]
52macro_rules! assert_sc_error {
53    ($sc_result:expr, $expected_string:expr) => {{
54        match $sc_result {
55            multiversx_sc::types::SCResult::Ok(t) => {
56                panic!("Expected SCError, but got SCResult::Ok: {:?}", t)
57            }
58            multiversx_sc::types::SCResult::Err(err) => {
59                let as_str = String::from_utf8(err.as_bytes().to_vec()).unwrap();
60                assert_eq!(as_str, $expected_string);
61            }
62        }
63    }};
64}
65
66#[macro_export]
67macro_rules! assert_values_eq {
68    ($left:expr, $right:expr) => {{
69        assert!(
70            $left == $right,
71            "Assert mismatch: \n Left: {:?} \n Right: {:?}",
72            $left,
73            $right
74        )
75    }};
76}
77
78#[macro_export]
79macro_rules! unwrap_or_panic {
80    ($sc_result:expr) => {{
81        match $sc_result {
82            multiversx_sc::types::SCResult::Ok(t) => t,
83            multiversx_sc::types::SCResult::Err(err) => {
84                let as_str = String::from_utf8(err.as_bytes().to_vec()).unwrap();
85                panic!("{}", as_str);
86            }
87        }
88    }};
89}