1#[macro_export]
16macro_rules! contains_key {
17 ($key:expr) => {{
18 let this = internal_data!(this);
19 let (error, result) =
20 wevm::v0::bindings::contains_key(this.0, this.1, $key.as_ptr(), $key.len());
21 error!(error);
22 result
23 }};
24 ($address:expr => $key:expr) => {{
25 let (error, result) = wevm::v0::bindings::contains_key(
26 $address.as_ptr(),
27 $address.len(),
28 $key.as_ptr(),
29 $key.len(),
30 );
31 error!(error);
32 result
33 }};
34}
35
36#[macro_export]
55macro_rules! get_storage {
56 (integer :: $key:expr) => {{
57 let this = internal_data!(this);
58 let (error, value) =
59 wevm::v0::bindings::get_storage_int(this.0, this.1, $key.as_ptr(), $key.len());
60 error!(error);
61 value
62 }};
63 (integer :: $address:expr => $key:expr) => {{
64 let (error, value) = wevm::v0::bindings::get_storage_int(
65 $address.as_ptr(),
66 $address.len(),
67 $key.as_ptr(),
68 $key.len(),
69 );
70 error!(error);
71 value
72 }};
73 (boolean :: $key:expr) => {{
74 let this = internal_data!(this);
75 let (error, value) =
76 wevm::v0::bindings::get_storage_bool(this.0, this.1, $key.as_ptr(), $key.len());
77 error!(error);
78 value
79 }};
80 (boolean :: $address:expr => $key:expr) => {{
81 let (error, value) = wevm::v0::bindings::get_storage_bool(
82 $address.as_ptr(),
83 $address.len(),
84 $key.as_ptr(),
85 $key.len(),
86 );
87 error!(error);
88 value
89 }};
90 (binary :: $key:expr) => {{
91 let this = internal_data!(this);
92 let (error, ptr, len) =
93 wevm::v0::bindings::get_storage_binary(this.0, this.1, $key.as_ptr(), $key.len());
94 error!(error);
95 core::slice::from_raw_parts(ptr, len)
96 }};
97 (binary :: $address:expr => $key:expr) => {{
98 let (error, ptr, len) = wevm::v0::bindings::get_storage_binary(
99 $address.as_ptr(),
100 $address.len(),
101 $key.as_ptr(),
102 $key.len(),
103 );
104 error!(error);
105 core::slice::from_raw_parts(ptr, len)
106 }};
107 (string :: $key:expr) => {{
108 let this = internal_data!(this);
109 let (error, ptr, len) =
110 wevm::v0::bindings::get_storage_string(this.0, this.1, $key.as_ptr(), $key.len());
111 error!(error);
112 let bytes = core::slice::from_raw_parts(ptr, len);
113 core::str::from_utf8_unchecked(bytes)
114 }};
115 (string :: $address:expr => $key:expr) => {{
116 let (error, ptr, len) = wevm::v0::bindings::get_storage_string(
117 $address.as_ptr(),
118 $address.len(),
119 $key.as_ptr(),
120 $key.len(),
121 );
122 error!(error);
123 let bytes = core::slice::from_raw_parts(ptr, len);
124 core::str::from_utf8_unchecked(bytes)
125 }};
126}
127
128#[macro_export]
143macro_rules! set_storage {
144 (integer :: $key:expr => $value:expr) => {{
145 let error = wevm::v0::bindings::set_storage_int($key.as_ptr(), $key.len(), $value);
146 error!(error);
147 }};
148 (boolean :: $key:expr => $value:expr) => {
149 let error = wevm::v0::bindings::set_storage_bool($key.as_ptr(), $key.len(), $value);
150 error!(error);
151 };
152 (binary :: $key:expr => $value:expr) => {
153 let error = wevm::v0::bindings::set_storage_binary(
154 $key.as_ptr(),
155 $key.len(),
156 $value.as_ptr(),
157 $value.len(),
158 );
159 error!(error);
160 };
161 (string :: $key:expr => $value:expr) => {
162 let error = wevm::v0::bindings::set_storage_string(
163 $key.as_ptr(),
164 $key.len(),
165 $value.as_ptr(),
166 $value.len(),
167 );
168 error!(error);
169 };
170}