1//! Core Zcash data structures.
2//!
3//! This crate provides definitions of core data structures for Zcash, such as
4//! blocks, transactions, addresses, etc.
56#![doc(html_favicon_url = "https://zfnd.org/wp-content/uploads/2022/03/zebra-favicon-128.png")]
7#![doc(html_logo_url = "https://zfnd.org/wp-content/uploads/2022/03/zebra-icon.png")]
8#![doc(html_root_url = "https://docs.rs/zebra_chain")]
9// Required by bitvec! macro
10#![recursion_limit = "256"]
1112#[macro_use]
13extern crate bitflags;
1415#[macro_use]
16extern crate serde;
1718#[macro_use]
19extern crate tracing;
2021pub mod amount;
22pub mod block;
23pub mod block_info;
24pub mod chain_sync_status;
25pub mod chain_tip;
26pub mod common;
27pub mod diagnostic;
28pub mod error;
29pub mod fmt;
30pub mod history_tree;
31pub mod orchard;
32pub mod parallel;
33pub mod parameters;
34pub mod primitives;
35pub mod sapling;
36pub mod serialization;
37pub mod shutdown;
38pub mod sprout;
39pub mod subtree;
40pub mod transaction;
41pub mod transparent;
42pub mod value_balance;
43pub mod work;
4445pub use error::Error;
4647#[cfg(any(test, feature = "proptest-impl"))]
48pub use block::LedgerState;
4950#[cfg(any(test, feature = "proptest-impl"))]
51pub mod tests;
5253/// Error type alias to make working with generic errors easier.
54///
55/// Note: the 'static lifetime bound means that the *type* cannot have any
56/// non-'static lifetimes, (e.g., when a type contains a borrow and is
57/// parameterized by 'a), *not* that the object itself has 'static lifetime.
58pub type BoxError = Box<dyn std::error::Error + Send + Sync + 'static>;