1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
// Copyright 2020 ChainSafe Systems
// SPDX-License-Identifier: Apache-2.0
//!
//! This modules contains all genesis block related stuff
//!
mod config;
pub use config::*;
use mina_rs_base::types::*;
mod genesis_impl;
/// Trait for genesis block initialization logic
/// # Example
/// ```
/// use mina_rs_base::types::*;
/// use mina_consensus::genesis::*;
/// let genesis_mainnet = ExternalTransition::from_genesis_config(&MAINNET_CONFIG);
/// let genesis_devnet = ExternalTransition::from_genesis_config(&DEVNET_CONFIG);
/// ```
pub trait Genesis {
/// Constructs a genesis block from config
fn from_genesis_config(config: &GenesisInitConfig) -> ExternalTransition;
}
/// Trait for genesis protocol state
pub trait GenesisProtocolState<T> {
/// genesis protocol state on berkeley net
fn berkeley() -> &'static T;
}