github foundry-rs/foundry v1.7.1

3 hours ago

Foundry v1.7.1

A patch release on top of v1.7.0 with cherry-picked correctness fixes for cheatcodes, EVM forking, CLI, forge, and cast, plus further release-pipeline hardening (updated release version string construction, signed archives & SBOMs).


Cheatcodes

Reverter-address enforcement for CREATE frames, value transfers for payable mock calls, preserved reverts under expectEmit, and a fix for the spurious solc 0.8.35 error keyword warning.

Cheatcode fixes (4 PRs)
  • fix(cheatcodes): fix solc 0.8.35 error keyword warning (#14509) by @figtracer
  • fix(cheatcodes): transfer value for payable mock calls (#14547) by @srdtrk
  • fix(cheatcodes): enforce expectRevert reverter address for CREATE frames (#14615) by @mablr
  • fix(cheatcodes): preserve reverts with expectEmit (#14619) by @srdtrk

EVM

Correctness fixes for fork state-snapshot lookups and CREATE address preservation in isolation mode.

EVM fixes (2 PRs)
  • fix(evm): query state_snapshot.storage in ForkDbStateSnapshot::storage_ref (#14007) by @gutonosa
  • fix(evm): preserve CREATE address on revert in isolation mode (#14637) by @mablr

Forge

Tempo's forge init template now uses network = "tempo" with populated default rpc_endpoints, forge test ignores ETH_RPC_URL for forking, --fuzz-seed is finally honored by forge coverage, and Tempo creates are encoded as AA calls.

Forge changes (4 PRs)
  • feat(forge): use network = "tempo" and add rpc_endpoints in tempo template (#14528) by @zerosnacks
  • fix(forge): ignore ETH_RPC_URL for test forking (#14555) by @figtracer
  • fix(forge): encode Tempo creates as AA calls (#14585) by @figtracer
  • fix(forge): --fuzz-seed parameter is not effective in forge coverage (#14610) by @wtdcode

Cast

Consistent --json output shapes for the keychain subcommands.

Cast fixes (1 PR)
  • fix(cast): consistent --json output for keychain subcommands (#14590) by @mablr

Config

The network = "tempo" key no longer triggers the unknown-key warning, and serialization of NetworkConfigs is canonicalized so forge config always emits the resolved network.

Config fixes (1 PR)
  • fix(config): suppress spurious unknown-key warning for network (#14534) by @zerosnacks

CLI

Fixes the jsonwebtoken CryptoProvider startup panic by selecting aws_lc_rs at compile time, and corrects release version metadata for immutable tags. Also bumps the version to 1.7.1 and tightens vm.getFoundryVersion() / foundryVersionCmp / foundryVersionAtLeast to tolerate the new SemVer build-metadata format.

CLI fixes (2 PRs)
  • fix(cli): fix jsonwebtoken panic (#14562) by @pepyakin
  • fix(cli): fix release version strings for immutable tags, bump to 1.7.1 (#14496) by @decofe

CI / Release pipeline

Release archives and Docker images are now signed with cosign, per-archive SHA256 + SPDX SBOMs (Syft) are emitted, and Sigstore-signed SLSA provenance attestations are published. The Tempo CI workflow on release-1.7.1 was realigned with master.

CI changes (3 PRs)
  • ci: sign release archives, docker images, and publish SBOMs (#14563) by @grandizzy
  • fix(ci): increase permissions for the enhanced attestation writing (#14584) by @zerosnacks
  • fix(ci): use PATH_USD fallback fee token in Mail templates (#14546) by @mablr

Tests & Tooling

Compiler bumped to 0.8.35 for tests, forge-std test fixtures bumped to a newer rev, and clippy lints fixed under newer toolchains so CI is green on this branch.

Tests & tooling changes (3 PRs)

Notes on the cherry-pick

  • #14590 was cherry-picked partially: the { "remaining": ... } JSON output object change is included; the new crates/cast/tests/cli/keychain.rs test file is not, because the keychain_rl_json_is_object test depends on Tempo deps newer than this branch.
  • The Tempo CI workflow alignment is a backport of #14501, #14537, and #14556 from master. The Check Tempo fork schedule compatibility step is intentionally omitted — the underlying tempo::tests::test_fork_schedule_parses_configured_rpcs test was added in #14485 (Tempo deps bump) which is not part of v1.7.1.

Full Changelog

v1.7.0...v1.7.1

Don't miss a new foundry release

NewReleases is sending notifications on new releases.