1pub(crate) mod appendable_block;
4mod block;
5mod chunkable;
6mod exit_code;
7mod max_ttl;
8mod node_config;
9mod node_id;
10mod status_feed;
12mod sync_leap;
13pub(crate) mod sync_leap_validation_metadata;
14pub(crate) mod transaction;
15mod validator_matrix;
16mod value_or_chunk;
17
18use std::fmt::Debug;
19
20use rand::{CryptoRng, RngCore};
21#[cfg(not(test))]
22use rand_chacha::ChaCha20Rng;
23use thiserror::Error;
24
25pub(crate) use block::{
26 compute_approvals_checksum, create_single_block_rewarded_signatures,
27 BlockExecutionResultsOrChunkId, BlockPayload, BlockWithMetadata, ForwardMetaBlock,
28 InvalidProposalError, MetaBlock, MetaBlockMergeError, MetaBlockState,
29};
30pub use block::{BlockExecutionResultsOrChunk, ExecutableBlock, FinalizedBlock, InternalEraReport};
31pub use chunkable::Chunkable;
32pub use datasize::DataSize;
33pub use exit_code::ExitCode;
34pub(crate) use max_ttl::MaxTtl;
35pub use node_config::{NodeConfig, SyncHandling};
36pub(crate) use node_id::NodeId;
37pub use status_feed::{ChainspecInfo, GetStatusResult, StatusFeed};
38pub(crate) use sync_leap::{GlobalStatesMetadata, SyncLeap, SyncLeapIdentifier};
39pub(crate) use transaction::{
40 LegacyDeploy, MetaTransaction, TransactionFootprint, TransactionHeader,
41};
42pub(crate) use validator_matrix::{EraValidatorWeights, SignatureWeight, ValidatorMatrix};
43pub use value_or_chunk::{
44 ChunkingError, TrieOrChunk, TrieOrChunkId, TrieOrChunkIdDisplay, ValueOrChunk,
45};
46
47pub trait CryptoRngCore: CryptoRng + RngCore {}
49
50impl<T> CryptoRngCore for T where T: CryptoRng + RngCore + ?Sized {}
51
52#[cfg(not(test))]
54pub type NodeRng = ChaCha20Rng;
55
56#[cfg(test)]
58pub type NodeRng = casper_types::testing::TestRng;
59
60#[derive(Debug, Error)]
62#[error("mismatch in variants: {0:?}")]
63pub struct VariantMismatch(pub(super) Box<dyn Debug + Send + Sync>);