Tags: foundry-rs/foundry
Tags
chore(deps): weekly `cargo update` (#10831) Locking 45 packages to latest compatible versions Updating alloy-consensus v1.0.11 -> v1.0.12 Updating alloy-consensus-any v1.0.11 -> v1.0.12 Updating alloy-contract v1.0.11 -> v1.0.12 Updating alloy-eips v1.0.11 -> v1.0.12 Updating alloy-ens v1.0.11 -> v1.0.12 Unchanged alloy-evm v0.10.0 (available: v0.12.1) Updating alloy-genesis v1.0.11 -> v1.0.12 Updating alloy-json-rpc v1.0.11 -> v1.0.12 Updating alloy-network v1.0.11 -> v1.0.12 Updating alloy-network-primitives v1.0.11 -> v1.0.12 Unchanged alloy-op-evm v0.10.0 (available: v0.12.1) Updating alloy-provider v1.0.11 -> v1.0.12 Updating alloy-pubsub v1.0.11 -> v1.0.12 Updating alloy-rpc-client v1.0.11 -> v1.0.12 Updating alloy-rpc-types v1.0.11 -> v1.0.12 Updating alloy-rpc-types-anvil v1.0.11 -> v1.0.12 Updating alloy-rpc-types-any v1.0.11 -> v1.0.12 Updating alloy-rpc-types-debug v1.0.11 -> v1.0.12 Updating alloy-rpc-types-engine v1.0.11 -> v1.0.12 Updating alloy-rpc-types-eth v1.0.11 -> v1.0.12 Updating alloy-rpc-types-trace v1.0.11 -> v1.0.12 Updating alloy-rpc-types-txpool v1.0.11 -> v1.0.12 Updating alloy-serde v1.0.11 -> v1.0.12 Updating alloy-signer v1.0.11 -> v1.0.12 Updating alloy-signer-aws v1.0.11 -> v1.0.12 Updating alloy-signer-gcp v1.0.11 -> v1.0.12 Updating alloy-signer-ledger v1.0.11 -> v1.0.12 Updating alloy-signer-local v1.0.11 -> v1.0.12 Updating alloy-signer-trezor v1.0.11 -> v1.0.12 Updating alloy-transport v1.0.11 -> v1.0.12 Updating alloy-transport-http v1.0.11 -> v1.0.12 Updating alloy-transport-ipc v1.0.11 -> v1.0.12 Updating alloy-transport-ws v1.0.11 -> v1.0.12 Unchanged alloy-trie v0.8.1 (available: v0.9.0) Updating alloy-tx-macros v1.0.11 -> v1.0.12 Updating atomic v0.6.0 -> v0.6.1 Updating autocfg v1.4.0 -> v1.5.0 Updating aws-sdk-sts v1.74.0 -> v1.75.0 Unchanged crossterm v0.28.1 (available: v0.29.0) Updating errno v0.3.12 -> v0.3.13 Unchanged idna_adapter v1.1.0 (available: v1.2.1) Updating libc v0.2.173 -> v0.2.174 Updating markup5ever v0.16.1 -> v0.16.2 Unchanged matchit v0.8.4 (available: v0.8.6) Updating newtype-uuid v1.2.3 -> v1.2.4 Unchanged op-alloy-consensus v0.17.2 (available: v0.18.6) Unchanged op-alloy-rpc-types v0.17.2 (available: v0.18.6) Unchanged op-revm v5.0.1 (available: v7.0.1) Unchanged opener v0.7.2 (available: v0.8.2) Updating prettyplease v0.2.34 -> v0.2.35 Unchanged protobuf v3.3.0 (available: v3.7.2) Unchanged protobuf-support v3.3.0 (available: v3.7.2) Updating quinn-udp v0.5.12 -> v0.5.13 Unchanged rand v0.8.5 (available: v0.9.1) Unchanged revm v24.0.1 (available: v26.0.1) Unchanged revm-inspectors v0.23.0 (available: v0.25.0) Unchanged rustyline v15.0.0 (available: v16.0.0) Unchanged schemars v0.8.22 (available: v0.9.0) Updating syn v2.0.103 -> v2.0.104 Unchanged ui_test v0.29.2 (available: v0.30.1) Unchanged unicode-width v0.2.0 (available: v0.2.1) Unchanged vergen v8.3.2 (available: v9.0.6) Updating webpki-roots v1.0.0 -> v1.0.1 Updating zerocopy v0.8.25 -> v0.8.26 Updating zerocopy-derive v0.8.25 -> v0.8.26 Unchanged zip-extract v0.2.1 (available: v0.2.3) note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>` Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com>
feat(forge): coverage guided fuzzing & time based campaigns for invar… …iant mode (#10190) * rename coverage to line coverage for clarity * WIP: coverage guided fuzzing * wip persist invariant corpus * add binning and history map * rm proptest runner, add corpus mutations * fix: splice mutation, add some notes * Clippy and more tests * save * use libafl_bolt's SIMD hitmap * fix eyre issues * add comments and psuedocode * Revert libafl * Typo * Fix win config test * cleanup, save corpus at the end of run, if new coverage * consolidate corpus manager * Consolidate tx manager corpus logic * Review changes: do not stop fuzzing if corpus replay failures, report number of failures, uuids for corpus file * Default gzip corpus and config to toggle json/gzip * Evict oldest corpus with more than x mutations * Add min corpus size config, bump max mutations to default depth run * Simplify corpus manager and corpus struct, enable prefix / suffix mutation, manager to handle generate from strategy * Fuzz arg from ABI * Corpus max mutations default 5 * Save metadata on disk at eviction time * Remove more than 2 branches branch, make sure we always have one * Load gz and json seeds, ignore metadata files * ABI mutation replaces subset of arguments sometimes * prevent empty range but perform at least 1 round * trim selector when using abi_decode_input * Nit, remove clippy allow * retain corpus items that are highly likely to produce new finds * rename corpus_max_mutations to corpus_min_mutations * update cli test expectations * Stateless fuzz corpus config revert, add invariant time based campaigns * Changes after review - revert cache dir configs, invariant corpus can be external of cache - save and load as json.gz - comment update - introduce mutation type enum * Remove outdated comment * Update crates/evm/evm/src/executors/mod.rs Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> * Changes after review: comment, update merge_edge_coverage, use rng.gen * Fix docs * Keep test assert, found faster than without guidance * Fix * Do not use in memory mutated corpus if coverage guided is disabled. --------- Co-authored-by: grandizzy <grandizzy.the.egg@gmail.com> Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
chore: add hash to eip-712 cmd (#10764) * chore: add hash to eip-712 cmd * fix: windows path * feat: add --json flag to forge eip712 command * style: fmt * style: std names * style: lint * fix: free-standing structs * style: clippy
PreviousNext