forked from Layr-Labs/eigenlayer-contracts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfoundry.toml
137 lines (124 loc) · 5.04 KB
/
foundry.toml
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
[profile.default]
# Project Configuration
# Path to contract sources relative to the root of the project.
src = "src"
# Path to the test contract sources relative to the root of the project.
test = "src/test"
# Path to the script contract sources relative to the root of the project.
script = "script"
# Path to store contract artifacts relative to the root of the project.
out = "out"
# Array of paths that contain libraries, relative to the root of the project.
libs = ["lib"]
# Solidity Compiler Configuration
# Defines paths for Solidity imports.
remappings = [
"@openzeppelin/=lib/openzeppelin-contracts-v4.9.0/",
"@openzeppelin-upgrades/=lib/openzeppelin-contracts-upgradeable-v4.9.0/",
"ds-test/=lib/ds-test/src/",
"forge-std/=lib/forge-std/src/"
]
# Specifies the exact version of Solidity to use, overriding auto-detection.
solc_version = '0.8.27'
# If enabled, treats Solidity compiler warnings as errors, preventing artifact generation if warnings are present.
deny_warnings = true
# If set to true, changes compilation pipeline to go through the new IR optimizer.
via_ir = false
# Whether or not to enable the Solidity optimizer.
optimizer = true
# The number of runs specifies roughly how often each opcode of the deployed code will be executed
# across the life-time of the contract. This means it is a trade-off parameter between code size (deploy cost)
# and code execution cost (cost after deployment).
optimizer_runs = 200
# An array of Solidity compiler error codes to ignore during build, such as warnings.
ignored_error_codes = [
# 1878, # license
5574, # code-size
# 2018, # func-mutability
# 2072, # unused-var
# 5667, # unused-param
# 9302, # unused-return
# 5815, # virtual-interfaces
# 3628, # missing-receive-ether
# 2519, # shadowing
# 8760, # same-varname
# 6321, # unnamed-return
# 5740, # unreachable
# 3420, # pragma-solidity
# 2462, # constructor-visibility
3860, # init-code-size
# 2394, # transient-storage
4591 # too-many-warnings
]
# An array of file paths from which warnings should be ignored during compilation.
ignored_warnings_from = [
"src/test"
]
# Test Configuration
# Verbosity level during test execution. Higher levels provide more detailed information:
# - 2 (-vv): Logs emitted during tests are displayed.
# - 3 (-vvv): Stack traces for failing tests are displayed.
# - 4 (-vvvv): Stack traces for all tests and setup traces for failing tests are displayed.
# - 5 (-vvvvv): Stack and setup traces are always displayed.
verbosity = 0
# Enables the Foreign Function Interface (FFI) cheatcode.
# WARNING: This allows arbitrary programs to run on your computer, which poses security risks.
ffi = false
# Contracts to include in gas reports. By default, all contracts are included.
gas_reports = ["./src/contracts/**/*"]
# Show test execution progress if set to true.
show_progress = true
# Sparse mode only compiles files that match certain criteria.
sparse_mode = true
no_match_test = "queueUpgrade"
no_match_path = "script/releases/**/*.sol"
fs_permissions = [{ access = "read-write", path = "./"}]
[profile.default.fmt]
# Single-line vs multi-line statement blocks
single_line_statement_blocks = "preserve" # Options: "single", "multi", "preserve"
# Formatting style for long function headers
multiline_func_header = "params_first" # Options: "attributes_first", "params_first", "all"
# Sort import statements alphabetically
sort_imports = false
# Maximum line length where formatter will wrap the line
line_length = 120 # Default: 120
# Number of spaces per indentation level
tab_width = 4 # Default: 4
# Whether to print spaces between brackets
bracket_spacing = false
# Style of uint/int256 types
int_types = "long" # Options: "long", "short", "preserve"
# Quotation mark style
quote_style = "double" # Options: "double", "single", "preserve"
# Style of underscores in number literals
number_underscore = "thousands" # Options: "preserve", "thousands", "remove"
# Whether or not to wrap comments at line_length
wrap_comments = false
# List of files to ignore during formatting (can use glob patterns)
ignore = [
"./src/test/**/*"
]
[profile.test.fmt]
single_line_statement_blocks = "single"
multiline_func_header = "attributes_first"
int_types = "short"
line_length = 140
ignore = [
"./script/**/*",
"./src/contracts/**/*"
]
[profile.forktest.fuzz]
optimizer = false
runs = 16
[profile.coverage.fuzz]
optimizer = false
runs = 1
[profile.medium.fuzz]
optimizer = false
runs = 256
[profile.intense.fuzz]
optimizer = false
runs = 5000
[rpc_endpoints]
mainnet = "${RPC_MAINNET}"
holesky = "${RPC_HOLESKY}"