Skip to main content

signet_sim/
lib.rs

1//! Signet Sim
2//!
3//! A simple parallelized transaction simulation library.
4
5#![warn(
6    missing_copy_implementations,
7    missing_debug_implementations,
8    missing_docs,
9    unreachable_pub,
10    clippy::missing_const_for_fn,
11    rustdoc::all
12)]
13#![cfg_attr(not(test), warn(unused_crate_dependencies))]
14#![deny(unused_must_use, rust_2018_idioms)]
15#![cfg_attr(docsrs, feature(doc_cfg))]
16
17mod built;
18
19pub use built::BuiltBlock;
20
21mod cache;
22pub use cache::{
23    check_bundle_tx_list, AcctInfo, CacheError, ProviderStateSource, SimCache, SimIdentifier,
24    SimItem, SimItemValidity, StateSource,
25};
26
27mod env;
28pub use env::{HostEnv, RollupEnv, SharedSimEnv, SimEnv};
29
30mod outcome;
31pub use outcome::SimOutcomeWithCache;
32
33mod task;
34pub use task::BlockBuild;
35
36use std::sync::Arc;
37use trevm::{
38    db::cow::CacheOnWrite,
39    inspectors::{Layered, TimeLimit},
40    revm::database::CacheDB,
41};
42
43/// A type alias for the database underlying the simulation.
44pub type InnerDb<Db> = Arc<CacheDB<Db>>;
45
46/// A type alias for the database used in the simulation.
47pub type SimDb<Db> = CacheOnWrite<InnerDb<Db>>;
48
49/// A time-limited layered inspector.
50pub type TimeLimited<Insp> = Layered<TimeLimit, Insp>;