-
Notifications
You must be signed in to change notification settings - Fork 87
Expand file tree
/
Copy pathfoundry.toml
More file actions
40 lines (34 loc) · 1.39 KB
/
Copy pathfoundry.toml
File metadata and controls
40 lines (34 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[profile.default]
src = "src"
out = "out"
libs = ["lib", "dependencies"]
via_ir = true
optimizer = true
# `via_ir = true` + runs=200 produces ~3 KB smaller bytecode for the largest
# contract (KernelImmutableECDSA: 24,728 B → 21,556 B) compared to the legacy
# pipeline. The earlier "via_ir is cheaper at runtime but bigger" comment was
# accurate against older Solidity (0.8.13-ish) but no longer holds with
# 0.8.33: the IR pipeline outperforms legacy on both size AND runtime gas
# under the project's contract shape (no inline assembly hot loops, modest
# control-flow complexity). Restored runs=200 for runtime gas, with comfortable
# EIP-170 margin (all production contracts ~3 KB under the 24,576 B limit).
optimizer_runs = 200
evm_version = 'prague'
solc_version = '0.8.33'
cbor_metadata = false
bytecode_hash = "none"
isolate = true
extra_output = ["storageLayout"]
ignored_error_codes = [4591]
# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
[invariant]
runs = 1000
depth = 1000
[dependencies]
solady = "0.1.26"
eth-infinitism-account-abstraction = { version = "0.9.0", git = "https://github.com/eth-infinitism/account-abstraction.git", branch = "release-v09" }
"@openzeppelin-contracts" = "5.4.0"
a16z-halmos-cheatcodes = "6da4e692c357ba6d641a2e677a28298cac9f76ab"
forge-std = "1.11.0"
[lint]
exclude_lints = ["unwrapped-modifier-logic"]