Skip to main content

Module mem

Module mem 

Source
Expand description

In-memory Backend In-memory blockchain backend.

Re-exportsΒ§

use self::in_memory_db::StateRootDb; πŸ”’
use self::state::trie_storage; πŸ”’
use self::tempo::TempoChain; πŸ”’
use crate::ForkChoice; πŸ”’
use crate::NodeConfig; πŸ”’
use crate::PrecompileFactory; πŸ”’
use crate::config::ForkTransactionReplay; πŸ”’
use crate::config::PruneStateHistoryConfig; πŸ”’
use crate::config::source_hardfork; πŸ”’
use crate::eth::backend::cheats::CheatEcrecover; πŸ”’
use crate::eth::backend::cheats::CheatsManager; πŸ”’
use crate::eth::backend::cheats::NextBlockOverrides; πŸ”’
use crate::eth::backend::db::AnvilCacheDB; πŸ”’
use crate::eth::backend::db::BLOCKHASH_HISTORY; πŸ”’
use crate::eth::backend::db::Db; πŸ”’
use crate::eth::backend::db::EmptyAsAbsentDb; πŸ”’
use crate::eth::backend::db::MaybeFullDatabase; πŸ”’
use crate::eth::backend::db::SerializableState; πŸ”’
use crate::eth::backend::db::StateDb; πŸ”’
use crate::eth::backend::db::StateRef; πŸ”’
use crate::eth::backend::executor::AnvilBlockExecutor; πŸ”’
use crate::eth::backend::executor::BlockExecutionKind; πŸ”’
use crate::eth::backend::executor::EthereumBlockTransitions; πŸ”’
use crate::eth::backend::executor::ExecutedPoolTransactions; πŸ”’
use crate::eth::backend::executor::FoundryReceiptBuilder; πŸ”’
use crate::eth::backend::executor::PoolTxGasConfig; πŸ”’
use crate::eth::backend::executor::apply_ethereum_post_execution_changes; πŸ”’
use crate::eth::backend::executor::apply_ethereum_pre_execution_changes; πŸ”’
use crate::eth::backend::executor::block_blob_gas_limit; πŸ”’
use crate::eth::backend::executor::build_tx_env_for_pending; πŸ”’
use crate::eth::backend::executor::execute_pool_transaction; πŸ”’
use crate::eth::backend::executor::execute_pool_transactions; πŸ”’
use crate::eth::backend::fork::ClientFork; πŸ”’
use crate::eth::backend::fork::ForkEndpointIdentity; πŸ”’
use crate::eth::backend::genesis::GenesisConfig; πŸ”’
use crate::eth::backend::mem::state::StateRootCache; πŸ”’
use crate::eth::backend::mem::state::state_root; πŸ”’
use crate::eth::backend::mem::state::state_trie_witness; πŸ”’
use crate::eth::backend::mem::state::storage_root; πŸ”’
use crate::eth::backend::mem::state::trie_accounts; πŸ”’
use crate::eth::backend::mem::storage::MinedTransactionReceipt; πŸ”’
use crate::eth::backend::notifications::ChainNotification; πŸ”’
use crate::eth::backend::notifications::ChainNotifications; πŸ”’
use crate::eth::backend::notifications::NewBlockNotification; πŸ”’
use crate::eth::backend::replay::ExecutedHistoricalReplay; πŸ”’
use crate::eth::backend::replay::HistoricalReplayTransaction; πŸ”’
use crate::eth::backend::replay::PreparedForkTransactionReplay; πŸ”’
use crate::eth::backend::replay::execute_historical_replay; πŸ”’
use crate::eth::backend::replay::prepare_fork_transaction_replay; πŸ”’
use crate::eth::backend::tempo::AnvilStorageProvider; πŸ”’
use crate::eth::backend::time::PendingBlockTimestamp; πŸ”’
use crate::eth::backend::time::TimeManager; πŸ”’
use crate::eth::backend::time::TimeSnapshot; πŸ”’
use crate::eth::backend::time::utc_from_secs; πŸ”’
use crate::eth::backend::validate::TransactionValidator; πŸ”’
use crate::eth::error::BlockchainError; πŸ”’
use crate::eth::error::ErrDetail; πŸ”’
use crate::eth::error::InvalidTransactionError; πŸ”’
use crate::eth::fees::FeeDetails; πŸ”’
use crate::eth::fees::FeeManager; πŸ”’
use crate::eth::fees::FeeSnapshot; πŸ”’
use crate::eth::fees::MIN_SUGGESTED_PRIORITY_FEE; πŸ”’
use crate::eth::macros::node_info; πŸ”’
use crate::eth::pool::transactions::PoolTransaction; πŸ”’
use crate::eth::preserve_simulation_request_fields; πŸ”’
use crate::mem::inspector::AnvilInspector; πŸ”’
use crate::mem::inspector::InspectorTxConfig; πŸ”’
use crate::mem::storage::BlockchainStorage; πŸ”’
use crate::mem::storage::InMemoryBlockStates; πŸ”’
use crate::mem::storage::MinedBlockOutcome; πŸ”’
use alloy_chains::NamedChain; πŸ”’
use alloy_consensus::Blob; πŸ”’
use alloy_consensus::BlockBody; πŸ”’
use alloy_consensus::BlockHeader; πŸ”’
use alloy_consensus::EnvKzgSettings; πŸ”’
use alloy_consensus::Header; πŸ”’
use alloy_consensus::Signed; πŸ”’
use alloy_consensus::Transaction as TransactionTrait; πŸ”’
use alloy_consensus::TransactionEnvelope; πŸ”’
use alloy_consensus::TransactionEnvelope; πŸ”’
use alloy_consensus::TrieAccount; πŸ”’
use alloy_consensus::TxEip4844Variant; πŸ”’
use alloy_consensus::TxEnvelope; πŸ”’
use alloy_consensus::TxReceipt; πŸ”’
use alloy_consensus::Typed2718; πŸ”’
use alloy_consensus::constants::EMPTY_WITHDRAWALS; πŸ”’
use alloy_consensus::proofs::calculate_receipt_root; πŸ”’
use alloy_consensus::proofs::calculate_transaction_root; πŸ”’
use alloy_consensus::transaction::Recovered; πŸ”’
use alloy_eips::BlockNumHash; πŸ”’
use alloy_eips::Encodable2718; πŸ”’
use alloy_eips::eip2935; πŸ”’
use alloy_eips::eip4788; πŸ”’
use alloy_eips::eip4844::DATA_GAS_PER_BLOB; πŸ”’
use alloy_eips::eip4844::kzg_to_versioned_hash; πŸ”’
use alloy_eips::eip6110::MAINNET_DEPOSIT_CONTRACT_ADDRESS; πŸ”’
use alloy_eips::eip7002; πŸ”’
use alloy_eips::eip7251; πŸ”’
use alloy_eips::eip7685::EMPTY_REQUESTS_HASH; πŸ”’
use alloy_eips::eip7840::BlobParams; πŸ”’
use alloy_eips::eip7910::SystemContract; πŸ”’
use alloy_eips::eip7928::BlockAccessList; πŸ”’
use alloy_eips::eip7928::EMPTY_BLOCK_ACCESS_LIST_HASH; πŸ”’
use alloy_eips::eip7928::compute_block_access_list_hash; πŸ”’
use alloy_evm::Database; πŸ”’
use alloy_evm::EthEvmFactory; πŸ”’
use alloy_evm::Evm; πŸ”’
use alloy_evm::EvmEnv; πŸ”’
use alloy_evm::EvmFactory; πŸ”’
use alloy_evm::FromTxWithEncoded; πŸ”’
use alloy_evm::block::BlockExecutionResult; πŸ”’
use alloy_evm::block::BlockExecutor; πŸ”’
use alloy_evm::block::StateDB; πŸ”’
use alloy_evm::eth::EthEvm; πŸ”’
use alloy_evm::eth::EthEvmContext; πŸ”’
use alloy_evm::overrides::OverrideBlockHashes; πŸ”’
use alloy_evm::overrides::apply_state_overrides; πŸ”’
use alloy_evm::precompiles::DynPrecompile; πŸ”’
use alloy_evm::precompiles::MovePrecompileError; πŸ”’
use alloy_evm::precompiles::Precompile; πŸ”’
use alloy_evm::precompiles::PrecompilesMap; πŸ”’
use alloy_genesis::Genesis; πŸ”’
use alloy_network::AnyHeader; πŸ”’
use alloy_network::AnyRpcBlock; πŸ”’
use alloy_network::AnyRpcHeader; πŸ”’
use alloy_network::AnyRpcTransaction; πŸ”’
use alloy_network::AnyTxEnvelope; πŸ”’
use alloy_network::AnyTxType; πŸ”’
use alloy_network::BlockResponse; πŸ”’
use alloy_network::Network; πŸ”’
use alloy_network::NetworkTransactionBuilder; πŸ”’
use alloy_network::ReceiptResponse; πŸ”’
use alloy_network::UnknownTxEnvelope; πŸ”’
use alloy_network::UnknownTypedTransaction; πŸ”’
use alloy_primitives::Address; πŸ”’
use alloy_primitives::B256; πŸ”’
use alloy_primitives::Bloom; πŸ”’
use alloy_primitives::Bytes; πŸ”’
use alloy_primitives::Signature; πŸ”’
use alloy_primitives::TxKind; πŸ”’
use alloy_primitives::U256; πŸ”’
use alloy_primitives::address; πŸ”’
use alloy_primitives::hex; πŸ”’
use alloy_primitives::hex; πŸ”’
use alloy_primitives::keccak256; πŸ”’
use alloy_primitives::map::AddressMap; πŸ”’
use alloy_primitives::map::B256Set; πŸ”’
use alloy_primitives::map::HashMap; πŸ”’
use alloy_primitives::map::HashSet; πŸ”’
use alloy_rlp::Decodable; πŸ”’
use alloy_rlp::Encodable; πŸ”’
use alloy_rpc_types::AccessList; πŸ”’
use alloy_rpc_types::Block as AlloyBlock; πŸ”’
use alloy_rpc_types::BlockId; πŸ”’
use alloy_rpc_types::BlockNumberOrTag as BlockNumber; πŸ”’
use alloy_rpc_types::BlockOverrides; πŸ”’
use alloy_rpc_types::BlockTransactions; πŸ”’
use alloy_rpc_types::EIP1186AccountProofResponse as AccountProof; πŸ”’
use alloy_rpc_types::EIP1186StorageProof as StorageProof; πŸ”’
use alloy_rpc_types::Filter; πŸ”’
use alloy_rpc_types::Header as AlloyHeader; πŸ”’
use alloy_rpc_types::Index; πŸ”’
use alloy_rpc_types::Log; πŸ”’
use alloy_rpc_types::Transaction; πŸ”’
use alloy_rpc_types::TransactionReceipt; πŸ”’
use alloy_rpc_types::anvil::Forking; πŸ”’
use alloy_rpc_types::debug::ExecutionWitness; πŸ”’
use alloy_rpc_types::request::TransactionRequest; πŸ”’
use alloy_rpc_types::serde_helpers::JsonStorageKey; πŸ”’
use alloy_rpc_types::simulate::MAX_SIMULATE_BLOCKS; πŸ”’
use alloy_rpc_types::simulate::SimBlock; πŸ”’
use alloy_rpc_types::simulate::SimCallResult; πŸ”’
use alloy_rpc_types::simulate::SimulateError; πŸ”’
use alloy_rpc_types::simulate::SimulatePayload; πŸ”’
use alloy_rpc_types::simulate::SimulatedBlock; πŸ”’
use alloy_rpc_types::state::EvmOverrides; πŸ”’
use alloy_rpc_types::state::StateOverride; πŸ”’
use alloy_rpc_types::trace::filter::TraceFilter; πŸ”’
use alloy_rpc_types::trace::geth::CallConfig; πŸ”’
use alloy_rpc_types::trace::geth::FourByteFrame; πŸ”’
use alloy_rpc_types::trace::geth::GethDebugBuiltInTracerType; πŸ”’
use alloy_rpc_types::trace::geth::GethDebugTracerConfig; πŸ”’
use alloy_rpc_types::trace::geth::GethDebugTracerType; πŸ”’
use alloy_rpc_types::trace::geth::GethDebugTracingCallOptions; πŸ”’
use alloy_rpc_types::trace::geth::GethDebugTracingOptions; πŸ”’
use alloy_rpc_types::trace::geth::GethTrace; πŸ”’
use alloy_rpc_types::trace::geth::NoopFrame; πŸ”’
use alloy_rpc_types::trace::geth::TraceResult; πŸ”’
use alloy_rpc_types::trace::opcode::BlockOpcodeGas; πŸ”’
use alloy_rpc_types::trace::opcode::TransactionOpcodeGas; πŸ”’
use alloy_rpc_types::trace::parity::LocalizedTransactionTrace; πŸ”’
use alloy_rpc_types::trace::parity::TraceResults; πŸ”’
use alloy_rpc_types::trace::parity::TraceResultsWithTransactionHash; πŸ”’
use alloy_rpc_types::trace::parity::TraceType; πŸ”’
use alloy_rpc_types_eth::AccountInfo as RpcAccountInfo; πŸ”’
use alloy_rpc_types_eth::Bundle; πŸ”’
use alloy_rpc_types_eth::EthCallResponse; πŸ”’
use alloy_rpc_types_mev::EthCallBundle; πŸ”’
use alloy_rpc_types_mev::EthCallBundleResponse; πŸ”’
use alloy_rpc_types_mev::EthCallBundleTransactionResult; πŸ”’
use alloy_serde::OtherFields; πŸ”’
use alloy_serde::WithOtherFields; πŸ”’
use alloy_sol_types::SolCall; πŸ”’
use alloy_trie::HashBuilder; πŸ”’
use alloy_trie::Nibbles; πŸ”’
use alloy_trie::proof::ProofRetainer; πŸ”’
use alloy_trie::root::state_root_ref_unhashed; πŸ”’
use anvil_core::eth::block::Block; πŸ”’
use anvil_core::eth::block::BlockInfo; πŸ”’
use anvil_core::eth::block::canonical_block; πŸ”’
use anvil_core::eth::block::create_block; πŸ”’
use anvil_core::eth::transaction::MaybeImpersonatedTransaction; πŸ”’
use anvil_core::eth::transaction::PendingTransaction; πŸ”’
use anvil_core::eth::transaction::TransactionInfo; πŸ”’
use anvil_rpc::error::ErrorCode; πŸ”’
use anvil_rpc::error::RpcError; πŸ”’
use chrono::Datelike; πŸ”’
use eyre::Context; πŸ”’
use eyre::Result; πŸ”’
use flate2::Compression; πŸ”’
use flate2::read::GzDecoder; πŸ”’
use flate2::write::GzEncoder; πŸ”’
use foundry_evm::backend::BlockchainDb; πŸ”’
use foundry_evm::backend::DatabaseError; πŸ”’
use foundry_evm::backend::DatabaseResult; πŸ”’
use foundry_evm::backend::EmptyDBWrapper; πŸ”’
use foundry_evm::backend::RevertStateSnapshotAction; πŸ”’
use foundry_evm::constants::DEFAULT_CREATE2_DEPLOYER; πŸ”’
use foundry_evm::constants::DEFAULT_CREATE2_DEPLOYER_RUNTIME_CODE; πŸ”’
use foundry_evm::core::precompiles::EC_RECOVER; πŸ”’
use foundry_evm::decode::RevertDecoder; πŸ”’
use foundry_evm::hardfork::EthereumHardfork; πŸ”’
use foundry_evm::hardfork::FoundryHardfork; πŸ”’
use foundry_evm::inspectors::AccessListInspector; πŸ”’
use foundry_evm::traces::CallTraceDecoder; πŸ”’
use foundry_evm::traces::FourByteInspector; πŸ”’
use foundry_evm::traces::GethTraceBuilder; πŸ”’
use foundry_evm::traces::TracingInspector; πŸ”’
use foundry_evm::traces::TracingInspectorConfig; πŸ”’
use foundry_evm::utils::StateChangeset; πŸ”’
use foundry_evm::utils::apply_chain_specific_tx_replay_env_changes_for_chain; πŸ”’
use foundry_evm::utils::block_env_from_header; πŸ”’
use foundry_evm::utils::get_blob_base_fee_update_fraction_by_spec_id; πŸ”’
use foundry_evm::utils::get_blob_params_by_hardfork; πŸ”’
use foundry_evm_networks::NetworkConfigs; πŸ”’
use foundry_evm_networks::apply_bsc_p256_precompile; πŸ”’
use foundry_evm_networks::arbitrum; πŸ”’
use foundry_primitives::FoundryHeader; πŸ”’
use foundry_primitives::FoundryNetwork; πŸ”’
use foundry_primitives::FoundryReceiptEnvelope; πŸ”’
use foundry_primitives::FoundryTransactionRequest; πŸ”’
use foundry_primitives::FoundryTxEnvelope; πŸ”’
use foundry_primitives::FoundryTxReceipt; πŸ”’
use foundry_primitives::TempoTransactionRequest; πŸ”’
use futures::channel::mpsc::UnboundedSender; πŸ”’
use futures::channel::mpsc::unbounded; πŸ”’
use parking_lot::Mutex; πŸ”’
use parking_lot::RwLock; πŸ”’
use parking_lot::RwLockUpgradableReadGuard; πŸ”’
use revm::Database as RevmDatabase; πŸ”’
use revm::DatabaseCommit; πŸ”’
use revm::Inspector; πŸ”’
use revm::context::Block as RevmBlock; πŸ”’
use revm::context::BlockEnv; πŸ”’
use revm::context::Cfg; πŸ”’
use revm::context::CfgEnv; πŸ”’
use revm::context::ContextSetters; πŸ”’
use revm::context::ContextTr; πŸ”’
use revm::context::TxEnv; πŸ”’
use revm::context_interface::JournalTr; πŸ”’
use revm::context_interface::Transaction as _; πŸ”’
use revm::context_interface::block::BlobExcessGasAndPrice; πŸ”’
use revm::context_interface::result::EVMError; πŸ”’
use revm::context_interface::result::ExecutionResult; πŸ”’
use revm::context_interface::result::HaltReason; πŸ”’
use revm::context_interface::result::InvalidTransaction; πŸ”’
use revm::context_interface::result::Output; πŸ”’
use revm::context_interface::result::ResultAndState; πŸ”’
use revm::context_interface::transaction::TransactionType; πŸ”’
use revm::database::AccountState; πŸ”’
use revm::database::CacheDB; πŸ”’
use revm::database::DbAccount; πŸ”’
use revm::database::WrapDatabaseRef; πŸ”’
use revm::database::bal::BalDatabase; πŸ”’
use revm::database::bal::BalState; πŸ”’
use revm::handler::EthFrame; πŸ”’
use revm::handler::EvmTr; πŸ”’
use revm::handler::EvmTrError; πŸ”’
use revm::handler::FrameResult; πŸ”’
use revm::handler::FrameTr; πŸ”’
use revm::handler::Handler as EvmHandler; πŸ”’
use revm::handler::validation; πŸ”’
use revm::inspector::InspectorEvmTr; πŸ”’
use revm::inspector::InspectorHandler; πŸ”’
use revm::interpreter::InstructionResult; πŸ”’
use revm::interpreter::interpreter::EthInterpreter; πŸ”’
use revm::interpreter::interpreter_action::FrameInit; πŸ”’
use revm::precompile::PrecompileSpecId; πŸ”’
use revm::precompile::Precompiles; πŸ”’
use revm::primitives::eip2780; πŸ”’
use revm::primitives::hardfork::SpecId; πŸ”’
use revm::state::Account; πŸ”’
use revm::state::AccountInfo; πŸ”’
use revm::state::EvmState; πŸ”’
use revm::state::EvmStorageSlot; πŸ”’
use revm::state::TransactionId; πŸ”’
use revm_inspectors::opcode::OpcodeGasInspector; πŸ”’
use std::collections::BTreeMap; πŸ”’
use std::fmt; πŸ”’
use std::fmt::Debug; πŸ”’
use std::fmt::Debug; πŸ”’
use std::io::Read; πŸ”’
use std::io::Write; πŸ”’
use std::marker::PhantomData; πŸ”’
use std::ops::Mul; πŸ”’
use std::path::Path; πŸ”’
use std::path::PathBuf; πŸ”’
use std::sync::Arc; πŸ”’
use std::sync::atomic::AtomicBool; πŸ”’
use std::sync::atomic::Ordering; πŸ”’
use std::time::Duration; πŸ”’
use storage::Blockchain; πŸ”’
use storage::DEFAULT_HISTORY_LIMIT; πŸ”’
use storage::MinedTransaction; πŸ”’
use tempo_evm::TempoPoolValidationEvm; πŸ”’
use tempo_evm::evm::TempoEvmFactory; πŸ”’
use tempo_hardfork::TempoHardfork; πŸ”’
use tempo_precompiles::NONCE_PRECOMPILE_ADDRESS; πŸ”’
use tempo_precompiles::TIP_FEE_MANAGER_ADDRESS; πŸ”’
use tempo_precompiles::extend_tempo_precompiles; πŸ”’
use tempo_precompiles::nonce::NonceManager; πŸ”’
use tempo_precompiles::storage::Handler; πŸ”’
use tempo_precompiles::storage::StorageActions; πŸ”’
use tempo_precompiles::storage::StorageCtx; πŸ”’
use tempo_precompiles::tip_fee_manager::IFeeManager; πŸ”’
use tempo_precompiles::tip_fee_manager::TipFeeManager; πŸ”’
use tempo_precompiles::tip20::ITIP20; πŸ”’
use tempo_precompiles::tip20::TIP20Token; πŸ”’
use tempo_precompiles::tip20_factory::TIP20Factory; πŸ”’
use tempo_primitives::AASigned; πŸ”’
use tempo_primitives::SignatureType; πŸ”’
use tempo_primitives::TEMPO_TX_TYPE_ID; πŸ”’
use tempo_primitives::TempoSignature; πŸ”’
use tempo_primitives::transaction::Call; πŸ”’
use tempo_primitives::transaction::KeychainSignature; πŸ”’
use tempo_primitives::transaction::PrimitiveSignature; πŸ”’
use tempo_primitives::transaction::RecoveredTempoAuthorization; πŸ”’
use tempo_primitives::transaction::tt_signature::P256SignatureWithPreHash; πŸ”’
use tempo_primitives::transaction::tt_signature::WebAuthnSignature; πŸ”’
use tempo_revm::ExecutionContext; πŸ”’
use tempo_revm::TempoBatchCallEnv; πŸ”’
use tempo_revm::TempoBlockEnv; πŸ”’
use tempo_revm::TempoInvalidTransaction; πŸ”’
use tempo_revm::TempoTxEnv; πŸ”’
use tempo_revm::evm::TempoContext; πŸ”’
use tempo_revm::gas_params::tempo_gas_params; πŸ”’
use tokio::sync::RwLock as AsyncRwLock; πŸ”’
use tokio::task::JoinSet; πŸ”’
use foundry_primitives::get_deposit_tx_parts; πŸ”’ base or optimism
use op_alloy_consensus::DEPOSIT_TX_TYPE_ID; πŸ”’ base or optimism
use op_revm::transaction::deposit::DepositTransactionParts; πŸ”’ base or optimism
use alloy_hardforks::ForkCondition; πŸ”’ base
use base_common_chains::ChainConfig; πŸ”’ base
use base_common_chains::ChainUpgrades; πŸ”’ base
use base_common_consensus::BaseTransactionInfo; πŸ”’ base
use base_common_consensus::BaseTxEnvelope; πŸ”’ base
use base_common_consensus::EIP8130_REJECTION_MSG; πŸ”’ base
use base_common_consensus::Eip8130Constants; πŸ”’ base
use base_common_consensus::Predeploys; πŸ”’ base
use base_common_evm::BaseContext; πŸ”’ base
use base_common_evm::BaseEvmFactory; πŸ”’ base
use base_common_evm::BaseSpecId; πŸ”’ base
use base_common_evm::BaseTime; πŸ”’ base
use base_common_evm::BaseTransaction; πŸ”’ base
use base_common_evm::DEPOSIT_TRANSACTION_TYPE; πŸ”’ base
use base_common_evm::DepositTransactionParts as BaseDepositTransactionParts; πŸ”’ base
use base_common_evm::EIP8130_TRANSACTION_TYPE; πŸ”’ base
use base_common_evm::Eip8130PhaseStatuses; πŸ”’ base
use base_common_evm::L1BlockInfo; πŸ”’ base
use base_common_evm::ensure_create2_deployer; πŸ”’ base
use base_common_evm::ensure_eip8130_system_accounts; πŸ”’ base
use base_common_genesis::RollupConfig; πŸ”’ base
use base_common_precompiles::NonceManagerStorage; πŸ”’ base
use base_common_rpc_types::EIP8130_PRE_ZENITH_RPC_ERROR; πŸ”’ base
use base_common_rpc_types::Eip8130Nonce; πŸ”’ base
use base_common_rpc_types::Eip8130ReceiptFields; πŸ”’ base
use base_common_rpc_types::Transaction as BaseRpcTransaction; πŸ”’ base
use base_execution_eip8130::FeeCheck; πŸ”’ base
use base_execution_eip8130::IntrinsicGas; πŸ”’ base
use base_execution_eip8130::IntrinsicGasInput; πŸ”’ base
use foundry_evm::core::constants::SYSTEM_PRECOMPILE_STUB; πŸ”’ base
use foundry_evm::core::evm::base_code_sentinel_addresses; πŸ”’ base
use foundry_evm::hardfork::BaseUpgrade; πŸ”’ base
use revm::inspector::NoOpInspector; πŸ”’ base
use alloy_op_evm::OpEvmContext; πŸ”’ optimism
use alloy_op_evm::OpEvmFactory; πŸ”’ optimism
use alloy_op_evm::OpTx; πŸ”’ optimism
use foundry_evm::hardfork::OpHardfork; πŸ”’ optimism
use foundry_evm_networks::NetworkVariant; πŸ”’ optimism
use op_alloy_consensus::POST_EXEC_TX_TYPE_ID; πŸ”’ optimism
use op_revm::OpTransaction; πŸ”’ optimism

