-
Notifications
You must be signed in to change notification settings - Fork 168
Expand file tree
/
Copy pathfoundry.toml
More file actions
121 lines (114 loc) · 4 KB
/
foundry.toml
File metadata and controls
121 lines (114 loc) · 4 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
[profile.default]
src = "./contracts/src"
# OZ Upgrades requires the out dir to be `./out`, or for `FOUNDRY_OUT` to be set
# https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades/blob/cfd861bc18ef4737e82eae6ec75304e27af699ef/src/internal/Utils.sol#L139-L147
out = "./out"
fs_permissions = [
{ access = "read", path = "./out" },
{ access = "read", path = "./contracts/out" },
{ access = "read-write", path = "./contracts/deployment.toml" },
{ access = "read", path = "./contracts/deployment_verifier.toml" },
{ access = "read-write", path = "./contracts/deployment-version-registry.toml" },
]
libs = ["./lib"]
script = "./contracts/scripts"
test = "./contracts/test"
ffi = true
evm_version = 'cancun'
via_ir = true
optimizer = true
# Use 100 runs only to reduce contract size.
optimizer_runs = 100
ast = true
build_info = true
extra_output = ["storageLayout"]
gas_reports = ["BoundlessMarket"]
solc_version = "0.8.26"
# Do not append metadata hash to bytecode. We do not currently use it, and omitting it results in
# more stable build artifacts, which is important since we check the bytecode into git.
# For information about Solidity metadata, see https://docs.soliditylang.org/en/latest/metadata.html
bytecode_hash = "none"
snapshots = "contracts/snapshots"
isolate = true
# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
[fmt]
line_length = 120
tab_width = 4
quote_style = "double"
ignore = ["contracts/src/blake3-groth16/Groth16Verifier.sol"]
[lint]
exclude_lints = ["asm-keccak256", "incorrect-shift"]
# Profile used to run deployment tests, which check the correctness of contracts as deployed.
# TIP: You can select this profile by setting env var FOUNDRY_PROFILE=deployment-test
[profile.deployment-test]
test = "contracts/deployment-test"
#match_path = "contracts/deployment-test/*"
fs_permissions = [
{ access = "read", path = "contracts/deployment.toml" },
{ access = "read", path = "contracts/deployment_verifier.toml" },
]
isolate = true
# Profile used for deploying PoVW contracts with higher optimization
# TIP: You can select this profile by setting env var FOUNDRY_PROFILE=povw-deploy
[profile.povw-deploy]
src = "./contracts/src"
out = "./out"
fs_permissions = [
{ access = "read", path = "./out" },
{ access = "read", path = "./contracts/out" },
{ access = "read-write", path = "./contracts/deployment.toml" },
]
libs = ["./lib"]
script = "./contracts/scripts"
test = "./contracts/test"
ffi = true
evm_version = 'cancun'
via_ir = true
optimizer = true
# Use higher optimization runs for PoVW deployments to reduce gas costs
optimizer_runs = 1000000
ast = true
build_info = true
extra_output = ["storageLayout"]
solc_version = "0.8.26"
bytecode_hash = "none"
isolate = true
# Profile used to run upgradeability tests.
# TIP: You can select this profile by setting env vars FOUNDRY_PROFILE=reference-contract and FOUNDRY_OUT="contracts/reference-contract/out"
[profile.reference-contract]
src = "contracts/src"
out = "contracts/reference-contract/out"
test = "contracts/reference-contract/test"
libs = ["lib"]
ffi = true
ast = true
build_info = true
extra_output = ["storageLayout"]
fs_permissions = [
{ access = "read", path = "contracts/reference-contract/out" },
]
# Profile for Shanghai-compatible contract variant (no tstore/tload).
# TIP: You can select this profile by setting env var FOUNDRY_PROFILE=shanghai
[profile.shanghai]
src = "./contracts/shanghai/src"
out = "./out-shanghai"
libs = ["./lib"]
script = "./contracts/shanghai/scripts"
test = "./contracts/shanghai/test"
ffi = true
evm_version = 'shanghai'
via_ir = true
optimizer = true
optimizer_runs = 100
ast = true
build_info = true
extra_output = ["storageLayout"]
solc_version = "0.8.26"
bytecode_hash = "none"
isolate = true
fs_permissions = [
{ access = "read", path = "./out-shanghai" },
{ access = "read", path = "./contracts/out" },
{ access = "read-write", path = "./contracts/deployment.toml" },
{ access = "read", path = "./contracts/deployment_verifier.toml" },
]