Re-exportsยง
use super::MAX_CONCURRENT_RPC_REQUESTS;๐use super::fetch_code_via_rpc;๐use crate::debug::ensure_remote_trace_context_unchanged;๐use crate::debug::handle_traces;๐use crate::debug::resolve_remote_trace_hardfork;๐use crate::evm_version::probe_evm_version;๐use crate::rpc_trace::call_frame_to_arena;๐use crate::rpc_trace::call_tracer_config;๐use crate::rpc_trace::is_method_not_found_error;๐use crate::rpc_trace::is_missing_state_error;๐use crate::rpc_trace::is_missing_state_message;๐use crate::traces::TraceKind;๐use crate::utils::apply_chain_and_block_specific_env_changes_for_chain;๐use crate::utils::apply_chain_specific_tx_replay_env_changes_for_chain;๐use crate::utils::block_env_from_header;๐use alloy_consensus::BlockHeader;๐use alloy_consensus::Transaction;๐use alloy_consensus::transaction::SignerRecoverable;๐use alloy_eips::BlockNumHash;๐use alloy_eips::eip7928::compute_block_access_list_hash;๐use alloy_network::AnyNetwork;๐use alloy_network::AnyRpcBlock;๐use alloy_network::AnyRpcTransaction;๐use alloy_network::AnyTransactionReceipt;๐use alloy_network::AnyTxEnvelope;๐use alloy_network::BlockResponse;๐use alloy_network::Network;๐use alloy_network::ReceiptResponse;๐use alloy_network::TransactionResponse;๐use alloy_network::primitives::HeaderResponse;๐use alloy_primitives::Address;๐use alloy_primitives::B256;๐use alloy_primitives::Bytes;๐use alloy_primitives::U256;๐use alloy_primitives::map::AddressSet;๐use alloy_provider::Provider;๐use alloy_provider::ext::DebugApi;๐use alloy_rpc_types::BlockId;๐use alloy_rpc_types::BlockTransactions;๐use alloy_rpc_types::trace::geth::CallFrame;๐use alloy_rpc_types::trace::geth::GethDebugTracingOptions;๐use alloy_rpc_types::trace::geth::GethTrace;๐use alloy_rpc_types::trace::geth::PreStateConfig;๐use alloy_transport::TransportError;๐use clap::Parser;๐use eyre::Result;๐use eyre::WrapErr;๐use foundry_cli::opts::EtherscanOpts;๐use foundry_cli::opts::RpcOpts;๐use foundry_cli::opts::TracingArgs;๐use foundry_cli::utils::TraceResult;๐use foundry_cli::utils::init_progress;๐use foundry_common::SYSTEM_TRANSACTION_TYPE;๐use foundry_common::is_known_system_sender;๐use foundry_common::provider::ProviderBuilder;๐use foundry_common::provider::RetryProvider;๐use foundry_common::shell;๐use foundry_compilers::artifacts::EvmVersion;๐use foundry_config::Config;๐use foundry_config::TracingConfig;๐use foundry_config::figment;๐use foundry_config::figment::Metadata;๐use foundry_config::figment::Profile;๐use foundry_config::figment::value::Dict;๐use foundry_config::figment::value::Map;๐use foundry_evm::core::FoundryBlock as _;๐use foundry_evm::core::FoundryTransaction as _;๐use foundry_evm::core::env::FromAnyRpcTransaction as _;๐use foundry_evm::core::evm::EthEvmNetwork;๐use foundry_evm::core::evm::EvmEnvFor;๐use foundry_evm::core::evm::FoundryEvmNetwork;๐use foundry_evm::core::evm::TempoEvmNetwork;๐use foundry_evm::core::evm::TxEnvFor;๐use foundry_evm::executors::Executor;๐use foundry_evm::executors::ExecutorBuilder;๐use foundry_evm::executors::TracingExecutor;๐use foundry_evm::hardforks::FoundryHardfork;๐use foundry_evm::opts::EvmOpts;๐use foundry_evm::traces::InternalTraceMode;๐use foundry_evm::traces::SparsedTraceArena;๐use foundry_evm::traces::TraceContext;๐use foundry_evm::traces::TraceRequirements;๐use foundry_evm_networks::NetworkConfigs;๐use foundry_evm_networks::NetworkVariant;๐use futures::StreamExt;๐use futures::TryFutureExt;๐use revm::DatabaseRef;๐use revm::context::Block;๐use revm::primitives::hardfork::SpecId;๐use revm::state::bal::Bal;๐use revm::state::bal::BlockAccessIndex;๐use std::sync::Arc;๐use foundry_evm::core::evm::BaseEvmNetwork;๐baseuse foundry_evm::core::evm::BlockContext;๐monaduse foundry_evm::core::evm::MonadEvmNetwork;๐monaduse revm::context::TxEnv;๐monaduse foundry_evm::core::evm::OpEvmNetwork;๐optimism
Structsยง
- Monad
Prepared ๐monad - Fields only needed by the Monad-specific
execute_monadpath. - Prepared
Run ๐ - State assembled by
RunArgs::prepareand consumed by the network-specificexecute_*methods below. - RunArgs
- CLI arguments for
cast run. - Target
Fetch ๐ - Target transaction resolved up front by
RunArgs::fetch_target, before any per-network preparation.
Enumsยง
- Replay
GasLimits ๐ - Chain-specific gas limits for transactions replayed by
cast run.
Constantsยง
- REMOTE_
TRACE_ ๐HINT - Points at the remote trace when a transaction cannot be replayed locally.
Functionsยง
- block_
num_ ๐hash - Returns the number and hash of a fetched block.
- call_
tracer_ ๐frame - Extracts the
callTracerframe from adebug_trace*response. - ensure_
remote_ ๐transaction_ inclusion - ensure_
requested_ ๐transaction - Ensures the RPC answered
eth_getTransactionByHashwith the requested transaction. - fetch_
block_ ๐access_ list - Fetches the block access list of
block, if the node serves one that matches the header. - fetch_
contracts_ bytecode_ from_ trace - fetch_
nitro_ ๐l1_ gas_ used - fetch_
transaction_ ๐contracts_ bytecode_ via_ rpc - Fetches bytecode for a mined transaction at its exact transaction index.
- full_
transactions ๐ - is_
system_ ๐transaction - nitro_
execution_ ๐gas_ limit - parent_
beacon_ ๐block_ root_ for_ network - parse_
nitro_ ๐l1_ gas_ used - trace_
addresses ๐ - Returns the distinct non-zero addresses and callers seen in the traces of
result.