ModulesΒ§

base πŸ”’ base
Base block preparation and transaction execution for the in-memory backend.
cache
fork_db
in_memory_db
The in memory DB
inspector
Anvil specific [revm::Inspector] implementation
monad πŸ”’ monad
Monad-specific execution and context helpers for the in-memory backend.
optimismoptimism
Optimism-specific transact helpers for the in-memory backend.
state
Support for generating the state root for memdb storage
storage
In-memory blockchain storage
tempo πŸ”’
Tempo consensus owned by the canonical in-memory chain.

StructsΒ§

Backend
Gives access to the [revm::Database]
CallTransactionInfo πŸ”’
Network-specific transaction data produced by Backend::build_call_env_with_base.
EnvelopeExecution πŸ”’
ForkCacheNamespace πŸ”’
Identifies one endpoint’s persisted cache files across all blocks of a source chain.
ForkCacheSource πŸ”’
Identifies the endpoint that supplied the most recently committed fork.
GasEstimateCallOptions πŸ”’
PreparedCall πŸ”’
SimulationHandler πŸ”’
Ethereum handler that skips blob fee cap validation for non-validating calls with a zero cap.
SimulationPrecompileOverrides πŸ”’
StagedForkCacheLease πŸ”’
Keeps a staged fork from persisting remote state unless it is committed.
StagedForkCacheLeaseInner πŸ”’
StagedForkDbUser πŸ”’
Couples an asynchronous staged-database user to its rollback lease.
StagedForkReset πŸ”’
Fully prepared fork replacement awaiting an atomic backend commit.
StagedMemoryReset πŸ”’
Fully prepared in-memory replacement awaiting an atomic backend commit.
StateSnapshot πŸ”’
TypedCallOverrides πŸ”’

