github foundry-rs/foundry v1.8.3

5 hours ago

Foundry v1.8.3 builds on v1.8.1 with expanded Glamsterdam support and fixes across fork execution, scripting, cheatcodes, formatting, linting, and Chisel sessions. It also adds Safe and token commands to Cast, expands invariant fuzzing and symbolic follow-up, updates Tempo support through T13, and enables PGO for x86_64 GNU/Linux release binaries.

Note: v1.8.2 was left unpublished after RUSTSEC-2026-0285 flagged its rustls dependency. The patched binaries ship as v1.8.3.


Forge and configuration

  • Fixed nested broadcast nonce tracking under isolation so sender nonces advance when a nested broadcast call is not executed as a separate isolated transaction (#16853) by @mablr.
  • Fixed dynamic test linking generating malformed Solidity for parenthesized constructor expressions, including (new Target){value: 1 ether}() and calls without options (#16854) by @mablr.
  • Added forge reinit to force-restore Git submodules to their recorded revisions, discarding local submodule changes, and fixed missing-dependency installation and remapped test dependency handling (#16508, #16722, #16686) by @figtracer, @decofe, @mablr.
  • Added resolved compiler settings to forge build -vv and a runtime --hardfork override for Forge and Chisel (#16337, #16406) by @figtracer, @stevencartavia.
  • Fixed custom-layout contract linking, typed enum bindings, compiler restrictions in filtered builds, and Solc executable lookup through PATH (#16488, #16379, #16530, #16494) by @stevencartavia, @figtracer, @decofe.
  • Fixed script RPC configuration handling, broadcast transaction-hash indexing, and panics when broadcast files and their sensitive caches disagree (#16589, #16715, #16580) by @mablr, @gomesalexandre.
  • Fixed constructor-argument verification for dynamic types and made verify-bytecode reject provided constructor arguments that do not match the deployment (#16569, #16056) by @gomesalexandre, @mattsse.

Glamsterdam

  • Added EIP-8037 state-gas reporting through Vm.Gas.gasStateUsed and documented regular gas, state gas, reservoir spillover, refunds, and isolation semantics (#16387, #16772) by @figtracer, @mattsse.
  • Preserved gas snapshot measurements when separating state gas and post-refund last-frame snapshots for isolated calls, and preserved Amsterdam's state-gas reservoir across isolated execution with transaction gas limits enabled (#16442, #16490, #16604) by @figtracer.
  • Added vm.getSlotNumber() and vm.rollSlot(uint64) for Amsterdam's EIP-7843 block slot number (#16784) by @mattsse.
  • Included the computed EIP-7928 block access list hash in Amsterdam eth_simulateV1 block headers (#16673) by @mattsse.

Testing, fuzzing, and cheatcodes

Gas snapshot compatibility: Whole-test forge snapshot totals for isolated tests involving refunds can change due to updated execution gas accounting. Review these differences before regenerating affected baselines.


Formatting and linting


Networks, Anvil, and forking


Cast and wallets

  • Added Safe account deployment, delegate management, transaction proposals, simulation, signing, and execution commands (#16377) by @decofe.
  • Added ERC-4626 vault commands and inspection, plus an ERC-2612 permit helper (#16601, #16605, #16672) by @mattsse.
  • Added event decoding with local artifacts, cast call --delegate, and chain-provided RPC endpoint selection (#16408, #16422, #16536) by @stevencartavia, @miquelcabot.
  • Fixed mined-transaction replay and HyperEVM system-transaction handling, and aligned transaction network selection with configuration and RPC discovery (#16457, #16451, #16790) by @mattsse, @mablr.
  • Preserved explicit transaction types when sending through browser wallets and added support for piped keystore input and named accounts in the default keystore (#16827, #16528, #16219) by @figtracer, @mablr, @riba2534.
  • Fixed multi-recipient session-scope parsing, gaps in vaddr watch transfer detection, and negative-number formatting in from-wei and format-units (#16688, #16716, #16646) by @gomesalexandre.

Chisel


Distribution

  • Enabled profile-guided optimization for all x86_64 GNU/Linux release binaries (#16501) by @figtracer.
  • Updated rustls to 0.23.45 to address RUSTSEC-2026-0285 (#16856) by @mablr.

Full changelog

v1.8.1...v1.8.3

Contributors (82)

Full Changelog:

v1.8.1...v1.8.3

Don't miss a new foundry release

NewReleases is sending notifications on new releases.