#[cfg(test)]
mod tests;
pub mod async_db;
mod block_add_result;
pub use block_add_result::BlockAddResult;
use primitive_types::U512;
use serde::{Deserialize, Serialize};
mod blockchain_database;
pub use blockchain_database::{
BlockchainDatabase,
BlockchainDatabaseConfig,
MmrRoots,
Validators,
calculate_mmr_roots,
calculate_validator_node_mr,
fetch_header,
fetch_headers,
fetch_target_difficulty_for_next_block,
};
mod blockchain_backend;
pub use blockchain_backend::BlockchainBackend;
mod consts;
mod db_transaction;
pub use db_transaction::{
DbKey,
DbTransaction,
DbValue,
HorizonStateTreeUpdate,
HorizonSyncOutputCheckpoint,
WriteOperation,
};
mod mmr_tree;
pub use mmr_tree::MmrTree;
mod error;
pub use error::{ChainStorageError, Optional, OrNotFound};
mod horizon_data;
pub use horizon_data::HorizonData;
mod reorg;
pub use reorg::Reorg;
mod lmdb_db;
pub use lmdb_db::{
AccumulatedDataRebuildStatus,
BlockchainCheckRequest,
BlockchainCheckStatus,
CheckFailure,
DatabaseStats,
LMDBDatabase,
PayrefRebuildStatus,
create_lmdb_database,
create_lmdb_database_with_stats_channel,
create_readonly_lmdb_environment,
create_recovery_lmdb_database,
get_all_database_names,
lmdb_tree_reader::{LmdbTreeReader, OwnedLmdbTreeReader},
};
mod stats;
pub use stats::{DbBasicStats, DbSize, DbStat, DbTotalSizeStats};
mod target_difficulties;
mod utxo_mined_info;
pub use target_difficulties::TargetDifficulties;
pub use utxo_mined_info::*;
mod active_validator_node;
pub use active_validator_node::ValidatorNodeEntry;
use tari_common_types::{
epoch::VnEpoch,
types::{CompressedPublicKey, HashOutput},
};
mod template_registation;
pub use template_registation::TemplateRegistrationEntry;
mod kernel_merkle_proof;
pub use kernel_merkle_proof::*;
mod smt_hasher;
pub use smt_hasher::SmtHasher;
use tari_transaction_components::{MicroMinotari, transaction_components::ValidatorNodeRegistration};
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq)]
pub struct ChainTipData {
pub hash: HashOutput,
pub total_accumulated_difficulty: U512,
}
#[derive(Debug, Clone)]
pub struct ValidatorNodeRegistrationInfo {
pub public_key: CompressedPublicKey,
pub sidechain_id: Option<CompressedPublicKey>,
pub shard_key: [u8; 32],
pub activation_epoch: VnEpoch,
pub original_registration: ValidatorNodeRegistration,
pub minimum_value_promise: MicroMinotari,
}