multiversx_chain_vm/blockchain/state/
block_info.rs

1pub const DEFAULT_BLOCK_ROUND_TIME_MS: u64 = 6000;
2
3#[derive(Clone, Debug)]
4pub struct BlockConfig {
5    pub previous_block_info: BlockInfo,
6    pub current_block_info: BlockInfo,
7    pub epoch_start_block_info: BlockInfo,
8    pub block_round_time_ms: u64,
9}
10
11impl Default for BlockConfig {
12    fn default() -> Self {
13        BlockConfig {
14            previous_block_info: Default::default(),
15            current_block_info: Default::default(),
16            epoch_start_block_info: Default::default(),
17            block_round_time_ms: DEFAULT_BLOCK_ROUND_TIME_MS,
18        }
19    }
20}
21
22#[derive(Clone, Debug)]
23pub struct BlockInfo {
24    pub block_timestamp_ms: u64,
25    pub block_nonce: u64,
26    pub block_round: u64,
27    pub block_epoch: u64,
28    pub block_random_seed: Box<[u8; 48]>,
29}
30
31impl BlockInfo {
32    pub fn new() -> Self {
33        BlockInfo {
34            block_timestamp_ms: 0,
35            block_nonce: 0,
36            block_round: 0,
37            block_epoch: 0,
38            block_random_seed: Box::from([0u8; 48]),
39        }
40    }
41}
42
43impl Default for BlockInfo {
44    fn default() -> Self {
45        Self::new()
46    }
47}