Features
- feat(forge): verify contracts created inside a call (#2840)
Fixes
- fix(
evm
): set blob_excess_gas_and_price (#9186)
Other
- chore: Update cli docs with forge init (#193)
- fix(forge): only cleanup dirs if they exists (#194)
- chore(deps): bump ethers (#195)
- chore: remove integration tests (#196)
- chore(deps): bump ethers (#206)
- feat(cast): add avalanche and fuji genesis hashes (#210)
- fix(cli): replace underscore for hyphen on wallet cli args (#212)
- fix(
tests
): force install solidity 0.8.19 through svm (#5221) - chore: name std threads (#5710)
- Multichain Scripts: Deploy each sequence of transactions sequentially instead of in parallel. (#6271)
- fix(coverage): proper instruction for 1st branch anchor (#8512)
- feat(
cheatcodes
): vm.getScriptWallets() (#9052) - fix: support EOF opcodes in
cast da
(#9070) - feat(forge): allow passing value to
--optimize
(#9071) - feat(
forge doc
): include @Custom natspec (#9075) - chore: add alias (#9082)
- feat: make
--gas-report
JSON output compatible (#9063) - feat: update to Soldeer v0.4.1 (#9092)
- chore(deps): weekly
cargo update
(#9100) - feat(
cheatcodes
): vm.rememberKeys (#9087) - refactor(
cheatcodes
): mvScriptWallets
intoCheatcode
(#9106) - fix: running script with
--broadcast
for a transaction sequence can error out due to nonce desync from rpc latency (#9096) - fix(fmt): do not panic when no named arg (#9114)
- fix(traces): identify artifacts using both deployed and creation code (#9050)
- chore(
cheatcodes
): wallet nits (#9118) - refactor(
script
): mvScriptSequence
to new crate (#9098) - fix: respect
--auth
incast call
andcast estimate
(#9120) - fix(cheatcodes): convert fixed bytes to bytes in vm.rpc tuple result (#9117)
- feat(forge): add
compiler
subcommand (#7909) - feat(forge): add max supported EVM version in compiler -vv (#9129)
- chore: bump
foundry-compilers
to include Vyper fix (#9133) - fix(cast): do not strip 0x / hex decode message before EIP-191 hashing (#9130)
- feat(
anvil
):wallet_
namespace + inject P256BatchDelegation + executor (#9110) - fix: dont set state root (#9134)
- chore: alias wallet_sendTransaction (#9137)
- feat(
forge build
): add initcode size check (#9116) - docs: update CLI help for init code size check (#9145)
- chore(deps): weekly
cargo update
(#9149) - feat(
forge build
):--watch
flag now watchesfoundry.toml
config… (#9148) - fix: script simulation with default sender (#9042)
- feat(cast): add
json
flag incast wallet new-mnemonic
(#9139) - fix(
anvil
): use header.number not best_number (#9151) - fix(
anvil
): arb fork mining (#9153) - fix(cheatcodes): improve fork cheatcodes messages (#9141)
- feat(
anvil
): support mining with same block.timestamp (#9160) - chore: format chained error for EvmError (#9169)
- Add debug file dump (#7375)
- chore(deps): bumps alloy, revm, fork-db (#9150)
- feat: add
foundry_common::shell
to unify log behavior (#9109) - chore: refactor debugger dump code (#9170)
- fix(anvil): Apply state overrides in debug_traceCall (#9172)
- feat(fmt): add
all_params
config - same asall
but split single param too (#9176) - fix(chisel): on edit fail command only if execution failed (#9155)
- chore: cleanup shell module (#9178)
- chore: add warning on persisted invariant scenario failure (#9171)
- feat(invariant): add basic metrics report (#9158)
- fix: add back
silent
option in Anvil'sNodeConfig
(#9181) - chore(
cast
): fixstorage_layout
test due to request timeouts w/ Optimism explorer (#9182) - chore(deps): bump alloy + revm + fork-db (#9183)
- fix(
evm
): detect blob tx and set evm version (#9185) - chore(
cast
): enforcecommon::shell
for cast binary (#9174) - fix(cli): etherlink needs eth_estimateGas for gas calculation (#9188)
- fix(fmt): multiline single param only if func definition is multiline for
all_params
(#9187) - chore(
chisel
): enforcecommon::shell
for chisel binary (#9177) - feat(
cast
): add flag equivalents of parseUnits, formatUnits (#9165) - feat(cast): add
--rpc-timeout
option (#9044) - chore(tests): bump forge-std version (#9193)
- fix(
anvil
): tag newly created legacy transactions on shadow fork asSome(0)
(0x0
) rather thanNone
(#9195) - chore: silence logger if silent (#9199)
- test: add test for rlp data (#9200)
- fix(anvil): correctly set hardfork-specific block fields (#9202)
- chore(deps): weekly
cargo update
(#9206) - fix: include withdrawals root in response (#9208)
- fix(script): correctly detect additional contracts (#9207)
- fix(
cast block
): ensure to print all fields (#9209) - feat(cast): add --int flag to from-rlp (#9210)
- chore: try from eyre:Result for TraceResult (display chained error) (#9212)
- feat(
forge install
): add@tag=
@branch=
@rev=
specific refs (#9214) - feat: make
--gas-report
w/--json
output one JSON blob and addcontract_path
to output (#9216) - fix(forge create): set skip_is_verified_check: true (#9222)
- feat(cast) add creation-code method [#8973] (#9029)
- refactor: simplify
merge_db_account_data
(#9223) - test: update test (#9226)
- style: smol refactor (#9224)
- fix: allow_hyphen_values for constructor args (#9225)
- chore(meta): update SECURITY.md (#9230)
- fix(
--gas-report
): add back signatures, even if empty, avoid nesting multiple selectors (#9229) - feat(
cheatcodes
): access broadcast artifacts (#9107) - fix(
anvil
): setstorage.best_number
correctly (#9215) - feat(
--gas-report
): add option to include tests (#9232) - fix: remove steps after steps tracing cheatcodes are done (#9234)
- fix: rename flag as_int -> as-int (#9235)
- feat(cast): add string-decode to decode string (#9237)
- chore: avoid unnecessary
mut
(#9238) - fix(anvil): on anvil_mine jump to next timestamp before mine new block (#9241)
- fix(
deps
): updatealloy-chains
to fix Celo explorer API URL (#9242) - fix: reset shell colors based on the input style (#9243)
- fix: avoid deadlock in nested shell calls (#9245)
- anvil: Correctly set HF fields for Genesis block (#9248)
- perf: cap default poll interval (#9250)
- fix: better error handling when waiting for receipt (#9253)
- fix: use
Debug
when formatting errors (#9251) - chore(deps): weekly
cargo update
(#9254) - fix(
forge doc
): display custom natspec tag (#9257) - chore: do not print anvil launch info if silent (#9259)
- feat: add global
--json
flag (#9244) - chore(
forge
): enforcecommon::shell
forforge
crate (#9231) - fix(remappings): check if remapping to add starts with existing remapping name (#9246)
- chore: ignore flaky rostock chain test (#9261)
- fix(anvil): set auto-unlock an alias of auto-impersonate (#9256)
- chore(deps): prefer soft pinning on minor version for dependencies (#9269)
- Revert "fix(remappings): check if remapping to add starts with existing remapping name (#9246)" (#9274)
- fix(forge): fix stack overflow when the lib path is absolute. (#9190)
- fix(remappings): ignore remappings of root proj dirs when merging (#9258)
- feat(
cheatcodes
): mockCall with bytes4 data (#9267) - feat: update to Soldeer v0.5.0 (#9281)
- fix(
forge test
): record only test fns in test failures (#9286) - fix(coverage): do not report empty constructors, enable reports for
receive
(#9288) - Make fs read cheatcodes views (#9289)
- chore: fix clippy (#9291)
- feat(anvil): add
anvil_getIntervalMining
API (#9290) - chore(
common::shell
): finish implementation + enforce inclippy
(#9268) - chore: typo anvil_getIntervalMing -> anvil_getIntervalMining (#9292)
- chore(deps): weekly
cargo update
(#9293) - fix(trace): properly report
fallback()
fn (#9287) - fix: use regular
println
in internal test utils to avoid interfering withcargo test
runner (#9296) - feat(
cast run
): add--etherscan-api-key
to resolve contract names (#9295) - feat(cast): add artifact method (#9249)
- fix(fork): set block blob_excess_gas_and_price only if
excess_blob_gas header
is Some (#9298) - feat(
common::shell
): add global verbosity level (-vvv
) flag replacing--verbose
(#9273) - chore: do not trim decoded generic custom error (#9309)
- fix(forge): always report deployment size in gas reports (#9308)
- fix(
ci
): update cargo deny (#9314) - feat: Update to soldeer 0.5.1 (#9315)
- chore: update soldeer-core dependency (#9316)
- fix(
forge eip712
): handle recursive types (#9319) - feat(forge): allow
--verifier custom
option (#9311) - feat(
cheatcodes
): adddelegatecall
toprank
ing (#8863) - feat(forge build): err if no source file in specified paths (#9329)
- feat(
forge build
): add--sizes
and--names
JSON compatibility (#9321) - chore: fix clippy (#9333)
- test: enhance tests (#9334)
- chore(deps): weekly
cargo update
(#9336) - chore: fix getArtifactPath flaky test (#9339)
- fix(cast storage): respect
--json
for layout (#9332) - feat(
config
): set default evm version to cancun (#9131) - chore: update test values to cancun (#9344)
- feat(
forge build -vvvvv
): If verbosity level is 5 or higher show files to compile (#9325) - chore: add some more debugging to forge bind (#9345)
- feat: compilation restrictions (#8668)
- fix: identification of contracts in scripts (#9346)
- fix(
coverage
): allowir-minimum
for versions < 0.8.5 (#9341) - chore: don't color error message in red (#9352)
- chore: remove redundant 'setup failed' in setup errors (#9354)
- chore: make environment variable error nicer (#9353)
- test: update external forge-std (#9356)
- chore(ci): archive endpoints config (#9348)
- chore: pick provider urls by next index (#9359)
- fix: correct shell substitution in installer (#9351)
- chore: TestSetup cleanup (#9355)
- chore(ci): proper read of archive nodes (#9362)
- chore(test-utils): simplify next calls (#9361)
- Support EIP-7702 Delegations in Forge (#9236)
- chore(deps): bump foundry-compilers 0.12.2 (#9364)
- feat: rename
ShellOtps
toGlobalOpts
(#9313) - chore(deps): bump foundry-compilers 0.12.3 (#9368)
- chore(deps): bump alloy 0.6.4 (#9280)
- feat(
anvil
):--cache-path
(#9343) - chore: rm flaky cache-path test (#9372)
- feat: add global -j, --threads (#9367)
- feat: Update to soldeer 0.5.2 (#9373)
- fix:
vm.broadcastRawTransaction
(#9378) - fix(forge test): install missing dependencies before creating
Project
(#9379) - chore(chisel): replace solang with solar in SolidityHelper (#9376)
- fix(chisel): uint/int full word print (#9381)
- fix: flaky test_broadcast_raw_create2_deployer (#9383)
- refactor(forge): rewrite
geiger
with Solar (#9382) - feat(forge, cast): add
cast --with_local_artifacts
/forge selectors cache
to trace with local artifacts (#7359) - chore: use has_library_ancestor (#9387)
- chore(evm/traces): replace solang with Solar (#9386)
- chore(deps): weekly
cargo update
(#9392) - fix: bail incomplete bytecode sequence disassemble (#9390)
- fix(forge create): install missing deps if any (#9401)
- feat(forge): show additional details of contract to verify (#9403)
- fix: remove duplicate
gas_limit
/block_gas_limit
field, declare as alias (#9406) - fix(cheatcodes): use calldata in attachDelegation (#9407)
- chore(cheatcodes): enforce
calldata
in declaration (#9408) - feat: remove ethers (#8826)
- Revert "feat: remove ethers" (#9411)
- fix: forge script should adhere to
--json
flag (#9404) - feat(cast): add decode-event sig data (#9413)
- chore: fix 404 status URL (#9417)
- feat: add
--broadcast
flag to forge create, default to dry run mode (#9420) - feat(
traces
): show state changes incast run
andforge test
on-vvvvv
(#9013) - feat(cast): decode external lib sigs from cached selectors (#9399)
- feat: rewrite inline config using figment (#9414)
- chore: rename the arg name of EvmOpts from evm_opts to evm_args (#9424)
- Fix conditional syntax issue in macOS libusb check (#9384)
- feat: add timeouts to fuzz testing (#9394)
- feat(
cast
):decode-error
with sig, local cache and openchain api (#9428) - feat(
cast
):decode-event
with local and openchain API (#9431) - chore: use alloy-chains'
is_arbitrum
(#9432) - feat: rpc_headers in cast and config (#9429)
- fix: set user-agent header in runtime transport (#9434)
- feat(script): support custom create2 deployer (#9278)
- fix(coverage): clean ups, use normalized source code for locations (#9438)
- chore(deps): weekly
cargo update
(#9440) - fix(coverage): special functions have no name (#9441)
- feat(cast): allow some more stdin inputs (#9442)
- chore(config): remove RootPath (#9448)
- chore(config): move providers into module (#9449)
- chore(deps): alloy 0.7 (#9447)
- feat: allow any config to be defined inline (#9430)
- chore(deps): bump foundry-compilers 0.12.4 (#9455)
- perf(coverage): improve HitMap merging and internal repr (#9456)
- perf(coverage): cache computed bytecode hash in CoverageCollector (#9457)
- fix(coverage): also ignore empty fallbacks and receives (#9459)
- fix/feat(coverage): add --lcov-version (#9462)
- chore: set --lcov-version default to 1 (#9463)
- fix(
anvil
): implmaybe_as_full_db
forForkedDatabase
(#9465) - fix(coverage): assert should not be branch (#9467)
- fix(
forge
): rundep.has_branch
in correct dir (#9453) - chore: fix test isolate (#9468)
- feat: bump MSRV to 1.83 (#9473)
- perf(coverage): cache current HitMap, reserve when merging (#9469)
- test: shuffle archive URLs (#9472)
- docs: CoverageCollector comments (#9474)
- fix(
cli
): handle id and named chain_id's correctly (#9480) - feat: dedup error messages (#9481)
- chore(anvil): convert panics into errors (#9471)
- fix(remappings): project autoremappings should respect config (#9466)
- refactor: adapt to CompilerContract trait type (#9423)
- chore(deps): bump foundry-compilers 0.12.6 (#9490)
- chore: rename alphanet to odyssey (#9491)
- feat: add JSON compatibility for
forge test --summary +/ --detailed
+ apply consistent table styling (#9485) - fix: force
prevrandao
on Moonbeam networks (#9489) - chore(cast): upgrade evmole to 0.6.1, use new style API (#9493)
- chore: bump compilers 0.12.7 (#9498)
- chore(deps): bump breaking deps (#9502)
- chore: improve Retry usage and warning (#9503)
- fix: restore lock version 3 (#9501)
- chore(deps): remove async_recursion (#9500)
- feat(
cheatcodes
): count assertion forexpectRevert
(#9484) - feat(cheatcodes): add
vm.getStateDiff
to get state diffs as string (#9435) - fix(verify): cached artifacts by version (#9520)
- ci: move deny to test (#9524)
- chore: bump alloy (#9496)
- fix(cheatcodes): clear orderings together with trace steps on debug trace stop (#9529)
- feat(cheatcodes): skip test suite in setup (#9532)
- fix: mark flag incompatibility (#9530)
- chore(deps): weekly
cargo update
(#9533) - fix(fuzz): exclude exernal libraries addresses from fuzz inputs (#9527)
- Update incorrect documentation in the READ.me (#9538)
- fix(
anvil
): setbest_number
tostate.block.number
if greater (#9543) - fix(
cast
): resetenv.tx.caller
for impersonated txs (#9544) - chore: Add GH attestation for foundry binaries (#9546)
- fix(release): allow contents write permission, run attestation after release created (#9550)
- chore: bump compilers (#9554)
- fix: account for impersonated tx in configure_tx_env (#9553)
- fix: read rpc config when using fork cheatcodes (#9547)
- chore(deps): weekly
cargo update
(#9560) - feat(cast): add support for beacon proxies in cast impl (#9567)
- feat(
cheatcodes
): count assertion forexpectEmit
(#9405) - fix(release): check
env.IS_NIGHTLY
as string (#9568) - Run release workflow on stable tag push (#9575)