github foundry-rs/foundry nightly-c331b5eeee1b4151ef7354a081667e2d770b37f5
Nightly (2023-05-22)

latest releases: nightly-cafc2606a2187a42b236df4aa65f4e8cdfcea970, nightly, nightly-721eb94e04bc2075b59d4221f09190d1897669d3...
pre-release11 months ago

Features

  • feat: disable eip3607 by default in forge test (#4181)
  • feat(fmt): Add new line at start and end of contract option (#4212)
  • feat(geiger): paths ignore option (#4235)
  • feat(cast): add ether flag to cast balance (#4293)
  • feat(anvil): add --disable-block-gas-limit (#4324)
  • feat(fmt): diagnostics report (#4404)
  • feat: Add new expectCall cheatcode variants (#4413)
  • chore: bump svm-rs with 0.8.19 (#4415)
  • Add "%e/%x" format support for forge console log (#4482)
  • Enable hardcoding gas in scripts (#4219)
  • feat(anvil): cache more fork responses (#4576)
  • implement ConsoleFmt for H256 (#4580)
  • add mockCallRevert cheatcode (#4343)
  • feat: support max literal (#4678)

Fixes

  • fix(verify): configure correct etherscan base url (#4151)
  • fix(chisel): invalid input panic (#4147)
  • fix(anvil): make impersonated tx hashes sender unique (#4185)
  • fix(evm): include missing CREATE and CREATE2 geth traces (#4179)
  • fix(anvil): Use the block's base fee when calculating effective gas price for a tx receipt (#4196)
  • fix(anvil): rm disk states on clear (#4202)
  • perf: tune storage limit defaults (#4203)
  • fix(anvil): track impersonated sender for transaction (#4210)
  • fix(cast): estimate and call sender options (#4228)
  • fix(forge): get etherscan api key from config when using anvil chain (#4233)
  • fix(cast): interface arg name lookup (#4234)
  • fix: install shell only once (#4267)
  • fix: calculate overall gas diff correctly (#4274)
  • fix(anvil): Ensure the transaction's block number predates the fork before returning a receipt (#4277)
  • fix(anvil): memory only state non-zero limit infinite loop (#4278)
  • fix: Canonicalize jsonPath to avoid breaking change (#4288)
  • fix(chisel): stop appending memory to event params (#4341)
  • fix: support versioned linking (#4330)
  • fix(anvil): anvil_setNextBlockBaseFeePerGas return error old hardfork (#4354)
  • fix(anvil): add chain id field (#4366)
  • fix(fmt): respect bracket spacing in named function call (#4363)
  • fix(fmt): extra line on multiline call args (#4369)
  • fix: use FromStr for NameOrAddress parsing (#4380)
  • fix(anvil): ensure typed tx supported based on hardfork (#4387)
  • fix: exclude additional forge-std contracts in forge bind (#4419)
  • fix: disable optimizer details if optimizer is disabled (#4427)
  • fix(fmt): emit stmt grouping (#4430)
  • fix(anvil): set transaction type in receipt (#4431)
  • fix(forge): do not reset tx.origin during broadcast in forge script (#4469)
  • fix(anvil): return correct gas (#4471)
  • fix(config): Etherscan config resolution (#4519)
  • fix(config): use ExtractConfig Error (#4525)
  • fix(doc): distinguish contract interface library (#4537)
  • fix(fmt): proper char counting (#4554)
  • fix(anvil): silence all logs if --silent (#4562)
  • Fix bind --overwrite failing on first run (#4569)
  • fix(evm): update env properly when fork to tx (#4567)
  • fix(evm): initialize fuzzed backend (#4575)
  • fix(verify): improve etherscan section parsing (#4574)
  • Fix bugs when gas is disabled (#4598)
  • fix: serialize into BtreeMap (#4599)
  • When adding submodules, check if the branch exists before setting on the submodule (#4612)
  • fix: handle empty json select (#4631)
  • fix(cast): cast wallet keystore regression (#4641)
  • fix struct name output by only returning last name segment (#4646)
  • fix(chisel): respect --use and --offline (#4657)
  • fix(anvil): properly detect tx type based on tx fields (#4663)
  • fix: set block.number to l1BlockNumber on arbitrum (#4669)
  • fix(evm): clone current journaled state if active (#4667)
  • fix: use fuzz config as configured (#4677)
  • fix: use block.number when creating fork (#4684)
  • fix(anvil): dont adjust from block (#4733)
  • fix: Fix self signed certificates in chain by using correct Reqwest feature (#4792)
  • fix: prevent dictionary weight panic (#4957)
  • fix(fuzzing): persist snapshot failures when fuzzing (#4974)

Other

  • Add gas price estimate in forge script summary (#4149)
  • fix(chisel): comment errors (#4148)
  • perf(chisel): solidity_helper (#4154)
  • chore(forge): doc ignore invalid natspec tags (#4159)
  • feat(anvil): add evm_setAccountNonce alias (#4165)
  • Anvil: Checksum address output in start-up log (#4158)
  • feat(forge): Add compile alias to forge build (#4146)
  • feat(anvil): add evm_setTime (#4166)
  • chore(forge): sort snapshot report (#4176)
  • refactor: always use hash of MinedTransaction when building tx (#4183)
  • fix(anvil): stricter memory limits in interval mining mode (#4188)
  • fix(forge): ignore contracts defined in lib paths (#4191)
  • fix(anvil): purge old on disk state (#4189)
  • feat(anvil): disable eip3607 by default (#4182)
  • chore: more sensible default limits (#4198)
  • Crates Update - Prompted by Crates Vscode Extension (#4216)
  • fix(forge): init errors (#4223)
  • fix(anvil): always fetch forked block (#4213)
  • docs(forge): improve ensure_git_status_clean error message (#4224)
  • feat(cast): extend stdin support (#4229)
  • respect silent argument in script command (#4160)
  • fix: replace difficulty with prevrandao after merge (#4204)
  • fix(anvil): ensure prevrandao is set in forking mode (#4238)
  • chore(foundryup): fix shellcheck lints (#4256)
  • feat(chisel): Automatically encode addresses to their valid EIP-55 checksum. (#4250)
  • cast: eip1967 commands (#4258)
  • feat(anvil): support max mem history value for --prune-history (#4263)
  • chore(deps): bump ethers with svm 0.8.18 support (#4260)
  • feat(cast): arbitrary min/max int/uint (#4269)
  • feat(anvil): add evm mine detail endpoint (#4200)
  • Fix: Properly encode json path that returns array (#4280)
  • fix: encode env errors as errors (#4290)
  • chore(foundryup): print banner after parsing args (#4298)
  • dep: solang parser 0.2.2 (#4328)
  • fix(readme): add chisel (#4336)
  • Cast Command to generate ethersrs binding (#4218)
  • Prevent stopping not existing broadcasts (#4347)
  • cast: parse additional blocktags (#4357)
  • chore: bump ethers (#4364)
  • chore: add .git-blame-ignore-revs (#4358)
  • docs: document fmt disable-line (#4372)
  • fix(forge): set correct gas limit when exiting CREATE frames when gas metering is paused (#4392)
  • chore: use compat wording in out of gas error (#4391)
  • chore(anvil): improve error logs (#4390)
  • fix(anvil): disable block gas limit in eth_call (#4389)
  • feat(anvil): assert that fee cap is higher than tip (#4395)
  • feat(anvil): resolve rpc aliases if foundry.toml is present (#4384)
  • feat: add --memory-limit to env args (#4411)
  • recommended to install WSL 2 (#4408)
  • chore(README): add chisel install instructions (#4421)
  • Surface node_service and server join handles and handle select in poll function (#4422)
  • docs: correct example for disable-next-line (#4429)
  • fix(anvil): apply load state in memdb (#4432)
  • fix(config): remove fuzz.max_global_rejects (#4466)
  • Add complete type annotations for into I256 (#4463)
  • dep(fmt,chisel,doc): update solang-parser to 0.2.3 (#4477)
  • chore(chisel): turn panics into errors (#4495)
  • feat(cli): use Config for Etherscan and RPCs (#4496)
  • chore: update benches (#4502)
  • feat(evm): add "expectEmit" variants (#4479)
  • change pretty-calldata labels from decimal ints to hex values (#4487)
  • perf(anvil): get rid of redundant chain id call (#4527)
  • feat(anvil): enable max priority fee per gas (#4535)
  • perf(anvil): fetch all dev accounts concurrently in forking mode (#4526)
  • chore(cast): add optimism-goerli chain detection (#4544)
  • fix(chisel): Windows prompt (#4505)
  • feat(cast): Option to disassemble bytecode returned by cast code (#4518)
  • Fix misspellings (#4583)
  • feat: expectSafeMemory & expectSafeMemoryCall cheatcodes (#4491)
  • fix(evm): uninitialize fuzz backend on inspect (#4588)
  • fix(cast): block opt (#4591)
  • ci: rm redundant env setting (#4606)
  • perf: dont keep all fuzzed cases around (#4620)
  • perf: restrict state dictionary size (#4627)
  • fix install script (#4644)
  • feat: add gasprice cheatcode (#4643)
  • refactor(evm): parse cheatcodes (#4665)
  • chore(deps): update all dependencies (#4670)
  • feat(anvil): shutdown on sigterm (#4676)
  • perf(fuzz): improve Fuzz Dictionary size enforcement (#4680)
  • feat(forge) add non-aligned memory words in debugger (#4681)
  • Pin ethers-rs version to 2 (#4691)
  • chore: add anvil --block-gas-limit alias (#4694)
  • fix(fmt): --root shouldn't conflict with [PATH] (#4695)
  • fix(invariant): merge logs & traces from error and replay (#4697)
  • chore: fix cargo default-features warning (#4706)
  • fix(chisel): properly load and save history (#4704)
  • fix(chisel): support library imports (#4703)
  • feat(cast): add optimize selector command (#4705)
  • Make foundryup installation script more flexible for ZSH users (#4739)
  • feat: Auto Impersonation (#4673)
  • test(anvil): add auto impersonate test (#4749)
  • test: fix failing anvil test (#4750)
  • chore: update solang-parser (#4661)
  • fix: fix ord verify bug (#4698)
  • fix(forge): update forge geiger (#4766)
  • fix(forge): update forge remove (#4767)
  • feat(chisel): add support for setting msg.data (#4775)
  • fix(fmt): Variable{Declaration,Definition} visit and fmt implementations (#4785)
  • fix(forge): update forge remove (#4774)
  • feat(forge) add debugger breakpoints (#4679)
  • feat(foundryup): add support for MINGW (#4796)
  • chore: small cheatcode improvements (#4799)
  • StopPrank iff there is a prank started (#4827)
  • Add ability to sign arbitrary 0x-prefixed data to cast wallet sign (#4820)
  • (feat) add conditional breakpoints (#4801)
  • feat: add count to expectCall cheatcodes (#4833)
  • fix(forge): expectCall with no count (#4845)
  • docs: move README's installation and troubleshooting sections to the book (#4849)
  • REVM: 3.x Migration (#4757)
  • CI: Separate issue reproduction & forge-std tests into their own jobs (#4851)
  • feat: add more fs cheatcodes (#4803)
  • refactor/docs: rewrite clap attributes to use doc comments (#4768)
  • feat(cast): support all tx options for access-list (#4795)
  • fix(anvil): properly estimate gas instead of bailing on GasTooHigh (#4861)
  • chore(cast): cleanup code in access-list (#4866)
  • fix(cast) cast run panicks when encountering failed contract deployment (#4871)
  • feat(forge): Pre flight contract verification (#4869)
  • Bail after test fail (#4819)
  • Use XDG Base Directory specification in installation files (#4738)
  • chore(evm): Bring over Reth's InvalidTransaction-related conversions (#4881)
  • feat(forge): getLabel cheatcode (#4770)
  • feat(forge): Paris & Shanghai support & add prevrandao cheatcode (#4856)
  • fix(anvil): Port Reth's gas estimation and fix wrong executor error (#4885)
  • fix(cast): cast wallet verify can be made to parse hex string (#4887)
  • fix(anvil): typo in --state argument description (#4889)
  • fix(chisel): upgrade default solc version to 0.8.19 (#4890)
  • refactor(evm): precompiles (#4891)
  • chore(deps): bump all individual ethers packages (#4901)
  • fix(cast): Harden cast send and provide more accurate error messages (#4874)
  • feat(cheatcodes): ensure vm.difficulty and vm.prevrandao fail if not using the correct EVM Version (#4904)
  • Feat: add log hints to integers parsed in verbose output (#4745)
  • feat(cheatcodes): restrict cheatcode usage on precompiles (#4905)
  • feat(invariant): add statefulFuzz as an alias to invariant (#4922)
  • feat(forge): change startPrank to overwrite existing prank instead of erroring (#4826)
  • feat: ux fuzz invariant (#4744)
  • improving docs generation by adding homepage to config (#4702)
  • fix(cheatcodes): Fix expectCall behavior (#4912)
  • feat(cheatcodes): Make expectEmit only work for the next call (#4920)
  • Invariants feat: add config option to turn off shrinking (#4868)
  • fix: ensure prevrandao is set (#4929)
  • feat(repo): add CHANGELOG.md (#4925)
  • Fix link in CHANGELOG.md (#4932)
  • chore: move formatting logic to foundry-macros (#4936)
  • feat: split off binding generation from foundry-evm (#4935)
  • fix(docs): minor typos and updates (#4937)
  • feat: better cheatcodes tracing (#4950)
  • chore(CHANGELOG.md): add startPrank changes (#4953)
  • fix(chisel): Override set solc and Install post-merge solc version if needed (#4949)
  • fix(chisel/ci): un-async chisel tests for filesystem consistency (#4955)
  • chore: bump all dependencies (#4956)
  • docs(cast): clarify type of bytecode (#4960)
  • chore(forge): remove deprecated --match alias for --match-test (#4964)
  • fix(forge): sensitive broadcast logs (#4892)
  • chore(deps): bump svm-rs, svm-rs-builds and update LATEST_SOLC (#4975)
  • chore(chisel): remove flakyness from chisel tests, expose errors on panic (#4977)
  • feat(forge): add support for fuzz dictionary weight config (#4968)
  • ci: Fix use of parameter in conditionals (#4984)
  • fix(ci): remove live tests (#4978)
  • fix(invariant): 🐛 check for assert failures on handlers (#4980)

Don't miss a new foundry release

NewReleases is sending notifications on new releases.