1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
//! Conflux Executor: A Rust crate for the core logic of executing transactions
//! on the Conflux blockchain. It encapsulates all the necessary logic for a
//! consensus node during execution, focusing solely on the execution logic
//! without enhanced features like tracing or trace processing.
#[macro_use]
extern crate log;
#[macro_use]
extern crate lazy_static;
#[macro_use]
extern crate cfx_util_macros;
use substrate_bn as bn;
/// Ethereum Builtins: Implements Ethereum's builtin contracts, ranging from
/// address `0x1` to `0x9`.
mod builtin;
/// Execution Context: Implements the context during the execution, like
/// caller's information and block information. It also ensures compatibility
/// with the context interface of the EVM interpreter.
pub mod context;
/// Transaction Execution Entry: Manages the execution of transactions.
/// It is responsible for receiving transactions, performing checks according to
/// the Conflux specification, and submitting them to the execution engine.
pub mod executive;
/// Conflux Internal Contracts: Implements Conflux's builtin contracts.
pub mod internal_contract;
/// Execution Engine Object: Serves as a factory for specifications, builtin
/// contracts (including internal contracts), and the EVM interpreter.
pub mod machine;
/// Tool Macros
mod macros;
/// Observability Interface: Defines a trait for extending functionality.
/// Extensions can implement this trait to observe detailed aspects of the
/// execution process.
pub mod observer;
/// Stack Management for Execution Engine: Conflux's execution engine is
/// stack-based. This module manages the stack operations, mainly handling the
/// logic related to pushing and popping frames.
pub mod stack;
/// Transaction Execution Tracker: Tracks and records consensus-matters details
/// during transaction execution.
pub mod substate;
/// Specification Control: Enables fine-grained control over the engine's
/// behavior during the execution of different blocks, allowing the engine to
/// achieve backward compatibility with different versions of the Conflux
/// specification per hardfork.
pub mod spec;
/// Ledger State: Acts as a caching and checkpoint layer built upon semantically
/// meaningful database interfaces for the execution.
pub mod state;
pub use internal_contract::{InternalContractMap, InternalContractTrait};
pub use observer as executive_observer;