1#![warn(
2 missing_copy_implementations,
3 missing_debug_implementations,
4 missing_docs,
5 unreachable_pub,
6 clippy::missing_const_for_fn,
7 rustdoc::all
8)]
9#![cfg_attr(not(test), warn(unused_crate_dependencies))]
10#![deny(unused_must_use, rust_2018_idioms)]
11#![cfg_attr(docsrs, feature(doc_cfg))]
12
13#[macro_use]
16mod macros;
17
18mod types;
19pub use types::*;
20
21mod driver;
22pub use driver::SignetDriver;
23
24mod orders;
25pub use orders::{Framed, FramedFilleds, FramedOrders, OrderDetector, SignetInspector};
26
27mod outcome;
28pub use outcome::ExecutionOutcome;
29
30mod precompiles;
31pub use precompiles::signet_precompiles;
32
33mod result;
34pub use result::BlockResult;
35
36use signet_types::constants::SignetSystemConstants;
37use trevm::{
38 helpers::Ctx,
39 inspectors::Layered,
40 revm::{inspector::NoOpInspector, Database, DatabaseCommit, Inspector},
41 TrevmBuilder,
42};
43
44pub mod sys;
46
47pub fn signet_evm<Db: Database + DatabaseCommit>(
49 db: Db,
50 constants: SignetSystemConstants,
51) -> EvmNeedsCfg<Db> {
52 TrevmBuilder::new()
53 .with_db(db)
54 .with_insp(Layered::new(NoOpInspector, OrderDetector::for_rollup(constants)))
55 .with_precompiles(signet_precompiles())
56 .build_trevm()
57}
58
59pub fn signet_evm_with_inspector<Db, I>(
61 db: Db,
62 outer: I,
63 constants: SignetSystemConstants,
64) -> EvmNeedsCfg<Db, I>
65where
66 I: Inspector<Ctx<Db>>,
67 Db: Database + DatabaseCommit,
68{
69 let inspector = SignetLayered::new(outer, OrderDetector::for_rollup(constants));
70
71 TrevmBuilder::new()
72 .with_db(db)
73 .with_insp(inspector)
74 .with_precompiles(signet_precompiles())
75 .build_trevm()
76}