EnumsΒ§

BlockRequest
A block request, which includes the Pool Transactions if it’s Pending
CallTxEnv πŸ”’
EnvelopeExecutionKind πŸ”’
MonadExecutionContext πŸ”’ monad

ConstantsΒ§

DEFAULT_BASE_L1_BASE_FEE πŸ”’ base
Standalone Base L1 base fee, in wei.
DEFAULT_BASE_L1_FEE_SCALAR πŸ”’ base
Standalone Base L1 base-fee scalar, with six decimal places.
HOLESKY_DEPOSIT_CONTRACT_ADDRESS πŸ”’
MIN_CREATE_GAS
MIN_TRANSACTION_GAS
SEPOLIA_DEPOSIT_CONTRACT_ADDRESS πŸ”’
SIMULATE_GAS_CAP πŸ”’
Maximum cumulative gas available to one eth_simulateV1 request.
TEMPO_RPC_SIMULATION_CONTEXT πŸ”’
Fixed transaction context for direct Tempo RPC simulations.

TraitsΒ§

BackendInspectorbase and monad and optimism
Marker trait that abstracts over the per-network inspector trait bounds required by the in-memory backend. The OP bound is only included when the optimism feature is enabled.
DatabaseRef
Helper trait that combines revm::DatabaseRef with Debug. This is needed because alloy-evm requires Debug on Database implementations. With trait upcasting now stable, we can now upcast from this trait to revm::DatabaseRef.
IntoInstructionResult
Converts a halt reason into an [InstructionResult].

