Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
246 commits
Select commit Hold shift + click to select a range
c0914e4
fix(forge): coverage for contracts with ctor with args (#10270)
grandizzy Apr 8, 2025
dc9ff38
feat(forge): allow invariant contract address as targetContract (#10274)
grandizzy Apr 8, 2025
94ba51d
feat: improve uninformative error messages (#10201)
GarmashAlex Apr 8, 2025
5bd034f
fix(forge): trace identify by creation code with stripped args (#10271)
grandizzy Apr 9, 2025
25c363e
Force `prevrandao` on Rootstock network (#10279)
ahsan-javaiid Apr 9, 2025
7825a06
feat(abi): Implement UIfmt for DSTest console logs (#10185)
VolodymyrBg Apr 9, 2025
b53e6a9
refactor: signatures identifier, trace decoding (#10282)
DaniPopes Apr 10, 2025
bfb1cb6
fix: add workaround for unlinked artifacts (#10291)
mattsse Apr 11, 2025
8f38753
chore: bump upcoming version 1.1.0 (#10292)
grandizzy Apr 11, 2025
2564718
test: add a test case for RevertDecoder (#10294)
DaniPopes Apr 11, 2025
f0e24fb
chore(deps): weekly `cargo update` (#10297)
github-actions[bot] Apr 15, 2025
314eded
fix(forge): do not set balance as apparent value in delegate prank (#…
grandizzy Apr 15, 2025
9e43abb
chore: release 1.1.0 - update last stable version (#10303)
grandizzy Apr 15, 2025
8d5c36f
fix(docker): build docker aarch64 without jemalloc (#10286)
grandizzy Apr 15, 2025
b75625a
fix(forge): ensure selected fork contains init state for persisted ac…
grandizzy Apr 15, 2025
9932680
chore(anvil): spawn estimate on blocking task (#10307)
mattsse Apr 15, 2025
a85488a
chore: rm redundant clone (#10308)
nkysg Apr 15, 2025
ac724c2
fix(forge): avoid preprocessor constructor args struct name conflict …
grandizzy Apr 16, 2025
09970aa
chore: trigger releases on rc-* tags too (#10315)
grandizzy Apr 16, 2025
1da4d32
feat: add vm.getChain(chainAlias) (#10226)
redtrama Apr 16, 2025
23b1cbd
feat(`cast`): getTransactionBySenderAndNonce (#10323)
yash-atreya Apr 17, 2025
709f266
fix: force install default crypto provider (#10327)
mattsse Apr 17, 2025
8d52dde
Support the `gcp` option in `cast wallet list` (#8232)
moricho Apr 18, 2025
41506ca
feat: add serde derive to forge bind (#10332)
0xcomfycat Apr 18, 2025
f76309d
fix(forge): avoid panic on internal decoding of linked tests (#10333)
grandizzy Apr 18, 2025
1ae64e3
chore(deps): weekly `cargo update` (#10339)
github-actions[bot] Apr 20, 2025
8690fef
fix(forge): run git submodule sync when installing (#10347)
grandizzy Apr 22, 2025
1af5f85
chore(`release`): add `gcp-kms` flag to default release workflow (#10…
zerosnacks Apr 22, 2025
e988893
feat(forge): add new cheatcode `attachBlob` to send EIP-4844 transact…
0xcomfycat Apr 22, 2025
055b0ea
feat(script): revert if address(this) used (#10295)
gap-editor Apr 23, 2025
77aec59
feat(cast): Include recover_authority when logging SignedAuthorizatio…
naijauser Apr 23, 2025
70ded2b
chore: fix isolate tests (#10344)
grandizzy Apr 23, 2025
55802ba
Add state overrides flags to cast call (#10255)
tushar994 Apr 23, 2025
7af634b
chore(deps): weekly `cargo update` (#10381)
github-actions[bot] Apr 27, 2025
8ee5205
chore(deps): replace inflector with heck (#10386)
DaniPopes Apr 27, 2025
ef27f1c
chore(deps): switch to proc-macro-error2 (#10387)
DaniPopes Apr 27, 2025
d8814d3
chore(deps): remove serde_regex (#10389)
DaniPopes Apr 27, 2025
a914bb5
chore(deps): use unicode-rs as the idna backend (#10390)
DaniPopes Apr 27, 2025
7ed7e16
test(anvil): fix flaky test (#10391)
DaniPopes Apr 27, 2025
f9d8b9c
test: move serial_tests to nextest test groups (#10392)
DaniPopes Apr 27, 2025
9ef4053
chore: metadata hash extraction cleanup (#10396)
DaniPopes Apr 28, 2025
272e409
chore(deps): replace humantime with jiff (#10395)
DaniPopes Apr 28, 2025
1a5ff59
feat(forge): script warn if no transactions to broadcast (#10384)
Ayushdubey86 Apr 28, 2025
d4d2cc8
Update to soldeer 0.5.4 (#10399)
mario-eth Apr 28, 2025
96f6ffe
fix(forge): do not use bytecode metadata in fuzz dict (#10402)
grandizzy Apr 29, 2025
d5860bd
chore: fix anvil immutable fork test (#10409)
grandizzy Apr 29, 2025
c700851
chore(tests): bump forge-std version (#10406)
github-actions[bot] Apr 29, 2025
47cd856
chore: update `std::process::exit(0)` calls in `ProjectCompiler::comp…
Pronoss Apr 29, 2025
f3b9eaf
fix(anvil): trace_filter same to and from block range is valid (#10400)
0xdapper Apr 29, 2025
fa55caa
Apply access list to tracing executor for 'cast call --trace' (#10161)
svenski123 Apr 29, 2025
a63dbe2
chore: minor changes (#10415)
DaniPopes Apr 29, 2025
378ded1
feat(forge): add `vm.stopRecord` (#10370)
tushar994 Apr 30, 2025
497b6ee
feat(forge): add script execution protection config (#10408)
grandizzy Apr 30, 2025
96c40b6
feat: add Alpine Linux support to foundryup (#10257)
daramir Apr 30, 2025
b28c2b2
fix(forge): show lcov hits for do while statements (#10423)
grandizzy May 1, 2025
33cb8d2
feat: Add file option for calldata input (#10397)
Ayushdubey86 May 2, 2025
cc3a3f8
chore: update immutable forked test (#10439)
grandizzy May 5, 2025
97724af
chore(deps): weekly `cargo update` (#10433)
github-actions[bot] May 6, 2025
a34f4c9
fix(forge): remove `strategy` section from workflow template to simpl…
winor30 May 6, 2025
c2c4b77
core: sprinkle some traces (#10456)
mattsse May 7, 2025
0f87460
feat: Etherscan V2 support (#10440)
grandizzy May 8, 2025
62e880a
feat: solc 0.8.30 (#10459)
DaniPopes May 8, 2025
292d248
chore: add OpRetro to funding.json (#10462)
yash-atreya May 8, 2025
81b4679
fix: add check for conflicting create (#10467)
mattsse May 8, 2025
15d3970
test(`cast`): add and enable negative octal formatting test (#10468)
torrpriius May 8, 2025
9e5f4b9
perf: spawn mining on blocking (#10471)
mattsse May 8, 2025
11f937f
chore: replaced trie with alloy-trie (#10478)
Rimeeeeee May 9, 2025
90a8746
fix(forge): Set empty code if the 7702 delegation address is 0x (#10481)
grandizzy May 9, 2025
19ecdde
chore: rm work type (#10474)
mattsse May 9, 2025
cc50b16
chore: rm unused account type (#10472)
mattsse May 9, 2025
026b351
replaced default with calculate (#10236)
Rimeeeeee May 10, 2025
48533bb
feat: add devcontainer (#10429)
just-mitch May 10, 2025
59030b8
feat: added TransactionStream to subscribe to pending transactions (#…
Soubhik-10 May 10, 2025
5775ce1
refactor(common): improve URL path handling in runtime transport (#10…
CreeptoGengar May 10, 2025
755cee0
fix(forge): fix nonce for tx with 7702 auth (#10464)
grandizzy May 11, 2025
00cbbab
added eth_getAccountInfo to anvil (#10496)
Rimeeeeee May 12, 2025
a31d9be
fix: Replay raw txs without tweaks in anvil_reorg (#10442)
spalladino May 12, 2025
f240a34
fix(anvil): use saturating_to when check for req funds (#10503)
grandizzy May 13, 2025
155220e
chore: prepare v1.2 release (#10502)
grandizzy May 13, 2025
e0ad278
fix(anvil): recomputing next-base-fee after reloading state (#10488)
naps62 May 13, 2025
12b2ed4
fix(forge): support preproc with try contract creation (#10498)
grandizzy May 13, 2025
eef4acd
feat: add 7702 support to eth-sendtransaction (#10504)
mattsse May 13, 2025
ba15ec3
chore: remove `Eof::decode` usage (#10499)
klkvr May 13, 2025
0a7b3f0
fix: sort blocks by number (#10505)
mattsse May 13, 2025
58297d3
perf: find latest block for next-base-fee. replaces #10505 (#10511)
naps62 May 13, 2025
776897b
chore: account for auths in 7702 min estimated gas (#10512)
mattsse May 14, 2025
38536c9
fix: fix formating crash caused by non-breaking space in comment. (#1…
l1nxy May 15, 2025
73fec68
fix(cast): disassembler PC & end of code push padding (#10520)
Philogy May 15, 2025
b47cf78
fix(`Makefile`): update `lint-foundry` target to explicitly use night…
mablr May 15, 2025
297d4e2
feat(forge): cheatcodes to crosschain sign and attach delegation (#10…
grandizzy May 15, 2025
f37b4f0
Refactor: abstract global allocator in `foundry-cli` to be used acros…
mablr May 15, 2025
fb9904b
fix(forge): mark prank applied on contract creation too (#10532)
grandizzy May 16, 2025
447ef28
fix(forge): do not revert if event with count 0 not emitted (#10534)
grandizzy May 16, 2025
093b0cb
chore(meta): delete CHANGELOG.md (#10535)
Philogy May 16, 2025
9e53778
fix(`cast`): respect `full` arg in `cast block` (#10536)
mattsse May 16, 2025
71f9b8e
fix(`common`): find target by path if present (#10538)
yash-atreya May 16, 2025
0f8a1ff
fix: adds zksync, abstract to diff gas calc (#10539)
dutterbutter May 17, 2025
e775140
Add standard-json as inspect output field (#10537)
2xic May 17, 2025
dc6a216
fix: patch solang-parser (#10509)
DaniPopes May 18, 2025
d381a8a
fix(forge): vm.cool mark cold instead storage cleaning (#10546)
grandizzy May 19, 2025
477876a
feat(cast): Verbose signing output (#10529)
GregTheGreek May 19, 2025
39f524d
ci: fix flaky fork test using `StdChains`, add temporary workaround f…
zerosnacks May 19, 2025
066e0ce
bump(`revm`: step 1): bump `revm` to `21.0.0` release (#10183)
zerosnacks May 19, 2025
caab7d0
bump(`revm`: step 2): bump `alloy` + `revm` + `alloy-evm` + other dep…
yash-atreya May 19, 2025
d437c3f
feat(foundry-cli::utils): add support for mimalloc and tracy-allocato…
mablr May 19, 2025
d7cf0d3
fix(fmt): 'at' is not a keyword (#10556)
DaniPopes May 19, 2025
6ed1f7c
chore(deps): weekly `cargo update` (#10497)
github-actions[bot] May 19, 2025
fd6ee51
test: increase retry delay from 3s to 5s (#10559)
DaniPopes May 19, 2025
aa05230
chore: rm dead file (#10560)
DaniPopes May 19, 2025
0ca8dd4
fix(`revm bump`): re-add `P256` precompile injection for `forge` / `c…
zerosnacks May 20, 2025
3640fc6
chore: add `redundant_imports` rust lint (#10486)
zerosnacks May 20, 2025
cd62bc7
fix(`forge bind`): add `serde` as a dependency to generated `Cargo.to…
zerosnacks May 20, 2025
65f48d2
chore: remove additional `EOF` leftovers (#10506)
zerosnacks May 20, 2025
730c2dd
chore: bump alloy 1.0.5 (#10568)
mattsse May 20, 2025
78cbcc5
fix(`anvil`): inject the P256 precompile for `--odyssey` upon EVM con…
zerosnacks May 20, 2025
a93c000
chore: Simplifing mined_logs_for_block filter (#10572)
Ayushdubey86 May 20, 2025
51f6c8e
forge(fix): update persistent storage from active db (#10576)
grandizzy May 21, 2025
377d6bc
chore: avoid unnecessary use of `inspector_mut`, `precompiles_mut` in…
zerosnacks May 21, 2025
3062ce7
chore: bump version to 1.2.1 (#10580)
grandizzy May 21, 2025
d6f02a8
chore: replaced anvil DepositTransaction with just op_alloy::TxDeposi…
Rimeeeeee May 21, 2025
7b6a9f3
feat(anvil): add block context overrides for eth_call and eth_estimat…
mablr May 21, 2025
4332dc4
feat(forge): revert diagnostic inspector (#10446)
0xrusowsky May 22, 2025
48a9aac
chore(cast): upgrade evmole to 0.8.0 (#10585)
cdump May 22, 2025
8f90977
chore(ens): replacing common::ens with the alloy_ens crate. (#10584)
l1nxy May 22, 2025
f6af152
chore: update lockfile (#10587)
mattsse May 22, 2025
8cb2125
feat: add cast da-estimate (#10588)
mattsse May 22, 2025
9663a39
ci: use Optimism mainnet instead of DRPC due to limits (#10592)
zerosnacks May 22, 2025
5a4b19e
fix: `vm.chainId` regression in isolation mode on `nightly` post `rev…
zerosnacks May 22, 2025
4a7f84b
fix: refactor `step` and `step_end` for clarity (#10590)
0xrusowsky May 22, 2025
96d107c
feat(forge): forge lint (#10405)
0xrusowsky May 23, 2025
2d25470
chore: remove ui_test patch (#10598)
grandizzy May 23, 2025
12c1178
Force `prevrandao` on Rootstock testnet (#10603)
ahsan-javaiid May 23, 2025
3f1e943
fix(`cast`): include zero address as known system sender in cast run …
yash-atreya May 23, 2025
e9496f6
fix(forge lint): do not flag `fn test*` and `fn invariant*` (#10607)
0xrusowsky May 23, 2025
0cd3a78
chore(lint): correct some spans (#10610)
DaniPopes May 23, 2025
1353416
fix: make sign and verify symmetrical (#10614)
mattsse May 23, 2025
b811823
feat(forge/script): decode execution traces when `--json` is enabled …
0xpanoramix May 23, 2025
f45b7c2
chore: clean up Makefile and update contribution guide (#10602)
zerosnacks May 24, 2025
daad0d1
chore: use dedicated accountinfo type (#10617)
mattsse May 24, 2025
6adc3d6
docs: update deprecated .on_builtin with connect (#10618)
mattsse May 24, 2025
3e1c72b
feat: added rpc method to deal ERC20 tokens (#10495)
Soubhik-10 May 24, 2025
f86a66e
fix: check for auth when deriving legacy (#10619)
mattsse May 24, 2025
7fba3dd
chore(deps): weekly `cargo update` (#10625)
github-actions[bot] May 25, 2025
3c0b3df
chore: make clippy happy (#10628)
mattsse May 25, 2025
48a4af4
chore(deps): bump revm to 24.0.0 (#10601)
zerosnacks May 26, 2025
b1f8767
feat: implement add_balance endpoint (#10636)
pistomat May 26, 2025
5e20961
fix(bindings): ensure forge bind generates snake_case file names (#10…
zarkk01 May 26, 2025
b5d99b6
chore: standardize lint help + validate docs existance (#10639)
0xrusowsky May 26, 2025
496598b
feat(cast mktx): add support for "--ethsign" option (#10641)
mablr May 26, 2025
3e45ccb
chore(wallets): improve error message for signer instantiation failur…
mablr May 27, 2025
65650a6
chore: replaced anvil hardforks with alloy hardforks (#10612)
Rimeeeeee May 27, 2025
db0ce45
fix(`anvil`): latest evm version should be prague (#10653)
yash-atreya May 28, 2025
7e68208
fix(fmt): 'layout' is not a keyword (#10656)
DaniPopes May 28, 2025
ab753e9
chore: bump version to 1.2.2 (#10668)
grandizzy May 30, 2025
788ba28
fix(cast): read all lines for message to hash (#10671)
grandizzy May 30, 2025
197586f
feat(forge build): cache project selectors by default (#10651)
mablr May 30, 2025
2d5161d
fix(forge lint): gas lints (#10667)
0xrusowsky May 30, 2025
62ce5bc
chore: fixed dead link in `ui_runner.rs` (#10645)
cypherpepe May 31, 2025
7b18dc8
fix: populate missing fields for eth simulate (#10682)
mattsse Jun 1, 2025
b42d512
chore: Add unused deps lint (#10666)
nguyenethan01 Jun 2, 2025
1d25ca5
chore(`Makefile`): add .PHONY, fix help formatting (#10686)
zerosnacks Jun 3, 2025
132cb13
chore: fix clippy (#10687)
grandizzy Jun 3, 2025
665fc04
chore: activate `prague` hardfork and Solidity version `0.8.30` as de…
zerosnacks Jun 3, 2025
213d27d
chore: add license to preprocessor deploy helper (#10684)
grandizzy Jun 3, 2025
cde1f32
chore: update announcements link in `nightly` warning for Foundry boo…
zerosnacks Jun 3, 2025
b2bcaf5
chore(deps): weekly `cargo update` (#10680)
github-actions[bot] Jun 3, 2025
18159b1
chore: fix flaky test, bump timeout max rejects, use http provider (#…
grandizzy Jun 3, 2025
5ae91c6
feat: added disable-code-size-limit flag in forge script (#10661)
Soubhik-10 Jun 3, 2025
82159b5
chore: remove unused opcodes file (#10695)
zerosnacks Jun 3, 2025
66edc26
chore: add additional check for is_impersonanted (#10701)
mattsse Jun 4, 2025
365cbb4
feat(forge): eip712 cheatcodes + forge cmd (eip712 + bind-json) with …
0xrusowsky Jun 4, 2025
dc43e2c
fix: always update auth txenv var (#10707)
mattsse Jun 4, 2025
8cdf80b
fix(cast): do not use default overrides if no override arg (#10710)
grandizzy Jun 5, 2025
b3fe111
feat: add some clippy lint (#10479)
taikoonwang Jun 5, 2025
1334c42
chore: bump version 1.2.3 (#10712)
grandizzy Jun 5, 2025
f914e01
fix(anvil): guard against the blockchain advancing while checking lat…
alexghr Jun 5, 2025
01328a9
feat(script): keep script / tx timestamp as milis instead seconds (#1…
grandizzy Jun 5, 2025
9963414
fix: eip7702 cheatcodes multiple auth (#10623)
zjesko Jun 5, 2025
fe04be8
docs: add uninstall instructions (#10335)
redtrama Jun 6, 2025
eefb8a0
chore(`forge bind`): pin alloy to 1.0 + e2e test (#10724)
yash-atreya Jun 6, 2025
192332e
Update README.md (#10725)
jenpaff Jun 6, 2025
548d1f0
fix(chisel): memory data location for string and bytes params (#10729)
grandizzy Jun 8, 2025
f0932d0
chore: update proptest to 1.7.0 (#10733)
grandizzy Jun 9, 2025
cdd74cb
chore(deps): weekly `cargo update` (#10728)
github-actions[bot] Jun 9, 2025
090f002
feat(cast): add `--cost` for `estimate` to return the eth cost at cu…
0xvv Jun 9, 2025
f13f60e
fix: check for op deposit tx when handling cast tx (#10742)
mattsse Jun 10, 2025
c199a5b
chore: remove announcement link in `nightly` as it is unmaintained (#…
zerosnacks Jun 10, 2025
8b04d0d
fix: adds remaining ZKsync chains for estimate gas checks (#10719)
dutterbutter Jun 10, 2025
1836d5e
feat: Add anvil set erc20 allowance endpoint (#10746)
pistomat Jun 10, 2025
3aac249
refactor: unify ERC20 storage slot discovery logic (#10749)
mattsse Jun 10, 2025
df0ec82
chore: gitignore CLAUDE instructions and settings (#10750)
yash-atreya Jun 10, 2025
9b58320
fix: pin action gh release to v2.2.2 (#10752)
grandizzy Jun 10, 2025
ac0411d
feat(forge vb): creation code from tx trace (#10751)
grandizzy Jun 10, 2025
d544ae2
feat(`forge`): run lint on forge build (#10748)
yash-atreya Jun 11, 2025
01e9dc2
chore(config): enable show_metrics by default in [invariant] section …
0xChaddB Jun 11, 2025
2dbd8c9
chore: update nix flake (#10485)
shaunkh Jun 11, 2025
2494b70
bug(`nix`): fix build in CI (#10767)
zerosnacks Jun 12, 2025
558d7d5
fix(forge): Ignore file access events to prevent rebuild loop (#10763)
joeblogg801 Jun 12, 2025
6fb7c59
fix(`forge`): don't include lib in lint runs (#10771)
yash-atreya Jun 12, 2025
4416ed2
docs: minor fixes for uninstall instructions (#10777)
zerosnacks Jun 13, 2025
d22e730
deps: bump foundry-fork-db 0.15.1 (#10778)
onbjerg Jun 13, 2025
ea2b67f
Update flake.lock (#10780)
github-actions[bot] Jun 15, 2025
4435b46
feat(forge): table tests (#10775)
grandizzy Jun 16, 2025
893da4d
chore(deps): weekly `cargo update` (#10781)
github-actions[bot] Jun 16, 2025
66fe662
feat: add useSeed cheatcode to set RNG seed (#10698)
Another-DevX Jun 16, 2025
3617425
feat(cast): `compute_address` add support CREATE2 addresses (#10783)
mablr Jun 16, 2025
d417122
show native token symbol on tx broadcast (#10770)
ahsan-javaiid Jun 16, 2025
2ddd74a
chore: add hash to eip-712 cmd (#10764)
0xrusowsky Jun 16, 2025
c49d363
bug(anvil): incorrectly adds +1 gas when estimating transactions with…
gitToki Jun 17, 2025
9ac31cd
fix: eip712, bind-json solar cleanups (#10789)
DaniPopes Jun 17, 2025
b515c90
ci: don't check all features (#10790)
DaniPopes Jun 17, 2025
6ceff66
feat: added block.time and block.number override in cast (#10727)
Soubhik-10 Jun 18, 2025
bfc53de
chore: pin nextest version in ci (#10800)
grandizzy Jun 18, 2025
6181d51
chore: clean up unused EOF code (#10715)
zerosnacks Jun 19, 2025
23e8841
fix(forge): vm.getChain use config for rpc and alias (#10806)
grandizzy Jun 19, 2025
8e66fd1
feat(forge): `--exclude-tests` option from coverage (#10807)
grandizzy Jun 19, 2025
0c3dc32
chore: bump vyper 0.4.3 and remove previous `prague` handling (#10808)
zerosnacks Jun 19, 2025
f03869c
chore: fix failing test (#10813)
grandizzy Jun 19, 2025
fa8d17e
chore: unpin `rustfmt` nightly (#10815)
zerosnacks Jun 19, 2025
383429c
Revert "chore: pin nextest version in ci" (#10814)
zerosnacks Jun 19, 2025
7b1b531
chore: use native alloy functions for otterscan helpers (#10816)
mattsse Jun 19, 2025
4fb811a
chore: reuse alloy lenient blocknumber deserializer (#10817)
mattsse Jun 19, 2025
6aa1860
chore: remove HexDisplay util (#10819)
mattsse Jun 20, 2025
9d93694
chore: update external integration tests (#10811)
zerosnacks Jun 20, 2025
edb9cc0
chore: remove unused util (#10818)
mattsse Jun 20, 2025
2b3f9ff
test(cast): add tests for EIP-712 type names with colons (#10772)
mattsse Jun 20, 2025
e6de72c
feat(forge): coverage guided fuzzing & time based campaigns for invar…
0xalpharush Jun 20, 2025
ed86c64
chore: use existing minimal_tx_type fn (#10826)
mattsse Jun 21, 2025
ca9f420
feat(fmt): dprint for toml, json, md, dockerfile, ts, & yml (#10824)
o-az Jun 21, 2025
a478009
Update flake.lock (#10830)
github-actions[bot] Jun 22, 2025
e44249a
chore(deps): weekly `cargo update` (#10831)
github-actions[bot] Jun 22, 2025
8bd3d64
feat(cast): add recover-authority for EIP7702 Authorization (#10839)
jsvisa Jun 24, 2025
12ff25d
fix(forge): filter selectors if test contract is target (#10798)
grandizzy Jun 24, 2025
a3b6b33
refactor: flatten bind_json.rs to one pass without state structs (#10…
DaniPopes Jun 24, 2025
d0fc977
cast: Improve debugger when tracing on-chain transactions/calls (#10596)
ngotchac Jun 25, 2025
6de8703
chore(forge-lint): clickable links + housekeeping (#10847)
0xrusowsky Jun 25, 2025
413de48
chore: update
0xgregthedev Jun 27, 2025
75df4f5
chore: fix contracts
0xgregthedev Jul 2, 2025
7e1ed87
chore: use git assex
0xgregthedev Jul 2, 2025
c2b4305
Merge branch 'master' into chore/update-everything
0xgregthedev Jul 2, 2025
0971d2a
chore: fix rebase issue
0xgregthedev Jul 2, 2025
01993e4
chore: bump assex
0xgregthedev Jul 3, 2025
4665092
chore: bump assex
0xgregthedev Jul 9, 2025
8ee8e6d
chore: bump assex
0xgregthedev Jul 9, 2025
a3ffa1f
chore: bump assex
0xgregthedev Jul 9, 2025
645c85d
chore: bump assex
0xgregthedev Jul 9, 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
  •  
  •  
  •  
9 changes: 8 additions & 1 deletion .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
[test-groups]
chisel-serial = { max-threads = 1 }

[profile.default]
retries = { backoff = "exponential", count = 2, delay = "3s", jitter = true }
retries = { backoff = "exponential", count = 2, delay = "5s", jitter = true }
slow-timeout = { period = "1m", terminate-after = 3 }

[[profile.default.overrides]]
Expand All @@ -9,3 +12,7 @@ slow-timeout = { period = "5m", terminate-after = 4 }
[[profile.default.overrides]]
filter = "package(foundry-cheatcodes-spec)"
retries = 0

[[profile.default.overrides]]
filter = "package(chisel)"
test-group = "chisel-serial"
84 changes: 84 additions & 0 deletions .devcontainer/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
FROM ubuntu:22.04

ARG USERNAME=foundry
ARG USER_UID=1000
ARG USER_GID=$USER_UID
ARG PYTHON_VERSION=3.11
ARG NODE_MAJOR=20
ARG VYPER_VERSION=0.4.3

ENV DEBIAN_FRONTEND=noninteractive
ENV CARGO_TERM_COLOR=always \
RUST_BACKTRACE=full

WORKDIR /workspace

RUN apt-get update && apt-get install -y --no-install-recommends \
# Build tools
build-essential \
clang \
lld \
pkg-config \
# Network/SSL
curl \
ca-certificates \
gnupg \
libssl-dev \
# Version control & utils
git \
sudo \
unzip \
# Python
python${PYTHON_VERSION} \
python3-pip \
python${PYTHON_VERSION}-venv \
# Add Node.js repo
&& mkdir -p /etc/apt/keyrings \
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_MAJOR}.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
# Update again after adding repo and install Node.js
&& apt-get update && apt-get install -y --no-install-recommends \
nodejs \
# Clean up apt cache
&& apt-get clean && rm -rf /var/lib/apt/lists/*

# Ensure python points to the installed python version
RUN ln -sf /usr/bin/python${PYTHON_VERSION} /usr/bin/python && \
ln -sf /usr/bin/python${PYTHON_VERSION} /usr/bin/python3

# Create non-root user with sudo privileges
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME -s /bin/bash \
# Setup sudo without password prompt
&& echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME \
# Add user to the sudo group (standard practice)
&& usermod -aG sudo $USERNAME

# Switch to the non-root user
USER $USERNAME
WORKDIR /home/$USERNAME

# --- User-specific installations ---

# Install Bun
ENV BUN_INSTALL="/home/$USERNAME/.bun"
ENV PATH="$BUN_INSTALL/bin:$PATH"
RUN curl -fsSL https://bun.sh/install | bash

# Install Rust & cargo-nextest
ENV CARGO_HOME="/home/$USERNAME/.cargo"
ENV RUSTUP_HOME="/home/$USERNAME/.rustup"
ENV PATH="$CARGO_HOME/bin:$PATH"
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
&& cargo install cargo-nextest --locked

# Install Vyper using pip
# Ensure pip user install directory is in PATH
ENV PYTHONUSERBASE="/home/$USERNAME/.local"
ENV PATH="$PYTHONUSERBASE/bin:$PATH"
RUN pip3 install --user vyper==${VYPER_VERSION}

# Switch back to the main workspace directory
WORKDIR /workspace

49 changes: 49 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
// For format details, see https://aka.ms/devcontainer.json.
{
"name": "Foundry Development",
"build": {
"context": "..",
"dockerfile": "Dockerfile.dev"
},

"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": true,
"configureZshAsDefaultShell": true,
"installOhMyZsh": true,
"upgradePackages": true
}
},

"forwardPorts": [],

"postCreateCommand": "rustup default stable && rustup update",

"customizations": {
"vscode": {
"extensions": [
"rust-lang.rust-analyzer",
"serayuzgur.crates",
"tamasfe.even-better-toml",
"ms-python.python",
"dbaeumer.vscode-eslint",
"oven.bun-vscode"
],
"settings": {
"rust-analyzer.checkOnSave": true,
"rust-analyzer.cargo.features": "all"
}
}
},

"remoteUser": "foundry",

"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached",

"workspaceFolder": "/workspace",

"mounts": [
"source=${localEnv:HOME}/.cargo/registry,target=/home/foundry/.cargo/registry,type=bind,consistency=cached",
"source=${localEnv:HOME}/.cargo/git,target=/home/foundry/.cargo/git,type=bind,consistency=cached"
]
}
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@ testdata/cheats/Vm.sol linguist-generated

# See <https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header>
*.rs diff=rust
crates/lint/testdata/* text eol=lf

dprint.json linguist-language=JSON-with-Comments
.devcontainer/devcontainer.json linguist-language=JSON-with-Comments
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@ the code change.

- [ ] Added Tests
- [ ] Added Documentation
- [ ] Breaking changes
- [ ] Breaking changes
2 changes: 1 addition & 1 deletion .github/workflows/dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
# Run weekly
- cron: "0 0 * * SUN"
workflow_dispatch:
# Needed so we can run it manually
# Needed so we can run it manually

permissions:
contents: write
Expand Down
32 changes: 16 additions & 16 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,17 @@ jobs:
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# Extract metadata (tags, labels) for Docker
# https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

# Creates an additional 'latest' or 'nightly' tag
# If the job is triggered via cron schedule, tag nightly and nightly-{SHA}
Expand All @@ -59,22 +59,22 @@ jobs:
- name: Finalize Docker Metadata
id: docker_tagging
run: |
if [[ "${{ github.event_name }}" == 'schedule' ]]; then
echo "cron trigger, assigning nightly tag"
echo "docker_tags=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:nightly,${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:nightly-${GITHUB_SHA}" >> $GITHUB_OUTPUT
elif [[ "${GITHUB_REF##*/}" == "main" ]] || [[ ${GITHUB_REF##*/} == "master" ]]; then
echo "manual trigger from master/main branch, assigning latest tag"
echo "docker_tags=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_REF##*/},${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest" >> $GITHUB_OUTPUT
else
echo "Neither scheduled nor manual release from main branch. Just tagging as branch name"
echo "docker_tags=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_REF##*/}" >> $GITHUB_OUTPUT
fi
if [[ "${{ github.event_name }}" == 'schedule' ]]; then
echo "cron trigger, assigning nightly tag"
echo "docker_tags=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:nightly,${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:nightly-${GITHUB_SHA}" >> $GITHUB_OUTPUT
elif [[ "${GITHUB_REF##*/}" == "main" ]] || [[ ${GITHUB_REF##*/} == "master" ]]; then
echo "manual trigger from master/main branch, assigning latest tag"
echo "docker_tags=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_REF##*/},${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest" >> $GITHUB_OUTPUT
else
echo "Neither scheduled nor manual release from main branch. Just tagging as branch name"
echo "docker_tags=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_REF##*/}" >> $GITHUB_OUTPUT
fi

# Log docker metadata to explicitly know what is being pushed
- name: Inspect Docker Metadata
run: |
echo "TAGS -> ${{ steps.docker_tagging.outputs.docker_tags }}"
echo "LABELS -> ${{ steps.meta.outputs.labels }}"
echo "TAGS -> ${{ steps.docker_tagging.outputs.docker_tags }}"
echo "LABELS -> ${{ steps.meta.outputs.labels }}"

- name: Build and push foundry image
run: make DOCKER_IMAGE_NAME=${{ steps.docker_tagging.outputs.docker_tags }} CARGO_TAG_NAME=${{ inputs.tag_name }} PROFILE=maxperf docker-build-push
5 changes: 3 additions & 2 deletions .github/workflows/nextest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,11 @@ jobs:
with:
python-version: 3.11
- name: Install Vyper
run: pip --version && pip install vyper==0.4.0
# Also update vyper version in .devcontainer/Dockerfile.dev
run: pip --version && pip install vyper==0.4.3

- name: Forge RPC cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.foundry/cache
Expand Down
44 changes: 44 additions & 0 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: nix

on:
schedule:
# Run weekly
- cron: "0 0 * * SUN"
workflow_dispatch:
# Needed so we can run it manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
# Opens a PR with an updated flake.lock file
update:
runs-on: ubuntu-latest
steps:
- uses: DeterminateSystems/determinate-nix-action@v3
- uses: actions/checkout@v4
- uses: DeterminateSystems/update-flake-lock@main
with:
pr-title: "Update flake.lock"
pr-labels: |
L-ignore
A-dependencies

build:
strategy:
matrix:
runs-on: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.runs-on }}
steps:
- uses: DeterminateSystems/determinate-nix-action@v3
- uses: actions/checkout@v4

- name: Update flake.lock
run: nix flake update

- name: Activate nix env
run: nix develop -c echo Ok

- name: Check that we can compile all crates
run: nix develop -c cargo check --all-targets
13 changes: 7 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
tags:
- "stable"
- "rc"
- "rc-*"
- "v*.*.*"
schedule:
- cron: "0 6 * * *"
Expand All @@ -14,7 +15,7 @@ env:
CARGO_TERM_COLOR: always
IS_NIGHTLY: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
PROFILE: maxperf
STABLE_VERSION: "v0.3.0"
STABLE_VERSION: "v1.1.0"

jobs:
prepare:
Expand Down Expand Up @@ -157,8 +158,8 @@ jobs:
shell: bash
run: |
set -eo pipefail
flags=(--target $TARGET --profile $PROFILE --bins
--no-default-features --features aws-kms,cli,asm-keccak)
flags=(--target $TARGET --profile $PROFILE --bins
--no-default-features --features aws-kms,gcp-kms,cli,asm-keccak)

# `jemalloc` is not fully supported on MSVC or aarch64 Linux.
if [[ "$TARGET" != *msvc* && "$TARGET" != "aarch64-unknown-linux-gnu" ]]; then
Expand Down Expand Up @@ -230,7 +231,7 @@ jobs:

# Creates the release for this specific version
- name: Create release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v2.2.2
with:
name: ${{ needs.prepare.outputs.release_name }}
tag_name: ${{ needs.prepare.outputs.tag_name }}
Expand All @@ -253,7 +254,7 @@ jobs:
# tagged `nightly` for compatibility with `foundryup`
- name: Update nightly release
if: ${{ env.IS_NIGHTLY == 'true' }}
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v2.2.2
with:
name: "Nightly"
tag_name: "nightly"
Expand Down Expand Up @@ -292,7 +293,7 @@ jobs:
issue:
name: Open an issue
runs-on: ubuntu-latest
needs: [ prepare, release-docker, release, cleanup ]
needs: [prepare, release-docker, release, cleanup]
if: failure()
steps:
- uses: actions/checkout@v4
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ jobs:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly-2024-02-03
components: rustfmt
- run: cargo fmt --all --check

Expand All @@ -109,7 +108,7 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- run: cargo hack check --each-feature --exclude-features isolate-by-default
- run: cargo hack check

deny:
uses: ithacaxyz/ci/.github/workflows/deny.yml@main
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,10 @@ snapshots/
out.json
.idea
.vscode
.claude
CLAUDE.md
.env
node_modules
dist
bin
_
Loading
Loading