Skip to content

Releases: foundry-rs/foundry

Nightly (2024-12-27)

25 Dec 00:32
3ba3d5f
Compare
Choose a tag to compare
Nightly (2024-12-27) Pre-release
Pre-release
  • No changes

Nightly

10 Jul 18:13
3ba3d5f
Compare
Choose a tag to compare
Nightly Pre-release
Pre-release
  • No changes

Nightly (2024-12-24)

23 Dec 00:34
f922a34
Compare
Choose a tag to compare
Nightly (2024-12-24) Pre-release
Pre-release
  • No changes

Nightly (2024-12-22)

21 Dec 00:32
0d5ad75
Compare
Choose a tag to compare
Nightly (2024-12-22) Pre-release
Pre-release
  • No changes

v0.3.0

19 Dec 17:29
5a8bd89
Compare
Choose a tag to compare

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

  • feat(forge): verify contracts created inside a call (#2840) by @joshieDo
  • feat(cheatcodes): vm.getScriptWallets() (#9052) by @yash-atreya
  • feat(forge): allow passing value to --optimize (#9071) by @klkvr
  • feat(forge doc): include custom natspec (#9075) by @leovct
  • feat: make --gas-report JSON output compatible (#9063) by @zerosnacks
  • feat(cheatcodes): vm.rememberKeys (#9087) by @yash-atreya
  • feat(forge): add compiler subcommand (#7909) by @jpgonzalezra
  • feat(forge): add max supported EVM version in compiler -vv (#9129) by @grandizzy
  • feat(forge build): add initcode size check (#9116) by @mgiagante
  • feat(forge build): --watch flag now watches foundry.toml config… (#9148) by @leovct
  • fix(cheatcodes): improve fork cheatcodes messages (#9141) by @grandizzy
  • feat(fmt): add all_params config - same as all but split single param too (#9176) by @grandizzy
  • feat(invariant): add basic metrics report (#9158) by @grandizzy
  • feat(forge install): add @tag= @branch= @rev= specific refs (#9214) by @grandizzy
  • feat: make --gas-report w/ --json output one JSON blob and add contract_path to output (#9216) by @zerosnacks
  • feat(cheatcodes): access broadcast artifacts (#9107) by @yash-atreya
  • feat(--gas-report): add option to include tests (#9232) by @grandizzy
  • feat(cheatcodes): mockCall with bytes4 data (#9267) by @yash-atreya
  • feat(forge): allow --verifier custom option (#9311) by @grandizzy
  • feat(cheatcodes): add delegatecall to pranking (#8863) by @EdwardJES
  • feat(forge build): err if no source file in specified paths (#9329) by @grandizzy
  • feat(forge build): add --sizes and --names JSON compatibility (#9321) by @zerosnacks
  • feat(forge build -vvvvv): If verbosity level is 5 or higher show files to compile (#9325) by @mgiagante
  • feat: compilation restrictions (#8668) by @klkvr
  • Support EIP-7702 Delegations in Forge (#9236) by @evchip
  • feat(forge, cast): add cast --with_local_artifacts/forge selectors cache to trace with local artifacts (#7359) by @byteshijinn
  • feat(forge): show additional details of contract to verify (#9403) by @grandizzy
  • fix: forge script should adhere to --json flag (#9404) by @zerosnacks
  • feat: add --broadcast flag to forge create, default to dry run mode (#9420) by @zerosnacks
  • feat(traces): show state changes in cast run and forge test on -vvvvv (#9013) by @cassc
  • feat: rewrite inline config using figment (#9414) by @DaniPopes
  • feat: add timeouts to fuzz testing (#9394) by @smartcontracts
  • feat(script): support custom create2 deployer (#9278) by @jsvisa
  • feat: allow any config to be defined inline (#9430) by @DaniPopes
  • fix/feat(coverage): add --lcov-version (#9462) by @DaniPopes
  • feat: dedup error messages (#9481) by @DaniPopes
  • feat: add JSON compatibility for forge test --summary +/ --detailed + apply consistent table styling (#9485) by @zerosnacks
  • feat(cheatcodes): count assertion for expectRevert (#9484) by @yash-atreya
  • feat(cheatcodes): add vm.getStateDiff to get state diffs as string (#9435) by @grandizzy
  • feat(cheatcodes): skip test suite in setup (#9532) by @grandizzy
  • feat(cheatcodes): count assertion for expectEmit (#9405) by @yash-atreya

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 (#9...
Read more

stable

20 Dec 08:57
5a8bd89
Compare
Choose a tag to compare

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

  • feat(forge): verify contracts created inside a call (#2840) by @joshieDo
  • feat(cheatcodes): vm.getScriptWallets() (#9052) by @yash-atreya
  • feat(forge): allow passing value to --optimize (#9071) by @klkvr
  • feat(forge doc): include custom natspec (#9075) by @leovct
  • feat: make --gas-report JSON output compatible (#9063) by @zerosnacks
  • feat(cheatcodes): vm.rememberKeys (#9087) by @yash-atreya
  • feat(forge): add compiler subcommand (#7909) by @jpgonzalezra
  • feat(forge): add max supported EVM version in compiler -vv (#9129) by @grandizzy
  • feat(forge build): add initcode size check (#9116) by @mgiagante
  • feat(forge build): --watch flag now watches foundry.toml config… (#9148) by @leovct
  • fix(cheatcodes): improve fork cheatcodes messages (#9141) by @grandizzy
  • feat(fmt): add all_params config - same as all but split single param too (#9176) by @grandizzy
  • feat(invariant): add basic metrics report (#9158) by @grandizzy
  • feat(forge install): add @tag= @branch= @rev= specific refs (#9214) by @grandizzy
  • feat: make --gas-report w/ --json output one JSON blob and add contract_path to output (#9216) by @zerosnacks
  • feat(cheatcodes): access broadcast artifacts (#9107) by @yash-atreya
  • feat(--gas-report): add option to include tests (#9232) by @grandizzy
  • feat(cheatcodes): mockCall with bytes4 data (#9267) by @yash-atreya
  • feat(forge): allow --verifier custom option (#9311) by @grandizzy
  • feat(cheatcodes): add delegatecall to pranking (#8863) by @EdwardJES
  • feat(forge build): err if no source file in specified paths (#9329) by @grandizzy
  • feat(forge build): add --sizes and --names JSON compatibility (#9321) by @zerosnacks
  • feat(forge build -vvvvv): If verbosity level is 5 or higher show files to compile (#9325) by @mgiagante
  • feat: compilation restrictions (#8668) by @klkvr
  • Support EIP-7702 Delegations in Forge (#9236) by @evchip
  • feat(forge, cast): add cast --with_local_artifacts/forge selectors cache to trace with local artifacts (#7359) by @byteshijinn
  • feat(forge): show additional details of contract to verify (#9403) by @grandizzy
  • fix: forge script should adhere to --json flag (#9404) by @zerosnacks
  • feat: add --broadcast flag to forge create, default to dry run mode (#9420) by @zerosnacks
  • feat(traces): show state changes in cast run and forge test on -vvvvv (#9013) by @cassc
  • feat: rewrite inline config using figment (#9414) by @DaniPopes
  • feat: add timeouts to fuzz testing (#9394) by @smartcontracts
  • feat(script): support custom create2 deployer (#9278) by @jsvisa
  • feat: allow any config to be defined inline (#9430) by @DaniPopes
  • fix/feat(coverage): add --lcov-version (#9462) by @DaniPopes
  • feat: dedup error messages (#9481) by @DaniPopes
  • feat: add JSON compatibility for forge test --summary +/ --detailed + apply consistent table styling (#9485) by @zerosnacks
  • feat(cheatcodes): count assertion for expectRevert (#9484) by @yash-atreya
  • feat(cheatcodes): add vm.getStateDiff to get state diffs as string (#9435) by @grandizzy
  • feat(cheatcodes): skip test suite in setup (#9532) by @grandizzy
  • feat(cheatcodes): count assertion for expectEmit (#9405) by @yash-atreya

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 (#9...
Read more

Nightly (2024-12-20)

20 Dec 00:32
5a8bd89
Compare
Choose a tag to compare
Nightly (2024-12-20) Pre-release
Pre-release

Other

Full Changelog:

nightly...nightly-5a8bd893eeeeb9489ea66dd52a02eeaa580e3af0

Nightly (2024-12-19)

19 Dec 00:34
8a08a3a
Compare
Choose a tag to compare
Nightly (2024-12-19) Pre-release
Pre-release

Other

Nightly (2024-12-18)

17 Dec 16:32
6b07c77
Compare
Choose a tag to compare
Nightly (2024-12-18) Pre-release
Pre-release
  • No changes

Nightly (2024-12-17)

16 Dec 00:36
206dab2
Compare
Choose a tag to compare
Nightly (2024-12-17) Pre-release
Pre-release
  • No changes