ckb_verification/
lib.rs

1//! CKB verification
2//!
3//! This crate implements CKB non-contextual verification by newtypes abstraction struct
4mod block_verifier;
5pub mod cache;
6mod convert;
7mod error;
8mod genesis_verifier;
9mod header_verifier;
10mod transaction_verifier;
11
12#[cfg(test)]
13mod tests;
14
15pub use crate::block_verifier::{BlockVerifier, NonContextualBlockTxsVerifier};
16pub use crate::error::{
17    BlockError, BlockErrorKind, BlockTransactionsError, BlockVersionError, CellbaseError,
18    CommitError, EpochError, HeaderError, HeaderErrorKind, InvalidParentError, NumberError,
19    PowError, TimestampError, TransactionError, UnclesError, UnknownParentError,
20};
21pub use crate::genesis_verifier::GenesisVerifier;
22pub use crate::header_verifier::HeaderVerifier;
23pub use crate::transaction_verifier::{
24    CapacityVerifier, ContextualTransactionVerifier, DaoScriptSizeVerifier,
25    NonContextualTransactionVerifier, ScriptVerifier, Since, SinceMetric,
26    TimeRelativeTransactionVerifier,
27};
28pub use ckb_script::{
29    ScriptError, ScriptGroupType, TransactionState as ScriptVerifyState, TxVerifyEnv,
30    VerifyResult as ScriptVerifyResult,
31};
32
33/// Maximum amount of time that a block timestamp is allowed to exceed the
34/// current time before the block will be accepted.
35pub const ALLOWED_FUTURE_BLOCKTIME: u64 = 15 * 1000; // 15 Second