node/transition_frontier/genesis/
mod.rs

1mod transition_frontier_genesis_config;
2pub use transition_frontier_genesis_config::*;
3
4mod transition_frontier_genesis_state;
5pub use transition_frontier_genesis_state::*;
6
7mod transition_frontier_genesis_actions;
8pub use transition_frontier_genesis_actions::*;
9
10mod transition_frontier_genesis_reducer;
11
12use ledger::scan_state::pending_coinbase::PendingCoinbase;
13use mina_p2p_messages::v2;
14use openmina_core::constants::constraint_constants;
15
16pub(super) fn empty_block_body() -> v2::StagedLedgerDiffDiffStableV2 {
17    use ledger::staged_ledger::diff::with_valid_signatures_and_proofs::Diff;
18    (&Diff::empty()).into()
19}
20
21pub(super) fn empty_block_body_hash() -> v2::ConsensusBodyReferenceStableV1 {
22    use ledger::staged_ledger::validate_block::block_body_hash;
23    block_body_hash(&empty_block_body()).unwrap()
24}
25
26pub(super) fn empty_pending_coinbase() -> PendingCoinbase {
27    let mut v = PendingCoinbase::create(constraint_constants().pending_coinbase_depth);
28    v.merkle_root();
29    v
30}
31
32pub fn empty_pending_coinbase_hash() -> v2::PendingCoinbaseHash {
33    v2::MinaBasePendingCoinbaseHashVersionedStableV1(
34        v2::MinaBasePendingCoinbaseHashBuilderStableV1(
35            empty_pending_coinbase().merkle_root().into(),
36        ),
37    )
38    .into()
39}