Skip to main content

Crate foundry_evm_symbolic

Crate foundry_evm_symbolic 

Source
Expand description

Foundry’s symbolic EVM executor.

Re-exportsΒ§

pub(crate) use std::collections::VecDeque; πŸ”’
pub(crate) use std::fmt; πŸ”’
pub(crate) use std::fmt::Write as _; πŸ”’
pub(crate) use std::io::Write; πŸ”’
pub(crate) use std::ops::ControlFlow; πŸ”’
pub(crate) use std::ops::Deref; πŸ”’
pub(crate) use std::ops::DerefMut; πŸ”’
pub(crate) use std::path::Path; πŸ”’
pub(crate) use std::path::PathBuf; πŸ”’
pub(crate) use std::process::Command; πŸ”’
pub(crate) use std::process::Stdio; πŸ”’
pub(crate) use std::sync::Arc; πŸ”’
pub(crate) use std::sync::atomic::AtomicBool; πŸ”’
pub(crate) use std::sync::atomic::Ordering; πŸ”’
pub(crate) use std::sync::mpsc; πŸ”’
pub(crate) use std::thread; πŸ”’
pub(crate) use std::time::Duration; πŸ”’
pub(crate) use std::time::Instant; πŸ”’
pub(crate) use std::time::SystemTime; πŸ”’
pub(crate) use std::time::UNIX_EPOCH; πŸ”’
pub(crate) use DynSolType; πŸ”’
pub(crate) use DynSolValue; πŸ”’
pub(crate) use JsonAbiExt; πŸ”’
pub(crate) use alloy_json_abi::Function; πŸ”’
pub(crate) use Address; πŸ”’
pub(crate) use B256; πŸ”’
pub(crate) use Bytes; πŸ”’
pub(crate) use I256; πŸ”’
pub(crate) use Keccak256; πŸ”’
pub(crate) use U256; πŸ”’
pub(crate) use hex; πŸ”’
pub(crate) use hex; πŸ”’
pub(crate) use keccak256; πŸ”’
pub(crate) use HashMap; πŸ”’
pub(crate) use HashSet; πŸ”’
pub(crate) use IndexSet; πŸ”’
pub(crate) use alloy_signer::SignerSync; πŸ”’
pub(crate) use PrivateKeySigner; πŸ”’
pub(crate) use English; πŸ”’
pub(crate) use Wordlist; πŸ”’
pub(crate) use alloy_sol_types::SolCall; πŸ”’
pub(crate) use SymbolicVm; πŸ”’
pub(crate) use Vm; πŸ”’
pub(crate) use SymbolicConfig; πŸ”’
pub(crate) use SymbolicExplorationOrder; πŸ”’
pub(crate) use SymbolicStorageLayout; πŸ”’
pub(crate) use CALLER; πŸ”’
pub(crate) use CHEATCODE_ADDRESS; πŸ”’
pub(crate) use DEFAULT_CREATE2_DEPLOYER; πŸ”’
pub(crate) use HARDHAT_CONSOLE_ADDRESS; πŸ”’
pub(crate) use backend::DatabaseExt; πŸ”’
pub(crate) use evm::FoundryEvmNetwork; πŸ”’
pub(crate) use executors::Executor; πŸ”’
pub(crate) use Bytecode; πŸ”’
pub(crate) use JumpTable; πŸ”’
pub(crate) use eip7702::EIP7702_BYTECODE_LEN; πŸ”’
pub(crate) use opcode; πŸ”’
pub(crate) use Block; πŸ”’
pub(crate) use Cfg; πŸ”’
pub(crate) use Transaction; πŸ”’
pub(crate) use database::DatabaseRef; πŸ”’
pub(crate) use PrecompileSpecId; πŸ”’
pub(crate) use Precompiles; πŸ”’
pub(crate) use kzg_point_evaluation; πŸ”’
pub(crate) use primitives::hardfork::SpecId; πŸ”’
pub(crate) use Deserialize; πŸ”’
pub(crate) use Deserialize; πŸ”’
pub(crate) use Serialize; πŸ”’
pub(crate) use Serialize; πŸ”’
pub(crate) use collections::VecDeque; πŸ”’
pub(crate) use self; πŸ”’
pub(crate) use io::Write; πŸ”’
pub(crate) use ControlFlow; πŸ”’
pub(crate) use Deref; πŸ”’
pub(crate) use DerefMut; πŸ”’
pub(crate) use Path; πŸ”’
pub(crate) use PathBuf; πŸ”’
pub(crate) use Command; πŸ”’
pub(crate) use Stdio; πŸ”’
pub(crate) use Arc; πŸ”’
pub(crate) use AtomicBool; πŸ”’
pub(crate) use Ordering; πŸ”’
pub(crate) use mpsc; πŸ”’
pub(crate) use thread; πŸ”’
pub(crate) use Duration; πŸ”’
pub(crate) use Instant; πŸ”’
pub(crate) use SystemTime; πŸ”’
pub(crate) use UNIX_EPOCH; πŸ”’
pub(crate) use thiserror::Error; πŸ”’
pub(crate) use debug; πŸ”’
pub(crate) use trace; πŸ”’
pub(crate) use trace_span; πŸ”’
pub(crate) use warn; πŸ”’
pub(crate) use base64::prelude::*; πŸ”’

