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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Copyright 2020 ChainSafe Systems
// SPDX-License-Identifier: Apache-2.0

//!
//! This crate implements a number of the base types required to define the Mina protocol.
//! This includes various types of state, blocks, slots, keypairs, numbers etc.
//! All types are versioned where required.
//!

#![deny(warnings)]
#![deny(missing_docs)]

pub mod account;
pub mod blockchain_state;
pub mod blockchain_state_registers;
pub mod common;
pub mod consensus_state;
mod constants;
pub mod delta_transition_chain_proof;
pub mod epoch_data;
pub mod external_transition;
pub mod from_graphql_json;
pub mod global_slot;
pub mod numbers;
pub mod protocol_state;
pub mod protocol_state_proof;
pub mod protocol_version;
mod serialization_type_conversions;
pub mod snark_work;
pub mod staged_ledger_diff;
pub mod user_commands;
pub mod verifiable;
pub mod verification_key;

/// Import common traits;
use from_graphql_json::FromGraphQLJson;
use std::str::FromStr;

/// Import all crates from proof_systems
use proof_systems::*;

/// Re-export serialization type annotations
pub use mina_serialization_types::{BinProtSerializationType, JsonSerializationType};

/// Re-export all the public types under this module for convenience
pub mod types {
    pub use super::account::*;
    pub use super::blockchain_state::*;
    pub use super::blockchain_state_registers::*;
    pub use super::common::*;
    pub use super::consensus_state::*;
    pub use super::delta_transition_chain_proof::*;
    pub use super::epoch_data::*;
    pub use super::external_transition::*;
    pub use super::global_slot::*;
    pub use super::numbers::*;
    pub use super::protocol_state::*;
    pub use super::protocol_state_proof::*;
    pub use super::protocol_version::*;
    pub use super::snark_work::*;
    pub use super::staged_ledger_diff::*;
    pub use super::user_commands::*;
    pub use super::verification_key::*;
}