From 4b0f8354e448b106f16221fe8e2456ce611b402a Mon Sep 17 00:00:00 2001 From: Juan Rigada <62958725+Jrigada@users.noreply.github.com> Date: Fri, 31 Jan 2025 11:51:14 -0300 Subject: [PATCH] chore: Fix compilation on upstream 9f11e6df (#882) * fix(ens): don't resolve addr if doesn't contain . (#9635) * fix(ens): don't resolve addr if doesn't contain . Signed-off-by: 9547 <29431502+9547@users.noreply.github.com> * fix invalid ens name Signed-off-by: 9547 <29431502+9547@users.noreply.github.com> --------- Signed-off-by: 9547 <29431502+9547@users.noreply.github.com> * feat(`verify`): default to sourcify if etherscan key not provided (#9630) * feat(`verify`): default to sourcify if etherscan key not provided * clippy * nit Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com> --------- Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com> * chore(`forge`): rm regex for --debug and --decode-internal (#9572) * chore(`forge`): rm regex for --debug and --decode-internal * fix * fix tests --------- Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> * fix(cheatcode): use storage access address instead account access (#9646) * fix(cheatcode): use storage access address instead account access * Update crates/cheatcodes/src/evm.rs Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> * Fix fmt --------- Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> * Feat: Add `cast chain` support for `ink` & `ink-sepolia` (#9652) feat: add `cast chain` support for `ink` & `ink-sepolia` * chore(deps): bump `alloy-chains` (#9653) * fix: do not remove `snapshots` directory before running the test suite (#9645) * do not remove snapshots directory before running the test suite, the side effect is that any custom group names or file name changes are not reflected - this is delegated to the end user * do not remove the `snapshots` directory upon running `forge clean` * fix(cheatcodes): record state diff only if balance changed (#9658) * fix(config): disable optimizer by default (#9657) * fix: disable optimizer by default * Set default optimizer runs to 200 * fix: incorrect repo link in readme for foundry-compilers (#9660) fix: incorrect repo link * feat: add arm64 docker image (#9614) * feat(docker): build arm64 image Signed-off-by: jsvisa * wip Signed-off-by: jsvisa * Revert "wip" This reverts commit a152a4c30b7aa510b95d32d5dc8d8d655e90d7f0. Signed-off-by: jsvisa * Revert "feat(docker): build arm64 image" This reverts commit 09adcbc0f4129f74831588a7e1665a7064eea2f6. Signed-off-by: jsvisa * feat(make): add cross docker build Signed-off-by: jsvisa * feat(make): multi tags Signed-off-by: jsvisa * feat(github): use cross build Signed-off-by: jsvisa * add Dockerfile.cross Signed-off-by: jsvisa * fix(make): don't recreate cross-builder Signed-off-by: jsvisa * make: add log Signed-off-by: jsvisa * fix: missing \ Signed-off-by: jsvisa * typo Signed-off-by: jsvisa * Update docker-publish.yml Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> --------- Signed-off-by: jsvisa Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> * chore: fix test isolate, different address for caller (#9663) * fix: set debug none for release profile (#9664) * chore(deps): weekly `cargo update` (#9668) Locking 41 packages to latest compatible versions Updating alloy-chains v0.1.54 -> v0.1.55 Updating async-trait v0.1.84 -> v0.1.85 Updating aws-sdk-sts v1.54.0 -> v1.54.1 Updating bitflags v2.6.0 -> v2.7.0 Updating cc v1.2.7 -> v1.2.8 Updating clap v4.5.23 -> v4.5.26 Updating clap_builder v4.5.23 -> v4.5.26 Updating clap_complete v4.5.40 -> v4.5.42 Updating clap_derive v4.5.18 -> v4.5.24 Updating handlebars v6.2.0 -> v6.3.0 Updating inferno v0.12.0 -> v0.12.1 Updating instability v0.3.6 -> v0.3.7 Adding itertools v0.14.0 Updating linux-raw-sys v0.4.14 -> v0.4.15 Updating nybbles v0.3.3 -> v0.3.4 Updating op-alloy-consensus v0.9.0 -> v0.9.2 Updating op-alloy-rpc-types v0.9.0 -> v0.9.2 Updating phf v0.11.2 -> v0.11.3 Updating phf_codegen v0.11.2 -> v0.11.3 Updating phf_generator v0.11.2 -> v0.11.3 Updating phf_macros v0.11.2 -> v0.11.3 Updating phf_shared v0.11.2 -> v0.11.3 Updating pin-project v1.1.7 -> v1.1.8 Updating pin-project-internal v1.1.7 -> v1.1.8 Updating pin-project-lite v0.2.15 -> v0.2.16 Updating prettyplease v0.2.25 -> v0.2.27 Updating proc-macro2 v1.0.92 -> v1.0.93 Updating revm v19.0.0 -> v19.2.0 Updating rustix v0.38.42 -> v0.38.43 Updating rustls v0.23.20 -> v0.23.21 Updating security-framework v3.1.0 -> v3.2.0 Updating security-framework-sys v2.13.0 -> v2.14.0 Updating serde_json v1.0.134 -> v1.0.135 Adding siphasher v1.0.1 Updating syn v2.0.94 -> v2.0.96 Updating thiserror v2.0.9 -> v2.0.11 Updating thiserror-impl v2.0.9 -> v2.0.11 Updating tokio v1.42.0 -> v1.43.0 Updating tokio-macros v2.4.0 -> v2.5.0 Updating uuid v1.11.0 -> v1.11.1 Updating winnow v0.6.22 -> v0.6.24 note: pass `--verbose` to see 12 unchanged dependencies behind latest Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com> * chore(clippy): use next_back instead of last for DoubleEndedIterator (#9666) * chore(clippy): use next_back instead of last for DoubleEndedIterator Signed-off-by: jsvisa * more cases Signed-off-by: jsvisa * last -> next_back Signed-off-by: jsvisa * len ==0 => is_empty Signed-off-by: jsvisa --------- Signed-off-by: jsvisa * fix: error handling with retries when waiting for receipt (#9650) * fix: error handling with retries when waiting for receipt * Add RetryError::Continue variant, rework receipts tx check * chore: use "full" for debug (#9670) * chore: don't warn in RetryError::Continue (#9671) * test: increase nextest backoff (#9672) * fix(`script`): use fork_block_number for init sender nonce (#9669) * fix(`script`): use fork_block_number for init sender nonce * test * feat(foundryup): add foundryup self-update (#9609) * feat(foundryup):: add self-update Signed-off-by: 9547 <29431502+9547@users.noreply.github.com> * renmae to --update Signed-off-by: 9547 <29431502+9547@users.noreply.github.com> * download to tmp file first Signed-off-by: 9547 <29431502+9547@users.noreply.github.com> --------- Signed-off-by: 9547 <29431502+9547@users.noreply.github.com> * fix(`config`): enable `optimizer` when `optimizer_runs` set in config (#9673) * fix(`config`): enable optimizer if `optimizer_runs` has been set * test * fix(`config`): change optimizer properties to Option * fix * nit Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> * fix * nit --------- Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> * fix: propagate color config to TraceWriter (#9679) * feat(foundryup): check for running processes (#9680) * chore: add version number to `foundryup` (#9681) * add version number, display using --version * use say instead of echo * add input box for foundryup version to bug template * fix(config): normalize optimizer settings (#9689) * ci: use reusable cargo update workflow (#9690) * chore(deps): bump svm 0.5.10 (#9700) * fix(verify): strip profile from contract name (#9699) * feat(`forge`): `--watch` coverage (#9702) * feat: filter by profile in `vm.getCode` (#9714) feat: filter by profile in getCode * feat(chisel): determine proper path to Vm.sol based on proj remappings (#9703) * chore(deps): weekly `cargo update` (#9715) * Fix rewrite of User-Agent header (#9707) * Fix rewrite of User-Agent header * add test * add axym to dev deps * format * format * format * cleanup * cleanup * review fixes * use localhost address * refactor: properly handle config load errors (#9713) * refactor: properly handle config load errors * fix * doc * chore: bump version to 0.3.1 to make it easier to identify non-stable builds (#9718) * bump version number * bump lockfile * fix(invariant): handle simple contract names in metrics table (#9724) * chore: display warning to user if running `nightly` version (#9683) * use shared compile time version builder * add warning message on nightly builds * display warning on nightly builds * derive nightly build from tag name * no need to pass IS_NIGHTLY in, derive from tag name * update warning message * fix rustfmt * fix clippy * clean up, default to always use `-dev` if not on tag * provide way for users to mute the warning by setting a FOUNDRY_DISABLE_NIGHTLY_WARNING environment variable * fix fmt * add profile to version * fix clippy * fix fmt * remove redundant build_timestamp as it is unused * unify build scripts, update cheatcodes build script, fix vm.getFoundryVersion() cheatcode * fix clippy * build timestamp not needed anymore, move to use single build script in foundry_common and export from there * clean up * add timestamp due to users / documentation relying on it * use verbose message format for cli --version, use SemVer compatible unix timestamp for cheatcode, fix nits * make IS_NIGHTLY_VERSION conditional * use semver for cheatcode * fix test * fix value * forge fmt * nits, update getFoundryVersion cheatcode docs * fix incorrect version passed to forge cli, add unix timestamp to human readable --version * add tests, add short version / long version, address feedback * prefer build_timestamp for short version too * fixes, add anvil tests for parsing * add back unix timestamp in full version * fix semver test * fix(forge): allow install private deps with https and gh token (#9726) fix(forge): allow install deps with https and gh token * fix: release process (#9728) * fix env variable of tag name location * make tag name more robust, not just matching on strict "nightly" but containing nightly * prefer using short version in foundryup to avoid cluttering stdout * pass in tag name (cast to `nightly` if nightly build) during Docker build process * requires prepare step * use with instead of env * env not available in step * fix build tag * add test tag for Docker * pass down tag_name into Dockerfile.cross * revert docker specific changes, do that as a follow up to unblock * avoid whitespace diff * feat: allow remapping of solidity files (#9604) * feat(remapping): support remapping of .sol files Signed-off-by: jsvisa * feat(remapping): add testcase Signed-off-by: jsvisa * typo Signed-off-by: jsvisa --------- Signed-off-by: jsvisa * fix(`forge`): disable artifacts for coverage (#9692) * feat(`forge`): diff artifacts dir for coverage * nit * nit * flip `no_artifacts` to true * nit * fix: respect `disable_block_gas_limit` config key (#9732) fix * chore: bump compilers (#9735) * feat(cheatcodes): add ability to ignore (multiple) specific and partial reverts in fuzz and invariant tests (#9179) * initial pass add support for multiple reasons, add tests appease clippy fix broken tests; fix some assume behavior remove comment and bad error-surfacing logic remove redundant param, rename revert.rs, create sol test file remove unnecessary tests from both test_cmd and AssumeNoRevert.t.sol use empty vec instead of option; remove commented test remove assumeNoPartialRevert; update assumeNoPartialRevert Simplify test, use snapbox assertion Redact number of runs implement assume_no_revert change * rebase and refactor * fix tests for overloaded; original failing * remove erroneous return type * appease clippy * allow combining expectRevert with assumeNoRevert * Apply suggestions from code review nit * remove magic string const * fix error string * improve invariant selectors weight test * nit --------- Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com> Co-authored-by: grandizzy * fix: use custom build profile in --version (#9733) * feat(script): show the broadcasted transactions when verbose>=4 (#9655) * feat(script): add --dry-run Signed-off-by: jsvisa * feat(script): implement the tx print Signed-off-by: jsvisa * no newline if no args Signed-off-by: jsvisa * clippy Signed-off-by: jsvisa * add --dry-run --broadcast testcase Signed-off-by: jsvisa * lossy stdout test Signed-off-by: jsvisa * feat(script): print txs if --dry-run Signed-off-by: jsvisa * feat(script): make dry-run as the default behavior Signed-off-by: jsvisa * fix Signed-off-by: jsvisa * use writeln instead of push_str Signed-off-by: jsvisa * implment UIfmt for TransactionMaybeSigned Signed-off-by: jsvisa * dryrun: use UIfmt instead Signed-off-by: jsvisa * dryrun: print contract only if call Signed-off-by: jsvisa * use [..] to test Signed-off-by: jsvisa * update testcase Signed-off-by: jsvisa * feat(script): --dry-run --resume Signed-off-by: jsvisa * no long input Signed-off-by: jsvisa * no double newline Signed-off-by: jsvisa Revert "no double newline" This reverts commit 6337995e4735b7cb2965962d6a7cd29addf367f7. Signed-off-by: jsvisa wip Signed-off-by: jsvisa * print transaction if -vvvv Signed-off-by: jsvisa * Revert "update testcase" This reverts commit ed5201c78e61863a32cec46a5b52c8934ab539d7. Signed-off-by: jsvisa * update test for -vvvv broadcast Signed-off-by: jsvisa * no dryrun module Signed-off-by: jsvisa * test Signed-off-by: jsvisa --------- Signed-off-by: jsvisa Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com> * chore: remove redundant `test.sol` (#9736) remove redundant test.sol, follow up of https://github.com/foundry-rs/foundry/pull/9179 * chore: pass and read tag as `CARGO_TAG_NAME` for cross build (#9738) * chore: pass and read tag as CARGO_TAG_NAME for cross build * Nit * fix(remappings): ignore conflicting remappings (#9521) * fix(remappings): ignore conflicting remappings * Fix test, redundant remappings are not allowed anymore * feat(`forge`): inspect - default to pretty output (#9705) * fix(`forge`): inspect - mk --pretty default * print_table helper * print table method-identifier * print table errors * print errors events * nit * fix * rm pretty * fix * print abi as table * fix test * test * nit * clippy * dedup helpers and tests * fix * fix(invariant): lookup fuzz interface abi by name or identifier (#9744) * feat(foundryup): manage custom built versions (#9746) * fix(foundryup): set proper version for use call (#9750) * chore: stop supporting legacy console.sol signatures (#8910) * feat: stop supporting legacy console.sol signatures * chore: update console.sol in tests * Fix test --------- Co-authored-by: grandizzy Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> * chore(deps): weekly `cargo update` (#9755) * fix(cheatcode): expect revert only for calls with greater depth than test (#9537) * fix(cheatcode): expect revert only for calls with greater depth * Add config to allow expect revert for internal calls * Fix default config test * Update crates/cheatcodes/src/inspector.rs Co-authored-by: Matthias Seitz --------- Co-authored-by: Matthias Seitz * fix(`forge bind`): prefix keyword mod names with `r#` (#9761) * fix(`forge bind`): prefix keyword mod names with r# * nit * is_ok * feat(`cast source`): support alternative explorers (#9762) * feat(`cast`): support alternative explorers in `source` * fix * fix * feat: override the eyre display handler globally (#9766) * feat: override the eyre display handler globally * chore: install handler in anvil * msg * ci: set RUST_BACKTRACE=full (#9767) * perf(coverage): use u32 for IDs, improve analysis (#9763) * refactor(debugger): renames, less clones * perf(coverage): use u32 for IDs, improve analysis * perf: don't keep source maps around, shrink_to_fit * chore: clippy * fmt * fix(coverage): keep EVM version when normalizing for ir-minimum (#9768) * chore: update README for `1.0` (#9540) * start adding new benchmarks and recording * add benchmarks * add solady compilation benchmark * crop demo gif to scale better * clean up * fix morpho-blue integration test, skewed because of create2 mining * add compilation comparison for openzeppelin * add very basic getting started * add basic examples for each tool * clean up * clean up * use default MIT and Apache 2.0 licenses for auto-recognition by Github * apply default format of license, using existing fields * clean up, point to book as primary source rather than crates * clean up dev docs * spell fix * clean up * nits * nits * revert to previous license version, updated format was not necessary - possibly Github related data issue yesterday * Apply suggestions from code review Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> * note dual support * fix link to actions Co-authored-by: Lubov66 * link directly to existing references rather than overviews * add designed benchmarks * improve size slightly * use center alignment * fix spacing * fix spacing * update image paths * remove outdated Foundry docs, users should refer to the book * remove outdated docs, Foundry book should serve as primary source until we actually focus on Foundry as a library * move demo.gif, remove unused logo * fix build * update table in fmt, restore docs for crate * try fixing rpc that is down --------- Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Co-authored-by: Lubov66 * chore: remove ahash (#9769) * chore(deps): breaking bumps (#9773) * chore: install deps and create foundry user in cross built image (#9775) * chore: fix isolate tests (#9776) * fix: correctly set `gas_limit` reported by Anvil (#9774) fix gas_limit reported by anvil * fix(docker): revert to use ubuntu:22.04 as base image (#9777) fix: use ubuntu:22.04 * fix(cheatcode): support new 7702 spec (#9779) fix(cheatcode): update revm with support for updated 7702 * fix: avoid returning None for library addresses during fuzzing (#9771) * avoid returning None for library addresses during fuzzing * cargo fmt * randomize address if it belongs to a deployed lib * return early in happy path * Make it build, then make it pretty * Add note zk about op-alloy-consensus dep --------- Signed-off-by: 9547 <29431502+9547@users.noreply.github.com> Signed-off-by: jsvisa Co-authored-by: Marquis Shanahan <29431502+9547@users.noreply.github.com> Co-authored-by: Yash Atreya <44857776+yash-atreya@users.noreply.github.com> Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com> Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com> Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Co-authored-by: Cruz Molina Co-authored-by: Drake Evans <31104161+DrakeEvans@users.noreply.github.com> Co-authored-by: Delweng Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: mattsse <19890894+mattsse@users.noreply.github.com> Co-authored-by: Arsenii Kulikov Co-authored-by: Vladimir Co-authored-by: James Co-authored-by: grandizzy Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com> Co-authored-by: Matthias Seitz Co-authored-by: Lubov66 Co-authored-by: Nisheeth Barthwal --- .github/workflows/dependencies.yml | 50 +- Cargo.lock | 541 ++++++++++++------ Cargo.toml | 4 +- crates/anvil/Cargo.toml | 2 +- crates/anvil/core/Cargo.toml | 2 +- crates/anvil/core/src/eth/transaction/mod.rs | 2 +- .../core/src/eth/transaction/optimism.rs | 2 +- crates/anvil/src/eth/backend/mem/mod.rs | 2 +- crates/anvil/src/eth/sign.rs | 2 +- crates/cast/bin/cmd/send.rs | 3 +- crates/cheatcodes/src/config.rs | 8 +- crates/cheatcodes/src/evm.rs | 3 +- crates/cheatcodes/src/inspector.rs | 9 +- crates/cheatcodes/src/lib.rs | 2 +- crates/cheatcodes/src/test/expect.rs | 37 +- crates/cli/src/handler.rs | 2 +- crates/evm/core/src/constants.rs | 5 + crates/evm/core/src/decode.rs | 2 - crates/evm/evm/src/executors/invariant/mod.rs | 6 +- crates/evm/fuzz/src/strategies/param.rs | 6 +- crates/evm/traces/src/decoder/mod.rs | 2 +- crates/forge/bin/cmd/build.rs | 2 +- crates/forge/bin/cmd/coverage.rs | 4 +- crates/forge/bin/cmd/create.rs | 6 +- crates/forge/bin/cmd/test/mod.rs | 2 +- crates/forge/src/gas_report.rs | 3 +- crates/forge/tests/it/repros.rs | 2 +- .../zksync/src/cheatcode/runner/mod.rs | 4 +- .../zksync/src/cheatcode/runner/utils.rs | 4 +- crates/test-utils/Cargo.toml | 1 + crates/verify/src/etherscan/mod.rs | 4 +- crates/verify/src/verify.rs | 2 +- crates/zksync/compilers/Cargo.toml | 2 +- crates/zksync/compilers/src/artifacts/mod.rs | 4 +- .../compilers/src/compilers/zksolc/input.rs | 5 +- .../src/compilers/zksolc/settings.rs | 5 +- crates/zksync/core/src/vm/inspect.rs | 15 +- crates/zksync/core/src/vm/mod.rs | 6 + .../zksync/core/src/vm/tracers/cheatcode.rs | 9 +- 39 files changed, 453 insertions(+), 319 deletions(-) diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index 42fc3cf44..1b76eb107 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -24,28 +24,28 @@ jobs: with: toolchain: nightly-2024-09-01 - - name: cargo update - # Remove first line that always just says "Updating crates.io index" - run: cargo update --color never 2>&1 | sed '/crates.io index/d' | tee -a cargo_update.log - - - name: craft commit message and PR body - id: msg - run: | - export cargo_update_log="$(cat cargo_update.log)" - - echo "commit_message<> $GITHUB_OUTPUT - printf "$TITLE\n\n$cargo_update_log\n" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - echo "body<> $GITHUB_OUTPUT - echo "$BODY" | envsubst >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v6 - with: - add-paths: ./Cargo.lock - commit-message: ${{ steps.msg.outputs.commit_message }} - title: ${{ env.TITLE }} - body: ${{ steps.msg.outputs.body }} - branch: ${{ env.BRANCH }} + - name: cargo update + # Remove first line that always just says "Updating crates.io index" + run: cargo update --color never 2>&1 | sed '/crates.io index/d' | tee -a cargo_update.log + + - name: craft commit message and PR body + id: msg + run: | + export cargo_update_log="$(cat cargo_update.log)" + + echo "commit_message<> $GITHUB_OUTPUT + printf "$TITLE\n\n$cargo_update_log\n" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + echo "body<> $GITHUB_OUTPUT + echo "$BODY" | envsubst >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v6 + with: + add-paths: ./Cargo.lock + commit-message: ${{ steps.msg.outputs.commit_message }} + title: ${{ env.TITLE }} + body: ${{ steps.msg.outputs.body }} + branch: ${{ env.BRANCH }} diff --git a/Cargo.lock b/Cargo.lock index 89a34582e..a2d0cf6da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -72,6 +72,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +[[package]] name = "alloy" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -177,6 +178,19 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "alloy-core" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "648275bb59110f88cc5fa9a176845e52a554ebfebac2d21220bcda8c9220f797" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-rlp", + "alloy-sol-types", +] + [[package]] name = "alloy-dyn-abi" version = "0.8.19" @@ -195,7 +209,7 @@ dependencies = [ "proptest", "serde", "serde_json", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] @@ -373,6 +387,19 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "alloy-network-primitives" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" +dependencies = [ + "alloy-consensus 0.5.4", + "alloy-eips 0.5.4", + "alloy-primitives", + "alloy-serde 0.5.4", + "serde", +] + [[package]] name = "alloy-network-primitives" version = "0.9.2" @@ -466,7 +493,7 @@ dependencies = [ "lru", "parking_lot", "pin-project 1.1.8", - "reqwest", + "reqwest 0.12.9", "schnellru", "serde", "serde_json", @@ -531,9 +558,9 @@ dependencies = [ "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", - "futures", + "futures 0.3.31", "pin-project 1.1.8", - "reqwest", + "reqwest 0.12.9", "serde", "serde_json", "tokio", @@ -723,8 +750,8 @@ dependencies = [ "alloy-sol-types", "async-trait", "auto_impl", - "elliptic-curve", - "k256", + "elliptic-curve 0.13.8", + "k256 0.13.4", "thiserror 2.0.11", ] @@ -740,8 +767,8 @@ dependencies = [ "alloy-signer 0.9.2", "async-trait", "aws-sdk-kms", - "k256", - "spki", + "k256 0.13.4", + "spki 0.7.3", "thiserror 2.0.11", "tracing", ] @@ -758,8 +785,8 @@ dependencies = [ "alloy-signer 0.9.2", "async-trait", "gcloud-sdk", - "k256", - "spki", + "k256 0.13.4", + "spki 0.7.3", "thiserror 2.0.11", "tracing", ] @@ -779,7 +806,7 @@ dependencies = [ "async-trait", "coins-ledger", "futures-util", - "semver 1.0.25", + "semver 1.0.23", "thiserror 2.0.11", "tracing", ] @@ -816,8 +843,8 @@ dependencies = [ "coins-bip32", "coins-bip39", "eth-keystore", - "k256", - "rand", + "k256 0.13.4", + "rand 0.8.5", "thiserror 2.0.11", ] @@ -832,7 +859,7 @@ dependencies = [ "alloy-primitives", "alloy-signer 0.9.2", "async-trait", - "semver 1.0.25", + "semver 1.0.23", "thiserror 2.0.11", "tracing", "trezor-client", @@ -895,7 +922,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74e60b084fe1aef8acecda2743ff2d93c18ff3eb67a2d3b12f62582a1e66ef5e" dependencies = [ "serde", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] @@ -1143,7 +1170,7 @@ dependencies = [ [[package]] name = "anvil" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-chains", "alloy-consensus 0.9.2", @@ -1187,11 +1214,11 @@ dependencies = [ "foundry-config", "foundry-evm", "foundry-test-utils", - "futures", - "hyper 1.5.2", + "futures 0.3.31", + "hyper 1.5.1", "itertools 0.14.0", - "k256", - "maili-consensus", + "k256 0.13.4", + "op-alloy-consensus", "op-alloy-rpc-types", "parking_lot", "rand 0.8.5", @@ -1205,7 +1232,7 @@ dependencies = [ "thiserror 2.0.11", "tikv-jemallocator", "tokio", - "tower 0.5.2", + "tower 0.5.1", "tracing", "tracing-subscriber", "yansi", @@ -1213,7 +1240,7 @@ dependencies = [ [[package]] name = "anvil-core" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-consensus 0.9.2", "alloy-dyn-abi", @@ -1227,8 +1254,8 @@ dependencies = [ "bytes", "foundry-common", "foundry-evm", - "maili-consensus", - "rand", + "op-alloy-consensus", + "rand 0.8.5", "revm", "serde", "serde_json", @@ -1237,7 +1264,7 @@ dependencies = [ [[package]] name = "anvil-rpc" -version = "0.3.1" +version = "0.0.4" dependencies = [ "serde", "serde_json", @@ -1245,7 +1272,7 @@ dependencies = [ [[package]] name = "anvil-server" -version = "0.3.1" +version = "0.0.4" dependencies = [ "anvil-rpc", "async-trait", @@ -1260,7 +1287,7 @@ dependencies = [ "serde_json", "thiserror 2.0.11", "tokio-util", - "tower-http 0.5.2", + "tower-http", "tracing", ] @@ -1289,7 +1316,7 @@ dependencies = [ "jsonrpsee", "thiserror 1.0.69", "tower 0.4.13", - "tower-http 0.6.2", + "tower-http", "tracing", "zksync_types", "zksync_web3_decl", @@ -1329,7 +1356,7 @@ dependencies = [ "flate2", "futures 0.3.31", "hex", - "indexmap 2.7.0", + "indexmap 2.7.1", "itertools 0.13.0", "lazy_static", "once_cell", @@ -1676,7 +1703,7 @@ dependencies = [ "aws-sdk-sts", "aws-smithy-async", "aws-smithy-http", - "aws-smithy-json 0.60.7", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -1705,6 +1732,31 @@ dependencies = [ "zeroize", ] +[[package]] +name = "aws-lc-rs" +version = "1.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c2b7ddaa2c56a367ad27a094ad8ef4faacf8a617c2575acb2ba88949df999ca" +dependencies = [ + "aws-lc-sys", + "paste", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71b2ddd3ada61a305e1d8bb6c005d1eaa7d14d903681edfc400406d523a9b491" +dependencies = [ + "bindgen", + "cc", + "cmake", + "dunce", + "fs_extra", + "paste", +] + [[package]] name = "aws-runtime" version = "1.5.4" @@ -1740,7 +1792,7 @@ dependencies = [ "aws-runtime", "aws-smithy-async", "aws-smithy-http", - "aws-smithy-json 0.61.1", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -1762,7 +1814,7 @@ dependencies = [ "aws-runtime", "aws-smithy-async", "aws-smithy-http", - "aws-smithy-json 0.61.1", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -1784,7 +1836,7 @@ dependencies = [ "aws-runtime", "aws-smithy-async", "aws-smithy-http", - "aws-smithy-json 0.61.1", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -1806,7 +1858,7 @@ dependencies = [ "aws-runtime", "aws-smithy-async", "aws-smithy-http", - "aws-smithy-json 0.61.1", + "aws-smithy-json", "aws-smithy-query", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -2147,7 +2199,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cexpr", "clang-sys", "itertools 0.11.0", @@ -2160,7 +2212,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.90", + "syn 2.0.96", "which 4.4.2", ] @@ -2445,7 +2497,7 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] name = "cast" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-chains", "alloy-consensus 0.9.2", @@ -2489,11 +2541,12 @@ dependencies = [ "futures 0.3.31", "indicatif", "itertools 0.14.0", - "rand", + "rand 0.8.5", "rayon", "regex", "rpassword", - "semver 1.0.25", + "rustls 0.23.21", + "semver 1.0.23", "serde", "serde_json", "tempfile", @@ -2553,7 +2606,7 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chisel" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -2572,7 +2625,7 @@ dependencies = [ "reqwest 0.12.9", "revm", "rustyline", - "semver 1.0.25", + "semver 1.0.23", "serde", "serde_json", "serial_test", @@ -2746,7 +2799,7 @@ dependencies = [ "nix 0.29.0", "terminfo", "thiserror 2.0.11", - "which", + "which 7.0.1", "windows-sys 0.59.0", ] @@ -3194,7 +3247,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -3260,10 +3313,21 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.11.1", "syn 2.0.96", ] +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn 1.0.109", +] + [[package]] name = "darling_macro" version = "0.20.10" @@ -3333,7 +3397,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ "serde", - "uuid 1.11.0", + "uuid 1.12.1", ] [[package]] @@ -3761,7 +3825,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -4190,7 +4254,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "forge" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-chains", "alloy-consensus 0.9.2", @@ -4257,7 +4321,8 @@ dependencies = [ "regex", "reqwest 0.12.9", "revm-inspectors", - "semver 1.0.25", + "rustls 0.23.21", + "semver 1.0.23", "serde", "serde_json", "similar", @@ -4273,7 +4338,7 @@ dependencies = [ "tokio", "toml 0.8.19", "toml_edit 0.22.22", - "tower-http 0.5.2", + "tower-http", "tracing", "tracing-subscriber", "watchexec", @@ -4285,7 +4350,7 @@ dependencies = [ [[package]] name = "forge-doc" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-primitives", "derive_more", @@ -4308,7 +4373,7 @@ dependencies = [ [[package]] name = "forge-fmt" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-primitives", "ariadne", @@ -4324,7 +4389,7 @@ dependencies = [ [[package]] name = "forge-script" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-chains", "alloy-consensus 0.9.2", @@ -4362,7 +4427,7 @@ dependencies = [ "itertools 0.14.0", "parking_lot", "revm-inspectors", - "semver 1.0.25", + "semver 1.0.23", "serde", "serde_json", "tempfile", @@ -4373,7 +4438,7 @@ dependencies = [ [[package]] name = "forge-script-sequence" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-network 0.9.2", "alloy-primitives", @@ -4392,7 +4457,7 @@ dependencies = [ [[package]] name = "forge-sol-macro-gen" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-json-abi", "alloy-sol-macro-expander", @@ -4408,7 +4473,7 @@ dependencies = [ [[package]] name = "forge-verify" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -4426,12 +4491,13 @@ dependencies = [ "foundry-config", "foundry-evm", "foundry-test-utils", - "futures", + "foundry-zksync-compilers", + "futures 0.3.31", "itertools 0.14.0", "regex", "reqwest 0.12.9", "revm-primitives", - "semver 1.0.25", + "semver 1.0.23", "serde", "serde_json", "tempfile", @@ -4459,8 +4525,8 @@ dependencies = [ "alloy-json-abi", "alloy-primitives", "foundry-compilers", - "reqwest", - "semver 1.0.25", + "reqwest 0.12.9", + "semver 1.0.23", "serde", "serde_json", "thiserror 1.0.69", @@ -4469,7 +4535,7 @@ dependencies = [ [[package]] name = "foundry-cheatcodes" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-consensus 0.9.2", "alloy-dyn-abi", @@ -4496,6 +4562,8 @@ dependencies = [ "foundry-evm-core", "foundry-evm-traces", "foundry-wallets", + "foundry-zksync-core", + "foundry-zksync-inspectors", "itertools 0.14.0", "jsonpath_lib", "k256 0.13.4", @@ -4506,7 +4574,7 @@ dependencies = [ "rand 0.8.5", "revm", "revm-inspectors", - "semver 1.0.25", + "semver 1.0.23", "serde", "serde_json", "thiserror 2.0.11", @@ -4525,7 +4593,7 @@ dependencies = [ [[package]] name = "foundry-cheatcodes-spec" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-sol-types", "foundry-macros", @@ -4536,7 +4604,7 @@ dependencies = [ [[package]] name = "foundry-cli" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-chains", "alloy-dyn-abi", @@ -4580,7 +4648,7 @@ dependencies = [ [[package]] name = "foundry-common" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-consensus 0.9.2", "alloy-contract", @@ -4615,18 +4683,17 @@ dependencies = [ "foundry-compilers", "foundry-config", "foundry-zksync-compilers", - "foundry-macros", "itertools 0.14.0", "num-format", - "reqwest", - "semver 1.0.25", + "reqwest 0.12.9", + "semver 1.0.23", "serde", "serde_json", "similar-asserts", "terminal_size", "thiserror 2.0.11", "tokio", - "tower 0.5.2", + "tower 0.5.1", "tracing", "url", "vergen", @@ -4636,7 +4703,7 @@ dependencies = [ [[package]] name = "foundry-common-fmt" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-consensus 0.9.2", "alloy-dyn-abi", @@ -4676,7 +4743,7 @@ dependencies = [ "path-slash", "rand 0.8.5", "rayon", - "semver 1.0.25", + "semver 1.0.23", "serde", "serde_json", "sha2 0.10.8", @@ -4687,7 +4754,7 @@ dependencies = [ "thiserror 2.0.11", "tokio", "tracing", - "winnow 0.6.20", + "winnow 0.6.24", "yansi", ] @@ -4714,7 +4781,7 @@ dependencies = [ "md-5", "path-slash", "rayon", - "semver 1.0.25", + "semver 1.0.23", "serde", "serde_json", "serde_repr", @@ -4736,7 +4803,7 @@ dependencies = [ "foundry-compilers-artifacts-solc", "foundry-compilers-core", "path-slash", - "semver 1.0.25", + "semver 1.0.23", "serde", ] @@ -4752,7 +4819,7 @@ dependencies = [ "fs_extra", "path-slash", "regex", - "semver 1.0.25", + "semver 1.0.23", "serde", "serde_json", "svm-rs", @@ -4764,7 +4831,7 @@ dependencies = [ [[package]] name = "foundry-config" -version = "0.3.1" +version = "0.0.4" dependencies = [ "Inflector", "alloy-chains", @@ -4786,7 +4853,7 @@ dependencies = [ "regex", "reqwest 0.12.9", "revm-primitives", - "semver 1.0.25", + "semver 1.0.23", "serde", "serde_json", "serde_regex", @@ -4803,7 +4870,7 @@ dependencies = [ [[package]] name = "foundry-debugger" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-primitives", "crossterm", @@ -4821,7 +4888,7 @@ dependencies = [ [[package]] name = "foundry-evm" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -4853,7 +4920,7 @@ dependencies = [ [[package]] name = "foundry-evm-abi" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -4866,7 +4933,7 @@ dependencies = [ [[package]] name = "foundry-evm-core" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-consensus 0.9.2", "alloy-dyn-abi", @@ -4887,7 +4954,7 @@ dependencies = [ "foundry-fork-db", "foundry-test-utils", "foundry-zksync-core", - "futures", + "futures 0.3.31", "itertools 0.14.0", "parking_lot", "revm", @@ -4902,7 +4969,7 @@ dependencies = [ [[package]] name = "foundry-evm-coverage" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-primitives", "eyre", @@ -4911,13 +4978,13 @@ dependencies = [ "foundry-evm-core", "rayon", "revm", - "semver 1.0.25", + "semver 1.0.23", "tracing", ] [[package]] name = "foundry-evm-fuzz" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -4942,7 +5009,7 @@ dependencies = [ [[package]] name = "foundry-evm-traces" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -4956,7 +5023,7 @@ dependencies = [ "foundry-config", "foundry-evm-core", "foundry-linking", - "futures", + "futures 0.3.31", "itertools 0.14.0", "rayon", "revm", @@ -4995,19 +5062,20 @@ dependencies = [ [[package]] name = "foundry-linking" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-primitives", + "foundry-compilers", "foundry-zksync-compilers", "foundry-zksync-core", - "foundry-compilers", - "semver 1.0.25", + "semver 1.0.23", "thiserror 2.0.11", + "tracing", ] [[package]] name = "foundry-macros" -version = "0.3.1" +version = "0.0.4" dependencies = [ "proc-macro-error", "proc-macro2", @@ -5034,7 +5102,7 @@ dependencies = [ "foundry-linking", "foundry-zksync-compilers", "foundry-zksync-core", - "itertools 0.13.0", + "itertools 0.14.0", "revm", "semver 1.0.23", "serde", @@ -5046,7 +5114,7 @@ dependencies = [ [[package]] name = "foundry-test-utils" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-primitives", "alloy-provider", @@ -5066,7 +5134,7 @@ dependencies = [ "snapbox", "tempfile", "tokio", - "tower-http 0.6.2", + "tower-http", "tracing", "tracing-subscriber", "zksync_types", @@ -5074,7 +5142,7 @@ dependencies = [ [[package]] name = "foundry-wallets" -version = "0.3.1" +version = "0.0.4" dependencies = [ "alloy-consensus 0.9.2", "alloy-dyn-abi", @@ -5116,7 +5184,7 @@ dependencies = [ "foundry-compilers-artifacts-solc", "foundry-test-utils", "fs4 0.8.4", - "itertools 0.13.0", + "itertools 0.14.0", "path-slash", "reqwest 0.12.9", "semver 1.0.23", @@ -5147,7 +5215,7 @@ dependencies = [ "foundry-cheatcodes-common", "foundry-common", "foundry-evm-abi", - "itertools 0.13.0", + "itertools 0.14.0", "revm", "serde", "tracing", @@ -5188,9 +5256,9 @@ dependencies = [ [[package]] name = "fs4" -version = "0.9.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c6b3bd49c37d2aa3f3f2220233b29a7cd23f79d1fe70e5337d25fb390793de" +checksum = "c29c30684418547d476f0b48e84f4821639119c483b1eccd566c8cd0cd05f521" dependencies = [ "rustix", "windows-sys 0.52.0", @@ -5434,7 +5502,7 @@ dependencies = [ "gix-utils", "itoa", "thiserror 1.0.69", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] @@ -5455,7 +5523,7 @@ dependencies = [ "smallvec", "thiserror 1.0.69", "unicode-bom", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] @@ -5558,7 +5626,7 @@ dependencies = [ "itoa", "smallvec", "thiserror 1.0.69", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] @@ -5592,7 +5660,7 @@ dependencies = [ "gix-validate", "memmap2", "thiserror 1.0.69", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] @@ -5677,7 +5745,7 @@ dependencies = [ "gloo-utils", "http 0.2.12", "js-sys", - "pin-project 1.1.7", + "pin-project 1.1.8", "serde", "serde_json", "thiserror 1.0.69", @@ -6083,6 +6151,7 @@ dependencies = [ "http 1.2.0", "hyper 1.5.1", "hyper-util", + "log", "rustls 0.23.21", "rustls-native-certs 0.8.1", "rustls-pki-types", @@ -6524,7 +6593,6 @@ checksum = "0bf9fed6d91cfb734e7476a06bde8300a1b94e217e1b523b6f0cd1a01998c71d" dependencies = [ "darling 0.20.10", "indoc", - "pretty_assertions", "proc-macro2", "quote", "syn 2.0.96", @@ -6640,6 +6708,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a85348106ab244d90fe2d70faad939b71c5dad1258e5da9116e176064fc6c078" dependencies = [ "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", "windows-sys 0.59.0", ] @@ -6738,8 +6810,8 @@ dependencies = [ "gloo-net", "http 1.2.0", "jsonrpsee-core", - "pin-project 1.1.7", - "rustls 0.23.19", + "pin-project 1.1.8", + "rustls 0.23.21", "rustls-pki-types", "rustls-platform-verifier", "soketto", @@ -6768,7 +6840,7 @@ dependencies = [ "http-body-util", "jsonrpsee-types", "parking_lot", - "pin-project 1.1.7", + "pin-project 1.1.8", "rand 0.8.5", "rustc-hash 1.1.0", "serde", @@ -6794,7 +6866,7 @@ dependencies = [ "hyper-util", "jsonrpsee-core", "jsonrpsee-types", - "rustls 0.23.19", + "rustls 0.23.21", "rustls-platform-verifier", "serde", "serde_json", @@ -6815,7 +6887,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -6833,7 +6905,7 @@ dependencies = [ "hyper-util", "jsonrpsee-core", "jsonrpsee-types", - "pin-project 1.1.7", + "pin-project 1.1.8", "route-recognizer", "serde", "serde_json", @@ -7127,7 +7199,7 @@ dependencies = [ "proc-macro2", "quote", "regex-syntax 0.6.29", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -7167,20 +7239,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" -[[package]] -name = "maili-consensus" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6c278346ab9cfef7688510e28a042d8a23c953380e7361a1286920ccbd0d847" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "serde", -] - [[package]] name = "maplit" version = "1.0.2" @@ -7327,7 +7385,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -7405,12 +7463,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "mirai-annotations" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" - [[package]] name = "mockall" version = "0.13.1" @@ -7740,7 +7792,7 @@ dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -7772,9 +7824,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "nybbles" -version = "0.3.4" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" +checksum = "95f06be0417d97f81fe4e5c86d7d01b392655a9cac9c19a848aa033e18937b23" dependencies = [ "alloy-rlp", "const-hex", @@ -8097,7 +8149,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -8310,7 +8362,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared 0.11.3", - "rand", + "rand 0.8.5", ] [[package]] @@ -8428,6 +8480,15 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -8623,7 +8684,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d35f4dc9988d1326b065b4def5e950c3ed727aa03e3151b86cc9e2aec6b03f54" dependencies = [ - "futures", + "futures 0.3.31", "indexmap 2.7.1", "nix 0.29.0", "tokio", @@ -8668,7 +8729,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -8701,6 +8762,16 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + [[package]] name = "prost" version = "0.13.4" @@ -8728,7 +8799,7 @@ dependencies = [ "prost 0.12.6", "prost-types 0.12.6", "regex", - "syn 2.0.90", + "syn 2.0.96", "tempfile", ] @@ -8742,7 +8813,7 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -8758,6 +8829,31 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "prost-reflect" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "057237efdb71cf4b3f9396302a3d6599a92fa94063ba537b66130980ea9909f3" +dependencies = [ + "base64 0.21.7", + "logos", + "miette 5.10.0", + "once_cell", + "prost 0.12.6", + "prost-types 0.12.6", + "serde", + "serde-value", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + [[package]] name = "prost-types" version = "0.13.4" @@ -8908,7 +9004,7 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash", + "rustc-hash 2.1.0", "rustls 0.23.21", "socket2", "thiserror 2.0.11", @@ -8926,7 +9022,7 @@ dependencies = [ "getrandom", "rand 0.8.5", "ring", - "rustc-hash", + "rustc-hash 2.1.0", "rustls 0.23.21", "rustls-pki-types", "slab", @@ -9356,7 +9452,7 @@ dependencies = [ "alloy-primitives", "auto_impl", "bitflags 2.8.0", - "bitvec", + "bitvec 1.0.1", "c-kzg", "cfg-if", "dyn-clone", @@ -9539,7 +9635,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.25", + "semver 1.0.23", ] [[package]] @@ -9658,7 +9754,7 @@ dependencies = [ "jni", "log", "once_cell", - "rustls 0.23.19", + "rustls 0.23.21", "rustls-native-certs 0.7.3", "rustls-platform-verifier-android", "rustls-webpki 0.102.8", @@ -9998,9 +10094,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.25" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ "serde", ] @@ -10131,7 +10227,7 @@ dependencies = [ "thiserror 1.0.69", "time", "url", - "uuid 1.11.0", + "uuid 1.12.1", ] [[package]] @@ -10186,9 +10282,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.137" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "indexmap 2.7.1", "itoa", @@ -10288,7 +10384,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "itoa", "ryu", "serde", @@ -10320,6 +10416,19 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + [[package]] name = "sha1" version = "0.10.6" @@ -10636,7 +10745,7 @@ dependencies = [ "either", "num-bigint", "num-rational", - "semver 1.0.25", + "semver 1.0.23", "solar-data-structures", "solar-interface", "solar-macros", @@ -10762,13 +10871,13 @@ dependencies = [ "regex", "reqwest 0.12.9", "sanitize-filename", - "semver 1.0.25", + "semver 1.0.23", "serde", "serde_json", - "sha2", + "sha2 0.10.8", "thiserror 2.0.11", "tokio", - "toml_edit", + "toml_edit 0.22.22", "uuid 1.12.1", "zip", "zip-extract", @@ -10927,9 +11036,9 @@ checksum = "2079b44b2dc358e0aa611988e806f92a0d1f174206566de745a4a422a8009c65" dependencies = [ "const-hex", "dirs 5.0.1", - "fs4", - "reqwest", - "semver 1.0.25", + "fs4 0.12.0", + "reqwest 0.12.9", + "semver 1.0.23", "serde", "serde_json", "sha2 0.10.8", @@ -10947,7 +11056,7 @@ checksum = "9379e64a7d61f2a288e97c4b7d80a5cdcc893f24a83b6ec0ec18ffd36d58c6e2" dependencies = [ "build_const", "const-hex", - "semver 1.0.25", + "semver 1.0.23", "serde_json", "svm-rs", ] @@ -11012,6 +11121,48 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.8.0", + "core-foundation 0.9.4", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tap" version = "1.0.1" @@ -11398,7 +11549,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "toml_datetime", "winnow 0.5.40", ] @@ -11413,7 +11564,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] @@ -11436,7 +11587,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project 1.1.8", - "prost", + "prost 0.13.4", "rustls-native-certs 0.8.1", "rustls-pemfile 2.2.0", "socket2", @@ -11516,20 +11667,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tower-http" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" -dependencies = [ - "bitflags 2.6.0", - "bytes", - "http 1.2.0", - "pin-project-lite", - "tower-layer", - "tower-service", -] - [[package]] name = "tower-layer" version = "0.3.3" @@ -11722,7 +11859,7 @@ dependencies = [ "http 1.2.0", "httparse", "log", - "rand", + "rand 0.8.5", "rustls 0.23.21", "rustls-pki-types", "sha1", @@ -12022,7 +12159,7 @@ checksum = "6a511871dc5de990a3b2a0e715facfbc5da848c0c0395597a1415029fb7c250a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -12264,6 +12401,30 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + +[[package]] +name = "which" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" +dependencies = [ + "either", + "home", + "rustix", + "winsafe", +] + [[package]] name = "which" version = "7.0.1" @@ -12674,18 +12835,18 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.6.24" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" dependencies = [ "memchr", ] @@ -13042,7 +13203,7 @@ version = "0.132.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0769f7b27d8fb06e715da3290c575cac5d04d10a557faef180e847afce50ac4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "blake2", "ethereum-types 0.14.1", "k256 0.11.6", @@ -13057,7 +13218,7 @@ version = "0.141.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6be7bd5f0e0b61211f544147289640b4712715589d7f2fe5229d92a7a3ac64c0" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "blake2", "ethereum-types 0.14.1", "k256 0.13.4", @@ -13072,7 +13233,7 @@ version = "0.150.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bad437d4891536fdcc0054a3f04562c408817ff19d83b6c27569217692e6e74" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "blake2", "ethereum-types 0.14.1", "k256 0.13.4", @@ -13136,7 +13297,7 @@ checksum = "e8312ab73d3caa55775bd531795b507fa8f76bd9dabfaeb0954fe43e8fc1323b" dependencies = [ "anyhow", "once_cell", - "pin-project 1.1.7", + "pin-project 1.1.8", "rand 0.8.5", "sha3 0.10.8", "thiserror 1.0.69", @@ -13318,7 +13479,7 @@ dependencies = [ "prost-reflect", "protox", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -13452,7 +13613,7 @@ dependencies = [ "jsonrpsee", "pin-project-lite", "rlp", - "rustls 0.23.19", + "rustls 0.23.21", "serde", "serde_json", "thiserror 1.0.69", diff --git a/Cargo.toml b/Cargo.toml index 89e30bc50..7ae931e15 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -237,7 +237,9 @@ alloy-trie = "0.7.0" ## op-alloy op-alloy-rpc-types = "0.9.0" -maili-consensus = "0.1.6" +## Note(zk): Foundry upstream change to maili-consensus but we need to keep +## it for zksync for now until era-solc updates the pinned version of serde +op-alloy-consensus = "0.9.0" ## cli anstream = "0.6" diff --git a/crates/anvil/Cargo.toml b/crates/anvil/Cargo.toml index f3417af3e..5948d8b83 100644 --- a/crates/anvil/Cargo.toml +++ b/crates/anvil/Cargo.toml @@ -60,7 +60,7 @@ alloy-transport.workspace = true alloy-chains.workspace = true alloy-genesis.workspace = true alloy-trie.workspace = true -maili-consensus = { workspace = true, features = ["serde"] } +op-alloy-consensus = { workspace = true, features = ["serde"] } # axum related axum.workspace = true diff --git a/crates/anvil/core/Cargo.toml b/crates/anvil/core/Cargo.toml index aeb6de3bd..dacc7f20e 100644 --- a/crates/anvil/core/Cargo.toml +++ b/crates/anvil/core/Cargo.toml @@ -30,7 +30,7 @@ alloy-eips.workspace = true alloy-consensus = { workspace = true, features = ["k256", "kzg"] } alloy-dyn-abi = { workspace = true, features = ["std", "eip712"] } alloy-trie.workspace = true -maili-consensus = { workspace = true, features = ["serde"] } +op-alloy-consensus = { workspace = true, features = ["serde"] } alloy-network.workspace = true serde = { workspace = true, optional = true } serde_json.workspace = true diff --git a/crates/anvil/core/src/eth/transaction/mod.rs b/crates/anvil/core/src/eth/transaction/mod.rs index c7126af92..38eda6040 100644 --- a/crates/anvil/core/src/eth/transaction/mod.rs +++ b/crates/anvil/core/src/eth/transaction/mod.rs @@ -22,7 +22,7 @@ use alloy_rpc_types::{ use alloy_serde::{OtherFields, WithOtherFields}; use bytes::BufMut; use foundry_evm::traces::CallTraceNode; -use maili_consensus::{TxDeposit, DEPOSIT_TX_TYPE_ID}; +use op_alloy_consensus::{TxDeposit, DEPOSIT_TX_TYPE_ID}; use revm::{ interpreter::InstructionResult, primitives::{OptimismFields, TxEnv}, diff --git a/crates/anvil/core/src/eth/transaction/optimism.rs b/crates/anvil/core/src/eth/transaction/optimism.rs index 3fa3ad1c4..6bb4b2abb 100644 --- a/crates/anvil/core/src/eth/transaction/optimism.rs +++ b/crates/anvil/core/src/eth/transaction/optimism.rs @@ -1,6 +1,6 @@ use alloy_primitives::{Address, Bytes, TxKind, B256, U256}; use alloy_rlp::{Decodable, Encodable, Error as DecodeError, Header as RlpHeader}; -use maili_consensus::TxDeposit; +use op_alloy_consensus::TxDeposit; use serde::{Deserialize, Serialize}; pub const DEPOSIT_TX_TYPE_ID: u8 = 0x7E; diff --git a/crates/anvil/src/eth/backend/mem/mod.rs b/crates/anvil/src/eth/backend/mem/mod.rs index a0fce66a7..d27d2f1a1 100644 --- a/crates/anvil/src/eth/backend/mem/mod.rs +++ b/crates/anvil/src/eth/backend/mem/mod.rs @@ -93,7 +93,7 @@ use foundry_evm::{ traces::TracingInspectorConfig, }; use futures::channel::mpsc::{unbounded, UnboundedSender}; -use maili_consensus::{TxDeposit, DEPOSIT_TX_TYPE_ID}; +use op_alloy_consensus::{TxDeposit, DEPOSIT_TX_TYPE_ID}; use parking_lot::{Mutex, RwLock}; use revm::{ db::WrapDatabaseRef, diff --git a/crates/anvil/src/eth/sign.rs b/crates/anvil/src/eth/sign.rs index 275ff1069..e2ea036a0 100644 --- a/crates/anvil/src/eth/sign.rs +++ b/crates/anvil/src/eth/sign.rs @@ -8,7 +8,7 @@ use alloy_signer_local::PrivateKeySigner; use anvil_core::eth::transaction::{ optimism::DepositTransaction, TypedTransaction, TypedTransactionRequest, }; -use maili_consensus::TxDeposit; +use op_alloy_consensus::TxDeposit; /// A transaction signer #[async_trait::async_trait] diff --git a/crates/cast/bin/cmd/send.rs b/crates/cast/bin/cmd/send.rs index 995f4c698..b62215079 100644 --- a/crates/cast/bin/cmd/send.rs +++ b/crates/cast/bin/cmd/send.rs @@ -23,7 +23,6 @@ use foundry_cli::{ utils::LoadConfig, }; use foundry_common::ens::NameOrAddress; -use foundry_config::Config; use std::{path::PathBuf, str::FromStr, sync::Arc}; /// ZkSync-specific paymaster parameters for transactions @@ -148,7 +147,7 @@ impl SendTxArgs { let mut config = eth.load_config()?; config.zksync.startup = zksync_params.zksync; config.zksync.compile = zksync_params.zksync; - + let provider = utils::get_provider(&config)?; let zk_provider = utils::get_provider_zksync(&config)?; diff --git a/crates/cheatcodes/src/config.rs b/crates/cheatcodes/src/config.rs index 8b44851b0..1c1d2ef30 100644 --- a/crates/cheatcodes/src/config.rs +++ b/crates/cheatcodes/src/config.rs @@ -106,7 +106,13 @@ impl CheatsConfig { /// Returns a new `CheatsConfig` configured with the given `Config` and `EvmOpts`. pub fn clone_with(&self, config: &Config, evm_opts: EvmOpts) -> Self { - Self::new(config, evm_opts, self.available_artifacts.clone(), self.running_artifact.clone(), self.strategy.clone()) + Self::new( + config, + evm_opts, + self.available_artifacts.clone(), + self.running_artifact.clone(), + self.strategy.clone(), + ) } /// Attempts to canonicalize (see [std::fs::canonicalize]) the path. diff --git a/crates/cheatcodes/src/evm.rs b/crates/cheatcodes/src/evm.rs index df4840190..1822dac9a 100644 --- a/crates/cheatcodes/src/evm.rs +++ b/crates/cheatcodes/src/evm.rs @@ -12,9 +12,8 @@ use alloy_rlp::Decodable; use alloy_sol_types::SolValue; use foundry_common::fs::{read_json_file, write_json_file}; use foundry_evm_core::{ - abi::HARDHAT_CONSOLE_ADDRESS, backend::{DatabaseExt, RevertStateSnapshotAction}, - constants::{CALLER, CHEATCODE_ADDRESS, TEST_CONTRACT_ADDRESS}, + constants::{CALLER, CHEATCODE_ADDRESS, HARDHAT_CONSOLE_ADDRESS, TEST_CONTRACT_ADDRESS}, }; use foundry_evm_traces::StackSnapshotType; use rand::Rng; diff --git a/crates/cheatcodes/src/inspector.rs b/crates/cheatcodes/src/inspector.rs index 107990cb8..3d1ce3e58 100644 --- a/crates/cheatcodes/src/inspector.rs +++ b/crates/cheatcodes/src/inspector.rs @@ -10,10 +10,7 @@ use crate::{ strategy::CheatcodeInspectorStrategy, test::{ assume::AssumeNoRevert, - expect::{ - self, ExpectedCallData, ExpectedCallTracker, ExpectedCallType, ExpectedEmitTracker, - ExpectedRevert, ExpectedRevertKind, - }, + expect::{self, ExpectedEmitTracker, ExpectedRevert, ExpectedRevertKind}, revert_handlers, }, utils::IgnoredTraces, @@ -33,9 +30,9 @@ use foundry_cheatcodes_common::{ }; use foundry_common::{evm::Breakpoints, TransactionMaybeSigned, SELECTOR_LEN}; use foundry_evm_core::{ - abi::{Vm::stopExpectSafeMemoryCall, HARDHAT_CONSOLE_ADDRESS}, + abi::Vm::stopExpectSafeMemoryCall, backend::{DatabaseError, DatabaseExt, RevertDiagnostic}, - constants::{CHEATCODE_ADDRESS, MAGIC_ASSUME}, + constants::{CHEATCODE_ADDRESS, HARDHAT_CONSOLE_ADDRESS, MAGIC_ASSUME}, utils::new_evm_with_existing_context, InspectorExt, }; diff --git a/crates/cheatcodes/src/lib.rs b/crates/cheatcodes/src/lib.rs index 3375ff057..ffd67e1e5 100644 --- a/crates/cheatcodes/src/lib.rs +++ b/crates/cheatcodes/src/lib.rs @@ -60,7 +60,7 @@ pub use script::{Broadcast, Wallets, WalletsInner}; mod string; mod test; -pub use test::expect::{handle_expect_emit, handle_expect_revert}; +pub use test::expect::handle_expect_emit; mod toml; diff --git a/crates/cheatcodes/src/test/expect.rs b/crates/cheatcodes/src/test/expect.rs index fd6fb0aca..0027d5dd6 100644 --- a/crates/cheatcodes/src/test/expect.rs +++ b/crates/cheatcodes/src/test/expect.rs @@ -8,42 +8,7 @@ use alloy_primitives::{ use revm::interpreter::{InstructionResult, Interpreter, InterpreterAction, InterpreterResult}; use super::revert_handlers::RevertParameters; -/// Tracks the expected calls per address. -/// -/// For each address, we track the expected calls per call data. We track it in such manner -/// so that we don't mix together calldatas that only contain selectors and calldatas that contain -/// selector and arguments (partial and full matches). -/// -/// This then allows us to customize the matching behavior for each call data on the -/// `ExpectedCallData` struct and track how many times we've actually seen the call on the second -/// element of the tuple. -pub type ExpectedCallTracker = HashMap>; - -#[derive(Clone, Debug)] -pub struct ExpectedCallData { - /// The expected value sent in the call - pub value: Option, - /// The expected gas supplied to the call - pub gas: Option, - /// The expected *minimum* gas supplied to the call - pub min_gas: Option, - /// The number of times the call is expected to be made. - /// If the type of call is `NonCount`, this is the lower bound for the number of calls - /// that must be seen. - /// If the type of call is `Count`, this is the exact number of calls that must be seen. - pub count: u64, - /// The type of expected call. - pub call_type: ExpectedCallType, -} - -/// The type of expected call. -#[derive(Clone, Debug, PartialEq, Eq)] -pub enum ExpectedCallType { - /// The call is expected to be made at least once. - NonCount, - /// The exact number of calls expected. - Count, -} +use foundry_cheatcodes_common::expect::{ExpectedCallData, ExpectedCallType}; /// The type of expected revert. #[derive(Clone, Debug)] diff --git a/crates/cli/src/handler.rs b/crates/cli/src/handler.rs index 0170bbb50..d5d2037aa 100644 --- a/crates/cli/src/handler.rs +++ b/crates/cli/src/handler.rs @@ -85,7 +85,7 @@ pub fn install() { let panic_section = "This is a bug. Consider reporting it at https://github.com/matter-labs/foundry-zksync"; - let (panic_hook, debug_eyre_hook) = + let (panic_hook, debug_hook) = color_eyre::config::HookBuilder::default().panic_section(panic_section).into_hooks(); panic_hook.install(); let debug_hook = debug_hook.into_eyre_hook(); diff --git a/crates/evm/core/src/constants.rs b/crates/evm/core/src/constants.rs index c4555ae86..88e5eaa88 100644 --- a/crates/evm/core/src/constants.rs +++ b/crates/evm/core/src/constants.rs @@ -15,6 +15,11 @@ pub const CHEATCODE_ADDRESS: Address = address!("7109709ECfa91a80626fF3989D68f67 pub const CHEATCODE_CONTRACT_HASH: B256 = b256!("b0450508e5a2349057c3b4c9c84524d62be4bb17e565dbe2df34725a26872291"); +/// The Hardhat console address. +/// +/// See: +pub const HARDHAT_CONSOLE_ADDRESS: Address = address!("000000000000000000636F6e736F6c652e6c6f67"); + /// Stores the caller address to be used as *sender* account for: /// - deploying Test contracts /// - deploying Script contracts diff --git a/crates/evm/core/src/decode.rs b/crates/evm/core/src/decode.rs index 6dfc4fe4d..ef1e54dab 100644 --- a/crates/evm/core/src/decode.rs +++ b/crates/evm/core/src/decode.rs @@ -5,9 +5,7 @@ use alloy_dyn_abi::JsonAbiExt; use alloy_json_abi::{Error, JsonAbi}; use alloy_primitives::{hex, map::HashMap, Log, Selector}; use alloy_sol_types::{SolEventInterface, SolInterface, SolValue}; -use foundry_cheatcodes_spec::Vm; use foundry_common::SELECTOR_LEN; -use foundry_evm_abi::Console; use itertools::Itertools; use revm::interpreter::InstructionResult; use std::{fmt, sync::OnceLock}; diff --git a/crates/evm/evm/src/executors/invariant/mod.rs b/crates/evm/evm/src/executors/invariant/mod.rs index 2ccea08e1..b3b2d10d2 100644 --- a/crates/evm/evm/src/executors/invariant/mod.rs +++ b/crates/evm/evm/src/executors/invariant/mod.rs @@ -8,8 +8,10 @@ use eyre::{eyre, ContextCompat, Result}; use foundry_common::contracts::{ContractsByAddress, ContractsByArtifact}; use foundry_config::InvariantConfig; use foundry_evm_core::{ - abi::HARDHAT_CONSOLE_ADDRESS, - constants::{CALLER, CHEATCODE_ADDRESS, DEFAULT_CREATE2_DEPLOYER, MAGIC_ASSUME, TEST_TIMEOUT}, + constants::{ + CALLER, CHEATCODE_ADDRESS, DEFAULT_CREATE2_DEPLOYER, HARDHAT_CONSOLE_ADDRESS, MAGIC_ASSUME, + TEST_TIMEOUT, + }, precompiles::PRECOMPILES, }; use foundry_evm_fuzz::{ diff --git a/crates/evm/fuzz/src/strategies/param.rs b/crates/evm/fuzz/src/strategies/param.rs index 0cf7a0416..67f0144af 100644 --- a/crates/evm/fuzz/src/strategies/param.rs +++ b/crates/evm/fuzz/src/strategies/param.rs @@ -157,11 +157,9 @@ pub fn fuzz_param_from_state( let mut fuzzed_addr = Address::from_word(value); if !deployed_libs.contains(&fuzzed_addr) { if no_zksync_reserved_addresses { - Some(DynSolValue::Address(foundry_zksync_core::to_safe_address( - fuzzed_addr, - ))) + DynSolValue::Address(foundry_zksync_core::to_safe_address(fuzzed_addr)) } else { - Some(DynSolValue::Address(fuzzed_addr)) + DynSolValue::Address(fuzzed_addr) } } else { let mut rng = StdRng::seed_from_u64(0x1337); // use deterministic rng diff --git a/crates/evm/traces/src/decoder/mod.rs b/crates/evm/traces/src/decoder/mod.rs index 66851fa14..9e7bcf282 100644 --- a/crates/evm/traces/src/decoder/mod.rs +++ b/crates/evm/traces/src/decoder/mod.rs @@ -17,7 +17,7 @@ use foundry_common::{ }; use foundry_config::zksync::ZKSYNC_ARTIFACTS_DIR; use foundry_evm_core::{ - abi::{console, Vm}, + abi::console, constants::{ CALLER, CHEATCODE_ADDRESS, DEFAULT_CREATE2_DEPLOYER, HARDHAT_CONSOLE_ADDRESS, TEST_CONTRACT_ADDRESS, diff --git a/crates/forge/bin/cmd/build.rs b/crates/forge/bin/cmd/build.rs index f93d82d75..61e8686b3 100644 --- a/crates/forge/bin/cmd/build.rs +++ b/crates/forge/bin/cmd/build.rs @@ -69,7 +69,7 @@ impl BuildArgs { // TODO(zk): We cannot return `ProjectCompileOutput` as there's currently no way to return // a common type from solc and zksolc branches. pub fn run(self) -> Result<()> { - let mut config = self.try_load_config_emit_warnings()?; + let mut config = self.load_config()?; if install::install_missing_dependencies(&mut config) && config.auto_detect_remappings { // need to re-configure here to also catch additional remappings diff --git a/crates/forge/bin/cmd/coverage.rs b/crates/forge/bin/cmd/coverage.rs index 4753a8c1b..fdd01fe35 100644 --- a/crates/forge/bin/cmd/coverage.rs +++ b/crates/forge/bin/cmd/coverage.rs @@ -13,7 +13,7 @@ use forge::{ utils::IcPcMap, MultiContractRunnerBuilder, }; -use foundry_cli::utils::{LoadConfig, STATIC_FUZZ_SEED}; +use foundry_cli::utils::{self, LoadConfig, STATIC_FUZZ_SEED}; use foundry_common::compile::ProjectCompiler; use foundry_compilers::{ artifacts::{ @@ -273,7 +273,7 @@ impl CoverageArgs { .sender(evm_opts.sender) .with_fork(evm_opts.get_fork(&config, env.clone())) .set_coverage(true) - .build::(&root, output, None, env, evm_opts, strategy)?; + .build::(root, output, None, env, evm_opts, strategy)?; let known_contracts = runner.known_contracts.clone(); diff --git a/crates/forge/bin/cmd/create.rs b/crates/forge/bin/cmd/create.rs index 6dba6a97e..34713bc77 100644 --- a/crates/forge/bin/cmd/create.rs +++ b/crates/forge/bin/cmd/create.rs @@ -131,7 +131,7 @@ pub struct ZkSyncData { impl CreateArgs { /// Executes the command to create a contract pub async fn run(mut self) -> Result<()> { - let mut config = self.try_load_config_emit_warnings()?; + let mut config = self.load_config()?; let timeout = config.transaction_timeout; // Install missing dependencies. if install::install_missing_dependencies(&mut config) && config.auto_detect_remappings { @@ -165,7 +165,7 @@ impl CreateArgs { project.find_contract_path(&self.contract.name)? }; - let config = self.build.try_load_config_emit_warnings()?; + let config = self.load_config()?; let zk_project = foundry_config::zksync::config_create_project(&config, config.cache, false)?; let zk_compiler = ProjectCompiler::new().files([target_path.clone()]); @@ -200,7 +200,7 @@ impl CreateArgs { }; // Add arguments to constructor - let config = self.eth.try_load_config_emit_warnings()?; + let config = self.eth.load_config()?; let provider = utils::get_provider_zksync(&config)?; let params = match abi.constructor { Some(ref v) => { diff --git a/crates/forge/bin/cmd/test/mod.rs b/crates/forge/bin/cmd/test/mod.rs index 2dc100c88..938df325c 100644 --- a/crates/forge/bin/cmd/test/mod.rs +++ b/crates/forge/bin/cmd/test/mod.rs @@ -269,7 +269,7 @@ impl TestArgs { /// Returns the test results for all matching tests. pub async fn execute_tests(mut self) -> Result { // Merge all configs. - let (mut config, mut evm_opts) = self.load_config_and_evm_opts_emit_warnings()?; + let (mut config, mut evm_opts) = self.load_config_and_evm_opts()?; let mut strategy = utils::get_executor_strategy(&config); // Explicitly enable isolation for gas reports for more correct gas accounting. diff --git a/crates/forge/src/gas_report.rs b/crates/forge/src/gas_report.rs index 044b28757..330465217 100644 --- a/crates/forge/src/gas_report.rs +++ b/crates/forge/src/gas_report.rs @@ -11,8 +11,7 @@ use foundry_common::{ reports::{report_kind, ReportKind}, TestFunctionExt, }; -use foundry_evm::traces::CallKind; -use foundry_evm_abi::HARDHAT_CONSOLE_ADDRESS; +use foundry_evm::{constants::HARDHAT_CONSOLE_ADDRESS, traces::CallKind}; use serde::{Deserialize, Serialize}; use serde_json::json; use std::{collections::BTreeMap, fmt::Display}; diff --git a/crates/forge/tests/it/repros.rs b/crates/forge/tests/it/repros.rs index 10290dfaf..7fc5bf627 100644 --- a/crates/forge/tests/it/repros.rs +++ b/crates/forge/tests/it/repros.rs @@ -5,12 +5,12 @@ use alloy_dyn_abi::{DecodedEvent, DynSolValue, EventExt}; use alloy_json_abi::Event; use alloy_primitives::{address, b256, Address, U256}; use forge::{ + constants::HARDHAT_CONSOLE_ADDRESS, decode::decode_console_logs, result::{TestKind, TestStatus}, }; use foundry_config::{fs_permissions::PathPermission, Config, FsPermissions}; use foundry_evm::traces::{CallKind, CallTraceDecoder, DecodedCallData, TraceKind}; -use foundry_evm_abi::HARDHAT_CONSOLE_ADDRESS; use foundry_test_utils::Filter; use std::sync::Arc; diff --git a/crates/strategy/zksync/src/cheatcode/runner/mod.rs b/crates/strategy/zksync/src/cheatcode/runner/mod.rs index 2ae0e7a36..215d8d2e9 100644 --- a/crates/strategy/zksync/src/cheatcode/runner/mod.rs +++ b/crates/strategy/zksync/src/cheatcode/runner/mod.rs @@ -563,7 +563,7 @@ impl CheatcodeInspectorStrategyExt for ZksyncCheatcodeInspectorStrategyRunner { gas_limit: input.gas_limit(), caller: input.caller(), }, - decoded_log, + &decoded_log, ); }, ); @@ -730,7 +730,7 @@ impl CheatcodeInspectorStrategyExt for ZksyncCheatcodeInspectorStrategyRunner { gas_limit: call.gas_limit, caller: call.caller, }, - decoded_log, + &decoded_log, ); }, ); diff --git a/crates/strategy/zksync/src/cheatcode/runner/utils.rs b/crates/strategy/zksync/src/cheatcode/runner/utils.rs index c4899e393..c105995db 100644 --- a/crates/strategy/zksync/src/cheatcode/runner/utils.rs +++ b/crates/strategy/zksync/src/cheatcode/runner/utils.rs @@ -98,8 +98,8 @@ pub(super) fn get_artifact_code( .or_else(|| { // If we know the current script/test contract solc version, try to // filter by it - config.running_version.as_ref().and_then(|version| { - filtered.iter().find(|(id, _)| id.version == *version) + config.running_artifact.as_ref().and_then(|artifact| { + filtered.iter().find(|(id, _)| id.version == artifact.version) }) }) .ok_or_else(|| Error::display("multiple matching artifacts found")) diff --git a/crates/test-utils/Cargo.toml b/crates/test-utils/Cargo.toml index 2e8cdda8e..9090c7a37 100644 --- a/crates/test-utils/Cargo.toml +++ b/crates/test-utils/Cargo.toml @@ -31,6 +31,7 @@ tracing.workspace = true tracing-subscriber = { workspace = true, features = ["env-filter"] } rand.workspace = true snapbox = { version = "0.6", features = ["json", "regex", "term-svg"] } +tokio.workspace = true tempfile.workspace = true tower-http = { version = "0.6.2", features = ["cors"] } diff --git a/crates/verify/src/etherscan/mod.rs b/crates/verify/src/etherscan/mod.rs index 0baab3b7d..34391e2ae 100644 --- a/crates/verify/src/etherscan/mod.rs +++ b/crates/verify/src/etherscan/mod.rs @@ -359,10 +359,10 @@ impl EtherscanVerificationProvider { if code_format == CodeFormat::SingleFile { verify_args = if let Some(optimizations) = args.num_of_optimizations { verify_args.optimized().runs(optimizations as u32) - } else if context.config.optimizer == Some(true) { + } else if context.config().optimizer == Some(true) { verify_args .optimized() - .runs(context.config.optimizer_runs.unwrap_or(200).try_into()?) + .runs(context.config().optimizer_runs.unwrap_or(200).try_into()?) } else { verify_args.not_optimized() }; diff --git a/crates/verify/src/verify.rs b/crates/verify/src/verify.rs index 1a47b0d41..4850ba9ab 100644 --- a/crates/verify/src/verify.rs +++ b/crates/verify/src/verify.rs @@ -405,7 +405,7 @@ impl VerifyArgs { } pub async fn zk_resolve_context(&self) -> Result { - let mut config = self.load_config_emit_warnings(); + let mut config = self.load_config()?; config.libraries.extend(self.libraries.clone()); let project = foundry_config::zksync::config_create_project(&config, config.cache, false)?; diff --git a/crates/zksync/compilers/Cargo.toml b/crates/zksync/compilers/Cargo.toml index 0cc213ec5..a4a7643ab 100644 --- a/crates/zksync/compilers/Cargo.toml +++ b/crates/zksync/compilers/Cargo.toml @@ -13,7 +13,7 @@ exclude.workspace = true [dependencies] foundry-compilers = { workspace = true, features = ["svm-solc"] } -foundry-compilers-artifacts-solc = "0.12.7" +foundry-compilers-artifacts-solc = "0.13.0" alloy-primitives.workspace = true alloy-json-abi.workspace = true tracing.workspace = true diff --git a/crates/zksync/compilers/src/artifacts/mod.rs b/crates/zksync/compilers/src/artifacts/mod.rs index 104a70c5c..1303c0506 100644 --- a/crates/zksync/compilers/src/artifacts/mod.rs +++ b/crates/zksync/compilers/src/artifacts/mod.rs @@ -1,8 +1,8 @@ //! zksolc artifacts to be used in `foundry-compilers` -use foundry_compilers_artifacts_solc::{ + +use foundry_compilers::artifacts::{ Bytecode, BytecodeObject, CompactContractRef, FileToContractsMap, SourceFile, SourceFiles, }; - use semver::Version; use serde::{Deserialize, Serialize}; use std::{collections::BTreeMap, path::PathBuf}; diff --git a/crates/zksync/compilers/src/compilers/zksolc/input.rs b/crates/zksync/compilers/src/compilers/zksolc/input.rs index ffa4cbdc7..a8e21cd3c 100644 --- a/crates/zksync/compilers/src/compilers/zksolc/input.rs +++ b/crates/zksync/compilers/src/compilers/zksolc/input.rs @@ -2,10 +2,11 @@ use super::{settings::ZkSolcSettings, ZkSettings}; use era_solc::standard_json::input::settings::{error_type::ErrorType, warning_type::WarningType}; use foundry_compilers::{ + artifacts::{Remapping, Source, Sources}, compilers::{solc::SolcLanguage, CompilerInput}, solc, }; -use foundry_compilers_artifacts_solc::{remappings::Remapping, serde_helpers, Source, Sources}; +use foundry_compilers_artifacts_solc::serde_helpers::tuple_vec_map; use semver::Version; use serde::{Deserialize, Serialize}; use std::{ @@ -158,7 +159,7 @@ pub struct StandardJsonCompilerInput { /// compiler language pub language: SolcLanguage, /// sources to compile - #[serde(with = "serde_helpers::tuple_vec_map")] + #[serde(with = "tuple_vec_map")] pub sources: Vec<(PathBuf, Source)>, /// compiler settings pub settings: ZkSettings, diff --git a/crates/zksync/compilers/src/compilers/zksolc/settings.rs b/crates/zksync/compilers/src/compilers/zksolc/settings.rs index 904175666..5928dedd2 100644 --- a/crates/zksync/compilers/src/compilers/zksolc/settings.rs +++ b/crates/zksync/compilers/src/compilers/zksolc/settings.rs @@ -2,11 +2,12 @@ use crate::artifacts::output_selection::OutputSelection as ZkOutputSelection; use era_solc::standard_json::input::settings::{error_type::ErrorType, warning_type::WarningType}; use foundry_compilers::{ - artifacts::{serde_helpers, EvmVersion, Libraries}, + artifacts::{ + output_selection::OutputSelection, serde_helpers, EvmVersion, Libraries, Remapping, + }, compilers::CompilerSettings, solc, CompilerSettingsRestrictions, }; -use foundry_compilers_artifacts_solc::{output_selection::OutputSelection, remappings::Remapping}; use semver::Version; use serde::{Deserialize, Serialize}; use std::{ diff --git a/crates/zksync/core/src/vm/inspect.rs b/crates/zksync/core/src/vm/inspect.rs index aee397ee0..1d78dbd5a 100644 --- a/crates/zksync/core/src/vm/inspect.rs +++ b/crates/zksync/core/src/vm/inspect.rs @@ -54,9 +54,10 @@ use crate::{ }, }, }; -use foundry_evm_abi::{ - patch_hh_console_selector, Console, HardhatConsole, HARDHAT_CONSOLE_ADDRESS, -}; + +use foundry_evm_abi::console::{self, ds::Console}; + +use super::HARDHAT_CONSOLE_ADDRESS; /// Represents the result of execution a [`L2Tx`] on EraVM #[derive(Debug)] @@ -742,13 +743,9 @@ impl ConsoleLogParser { return; } - let mut input = current_call.input.clone(); - - // Patch the Hardhat-style selector (`uint` instead of `uint256`) - patch_hh_console_selector(&mut input); + let input = current_call.input.clone(); - // Decode the call - let Ok(call) = HardhatConsole::HardhatConsoleCalls::abi_decode(&input, false) else { + let Ok(call) = console::hh::ConsoleCalls::abi_decode(&input, false) else { return; }; diff --git a/crates/zksync/core/src/vm/mod.rs b/crates/zksync/core/src/vm/mod.rs index 16b1f07a8..a7593ff2f 100644 --- a/crates/zksync/core/src/vm/mod.rs +++ b/crates/zksync/core/src/vm/mod.rs @@ -6,6 +6,7 @@ mod runner; mod storage_view; mod tracers; +use alloy_primitives::{address, Address}; pub use env::ZkEnv; pub use farcall::{SELECTOR_CONTRACT_DEPLOYER_CREATE, SELECTOR_CONTRACT_DEPLOYER_CREATE2}; pub use inspect::{ @@ -16,3 +17,8 @@ pub use runner::{ ZkCreateInputs, }; pub use tracers::cheatcode::CheatcodeTracerContext; + +/// The Hardhat console address. +/// +/// See: +pub const HARDHAT_CONSOLE_ADDRESS: Address = address!("000000000000000000636F6e736F6c652e6c6f67"); diff --git a/crates/zksync/core/src/vm/tracers/cheatcode.rs b/crates/zksync/core/src/vm/tracers/cheatcode.rs index 1a4583601..06bac8208 100644 --- a/crates/zksync/core/src/vm/tracers/cheatcode.rs +++ b/crates/zksync/core/src/vm/tracers/cheatcode.rs @@ -31,7 +31,7 @@ use crate::{ hash_bytecode, vm::{ farcall::{CallAction, CallDepth, FarCallHandler}, - ZkEnv, + ZkEnv, HARDHAT_CONSOLE_ADDRESS, }, ZkPaymasterData, EMPTY_CODE, }; @@ -173,11 +173,8 @@ impl CheatcodeTracer { value: rU256, ) -> bool { // The following addresses are expected to have empty bytecode - let ignored_known_addresses = [ - foundry_evm_abi::HARDHAT_CONSOLE_ADDRESS, - self.call_context.tx_caller, - self.call_context.msg_sender, - ]; + let ignored_known_addresses = + [HARDHAT_CONSOLE_ADDRESS, self.call_context.tx_caller, self.call_context.msg_sender]; // Skip empty code check for empty calldata with non-zero value (Transfers) if calldata.is_empty() && !value.is_zero() {