ModulesΒ§

abi πŸ”’
consts πŸ”’
executor πŸ”’
runtime πŸ”’

StructsΒ§

ExecutorView
Network-independent, read-only view of a concrete Foundry executor.
SymbolicBranchTarget
One comparison site from a fuzz branch frontier to target during symbolic execution.
SymbolicBranchTargetSearchResult
Result of best-effort symbolic exploration toward one branch target.
SymbolicConcreteInput
One concrete symbolic input materialized from a solver model.
SymbolicExecutor
SMT-LIB-backed symbolic executor.
SymbolicInvariantCandidate
One unconfirmed symbolic input produced by invariant candidate search.
SymbolicInvariantCandidateInput
Input for best-effort invariant candidate search after one symbolic handler call.
SymbolicInvariantCandidateSearchResult
Result of best-effort invariant candidate search after one symbolic handler call.
SymbolicInvariantRunInput
Input for bounded symbolic invariant execution.
SymbolicInvariantSearchLimitation
An execution or solver limitation encountered during best-effort candidate search.
SymbolicInvariantStep
One concrete step in a symbolic invariant counterexample sequence.
SymbolicInvariantTarget
A concrete invariant target selected from Foundry’s invariant discovery.
SymbolicRunInput
SymbolicStats
Symbolic execution counters.
SymbolicStorageAssignment
One concrete storage value required to replay a symbolic invariant candidate.

EnumsΒ§

DeferredIncomplete πŸ”’
DeferredPathMode πŸ”’
SymbolicError
Error returned by the internal symbolic executor.
SymbolicInvariantCounterexampleKind
Part of a symbolic invariant run that produced a replayable counterexample.
SymbolicInvariantRunResult
Outcome of bounded symbolic invariant execution.
SymbolicRunResult
Outcome of a symbolic test execution.
SymbolicStopReason
High-level reason a symbolic run stopped without a proof or replayed counterexample.
SymbolicVmCheatcode πŸ”’

ConstantsΒ§

CONCRETE_BASE_SYMBOLIC_EXPONENT_LIMIT πŸ”’
DEFAULT_DERIVATION_PATH_PREFIX πŸ”’
ERROR_DATA_MIN_LEN πŸ”’
FALLBACK_MODEL_MAX_ASSIGNMENTS πŸ”’
FALLBACK_MODEL_MAX_CANDIDATES_PER_VAR πŸ”’
FALLBACK_MODEL_MAX_VARS πŸ”’
HARD_ARITH_FALLBACK_MAX_ASSIGNMENTS πŸ”’
HARD_ARITH_FALLBACK_MAX_VARS πŸ”’
MAX_REMEMBER_KEYS πŸ”’
PORTFOLIO_SCHEDULER_HISTORY πŸ”’
PORTFOLIO_SCHEDULER_MAX_SPEED_BONUS πŸ”’
PORTFOLIO_SCHEDULER_MIN_RECENCY_WEIGHT πŸ”’
PORTFOLIO_SCHEDULER_SPEED_BONUS_CAP_MS πŸ”’
PRECOMPILE_ADDRESS_LEADING_ZEROS πŸ”’
RESCUE_PORTFOLIO_SOLVER_DELAY πŸ”’
SECOND_PORTFOLIO_SOLVER_DELAY πŸ”’
SOLVER_CANCEL_CHECK_INTERVAL πŸ”’
SYMBOLIC_EXP_CONCRETE_EXPONENT_LIMIT πŸ”’
SYMBOLIC_SOLVER_MODEL_CACHE_MAX_ENTRIES πŸ”’
SYMBOLIC_SOLVER_SAT_CACHE_MAX_ENTRIES πŸ”’
SYMBOLIC_VM_COMPAT_ADDRESS πŸ”’