FunctionsΒ§

apply_tempo_envelope_identity πŸ”’
arbitrum_replay_block_number πŸ”’
build_rpc_transaction πŸ”’
call_config_from_tracer_config πŸ”’
commit_cache πŸ”’
Commits a fully executed candidate cache to the live database.
ensure_base_time_predeploy πŸ”’ base
Installs the BaseTime proxy and links its Denim implementation.
ensure_mined_trace_block πŸ”’
Rejects the pending tag for block trace methods, which only trace mined blocks.
foundry_header πŸ”’
Wraps an Ethereum-shaped header in the selected network’s consensus header.
genesis_header πŸ”’
Creates an Ethereum-shaped genesis header from the EVM environment.
genesis_json_header πŸ”’
Creates an Ethereum header from a genesis.json configuration.
get_pool_transactions_nonce πŸ”’
Get max nonce from transaction pool by address.
is_arbitrum
mock_tempo_signature πŸ”’
monad_execution_context_at πŸ”’ monad
next_monad_context πŸ”’ monad
parity_trace_results πŸ”’
Builds Parity trace results for result, with db as the state before the transaction.
preserve_deleted_storage πŸ”’
previously_deleted_accounts πŸ”’
prove_account πŸ”’
Builds an account and storage proof from one fixed local account set.
prove_storage
Prove a storage key’s existence or nonexistence in the account’s storage trie.
rehash πŸ”’
Replaces the cached hash of a [Signed] transaction, preserving the inner tx and signature.
sanitize_simulation_blocks πŸ”’
simulate_rpc_error πŸ”’
simulate_transaction_error πŸ”’
tempo_db_err πŸ”’
Converts a Tempo error into an anvil [DatabaseError].
tempo_nonce πŸ”’
transaction_build
Creates a AnyRpcTransaction as it’s expected for the eth RPC api from storage data
unpack_execution_result πŸ”’
Unpacks an [ExecutionResult] into its exit reason, gas used, output, and logs.

Type AliasesΒ§

MonadReplayContext πŸ”’ monad