1#![doc(html_favicon_url = "https://zfnd.org/wp-content/uploads/2022/03/zebra-favicon-128.png")]
12#![doc(html_logo_url = "https://zfnd.org/wp-content/uploads/2022/03/zebra-icon.png")]
13#![doc(html_root_url = "https://docs.rs/zebra_state")]
14
15#[macro_use]
16extern crate tracing;
17
18pub mod config;
20pub mod constants;
22
23#[cfg(any(test, feature = "proptest-impl"))]
25pub mod arbitrary;
26
27mod error;
28mod request;
29mod response;
30mod service;
31
32#[cfg(test)]
33mod tests;
34
35pub use config::{
36 check_and_delete_old_databases, check_and_delete_old_state_databases,
37 database_format_version_on_disk, state_database_format_version_on_disk, Config,
38};
39pub use constants::{state_database_format_version_in_code, MAX_BLOCK_REORG_HEIGHT};
40pub use error::{
41 BoxError, CloneError, CommitSemanticallyVerifiedError, DuplicateNullifierError,
42 ValidateContextError,
43};
44pub use request::{
45 CheckpointVerifiedBlock, CommitSemanticallyVerifiedBlockRequest, HashOrHeight, MappedRequest,
46 ReadRequest, Request, SemanticallyVerifiedBlock,
47};
48
49#[cfg(feature = "indexer")]
50pub use request::Spend;
51
52pub use response::{AnyTx, GetBlockTemplateChainInfo, KnownBlock, MinedTx, ReadResponse, Response};
53pub use service::{
54 chain_tip::{ChainTipBlock, ChainTipChange, ChainTipSender, LatestChainTip, TipAction},
55 check,
56 finalized_state::FinalizedState,
57 init, init_read_only,
58 non_finalized_state::NonFinalizedState,
59 spawn_init_read_only,
60 watch_receiver::WatchReceiver,
61 OutputLocation, TransactionIndex, TransactionLocation,
62};
63
64#[cfg(any(test, feature = "proptest-impl"))]
66pub use service::finalized_state::{ReadDisk, TypedColumnFamily, WriteTypedBatch};
67
68pub use service::{
69 finalized_state::{DiskWriteBatch, FromDisk, IntoDisk, WriteDisk, ZebraDb},
70 ReadStateService,
71};
72
73#[cfg(any(test, feature = "proptest-impl"))]
75pub use service::{
76 arbitrary::{populated_state, CHAIN_TIP_UPDATE_WAIT_LIMIT},
77 finalized_state::{RawBytes, KV, MAX_ON_DISK_HEIGHT},
78 init_test, init_test_services,
79};
80
81#[cfg(any(test, feature = "proptest-impl"))]
82pub use config::hidden::{
83 write_database_format_version_to_disk, write_state_database_format_version_to_disk,
84};
85
86#[cfg(not(any(test, feature = "proptest-impl")))]
88#[allow(unused_imports)]
89pub(crate) use config::hidden::{
90 write_database_format_version_to_disk, write_state_database_format_version_to_disk,
91};
92
93pub use request::ContextuallyVerifiedBlock;