Skip to content

Do not merge - just showing what changes we have made since forking from foundry #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1,963 commits into
base: foundry-rs-original-commit-hash
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1963 commits
Select commit Hold shift + click to select a range
398ef4a
feat(forge, cast): add `cast --with_local_artifacts`/`forge selectors…
byteshijinn Nov 22, 2024
e5412ad
chore: use has_library_ancestor (#9387)
DaniPopes Nov 23, 2024
d14a7b4
chore(evm/traces): replace solang with Solar (#9386)
DaniPopes Nov 23, 2024
4923529
chore(deps): weekly `cargo update` (#9392)
github-actions[bot] Nov 24, 2024
cca72ab
fix: bail incomplete bytecode sequence disassemble (#9390)
publicqi Nov 25, 2024
66228e4
fix(forge create): install missing deps if any (#9401)
grandizzy Nov 25, 2024
eae5fb4
feat(forge): show additional details of contract to verify (#9403)
grandizzy Nov 25, 2024
de5e89c
fix: remove duplicate `gas_limit` / `block_gas_limit` field, declare …
zerosnacks Nov 25, 2024
672bdf6
fix(cheatcodes): use calldata in attachDelegation (#9407)
grandizzy Nov 25, 2024
995fd9e
chore(cheatcodes): enforce `calldata` in declaration (#9408)
DaniPopes Nov 25, 2024
d739704
feat: remove ethers (#8826)
DaniPopes Nov 26, 2024
958c713
Revert "feat: remove ethers" (#9411)
grandizzy Nov 26, 2024
0045384
fix: forge script should adhere to `--json` flag (#9404)
zerosnacks Nov 26, 2024
31dd1f7
feat(cast): add decode-event sig data (#9413)
grandizzy Nov 26, 2024
735b5eb
chore: fix 404 status URL (#9417)
wangjingcun Nov 27, 2024
2c3114c
feat: add `--broadcast` flag to forge create, default to dry run mode…
zerosnacks Nov 27, 2024
c63aba8
feat(`traces`): show state changes in `cast run` and `forge test` on …
cassc Nov 27, 2024
16a013f
feat(cast): decode external lib sigs from cached selectors (#9399)
grandizzy Nov 28, 2024
56d0dd8
feat: rewrite inline config using figment (#9414)
DaniPopes Nov 28, 2024
20905ef
chore: rename the arg name of EvmOpts from evm_opts to evm_args (#9424)
jsvisa Nov 28, 2024
27cabbd
Fix conditional syntax issue in macOS libusb check (#9384)
voronor Nov 28, 2024
2e9f536
feat: add timeouts to fuzz testing (#9394)
smartcontracts Nov 29, 2024
0d76df5
feat(`cast`): `decode-error` with sig, local cache and openchain api …
grandizzy Nov 29, 2024
0f7268f
feat(`cast`): `decode-event` with local and openchain API (#9431)
grandizzy Nov 29, 2024
fbbcc8c
chore: use alloy-chains' `is_arbitrum` (#9432)
zerosnacks Nov 29, 2024
af0fee2
feat: rpc_headers in cast and config (#9429)
yash-atreya Nov 29, 2024
4527475
fix: set user-agent header in runtime transport (#9434)
yash-atreya Nov 29, 2024
7f41280
feat(script): support custom create2 deployer (#9278)
jsvisa Nov 30, 2024
7a23a5c
fix(coverage): clean ups, use normalized source code for locations (#…
DaniPopes Nov 30, 2024
ac81a53
chore(deps): weekly `cargo update` (#9440)
github-actions[bot] Dec 1, 2024
168b239
fix(coverage): special functions have no name (#9441)
DaniPopes Dec 2, 2024
d4e91c8
feat(cast): allow some more stdin inputs (#9442)
DaniPopes Dec 2, 2024
8b8d1cd
chore(config): remove RootPath (#9448)
DaniPopes Dec 2, 2024
ddb19d0
chore(config): move providers into module (#9449)
DaniPopes Dec 2, 2024
c4d81b9
chore(deps): alloy 0.7 (#9447)
yash-atreya Dec 2, 2024
3e6d3b8
feat: allow any config to be defined inline (#9430)
DaniPopes Dec 2, 2024
7d0b0a0
chore(deps): bump foundry-compilers 0.12.4 (#9455)
DaniPopes Dec 2, 2024
b7a065f
perf(coverage): improve HitMap merging and internal repr (#9456)
DaniPopes Dec 2, 2024
d35fee6
perf(coverage): cache computed bytecode hash in CoverageCollector (#9…
DaniPopes Dec 2, 2024
ee9d237
fix(coverage): also ignore empty fallbacks and receives (#9459)
DaniPopes Dec 2, 2024
e5dbb7a
fix/feat(coverage): add --lcov-version (#9462)
DaniPopes Dec 2, 2024
7f8154c
chore: set --lcov-version default to 1 (#9463)
DaniPopes Dec 3, 2024
9af381f
fix(`anvil`): impl `maybe_as_full_db` for `ForkedDatabase` (#9465)
yash-atreya Dec 3, 2024
9ee6005
fix(coverage): assert should not be branch (#9467)
grandizzy Dec 3, 2024
ade4b35
fix(`forge`): run `dep.has_branch` in correct dir (#9453)
yash-atreya Dec 3, 2024
8ef1302
chore: fix test isolate (#9468)
grandizzy Dec 3, 2024
2f56133
feat: bump MSRV to 1.83 (#9473)
DaniPopes Dec 3, 2024
22202a7
perf(coverage): cache current HitMap, reserve when merging (#9469)
DaniPopes Dec 3, 2024
f9d8663
test: shuffle archive URLs (#9472)
DaniPopes Dec 3, 2024
805d7ce
docs: CoverageCollector comments (#9474)
DaniPopes Dec 3, 2024
3a1e76b
fix(`cli`): handle id and named chain_id's correctly (#9480)
yash-atreya Dec 4, 2024
8ac30d9
feat: dedup error messages (#9481)
DaniPopes Dec 4, 2024
2c9719e
chore(anvil): convert panics into errors (#9471)
DaniPopes Dec 4, 2024
25c978a
fix(remappings): project autoremappings should respect config (#9466)
grandizzy Dec 4, 2024
3784cd8
refactor: adapt to CompilerContract trait type (#9423)
elfedy Dec 4, 2024
75fc63b
chore(deps): bump foundry-compilers 0.12.6 (#9490)
DaniPopes Dec 4, 2024
ce9fca2
chore: rename alphanet to odyssey (#9491)
mattsse Dec 5, 2024
a4de7e8
feat: add JSON compatibility for `forge test --summary +/ --detailed`…
zerosnacks Dec 5, 2024
c161c7c
fix: force `prevrandao` on Moonbeam networks (#9489)
mattsse Dec 5, 2024
8c03318
chore(cast): upgrade evmole to 0.6.1, use new style API (#9493)
cdump Dec 5, 2024
e264381
chore: bump compilers 0.12.7 (#9498)
mattsse Dec 5, 2024
4f9f904
chore(deps): bump breaking deps (#9502)
DaniPopes Dec 5, 2024
43a033d
chore: improve Retry usage and warning (#9503)
DaniPopes Dec 5, 2024
92cd165
fix: restore lock version 3 (#9501)
DaniPopes Dec 5, 2024
e520767
chore(deps): remove async_recursion (#9500)
DaniPopes Dec 5, 2024
63484d0
feat(`cheatcodes`): count assertion for `expectRevert` (#9484)
yash-atreya Dec 6, 2024
00efa0d
feat(cheatcodes): add `vm.getStateDiff` to get state diffs as string …
grandizzy Dec 6, 2024
2e56b8f
fix(verify): cached artifacts by version (#9520)
grandizzy Dec 9, 2024
aa69ed1
ci: move deny to test (#9524)
DaniPopes Dec 9, 2024
fd9ee16
chore: bump alloy (#9496)
mattsse Dec 10, 2024
b090638
fix(cheatcodes): clear orderings together with trace steps on debug t…
grandizzy Dec 10, 2024
0eff1ef
feat(cheatcodes): skip test suite in setup (#9532)
grandizzy Dec 10, 2024
91030da
fix: mark flag incompatibility (#9530)
zerosnacks Dec 10, 2024
09894ef
chore(deps): weekly `cargo update` (#9533)
github-actions[bot] Dec 10, 2024
59f354c
fix(fuzz): exclude exernal libraries addresses from fuzz inputs (#9527)
grandizzy Dec 10, 2024
c4fcf12
Update incorrect documentation in the READ.me (#9538)
jtfirek Dec 11, 2024
539760c
fix(`anvil`): set `best_number` to `state.block.number` if greater (#…
yash-atreya Dec 12, 2024
2eec098
fix(`cast`): reset `env.tx.caller` for impersonated txs (#9544)
yash-atreya Dec 12, 2024
e22a9ec
chore: Add GH attestation for foundry binaries (#9546)
grandizzy Dec 12, 2024
2f698e4
fix(release): allow contents write permission, run attestation after …
grandizzy Dec 13, 2024
1276f58
chore: bump compilers (#9554)
klkvr Dec 13, 2024
dabacec
fix: account for impersonated tx in configure_tx_env (#9553)
yash-atreya Dec 13, 2024
233bff2
fix: read rpc config when using fork cheatcodes (#9547)
anukul Dec 14, 2024
206dab2
chore(deps): weekly `cargo update` (#9560)
github-actions[bot] Dec 15, 2024
681bddd
feat(cast): add support for beacon proxies in cast impl (#9567)
0xvv Dec 17, 2024
6b07c77
feat(`cheatcodes`): count assertion for `expectEmit` (#9405)
yash-atreya Dec 17, 2024
0086d04
fix(release): check `env.IS_NIGHTLY` as string (#9568)
grandizzy Dec 18, 2024
8a08a3a
Run release workflow on stable tag push (#9575)
grandizzy Dec 18, 2024
6c4af1d
chore: update release notes template (#9577)
grandizzy Dec 19, 2024
a263a92
chore: add contributors in release changelog (#9578)
grandizzy Dec 19, 2024
af52b80
feat(foundryup): allow multiple installed versions (#9551)
grandizzy Dec 19, 2024
f3b5ac7
chore: bump workspace version to `0.3.0` (#9580)
zerosnacks Dec 19, 2024
7ac0502
Update CI workflow template to unpin from `nightly` explicitly, relyi…
zerosnacks Dec 19, 2024
5a8bd89
chore: testFail* deprecation warning (#9581)
yash-atreya Dec 19, 2024
6091f25
chore(tests): bump forge-std version (#9584)
github-actions[bot] Dec 20, 2024
0d5ad75
chore(`foundryup`): default to stable if no specific version is passe…
zerosnacks Dec 20, 2024
f922a34
chore(deps): weekly `cargo update` (#9588)
github-actions[bot] Dec 22, 2024
3ba3d5f
feat(cast): pretty print other receipt fields (#9589)
jsvisa Dec 24, 2024
0caabdd
chore(deps): weekly `cargo update` (#9599)
github-actions[bot] Dec 29, 2024
ffaa68f
chore: make clippy happy (#9601)
mattsse Dec 29, 2024
4f22a38
chore(fmt): tx fields indent with the same whitespaces (#9603)
jsvisa Dec 30, 2024
e618b2c
chore: fix flaky inline config test (#9591)
grandizzy Dec 30, 2024
68aff72
feat: update revm 19 alloy 09 (#9605)
mattsse Dec 30, 2024
03ec595
chore(deps): bump alloys (#9613)
DaniPopes Jan 2, 2025
6cb41fe
add comment to `-r` option about default value (#9571)
zhiqiangxu Jan 2, 2025
8555f16
fix(anvil): ipc append a newline (#9608)
9547 Jan 3, 2025
caf8455
chore: dedup errors in eyre handler (#9612)
DaniPopes Jan 3, 2025
f7bb427
fix(`evm`): P256Verify address (#9618)
yash-atreya Jan 3, 2025
15940fc
typo: EtherScan -> Etherscan (#9607)
9547 Jan 3, 2025
8cc2079
chore(git): enhance rust diffing (#9596)
sambacha Jan 3, 2025
c66fd40
chore(deps): weekly `cargo update` (#9623)
github-actions[bot] Jan 5, 2025
2e9d849
chore(`config`): use solar for inline config parsing (#9615)
yash-atreya Jan 5, 2025
a5c5be5
chore(`bind-json`): replace solang with solar (#9616)
yash-atreya Jan 5, 2025
15a9f17
chore(deps): bump solar 0.1.1 (#9627)
DaniPopes Jan 6, 2025
dc8d980
chore(forge): remove `forge debug` subcommand (#9606)
9547 Jan 6, 2025
782787b
feat(test): add repro issue8566 testcase (#9617)
9547 Jan 6, 2025
e4fdc45
chore: standardize use of `opts` / `args` (#9629)
zerosnacks Jan 6, 2025
e3ff6cb
fix: re-remove forge `debug` file (#9631)
zerosnacks Jan 6, 2025
5e72c69
feat: remove ethers (#9412)
grandizzy Jan 6, 2025
d2dbe3e
fix(ens): don't resolve addr if doesn't contain . (#9635)
9547 Jan 7, 2025
95442fa
feat(`verify`): default to sourcify if etherscan key not provided (#9…
yash-atreya Jan 7, 2025
ad09bbe
chore(`forge`): rm regex for --debug and --decode-internal (#9572)
yash-atreya Jan 8, 2025
b3cd2ab
fix(cheatcode): use storage access address instead account access (#9…
grandizzy Jan 8, 2025
49392b5
Feat: Add `cast chain` support for `ink` & `ink-sepolia` (#9652)
CruzMolina Jan 8, 2025
70cd140
chore(deps): bump `alloy-chains` (#9653)
CruzMolina Jan 8, 2025
82cf61d
fix: do not remove `snapshots` directory before running the test suit…
zerosnacks Jan 9, 2025
6cbf390
fix(cheatcodes): record state diff only if balance changed (#9658)
grandizzy Jan 9, 2025
39f13df
fix(config): disable optimizer by default (#9657)
grandizzy Jan 9, 2025
af9ceec
fix: incorrect repo link in readme for foundry-compilers (#9660)
DrakeEvans Jan 9, 2025
192aa2c
feat: add arm64 docker image (#9614)
jsvisa Jan 9, 2025
0cc5355
chore: fix test isolate, different address for caller (#9663)
grandizzy Jan 10, 2025
6f81e76
fix: set debug none for release profile (#9664)
grandizzy Jan 10, 2025
761d9e1
chore(deps): weekly `cargo update` (#9668)
github-actions[bot] Jan 12, 2025
be34f5b
chore(clippy): use next_back instead of last for DoubleEndedIterator …
jsvisa Jan 12, 2025
b6c094c
fix: error handling with retries when waiting for receipt (#9650)
grandizzy Jan 13, 2025
ba505df
chore: use "full" for debug (#9670)
DaniPopes Jan 13, 2025
c42d08d
chore: don't warn in RetryError::Continue (#9671)
DaniPopes Jan 13, 2025
aa0161e
test: increase nextest backoff (#9672)
DaniPopes Jan 13, 2025
e7a0693
fix(`script`): use fork_block_number for init sender nonce (#9669)
yash-atreya Jan 13, 2025
92fefaf
feat(foundryup): add foundryup self-update (#9609)
9547 Jan 13, 2025
017c59d
fix(`config`): enable `optimizer` when `optimizer_runs` set in config…
yash-atreya Jan 13, 2025
5b4a105
fix: propagate color config to TraceWriter (#9679)
DaniPopes Jan 14, 2025
ff2c564
feat(foundryup): check for running processes (#9680)
grandizzy Jan 14, 2025
41c6653
chore: add version number to `foundryup` (#9681)
zerosnacks Jan 14, 2025
9829054
fix(config): normalize optimizer settings (#9689)
grandizzy Jan 16, 2025
55badd4
ci: use reusable cargo update workflow (#9690)
DaniPopes Jan 16, 2025
73becfb
chore(deps): bump svm 0.5.10 (#9700)
DaniPopes Jan 17, 2025
00c944b
fix(verify): strip profile from contract name (#9699)
grandizzy Jan 17, 2025
1f48a34
feat(`forge`): `--watch` coverage (#9702)
yash-atreya Jan 17, 2025
b0630f9
feat: filter by profile in `vm.getCode` (#9714)
klkvr Jan 18, 2025
18cb6f9
feat(chisel): determine proper path to Vm.sol based on proj remapping…
grandizzy Jan 19, 2025
a038646
chore(deps): weekly `cargo update` (#9715)
github-actions[bot] Jan 19, 2025
90a5fdf
Fix rewrite of User-Agent header (#9707)
vbrvk Jan 20, 2025
3739859
refactor: properly handle config load errors (#9713)
DaniPopes Jan 20, 2025
1ef98bf
chore: bump version to 0.3.1 to make it easier to identify non-stable…
zerosnacks Jan 20, 2025
2ddea87
fix(invariant): handle simple contract names in metrics table (#9724)
grandizzy Jan 21, 2025
62147c8
chore: display warning to user if running `nightly` version (#9683)
zerosnacks Jan 21, 2025
f94ce46
fix(forge): allow install private deps with https and gh token (#9726)
grandizzy Jan 21, 2025
fea3885
fix: release process (#9728)
zerosnacks Jan 21, 2025
5993795
feat: allow remapping of solidity files (#9604)
jsvisa Jan 21, 2025
423644e
fix(`forge`): disable artifacts for coverage (#9692)
yash-atreya Jan 21, 2025
75462d9
fix: respect `disable_block_gas_limit` config key (#9732)
klkvr Jan 21, 2025
5d16800
chore: bump compilers (#9735)
klkvr Jan 22, 2025
aa04294
feat(cheatcodes): add ability to ignore (multiple) specific and parti…
emo-eth Jan 22, 2025
36393fb
fix: use custom build profile in --version (#9733)
Rjected Jan 22, 2025
9ac89d4
feat(script): show the broadcasted transactions when verbose>=4 (#9655)
jsvisa Jan 22, 2025
a3bfdbd
chore: remove redundant `test.sol` (#9736)
zerosnacks Jan 22, 2025
712bf5f
chore: pass and read tag as `CARGO_TAG_NAME` for cross build (#9738)
grandizzy Jan 22, 2025
34ab235
fix(remappings): ignore conflicting remappings (#9521)
grandizzy Jan 22, 2025
c22c4cc
feat(`forge`): inspect - default to pretty output (#9705)
yash-atreya Jan 23, 2025
b026f7a
fix(invariant): lookup fuzz interface abi by name or identifier (#9744)
grandizzy Jan 23, 2025
6d9e615
feat(foundryup): manage custom built versions (#9746)
grandizzy Jan 23, 2025
36d1a1b
fix(foundryup): set proper version for use call (#9750)
grandizzy Jan 23, 2025
b03dd22
chore: stop supporting legacy console.sol signatures (#8910)
DaniPopes Jan 24, 2025
0821048
chore(deps): weekly `cargo update` (#9755)
github-actions[bot] Jan 26, 2025
ca466ae
fix(cheatcode): expect revert only for calls with greater depth than …
grandizzy Jan 27, 2025
b081d66
fix(`forge bind`): prefix keyword mod names with `r#` (#9761)
yash-atreya Jan 27, 2025
5261dc1
feat(`cast source`): support alternative explorers (#9762)
yash-atreya Jan 27, 2025
66e3648
feat: override the eyre display handler globally (#9766)
DaniPopes Jan 27, 2025
58166ca
ci: set RUST_BACKTRACE=full (#9767)
DaniPopes Jan 27, 2025
4d1f72b
perf(coverage): use u32 for IDs, improve analysis (#9763)
DaniPopes Jan 28, 2025
58900d8
fix(coverage): keep EVM version when normalizing for ir-minimum (#9768)
DaniPopes Jan 28, 2025
9b3d2d7
chore: update README for `1.0` (#9540)
zerosnacks Jan 28, 2025
7e58d59
chore: remove ahash (#9769)
DaniPopes Jan 28, 2025
2509ce2
chore(deps): breaking bumps (#9773)
DaniPopes Jan 28, 2025
f3548cb
chore: install deps and create foundry user in cross built image (#9775)
grandizzy Jan 28, 2025
c9b16c0
chore: fix isolate tests (#9776)
grandizzy Jan 29, 2025
9d7c40e
fix: correctly set `gas_limit` reported by Anvil (#9774)
zerosnacks Jan 29, 2025
ca4740e
fix(docker): revert to use ubuntu:22.04 as base image (#9777)
grandizzy Jan 29, 2025
ed63f34
fix(cheatcode): support new 7702 spec (#9779)
grandizzy Jan 29, 2025
9f11e6d
fix: avoid returning None for library addresses during fuzzing (#9771)
nbaztec Jan 29, 2025
1904216
chore: fix clippy (#9790)
grandizzy Jan 30, 2025
fbfd9bc
feat(anvil): implement `anvil_rollback` (#9783)
jorgemmsilva Jan 30, 2025
dbf1c2a
docs(cast): clean up index docs (#9792)
DaniPopes Jan 30, 2025
fe92e7e
feat: add `gas_snapshot_check` flag to config, fix `FORGE_SNAPSHOT_CH…
zerosnacks Jan 30, 2025
abf269e
feat(`forge`): remove `testFail*` (#9574)
yash-atreya Jan 31, 2025
7c3bf09
fix: use sequence for rollback (#9795)
mattsse Jan 31, 2025
685631b
chore: ignore solady CI failure in win (#9797)
grandizzy Jan 31, 2025
3d48000
fix(trace_filter): allow params to be object or array with len 1 (#9793)
dwerner Jan 31, 2025
56c1670
chore: point forge-std ext test to latest main (#9799)
grandizzy Jan 31, 2025
9517128
chore: generate release notes from latest stable (#9801)
grandizzy Jan 31, 2025
871eaaa
chore: update version numbers for `v1.0.0-rc` (#9802)
zerosnacks Jan 31, 2025
14e09e3
feat(cast): update polygon testnet chain and add polygon zkevm chains…
leovct Jan 31, 2025
8692e92
chore: ci release on rc tag (#9805)
grandizzy Jan 31, 2025
60f0b69
chore: update pull request template (#9804)
zerosnacks Jan 31, 2025
f126beb
chore(deps): weekly `cargo update` (#9809)
github-actions[bot] Feb 2, 2025
79e3ee8
chore: replace maili with op-alloy (#9810)
mattsse Feb 2, 2025
07db82e
chore(deps): bump alloy 0.11 (#9798)
mattsse Feb 2, 2025
3c6d0ec
chore(tests): bump forge-std version (#9808)
github-actions[bot] Feb 2, 2025
aee9f47
test: misc test improvements (#9812)
DaniPopes Feb 2, 2025
0e519ff
chore: tweak coverage warnings (#9814)
DaniPopes Feb 2, 2025
d071cb1
test: update config with a closure (#9813)
DaniPopes Feb 3, 2025
1b7b6c2
chore: update ext integration tests (#9811)
grandizzy Feb 3, 2025
6e919af
fix(forge): allow `forge init --template` to work with `--no-commit` …
antazoey Feb 3, 2025
f6133f9
feat(invariant): on failures show original and current sequence len (…
grandizzy Feb 3, 2025
be5e714
fix(cast): try decoding custom errors when execution reverted in cast…
grandizzy Feb 4, 2025
fec2064
chore: remove rustls/openssl features (#9824)
DaniPopes Feb 4, 2025
96fc6b9
chore: fix base gas limit test (#9826)
grandizzy Feb 5, 2025
d65ede5
fix: mark metis as different gas calc (#9834)
mattsse Feb 6, 2025
1baa9e6
feat: add mathjax support to forge doc mdbook config (#9829)
JayWhite2357 Feb 6, 2025
867484f
fix(foundryup): install for user names with empty space (#9835)
grandizzy Feb 6, 2025
c4ae688
feat(invariant): generate failed call sequence as solidity (#9827)
grandizzy Feb 6, 2025
1d5fa64
chore: bump compilers, fix #9788 (#9836)
grandizzy Feb 6, 2025
5f6bd20
feat: add way to disable emitting of gas snapshots to disk (#9710)
turbocrime Feb 7, 2025
2b107e5
chore(deps): weekly `cargo update` (#9843)
github-actions[bot] Feb 9, 2025
67be473
feat(`forge fmt`): add watch mode (#9838)
PanGan21 Feb 10, 2025
db3d9fc
feat(`common`): `PathOrContractInfo` arg type (#9770)
yash-atreya Feb 10, 2025
55785b7
fix(forge): decode fallbacks with calldata (#9859)
grandizzy Feb 11, 2025
1bcd17c
feat: add `--alloy-rev` and fix `forge bind` re-run on built project …
zerosnacks Feb 11, 2025
e88e563
feat(forge): add option to suppress successful tests traces (#9865)
grandizzy Feb 12, 2025
04937cd
chore(deps): bump alloy to `0.11.1` (#9866)
yash-atreya Feb 12, 2025
330c9b9
chore: fix release flow (#9869)
zerosnacks Feb 12, 2025
c0664e8
fix: pin to `macos-13-large` for release flow to support old SDK vers…
zerosnacks Feb 12, 2025
d158b9c
fix release: Pin tonistiigi/binfmt iamge (#9872)
grandizzy Feb 12, 2025
aece6f4
chore: fix isolate tests (#9877)
grandizzy Feb 13, 2025
e5ec47b
fix(anvil): return nonce and signature for deposit tx type (#9883)
jakim929 Feb 13, 2025
6b3cf56
feat(`forge`): don't commit installations by default (#9884)
yash-atreya Feb 14, 2025
24d18e2
chore: fix flaky tests due to different totalDifficulty reported (#9889)
grandizzy Feb 14, 2025
91740aa
fix(inspect): add flag to strip ir comments (#9825)
grandizzy Feb 14, 2025
29cba10
fix(forge): flatten fails on top-level event declarations (#9892)
grandizzy Feb 14, 2025
51b75c8
feat(`anvil`): emit warning server side on failing request (#9890)
zerosnacks Feb 14, 2025
5af4630
chore(deps): weekly `cargo update` (#9898)
github-actions[bot] Feb 17, 2025
b184ebd
fix: add support for inline `isolate` configuration (#9904)
zerosnacks Feb 17, 2025
3d393b6
fix(config): enable optimizer if optimizer runs > 0 in additional pro…
grandizzy Feb 17, 2025
ac982da
feat: bump `alpine=3.21` in Dockerfile (#9907)
gnapoli23 Feb 18, 2025
1946c2d
chore: update rpc keys (#9910)
grandizzy Feb 18, 2025
087c676
feat(`cast age`): clarify block timestamp is UTC to allow for `date` …
zerosnacks Feb 18, 2025
fdd78d9
fix(`forge`): catch faulty test constructors (#9909)
yash-atreya Feb 18, 2025
7e8c6e9
feat: add `vm.foundryVersionCmp` and `vm.foundryVersionAtLeast` cheat…
startup-dreamer Feb 18, 2025
97e2ebb
chore: version cmp cheatcodes clean up (#9914)
DaniPopes Feb 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 8 additions & 12 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
[alias]
cheats = "test -p foundry-cheatcodes-spec --features schema tests::"
test-debugger = "test -p forge --test cli manual_debug_setup -- --include-ignored --nocapture"

# Increase the stack size to 10MB for Windows targets, which is in line with Linux
# (whereas default for Windows is 1MB).
[target.x86_64-pc-windows-msvc]
rustflags = [
# Increases the stack size to 10MB, which is
# in line with Linux (whereas default for Windows is 1MB)
"-C",
"link-arg=/STACK:10000000",
]
rustflags = ["-Clink-arg=/STACK:10000000"]

[target.i686-pc-windows-msvc]
rustflags = [
# Increases the stack size to 10MB, which is
# in line with Linux (whereas default for Windows is 1MB)
"-C",
"link-arg=/STACK:10000000",
]
rustflags = ["-Clink-arg=/STACK:10000000"]
3 changes: 3 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[codespell]
skip = .git,target,testdata,Cargo.toml,Cargo.lock
ignore-words-list = crate,ser,ratatui,Caf,froms,strat
11 changes: 11 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[profile.default]
retries = { backoff = "exponential", count = 2, delay = "3s", jitter = true }
slow-timeout = { period = "1m", terminate-after = 3 }

[[profile.default.overrides]]
filter = "test(/ext_integration|can_test_forge_std/)"
slow-timeout = { period = "5m", terminate-after = 4 }

[[profile.default.overrides]]
filter = "package(foundry-cheatcodes-spec)"
retries = 0
7 changes: 4 additions & 3 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# auto-detection may fail for human-readable files, like the ones in abi/abi/*.sol
**/*.sol linguist-language=Solidity
crates/cheatcodes/assets/*.json linguist-generated
testdata/cheats/Vm.sol linguist-generated

crates/abi/src/bindings/*.rs linguist-generated
# See <https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header>
*.rs diff=rust
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @danipopes @klkvr @mattsse @grandizzy @yash-atreya @zerosnacks
6 changes: 3 additions & 3 deletions .github/INTEGRATION_FAILURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ title: "bug: long-running integration tests failed"
labels: P-high, T-bug
---

The heavy (long-running) integration tests have failed. This indicates a regression in foundry.
The heavy (long-running) integration tests have failed. This indicates a regression in Foundry.

Check the [heavy integration tests workflow page]({{env.WORKFLOW_URL}}) for details.
Check the [heavy integration tests workflow page]({{ env.WORKFLOW_URL }}) for details.

This issue was raised by the workflow at `.github/workflows/heavy-integration.yml`.
This issue was raised by the workflow at `.github/workflows/heavy-integration.yml`.
8 changes: 6 additions & 2 deletions .github/ISSUE_TEMPLATE/BUG-FORM.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Bug report
description: File a bug report
labels: ["T-bug"]
labels: ["T-bug", "T-needs-triage"]
body:
- type: markdown
attributes:
Expand Down Expand Up @@ -32,6 +32,10 @@ body:
attributes:
label: What version of Foundry are you on?
placeholder: "Run forge --version and paste the output here"
- type: input
attributes:
label: What version of Foundryup are you on?
placeholder: "Run foundryup --version and paste the output here"
- type: input
attributes:
label: What command(s) is the bug in?
Expand All @@ -51,4 +55,4 @@ body:
label: Describe the bug
description: Please include relevant Solidity snippets as well if relevant.
validations:
required: true
required: true
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/FEATURE-FORM.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Feature request
description: Suggest a feature
labels: ["T-feature"]
labels: ["T-feature", "T-needs-triage"]
body:
- type: markdown
attributes:
Expand Down
13 changes: 13 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,15 @@ Thank you for your Pull Request. Please provide a description above and review
the requirements below.

Bug fixes and new features should include tests.

Contributors guide: https://github.com/foundry-rs/foundry/blob/master/CONTRIBUTING.md

The contributors guide includes instructions for running rustfmt and building the
documentation.
-->

<!-- ** Please select "Allow edits from maintainers" in the PR Options ** -->

## Motivation

<!--
Expand All @@ -19,3 +26,9 @@ thought of as being the motivation for your change.
Summarize the solution and provide any necessary context needed to understand
the code change.
-->

## PR Checklist

- [ ] Added Tests
- [ ] Added Documentation
- [ ] Breaking changes
4 changes: 2 additions & 2 deletions .github/RELEASE_FAILURE_ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ labels: P-high, T-bug

The release workflow has failed. Some or all binaries might have not been published correctly.

Check the [release workflow page]({{env.WORKFLOW_URL}}) for details.
Check the [release workflow page]({{ env.WORKFLOW_URL }}) for details.

This issue was raised by the workflow at `.github/workflows/release.yml`.
This issue was raised by the workflow at `.github/workflows/release.yml`.
Binary file added .github/assets/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/build_benchmark_solady_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/build_benchmark_solady_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
64 changes: 57 additions & 7 deletions .github/changelog.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,66 @@
{
"categories": [
{
"title": "## Features",
"labels": ["T-feature"]
"title": "## Breaking changes",
"labels": ["T-likely-breaking "]
},
{
"title": "## Fixes",
"labels": ["T-bug", "T-fix"]
"title": "## Anvil Features",
"labels": ["C-anvil", "T-feature"],
"exhaustive": true,
"exhaustive_rules": false
},
{
"title": "## Anvil Fixes",
"labels": ["C-anvil", "T-bug"],
"exhaustive": true,
"exhaustive_rules": false
},
{
"title": "## Cast Features",
"labels": ["C-cast", "T-feature"],
"exhaustive": true,
"exhaustive_rules": false
},
{
"title": "## Cast Fixes",
"labels": ["C-cast", "T-bug"],
"exhaustive": true,
"exhaustive_rules": false
},
{
"title": "## Chisel Features",
"labels": ["C-chisel", "T-feature"],
"exhaustive": true,
"exhaustive_rules": false
},
{
"title": "## Chisel Fixes",
"labels": ["C-chisel", "T-bug"],
"exhaustive": true,
"exhaustive_rules": false
},
{
"title": "## Forge Features",
"labels": ["C-forge", "T-feature"],
"exhaustive": true,
"exhaustive_rules": false
},
{
"title": "## Forge Fixes",
"labels": ["C-forge", "T-bug"],
"exhaustive": true,
"exhaustive_rules": false
},
{
"title": "## Performance improvements",
"labels": ["T-perf"]
}
],
"ignore_labels": ["L-ignore"],
"template": "${{CHANGELOG}}\n## Other\n\n${{UNCATEGORIZED}}",
"pr_template": "- ${{TITLE}} (#${{NUMBER}})",
"empty_template": "- No changes"
"template": "${{CHANGELOG}}\n## Other\n\n${{UNCATEGORIZED}}\n## Full Changelog:\n ${{RELEASE_DIFF}}",
"pr_template": "- ${{TITLE}} (#${{NUMBER}}) by @${{AUTHOR}}",
"empty_template": "- No changes",
"max_pull_requests": 500,
"max_back_track_time_days": 120
}
Binary file removed .github/demo.gif
Binary file not shown.
Binary file removed .github/logo.png
Binary file not shown.
7 changes: 7 additions & 0 deletions .github/scripts/format.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -eo pipefail

# We have to ignore at shell level because testdata/ is not a valid Foundry project,
# so running `forge fmt` with `--root testdata` won't actually check anything
cargo run --bin forge -- fmt "$@" \
$(find testdata -name '*.sol' ! -name Vm.sol ! -name console.sol)
146 changes: 146 additions & 0 deletions .github/scripts/matrices.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
#!/usr/bin/env python3

import json
import os


# A runner target
class Target:
# GHA runner
runner_label: str
# Rust target triple
target: str
# SVM Solc target
svm_target_platform: str

def __init__(self, runner_label: str, target: str, svm_target_platform: str):
self.runner_label = runner_label
self.target = target
self.svm_target_platform = svm_target_platform


# A single test suite to run.
class Case:
# Name of the test suite.
name: str
# Nextest filter expression.
filter: str
# Number of partitions to split the test suite into.
n_partitions: int
# Whether to run on non-Linux platforms for PRs. All platforms and tests are run on pushes.
pr_cross_platform: bool

def __init__(
self, name: str, filter: str, n_partitions: int, pr_cross_platform: bool
):
self.name = name
self.filter = filter
self.n_partitions = n_partitions
self.pr_cross_platform = pr_cross_platform


# GHA matrix entry
class Expanded:
name: str
runner_label: str
target: str
svm_target_platform: str
flags: str
partition: int

def __init__(
self,
name: str,
runner_label: str,
target: str,
svm_target_platform: str,
flags: str,
partition: int,
):
self.name = name
self.runner_label = runner_label
self.target = target
self.svm_target_platform = svm_target_platform
self.flags = flags
self.partition = partition


profile = os.environ.get("PROFILE")
is_pr = os.environ.get("EVENT_NAME") == "pull_request"
t_linux_x86 = Target("ubuntu-latest", "x86_64-unknown-linux-gnu", "linux-amd64")
# TODO: Figure out how to make this work
# t_linux_arm = Target("ubuntu-latest", "aarch64-unknown-linux-gnu", "linux-aarch64")
t_macos = Target("macos-latest", "aarch64-apple-darwin", "macosx-aarch64")
t_windows = Target("windows-latest", "x86_64-pc-windows-msvc", "windows-amd64")
targets = [t_linux_x86, t_windows] if is_pr else [t_linux_x86, t_macos, t_windows]

config = [
Case(
name="unit",
filter="!kind(test)",
n_partitions=1,
pr_cross_platform=True,
),
Case(
name="integration",
filter="kind(test) & !test(/\\b(issue|ext_integration)/)",
n_partitions=3,
pr_cross_platform=True,
),
Case(
name="integration / issue-repros",
filter="package(=forge) & test(/\\bissue/)",
n_partitions=2,
pr_cross_platform=False,
),
Case(
name="integration / external",
filter="package(=forge) & test(/\\bext_integration/)",
n_partitions=2,
pr_cross_platform=False,
),
]


def main():
expanded = []
for target in targets:
for case in config:
if is_pr and (not case.pr_cross_platform and target != t_linux_x86):
continue

for partition in range(1, case.n_partitions + 1):
os_str = ""
if len(targets) > 1:
os_str = f" ({target.target})"

name = case.name
flags = f"-E '{case.filter}'"
if case.n_partitions > 1:
s = f"{partition}/{case.n_partitions}"
name += f" ({s})"
flags += f" --partition count:{s}"

if profile == "isolate":
flags += " --features=isolate-by-default"
name += os_str

obj = Expanded(
name=name,
runner_label=target.runner_label,
target=target.target,
svm_target_platform=target.svm_target_platform,
flags=flags,
partition=partition,
)
expanded.append(vars(obj))

print_json({"include": expanded})


def print_json(obj):
print(json.dumps(obj), end="", flush=True)


if __name__ == "__main__":
main()
Loading
Loading