sc_consensus_nakamoto/
lib.rs

1mod aux_schema;
2mod block_import;
3mod block_preparation;
4mod chain_params;
5mod import_queue;
6mod metrics;
7mod verification;
8mod verifier;
9
10pub use block_import::{BitcoinBlockImport, BitcoinBlockImporter, ImportConfig, ImportStatus};
11pub use block_preparation::{
12    InBlockOutput, PreparedBlock, TxExecutionLevels, UtxoProvider, VerifiedBlock,
13};
14pub use chain_params::ChainParams;
15pub use import_queue::{
16    BlockImportQueue, ImportBlocks, ImportManyBlocksResult, bitcoin_import_queue,
17};
18pub use verification::{
19    BlockVerification, BlockVerifier, HeaderError, HeaderVerifier, ScriptEngine,
20};
21pub use verifier::SubstrateImportQueueVerifier;
22
23/// Consensus error type.
24#[derive(Debug, thiserror::Error)]
25pub enum Error {
26    #[error("Header uses the wrong engine {0:?}")]
27    WrongEngine([u8; 4]),
28    #[error("Multiple pre-runtime digests")]
29    MultiplePreRuntimeDigests,
30    #[error("bitcoin block hash not found in the header diegst")]
31    MissingBitcoinBlockHashDigest,
32    #[error("invalid bitcoin block hash in the header diegst")]
33    InvalidBitcoinBlockHashDigest,
34    #[error(transparent)]
35    Client(sp_blockchain::Error),
36    #[error(transparent)]
37    Codec(codec::Error),
38}