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 toforge 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
address
es 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
andvm.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 toinvariant
(#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 updateLATEST_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)