Skip to main content Module config Copy item path Source use crate::FeeManager ; π use crate::PrecompileFactory ; π use crate::eth::backend::db::Db ; π use crate::eth::backend::db::SerializableState ; π use crate::eth::backend::fork::ClientFork ; π use crate::eth::backend::fork::ClientForkConfig ; π use crate::eth::backend::fork::ForkEndpointIdentity ; π use crate::eth::backend::fork::ensure_fork_network_supported ; π use crate::eth::backend::genesis::GenesisConfig ; π use crate::eth::backend::mem::fork_db::ForkedDatabase ; π use crate::eth::backend::tempo_consensus::TempoConsensus ; π use crate::eth::backend::time::duration_since_unix_epoch ; π use crate::eth::fees::INITIAL_BASE_FEE ; π use crate::eth::fees::INITIAL_GAS_PRICE ; π use crate::eth::miner::INSTANT_COALESCE_WINDOW ; π use crate::eth::pool::transactions::TransactionOrder ; π use crate::mem ; π use crate::mem::in_memory_db::StateRootDb ; π use alloy_chains::Chain; π use alloy_eips::BlockId; π use alloy_eips::eip1559::BaseFeeParams; π use alloy_eips::eip7840::BlobParams; π use alloy_evm::EvmEnv; π use alloy_genesis::Genesis; π use alloy_network::AnyNetwork; π use alloy_network::AnyRpcBlock; π use alloy_network::BlockResponse; π use alloy_network::TransactionResponse; π use alloy_primitives::Address; π use alloy_primitives::B256; π use alloy_primitives::BlockNumber; π use alloy_primitives::TxHash; π use alloy_primitives::U256; π use alloy_primitives::hex; π use alloy_primitives::hex; π use alloy_primitives::keccak256; π use alloy_primitives::map::HashMap; π use alloy_primitives::utils::Unit; π use alloy_provider::Provider; π use alloy_rpc_types::anvil::Metadata; π use alloy_rpc_types::anvil::NodeInfo; π use alloy_signer::Signer; π use alloy_signer_local::MnemonicBuilder; π use alloy_signer_local::PrivateKeySigner; π use alloy_signer_local::coins_bip39::English; π use alloy_signer_local::coins_bip39::Mnemonic; π use alloy_transport::TransportError; π use anvil_core::types::NodeBlobParams ; π use anvil_server::ServerConfig ; π use eyre::Context ; π use eyre::Result ; π use foundry_common::ALCHEMY_FREE_TIER_CUPS ; π use foundry_common::NON_ARCHIVE_NODE_WARNING ; π use foundry_common::REQUEST_TIMEOUT ; π use foundry_common::provider::ProviderBuilder ; π use foundry_common::provider::RetryProvider ; π use foundry_common::provider::is_rpc_method_not_found ; π use foundry_common::provider::redact_url ; π use foundry_config::Config ; π use foundry_evm::backend::BlockchainDb; π use foundry_evm::backend::BlockchainDbMeta; π use foundry_evm::backend::ForkBlock; π use foundry_evm::backend::SharedBackend; π use foundry_evm::backend::account_fetch_policy_for_source ; π use foundry_evm::constants::DEFAULT_CREATE2_DEPLOYER ; π use foundry_evm::hardfork::FoundryHardfork ; π use foundry_evm::traces::CallTraceDecoderBuilder ; π use foundry_evm::traces::identifier::SignaturesIdentifier ; π use foundry_evm::utils::apply_chain_and_block_specific_env_changes_for_chain ; π use foundry_evm::utils::get_blob_params_by_hardfork ; π use foundry_evm_networks::NetworkConfigs ; π use foundry_evm_networks::NetworkVariant ; π use parking_lot::RwLock; π use rand_08::thread_rng ; π use revm::context::BlockEnv; π use revm::context::CfgEnv; π use revm::context_interface::block::BlobExcessGasAndPrice; π use revm::primitives::hardfork::SpecId; π use serde_json::Value ; π use serde_json::json ; π use std::fmt::Write as FmtWrite; π use std::net::IpAddr ; π use std::net::Ipv4Addr ; π use std::num::NonZeroU64 ; π use std::path::PathBuf ; π use std::sync::Arc ; π use std::time::Duration ; π use tempo_hardfork::TempoHardfork; π use tempo_hardfork::constants::gas::TEMPO_T0_BASE_FEE; π use tempo_hardfork::constants::gas::TEMPO_T1_BASE_FEE; π use tempo_precompiles::TIP_FEE_MANAGER_ADDRESS; π use tokio::sync::RwLock as TokioRwLock; π use yansi::Paint; π use alloy_chains::NamedChain; π baseAccountGenerator Can create dev accounts AnvilNodeInfoProbe π Best-effort Anvil detection that becomes strict after positive identification. ForkOverrides π ForkTransactionReplay π One-shot source data for a transaction-hash fork replay. NodeConfig Configurations of the EVM node PruneStateHistoryConfig StableForkSnapshot π ForkChoice Fork delimiter used to specify which block or transaction to fork from. BANNER π CHAIN_ID Default chain id of the node DEFAULT_GAS_LIMIT The default gas limit for all transactions DEFAULT_IPC_ENDPOINT The default IPC endpoint DEFAULT_MNEMONIC Default mnemonic for dev accounts DEFAULT_SLOTS_IN_AN_EPOCH The default number of slots in an epoch used for safe/finalized block tags. DEFAULT_TEMPO_EPOCH_LENGTH Default number of block heights in a Tempo consensus epoch. FORK_IDENTITY_PROBE_TIMEOUT π Keep optional identity probes from delaying startup on RPCs that stall on unknown methods. NODE_PORT Default port the rpc will open VERSION_MESSAGE The short version message information for the Foundry CLI. anvil_dir Returns the path to anvil dir ~/.foundry/anvil anvil_tmp_dir Returns the root path to anvilβs temporary storage ~/.foundry/anvil/ decode_node_info π Decodes an anvil_nodeInfo response and the blob params that newer Anvil versions add to it. derive_block_and_replay π If the fork choice is a block number, simply return it with an empty list of transactions.
If the fork choice is a transaction hash, determine the block that the transaction was mined in,
and return the block number before the fork block along with all transactions in the fork block
that are before (and including) the fork transaction. find_latest_fork_block π Finds the latest appropriate block to fork fork_source_id π source_hardfork π Resolves source-chain upgrades without changing another execution familyβs historical lookup. tempo_default_base_fee π validate_fork_transaction_replay π