multiversx_sc_scenario/
scenario_macros.rs

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