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