we_cdk/macros/
block.rs

1/// Get block fields
2///
3/// # Usage
4/// ```
5/// use we_cdk::*;
6///
7/// #[action]
8/// fn _constructor() {
9///     let block_timestamp: Integer = block!(timestamp);
10///     let block_height: Integer = block!(height);
11/// }
12/// ```
13#[macro_export]
14macro_rules! block {
15    (timestamp) => {{
16        let field = "timestamp";
17        let (error, ptr, len) = wevm::v1::bindings::block(field.as_ptr(), field.len());
18        error!(error);
19        let (error, ptr, len) = wevm::v0::bindings::to_le_bytes(ptr, len);
20        error!(error);
21        *(ptr as *const i64)
22    }};
23    (height) => {{
24        let field = "height";
25        let (error, ptr, len) = wevm::v1::bindings::block(field.as_ptr(), field.len());
26        error!(error);
27        let (error, ptr, len) = wevm::v0::bindings::to_le_bytes(ptr, len);
28        error!(error);
29        *(ptr as *const i64)
30    }};
31}