Skip to content

v0.3.0

Compare
Choose a tag to compare
@github-actions github-actions released this 19 Dec 17:29
· 50 commits to master since this release
5a8bd89

0.3.0 release announcement

foundryup now defaults to updating to the latest stable release instead of latest nightly build.
In order to make sure you are able to receive the latest updates and switch between versions you are required to upgrade your foundryup installation by running:

curl -L https://foundry.paradigm.xyz | bash

You are still able to receive the latest nightly builds by running foundryup --install nightly but please be aware that significant breaking changes are expected on nightly builds.

The foundry-toolchain GitHub Action will use the latest stable release unless you specify the version to be different.

What's Next

The Foundry 0.3 release marks an exciting new chapter for Foundry. By moving to stable releases, we aim to provide a reliable development environment for the EVM ecosystem. Our next priority is the 1.0 release in early 2025, polishing Foundry for the long term.

Big shoutout to the Foundry community - your bug reports, feature requests and contributions have shaped what Foundry is today.

0.3.0 release notes

Anvil Features

Anvil Fixes

  • fix: dont set state root (#9134) by @mattsse
  • fix(anvil): use header.number not best_number (#9151) by @yash-atreya
  • fix(anvil): arb fork mining (#9153) by @yash-atreya
  • fix(anvil): Apply state overrides in debug_traceCall (#9172) by @iliastsa
  • fix: add back silent option in Anvil's NodeConfig (#9181) by @zerosnacks
  • fix(anvil): tag newly created legacy transactions on shadow fork as Some(0) (0x0) rather than None (#9195) by @zerosnacks
  • fix(anvil): correctly set hardfork-specific block fields (#9202) by @klkvr
  • fix: include withdrawals root in response (#9208) by @mattsse
  • fix(anvil): set storage.best_number correctly (#9215) by @yash-atreya
  • fix(anvil): on anvil_mine jump to next timestamp before mine new block (#9241) by @grandizzy
  • anvil: Correctly set HF fields for Genesis block (#9248) by @ngotchac
  • fix(anvil): set auto-unlock an alias of auto-impersonate (#9256) by @jsvisa
  • fix(anvil): impl maybe_as_full_db for ForkedDatabase (#9465) by @yash-atreya
  • fix(anvil): set best_number to state.block.number if greater (#9543) by @yash-atreya

Cast Features

  • feat(cast): add avalanche and fuji genesis hashes (#210) by @joshieDo
  • feat(cast): add json flag in cast wallet new-mnemonic (#9139) by @leovct
  • feat(cast): add flag equivalents of parseUnits, formatUnits (#9165) by @kien6034
  • feat(cast): add --rpc-timeout option (#9044) by @PanGan21
  • feat(cast): add --int flag to from-rlp (#9210) by @TropicalDog17
  • feat(cast) add creation-code method [#8973] (#9029) by @pawurb
  • feat(cast): add string-decode to decode string (#9237) by @jsvisa
  • feat(cast run): add --etherscan-api-key to resolve contract names (#9295) by @grandizzy
  • feat(cast): add artifact method (#9249) by @pawurb
  • feat(forge, cast): add cast --with_local_artifacts/forge selectors cache to trace with local artifacts (#7359) by @byteshijinn
  • feat(cast): add decode-event sig data (#9413) by @grandizzy
  • feat(cast): decode external lib sigs from cached selectors (#9399) by @grandizzy
  • feat(cast): decode-error with sig, local cache and openchain api (#9428) by @grandizzy
  • feat(cast): decode-event with local and openchain API (#9431) by @grandizzy
  • feat: rpc_headers in cast and config (#9429) by @yash-atreya
  • feat(cast): allow some more stdin inputs (#9442) by @DaniPopes
  • feat(cast): add support for beacon proxies in cast impl (#9567) by @0xvv

Cast Fixes

Chisel Fixes

Forge Features

Forge Fixes

  • fix(forge): only cleanup dirs if they exists (#194) by @mattsse
  • fix(tests): force install solidity 0.8.19 through svm (#5221) by @Evalir
  • fix(coverage): proper instruction for 1st branch anchor (#8512) by @grandizzy
  • fix: running script with --broadcast for a transaction sequence can error out due to nonce desync from rpc latency (#9096) by @pogobounce
  • fix(fmt): do not panic when no named arg (#9114) by @grandizzy
  • fix(traces): identify artifacts using both deployed and creation code (#9050) by @grandizzy
  • fix(cheatcodes): convert fixed bytes to bytes in vm.rpc tuple result (#9117) by @grandizzy
  • fix: script simulation with default sender (#9042) by @klkvr
  • fix(fmt): multiline single param only if func definition is multiline for all_params (#9187) by @ChiTimesChi
  • fix(script): correctly detect additional contracts (#9207) by @klkvr
  • fix(forge create): set skip_is_verified_check: true (#9222) by @grandizzy
  • fix: allow_hyphen_values for constructor args (#9225) by @mattsse
  • fix(--gas-report): add back signatures, even if empty, avoid nesting multiple selectors (#9229) by @zerosnacks
  • fix: remove steps after steps tracing cheatcodes are done (#9234) by @klkvr
  • fix(deps): update alloy-chains to fix Celo explorer API URL (#9242) by @github-actions[bot]
  • fix: better error handling when waiting for receipt (#9253) by @klkvr
  • fix(forge doc): display custom natspec tag (#9257) by @leovct
  • fix(forge): fix stack overflow when the lib path is absolute. (#9190) by @l1nxy
  • fix(remappings): ignore remappings of root proj dirs when merging (#9258) by @grandizzy
  • fix(forge test): record only test fns in test failures (#9286) by @grandizzy
  • fix(coverage): do not report empty constructors, enable reports for receive (#9288) by @grandizzy
  • fix(fork): set block blob_excess_gas_and_price only if excess_blob_gas header is Some (#9298) by @grandizzy
  • fix(forge): always report deployment size in gas reports (#9308) by @grandizzy
  • fix(forge eip712): handle recursive types (#9319) by @klkvr
  • fix: identification of contracts in scripts (#9346) by @klkvr
  • fix(coverage): allow ir-minimum for versions < 0.8.5 (#9341) by @grandizzy
  • fix: vm.broadcastRawTransaction (#9378) by @klkvr
  • fix(forge test): install missing dependencies before creating Project (#9379) by @klkvr
  • fix(forge create): install missing deps if any (#9401) by @grandizzy
  • fix: remove duplicate gas_limit / block_gas_limit field, declare as alias (#9406) by @zerosnacks
  • fix(cheatcodes): use calldata in attachDelegation (#9407) by @grandizzy
  • fix(coverage): clean ups, use normalized source code for locations (#9438) by @DaniPopes
  • fix(coverage): special functions have no name (#9441) by @DaniPopes
  • fix(coverage): also ignore empty fallbacks and receives (#9459) by @DaniPopes
  • fix(coverage): assert should not be branch (#9467) by @grandizzy
  • fix(forge): run dep.has_branch in correct dir (#9453) by @yash-atreya
  • fix(remappings): project autoremappings should respect config (#9466) by @grandizzy
  • fix: force prevrandao on Moonbeam networks (#9489) by @mattsse
  • fix(verify): cached artifacts by version (#9520) by @grandizzy
  • fix(cheatcodes): clear orderings together with trace steps on debug trace stop (#9529) by @grandizzy
  • fix(fuzz): exclude exernal libraries addresses from fuzz inputs (#9527) by @grandizzy
  • fix: read rpc config when using fork cheatcodes (#9547) by @anukul

Performance improvements

  • perf: cap default poll interval (#9250) by @mattsse
  • perf(coverage): improve HitMap merging and internal repr (#9456) by @DaniPopes
  • perf(coverage): cache computed bytecode hash in CoverageCollector (#9457) by @DaniPopes
  • perf(coverage): cache current HitMap, reserve when merging (#9469) by @DaniPopes

Other

Full Changelog:

f1d339a...v0.3.0