Skip to content
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

feat(foundry): update from upstream #187

Merged
merged 239 commits into from
Dec 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
239 commits
Select commit Hold shift + click to select a range
619f3c5
feat(anvil): Fix `ots_getInternalOperations` (#6068)
ZePedroResende Oct 19, 2023
2937e4f
chore(cast): update `from-bin` command description (#6077)
leovct Oct 22, 2023
0409342
chore: new clippy (#6080)
Evalir Oct 22, 2023
ba6c851
fix(forge): fix `verify-contract` etherscan cloudflare bug (#6079)
tsite Oct 22, 2023
602460e
Update README.md (#6083)
DJViau Oct 23, 2023
843e135
Update evm-disassembler dependency to support new cancun opcodes (#6089)
ckoopmann Oct 24, 2023
3f6f16a
chore: bump ethers (#6091)
mattsse Oct 24, 2023
e82f5bd
chore(clippy): make clippy happy (#6092)
mattsse Oct 24, 2023
6ac22df
fix: wrong subtract timestamp (#6097)
mattsse Oct 24, 2023
251ef74
feat(deps): Move to Alloy ABI encoding/decoding & alloy types (#5986)
Evalir Oct 25, 2023
3fe2392
fix: function returns formatting (#6086)
mattsse Oct 25, 2023
950d863
anvil: Fix snapshot revert block-env (#6107)
ngotchac Oct 25, 2023
546c96f
feat: format DynSolValues for printing on anvil errors (#6111)
Evalir Oct 25, 2023
000f38c
chore(deps): weekly `cargo update` (#6112)
github-actions[bot] Oct 25, 2023
9fd44a7
chore(deps): weekly `cargo update` (#6114)
github-actions[bot] Oct 25, 2023
a839414
fix(`evm`): properly generate `bytesX` values with `arbitrary_from_ty…
Evalir Oct 26, 2023
7d12927
Document BTreeMap lexicographical order (#6100)
robriks Oct 26, 2023
f345556
perf: clear all transactions if exceeds configured keeper (#6127)
mattsse Oct 26, 2023
6893e38
refactor: modularize foundry-evm (#6128)
DaniPopes Oct 26, 2023
93f64c7
Modified git fetch command to method to use correct root folder. (#6119)
janbro Oct 26, 2023
aa257c2
fix(`create`): concat bytecode and constructor call to match old etha…
Evalir Oct 27, 2023
cc760aa
test: add forge create test (#6137)
mattsse Oct 27, 2023
57ffd4a
fix(`common`): properly parse functions in their usual form (#6136)
Evalir Oct 27, 2023
62e3a84
fix: print decoded output value (#6141)
mattsse Oct 27, 2023
70d0022
fix: use selector not signature (#6146)
mattsse Oct 27, 2023
dcdceda
fix: trest invalid opcode as revert (#6140)
mattsse Oct 27, 2023
ce1b943
fix: stop erroring on failing to install hooks (#6148)
DaniPopes Oct 27, 2023
4422d67
fix: always install error hook first (#6150)
mattsse Oct 27, 2023
f5b9c02
fix: resolve constructor args (#6153)
mattsse Oct 27, 2023
459da57
Fix `foundryup` (#6155)
clabby Oct 28, 2023
fab6ee2
fix: gas report threshold (#6143)
mattsse Oct 28, 2023
44ce0ce
fix: support block number as string (#6157)
mattsse Oct 28, 2023
dee4181
chore: use foundry fs (#6158)
mattsse Oct 28, 2023
037b3bc
feat: `v0.8.22` support (#6168)
Evalir Oct 30, 2023
db086c7
chore(deps): weekly `cargo update` (#6161)
github-actions[bot] Oct 30, 2023
8efbdae
fix(`cheatcodes`): return early in case of reverts to not conflict wi…
Evalir Oct 30, 2023
e03110a
fix: use both indexed and unindexed params when decoding logs (#6174)
Evalir Oct 30, 2023
94ae897
Raise error when to and --create are not present (#6175)
klkvr Oct 30, 2023
30ae702
test: add test for cast send (#6176)
mattsse Oct 31, 2023
799b820
feat: use `foundry-cheatcodes` implementations (#6131)
DaniPopes Oct 31, 2023
60ec002
fix(cheatcodes): allow `deal` on precompiles (#6182)
DaniPopes Nov 1, 2023
871aba5
test: add repro test for skip (#6189)
mattsse Nov 1, 2023
c602db6
feat(forge): add `selectors list` subcommand (#6075)
schroyar Nov 1, 2023
c931b70
fix(forge): make recursive `forge update` optional via `--recursive`…
emo-eth Nov 1, 2023
34f684d
chore(deps): bumps (#6191)
DaniPopes Nov 1, 2023
09fe3e0
chore(deps): bumps 2 (#6194)
DaniPopes Nov 1, 2023
3546f16
chore: dedup abi values formatting, cleanups (#6196)
DaniPopes Nov 2, 2023
9421571
refactor(cheatcode): use rate limit args in create fork cheatcode (#6…
Evalir Nov 2, 2023
543b58c
fix(`invariants`): respect `fail_on_revert` properly and do not popul…
Evalir Nov 2, 2023
5dda5b1
chore: bump foundry-block-explorers (#6201)
Evalir Nov 2, 2023
265059b
refactor: split cheatcode definitions into a separate crate (#6202)
DaniPopes Nov 3, 2023
1c7bf46
feat(anvil): allow pass headers to `fork-url` (#6178)
vbrvk Nov 3, 2023
65e7f98
fix(forge): add coverage to test setUp (#6123)
Inphi Nov 3, 2023
8d513dc
Add support for events and errors in `forge selectors upload` (#6205)
klkvr Nov 3, 2023
b85ff16
feat: cast wallet generation - json output and many wallets generatio…
sakotn Nov 3, 2023
691e1bd
feat(anvil/cast): mnemonic generation (#6066)
teddav Nov 3, 2023
eea2b78
fix: remove harcoded hex prefix from calldata (#6209)
Evalir Nov 3, 2023
f0528ad
feat: loadAllocs cheatcode (Rebased) (#6207)
Evalir Nov 3, 2023
fa6b39c
perf: better cast create2 (#6212)
DaniPopes Nov 3, 2023
6b72a8c
chore: bump alloy (#6214)
mattsse Nov 4, 2023
d857187
chore(deps): weekly `cargo update` (#6216)
github-actions[bot] Nov 6, 2023
3029760
chore: add nextest config (#6224)
DaniPopes Nov 6, 2023
fd90b1d
ci: don't fail-fast on release (#6225)
DaniPopes Nov 6, 2023
934664b
chore: more alloy cleanups (#6226)
DaniPopes Nov 6, 2023
84bbb24
chore: clippy fixes (#6227)
Evalir Nov 6, 2023
65ca861
chore: bump ethers (#6233)
mattsse Nov 7, 2023
86f3d18
fix(ci): create heavy profile for heavy integration tests (#6231)
Evalir Nov 7, 2023
7d7bdfb
ci: fix windows release (#6236)
DaniPopes Nov 7, 2023
6958dc1
ci: fix bash array
DaniPopes Nov 7, 2023
63e043e
refactor: rewrite revert and precompile decoding (#6222)
DaniPopes Nov 7, 2023
3432386
feat(`anvil`): `anvil_metadata` (#6240)
Evalir Nov 7, 2023
47678ac
fix: add arbitrum sepolia to list of networks with diff gas calc and …
Evalir Nov 7, 2023
85f25c6
chore(deps): switch to using foundry compilers from crates.io (#6248)
Evalir Nov 7, 2023
855d005
fix: windows tests (#6239)
DaniPopes Nov 8, 2023
a5040df
feat(`cheatcodes`): mark rpc + eth_getLogs cheatcodes as script safe …
Evalir Nov 8, 2023
1a91bbb
🚸 script: ignore interfaces when inferring target (#6246)
cruzdanilo Nov 8, 2023
6447f96
fix: increase timeout for heavy integration test (#6258)
Evalir Nov 8, 2023
57180fc
feat: update solidity 0.8.23 test (#6259)
Evalir Nov 9, 2023
9194d86
fix: precompile trace decoding (#6263)
DaniPopes Nov 9, 2023
40aca52
fix: use selector() instead of signature for cast event-sig (#6266)
Evalir Nov 9, 2023
74d596c
ci: fix release workflow (again) (#6272)
DaniPopes Nov 9, 2023
834d959
refactor(cheatcodes): rewrite string parsing with dyn abi (#6269)
DaniPopes Nov 9, 2023
4c11a23
feat: add --no-cache and respect cache config value (#6273)
mattsse Nov 10, 2023
90d4dce
fix: trace decoding off-by-one (#6277)
DaniPopes Nov 10, 2023
2df7306
Multichain Scripts: Deploy each sequence of transactions sequentially…
ArshanKhanifar Nov 10, 2023
f27a771
ci: fix windows external tests (#6280)
DaniPopes Nov 10, 2023
74b641f
chore: clean up remaining ethers usage (#6254)
DaniPopes Nov 10, 2023
82abe3d
fix: windows ci part 69 (#6283)
DaniPopes Nov 10, 2023
c489e3f
feat: improve error decoding and value formatting (#6286)
DaniPopes Nov 11, 2023
10edef3
feat(doc): add struct events error table (#6287)
mattsse Nov 11, 2023
6a1cafd
feat: add alias for topic0-event (#6288)
Evalir Nov 11, 2023
529559c
feat(doc): Include extrernal libraries into forge doc scope (#6290)
klkvr Nov 12, 2023
28df258
chore(deps): weekly `cargo update` (#6291)
github-actions[bot] Nov 13, 2023
b205b6a
Fix the `loadAllocs` cheatcode when it is called in `setUp` (#6297)
clabby Nov 13, 2023
b3ea19a
test: cache global template build at initialization (#6299)
DaniPopes Nov 13, 2023
ef3023f
chore: improve logs (#6298)
DaniPopes Nov 13, 2023
6b272b0
test: minor improvements (#6303)
DaniPopes Nov 13, 2023
1a2e2e0
fix: remove serde "helper" Numeric (#6304)
DaniPopes Nov 13, 2023
8126b99
test: compile testdata/ only once (#6305)
DaniPopes Nov 14, 2023
d522499
chore(meta): add CODEOWNERS (#6301)
DaniPopes Nov 14, 2023
c8954d8
feat(`cheatcodes`): add computeCreateAddress cheatcodes (#6296)
qiweiii Nov 14, 2023
3ebeded
fix(cast): upload error signature (#6312)
massun-onibakuchi Nov 14, 2023
106889c
chore: enable anvil-core serde feature by default in tests (#6313)
mattsse Nov 14, 2023
64b0e8f
docs: update cups link (#6317)
mattsse Nov 15, 2023
c9538c0
chore: replace ethers `Chain` with `alloy_chains` (#6318)
DaniPopes Nov 15, 2023
7769cf0
fix: unpatch chains (#6320)
DaniPopes Nov 15, 2023
8c11482
chore(deps): bump axum to 0.6 (#6321)
DaniPopes Nov 15, 2023
befa571
refactor: rewrite forge doc server using axum (#6324)
DaniPopes Nov 16, 2023
5692c5c
chore(cheatcodes): rename defs to spec (#6325)
DaniPopes Nov 16, 2023
2102912
chore: remove PUSH0 warnings for superchain testnets (#6322)
Evalir Nov 16, 2023
43d3645
fix(anvil): TypedTransaction rlp decode, bump k256 (#6327)
DaniPopes Nov 16, 2023
417af3b
chore: tables cleanup (#6328)
DaniPopes Nov 16, 2023
43dda85
chore: bump ethers (#6330)
mattsse Nov 16, 2023
3e12d88
chore: bump revm (#6281)
mattsse Nov 16, 2023
383e21c
feat(cast/bin) : convert value to decimal and add hex value table (#6…
DoTheBestToGetTheBest Nov 17, 2023
9b04724
fix(anvil) : fix returning type (#6337)
DoTheBestToGetTheBest Nov 17, 2023
8c044be
chore: bump default memory limit to 128MiB (#6338)
DaniPopes Nov 17, 2023
daefe5e
test: add an expectRevert test (#6340)
DaniPopes Nov 17, 2023
a8cb7f8
chore: use repo license in tests too (#6339)
DaniPopes Nov 17, 2023
141bd91
fix: ensure websocket is flushed (#6347)
mattsse Nov 17, 2023
c948388
feat(cheatcodes): Record Account and Storage Access Cheatcodes (#6310)
Inphi Nov 17, 2023
196fdb7
Only load root TLS certificates with HTTPs rpc-url (#6350)
RedaOps Nov 18, 2023
138ab40
fix(foundryup): actually make `set -e` work (#6352)
DaniPopes Nov 18, 2023
f23c7be
fix: use raw formatter when printing script JSON (#6354)
DaniPopes Nov 18, 2023
3ed38df
chore(deps): weekly `cargo update` (#6357)
github-actions[bot] Nov 19, 2023
3e962e2
fix(anvil): anvil_metadata return types (#6360)
DaniPopes Nov 19, 2023
a0d1911
Revert k256 bump (#6358)
kayabaNerve Nov 20, 2023
8329549
feat(`cast create2`): Added `--caller` flag (#6363)
RedaOps Nov 20, 2023
3bab117
chore(deps): bump ethers (#6367)
DaniPopes Nov 20, 2023
6280cd4
Adds snapshot map to anvil metadata (#6364)
naps62 Nov 20, 2023
3f93d28
chore: update fixtures after forge-std release (#6371)
mattsse Nov 20, 2023
f37ed7f
fix: don't leak env parser error (#6375)
mattsse Nov 20, 2023
7b45265
fix(foundryup): don't fail on 'which' check (#6377)
DaniPopes Nov 20, 2023
9fab5bf
fix(evm): don't panic on short calldata (#6380)
DaniPopes Nov 21, 2023
c0a9975
refactor: remove cheatcodes Abigen (#6379)
DaniPopes Nov 21, 2023
e38d8c6
chore: rewrite shanghai support check (#6356)
DaniPopes Nov 21, 2023
3afbc33
style: ugly serialize impl (#6389)
mattsse Nov 21, 2023
067e658
chore: generate less sol! abi implementations (#6390)
DaniPopes Nov 21, 2023
f689fb8
Additional contracts serialization fix (#6391)
klkvr Nov 21, 2023
5c137e8
Fix multichain scripts with verify (#6395)
klkvr Nov 22, 2023
06a68a3
fix: derive Inherit relative link properly (#6388)
mattsse Nov 22, 2023
088f6f8
chore: enable cancun hardfork (#6393)
mattsse Nov 22, 2023
77d26df
perf: dont record sharedmemory (#6398)
mattsse Nov 22, 2023
b8c50d7
refactor: remove foundry-abi (#6394)
DaniPopes Nov 22, 2023
441c853
chore: impl To* traits for Bytes (#6400)
DaniPopes Nov 22, 2023
56ad18d
chore: fix typos (#6399)
DaniPopes Nov 22, 2023
7fcb730
test: add cast proof test (#6403)
mattsse Nov 22, 2023
fdaed86
refactor: remove foundry-utils (#6401)
DaniPopes Nov 22, 2023
89f74f2
chore: remove foundry-binder (#6405)
DaniPopes Nov 22, 2023
388e181
feat(anvil): support for op-stack deposit transactions (#6073)
mdehoog Nov 23, 2023
55dd5de
fix(forge): format `new` expressions (#6408)
beeb Nov 23, 2023
d6d8de9
test: pin rpc test to block (#6420)
mattsse Nov 24, 2023
66967be
feat: add hex underscore fmt rule (#6417)
mattsse Nov 24, 2023
7842f32
chore: set hardfork explicitily for deposit tests (#6422)
mattsse Nov 24, 2023
970313b
chore: actually set remove as default (#6423)
Evalir Nov 24, 2023
890bc7a
chore(deps): bump, unpatch Alloy (#6416)
DaniPopes Nov 24, 2023
6432031
chore(deps): weekly `cargo update` (#6429)
github-actions[bot] Nov 26, 2023
2aa52ef
chore: misc stuff (#6439)
DaniPopes Nov 27, 2023
f0166cc
fix(cheatcodes): coerce root values (#6441)
DaniPopes Nov 27, 2023
23aa303
feat(cast): add options to randomize initial nonce (#6443)
DaniPopes Nov 27, 2023
db39460
fix: handle duplicate forkids (#5939)
mattsse Nov 28, 2023
1ca7a2e
chore: misc verify enhancements (#6445)
mattsse Nov 28, 2023
3ea15cd
chore: pin watchexec (#6448)
mattsse Nov 28, 2023
4a5785a
Add `verify_preflight_check` for script sequences (#6372)
klkvr Nov 28, 2023
7c5295a
chore: add hint to --skip-cargo-toml (#6449)
mattsse Nov 28, 2023
d7d2901
chore: improve bind errors and tracing (#6452)
mattsse Nov 29, 2023
7c122b0
feat: use non atomic tracker for snapshot reverts (#6451)
mattsse Nov 29, 2023
09a48f6
feat: prefix local address with http scheme (#6456)
mattsse Nov 29, 2023
a3ec223
chore: bump ethers (#6458)
mattsse Nov 29, 2023
27956b3
chore: revise contract empty error (#6457)
mattsse Nov 29, 2023
a8f5092
Add a verification flag to skip contract is verified check (#6461)
rimrakhimov Nov 30, 2023
494acc7
RPC-based Gas Estimation for Moonbeam-based Networks (#6460)
albertov19 Nov 30, 2023
94b5d31
fix: forge create to use config values for verify preflight check (#6…
dghelm Nov 30, 2023
87b7836
chore: update required version in the Cargo.toml (#6464)
0xtekgrinder Nov 30, 2023
e26f4d8
chore(deps): unpin watchexec (#6469)
DaniPopes Nov 30, 2023
7369a10
chore: update Clippy MSRV (#6471)
DaniPopes Nov 30, 2023
91df94b
test: integrate inline config in tests (#6473)
mattsse Nov 30, 2023
f5c9199
fix: overflow of memory offset or size in debugger (#6474)
greged93 Nov 30, 2023
8918ca5
Update README.md (#6479)
Akare123 Dec 1, 2023
4777fbb
Update CONTRIBUTING.md (#6476)
anil2ec4 Dec 1, 2023
ab57053
Update cheatcodes.md (#6477)
0xbasar Dec 1, 2023
a7fdd78
chore: typo readme (#6481)
mattsse Dec 1, 2023
ef5ad0c
Add `--save-path` Option to `VanityArgs` for Custom Wallet File Savin…
codeesura Dec 1, 2023
1529edd
chore(deps): update (#6484)
DaniPopes Dec 1, 2023
3326883
chore: remove fork db snapshot (#6486)
mattsse Dec 1, 2023
8f50260
chore: add refs to ganache spec (#6483)
mattsse Dec 1, 2023
f17d00b
fix: ensure prevrandao is set on reset fork (#6488)
mattsse Dec 1, 2023
96bc0dc
docs: fix typos (#6490)
mattsse Dec 1, 2023
8b7500b
feat(forge): added --json argument to `forge build` command (#6465)
0xmemorygrinder Dec 1, 2023
1dd86be
chore: bump ethers+chains (#6493)
mattsse Dec 1, 2023
220f540
chore: debugger improvements (#6491)
DaniPopes Dec 1, 2023
5b7e4cb
chore: debugger improvements 2 (#6494)
DaniPopes Dec 1, 2023
de73dde
chore: misc fmt (#6498)
mattsse Dec 2, 2023
87bf7e4
chore: better parse error messages (#6499)
DaniPopes Dec 2, 2023
d4e6b43
chore(deps): weekly `cargo update` (#6505)
github-actions[bot] Dec 3, 2023
d2183da
refactor(debugger): modularize and add a context struct (#6495)
DaniPopes Dec 4, 2023
b256474
feat: decode Hardhat console logs in traces (#6504)
DaniPopes Dec 4, 2023
3ee4135
fix(debugger): a potential underflow in memory highlighting (#6508)
soyccan Dec 4, 2023
adf3099
chore: make clippy happy (#6518)
Evalir Dec 4, 2023
677e810
refactor(debugger): use context when drawing (#6520)
DaniPopes Dec 4, 2023
13af418
fix(`forge`): pre-emptively create `lib` dir if it doesn't exist for …
Evalir Dec 4, 2023
dcf25ff
chore: skip is verified check for script deployments (#6523)
mattsse Dec 5, 2023
9093207
Fix (#6526)
klkvr Dec 5, 2023
fdad9fb
fix(cheatcodes): recorded created account during broadcast (#6527)
Inphi Dec 5, 2023
5a4daaf
fix: don't reinitialize created accounts (#6534)
mattsse Dec 6, 2023
bacacce
refactor(debugger): rewrite draw code (#6522)
DaniPopes Dec 6, 2023
70225e3
chore: backwardscompat blockenv serializer (#6535)
mattsse Dec 6, 2023
54b3695
chore: solve breakin serde env changes once and for all (#6536)
mattsse Dec 6, 2023
8a31bf1
fix(forge) Prefund test/script contracts before deployment (#6300)
klkvr Dec 7, 2023
fb601f5
fix(debugger): don't panic when arena is empty (#6547)
DaniPopes Dec 8, 2023
f460583
chore: replace expect with wrap_err (#6549)
mattsse Dec 8, 2023
8033139
refactor: only use channel to return test results (#6550)
DaniPopes Dec 8, 2023
0928844
chore: update contributing.md (#6552)
mattsse Dec 8, 2023
18a7104
chore: bump foundry-block-explorers (#6553)
mattsse Dec 8, 2023
e72e8fe
chore: Consolidate dependency updates, linting, and feature additions
dutterbutter Oct 19, 2023
7f225df
chore: updates docs, readme, templates, workflow updates (#130)
dutterbutter Oct 27, 2023
bc7a722
fix: updates zksolc_manager to include versions 13,14,15 zksolc (#132)
dutterbutter Oct 27, 2023
f07620e
fix: resolves import paths issue (#133)
dutterbutter Oct 27, 2023
2378501
chore: adds latest zksolc compiler (#135)
dutterbutter Oct 30, 2023
e96cf29
fix: fix zkforge zkbuild on ubuntu (#137)
nbaztec Nov 2, 2023
cb8777f
chore: moves `zk_solc.rs` and `zksolc_manager.rs` to `common` crate (…
dutterbutter Nov 3, 2023
a5d74cc
fix: update revm, fix env update for deployed contracts and era-test-…
nbaztec Nov 8, 2023
ce362d0
chore: update runner for forge fmt (#140)
dutterbutter Nov 9, 2023
36dadfc
feat: run smoke test on PRs (#141)
nbaztec Nov 10, 2023
fb08e69
fix: skip contracts with empty bytecode hash to avoid runtime error (…
caffeinum Nov 29, 2023
087ea2a
chore: update era-revm (#183)
nbaztec Dec 6, 2023
d507122
fix: fail tests on assert failure (#184)
nbaztec Dec 7, 2023
cf104db
fix: makes use of `zksolc_manager` during test cmd to download compil…
dutterbutter Dec 8, 2023
23c9a53
Update from upstream
Deniallugo Dec 8, 2023
64c82fb
Merge branch 'main' into deniallugo-update-from-upstream
Deniallugo Dec 11, 2023
63f23b3
Make zk cast and forge compilable
Deniallugo Dec 11, 2023
6f18ae4
Compilable with create and forge
Deniallugo Dec 11, 2023
3f5eacb
fmt
Deniallugo Dec 11, 2023
8bdebe1
Fix smoke test
Deniallugo Dec 11, 2023
35e4245
more fmt
Deniallugo Dec 11, 2023
8fb6ece
fix: resolve cargo clippy warnings and issues, updates rust nightly t…
dutterbutter Dec 11, 2023
b0c1408
Fix smoke test
Deniallugo Dec 11, 2023
59e7ea9
fmt
Deniallugo Dec 12, 2023
23e5a34
use zkforge module, fix deployed smart contract address computation
nbaztec Dec 12, 2023
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
  •  
  •  
  •  
19 changes: 6 additions & 13 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,18 +1,11 @@
[alias]
cheats = "test -p foundry-cheatcodes --features schema tests::"
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"]
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 = "2s", 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.heavy]
retries = 1
slow-timeout = { period = "120m", terminate-after = 1}
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
**/*.sol linguist-language=Solidity

crates/abi/src/bindings/*.rs linguist-generated
crates/cheatcodes/assets/*.json linguist-generated
testdata/cheats/Vm.sol linguist-generated
6 changes: 6 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* @danipopes @evalir @mattsse

crates/anvil/ @evalir @mattsse
crates/evm/coverage/ @evalir @onbjerg
crates/fmt/ @rkrasiuk
crates/macros/impls/ @danipopes
91 changes: 49 additions & 42 deletions .github/scripts/matrices.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,105 +4,114 @@
import os


# A runner target
class Target:
# GitHub runner OS
os_id: str
# Rust target triple
target: str
# SVM Solc target
svm_target_platform: str

def __init__(self, os_id: str, target: str):
def __init__(self, os_id: str, target: str, svm_target_platform: str):
self.os_id = os_id
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
xplatform: bool
# 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, xplatform: 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.xplatform = xplatform
self.pr_cross_platform = pr_cross_platform


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

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


default_target = Target("ubuntu-latest", "x86_64-unknown-linux-gnu")
if os.environ.get("EVENT_NAME") == "pull_request":
targets = [default_target]
else:
targets = [
default_target,
Target("ubuntu-latest", "aarch64-unknown-linux-gnu"),
Target("macos-latest", "x86_64-apple-darwin"),
# Disabled since the test binary will be built for M1/M2, but there are no
# GitHub runners capable of executing those binaries.
# Target("macos-latest", "aarch64-apple-darwin"),
Target("windows-latest", "x86_64-pc-windows-msvc"),
]
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", "x86_64-apple-darwin", "macosx-amd64")
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(lib) | kind(bench) | kind(proc-macro)",
n_partitions=1,
xplatform=True,
pr_cross_platform=True,
),
Case(
name="integration",
filter="kind(test) & !test(/issue|forge_std|ext_integration/)",
n_partitions=3,
xplatform=True,
pr_cross_platform=True,
),
Case(
name="integration/issue-repros",
name="integration / issue-repros",
filter="package(=forge) & test(~issue)",
n_partitions=2,
xplatform=False,
pr_cross_platform=False,
),
Case(
name="integration/forge-std",
name="integration / forge-std",
filter="package(=forge) & test(~forge_std)",
n_partitions=1,
xplatform=False,
pr_cross_platform=False,
),
Case(
name="integration/external",
name="integration / external",
filter="package(=forge) & test(~ext_integration)",
n_partitions=2,
xplatform=False,
pr_cross_platform=False,
),
]


def build_matrix():
expanded = []
for target in targets:
expanded.append({"os": target.os_id, "target": target.target})
print_json({"include": expanded})


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

for partition in range(1, case.n_partitions + 1):
Expand All @@ -119,9 +128,10 @@ def test_matrix():
name += os_str

obj = Expanded(
name=name,
os=target.os_id,
target=target.target,
name=name,
svm_target_platform=target.svm_target_platform,
flags=flags,
partition=partition,
)
Expand All @@ -135,7 +145,4 @@ def print_json(obj):


if __name__ == "__main__":
if int(os.environ.get("TEST", "0")) == 0:
build_matrix()
else:
test_matrix()
main()
2 changes: 1 addition & 1 deletion .github/workflows/deny.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check all
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/dependencies.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Automatically run `cargo update` periodically

name: Update Dependencies
name: dependencies

on:
schedule:
Expand Down Expand Up @@ -32,10 +32,10 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly-2023-07-23
toolchain: nightly-2023-09-21

- name: cargo update
# Remove first line that always just says "Updating crates.io index"
Expand Down
Loading