11[profile .default ]
2- src = " src"
3- out = " out"
4- libs = [" lib" ]
5- fs_permissions = [{ access = " read-write" , path = " ./" }]
6- gas_limit = 5000000000
7-
8- ffi = true
9- no-match-contract = " FFI"
10-
11- # Enables or disables the optimizer
12- optimizer = true
13- # Sets the number of optimizer runs
14- optimizer_runs = 200
15- # Whether or not to use the Yul intermediate representation compilation pipeline
16- via_ir = false
17- # Override the Solidity version (this overrides `auto_detect_solc`)
18- solc_version = ' 0.8.27'
2+ # Project Configuration
3+
4+ # Path to contract sources relative to the root of the project.
5+ src = " src"
6+ # Path to the test contract sources relative to the root of the project.
7+ test = " test"
8+ # Path to the script contract sources relative to the root of the project.
9+ script = " script"
10+ # Path to store contract artifacts relative to the root of the project.
11+ out = " out"
12+ # Array of paths that contain libraries, relative to the root of the project.
13+ libs = [" lib" ]
14+
15+ # Solidity Compiler Configuration
16+
17+ # Defines paths for Solidity imports.
18+ remappings = [
19+ " @openzeppelin/=lib/openzeppelin-contracts-v4.9.0/" ,
20+ " @openzeppelin-upgrades/=lib/openzeppelin-contracts-upgradeable-v4.9.0/" ,
21+ " ds-test/=lib/ds-test/src/" ,
22+ " forge-std/=lib/forge-std/src/"
23+ ]
24+ # Specifies the exact version of Solidity to use, overriding auto-detection.
25+ solc_version = ' 0.8.27'
26+ # If enabled, treats Solidity compiler warnings as errors, preventing artifact generation if warnings are present.
27+ deny_warnings = false
28+ # If set to true, changes compilation pipeline to go through the new IR optimizer.
29+ via_ir = false
30+ # Whether or not to enable the Solidity optimizer.
31+ optimizer = true
32+ # The number of runs specifies roughly how often each opcode of the deployed code will be executed
33+ # across the life-time of the contract. This means it is a trade-off parameter between code size (deploy cost)
34+ # and code execution cost (cost after deployment).
35+ optimizer_runs = 200
36+
37+ # Test Configuration
38+
39+ # Verbosity level during test execution. Higher levels provide more detailed information:
40+ # - 2 (-vv): Logs emitted during tests are displayed.
41+ # - 3 (-vvv): Stack traces for failing tests are displayed.
42+ # - 4 (-vvvv): Stack traces for all tests and setup traces for failing tests are displayed.
43+ # - 5 (-vvvvv): Stack and setup traces are always displayed.
44+ verbosity = 0
45+ # Enables the Foreign Function Interface (FFI) cheatcode.
46+ # WARNING: This allows arbitrary programs to run on your computer, which poses security risks.
47+ ffi = true
48+ # Contracts to include in gas reports. By default, all contracts are included.
49+ gas_reports = [" ./src/**/*" ]
50+ # Show test execution progress if set to true.
51+ show_progress = true
52+ # Sparse mode only compiles files that match certain criteria.
53+ sparse_mode = true
54+
55+ gas_limit = 5000000000
56+ no-match-contract = " FFI"
57+ fs_permissions = [{ access = " read-write" , path = " ./" }]
58+
59+ [profile .default .fmt ]
60+ # Single-line vs multi-line statement blocks
61+ single_line_statement_blocks = " preserve" # Options: "single", "multi", "preserve"
62+ # Formatting style for long function headers
63+ multiline_func_header = " params_first" # Options: "attributes_first", "params_first", "all"
64+ # Sort import statements alphabetically
65+ sort_imports = false
66+ # Maximum line length where formatter will wrap the line
67+ line_length = 100 # Default: 120
68+ # Number of spaces per indentation level
69+ tab_width = 4 # Default: 4
70+ # Whether to print spaces between brackets
71+ bracket_spacing = false
72+ # Style of uint/int256 types
73+ int_types = " long" # Options: "long", "short", "preserve"
74+ # Quotation mark style
75+ quote_style = " double" # Options: "double", "single", "preserve"
76+ # Style of underscores in number literals
77+ number_underscore = " thousands" # Options: "preserve", "thousands", "remove"
78+ # Whether or not to wrap comments at line_length
79+ wrap_comments = false
80+ # List of files to ignore during formatting (can use glob patterns)
81+ # ignore = [
82+ # "./script/**/*",
83+ # "./test/**/*"
84+ # ]
85+
86+ # TODO: Decide if we want to enable this.
87+ # [profile.test.fmt]
88+ # int_types = "short"
89+ # line_length = 140
90+ # ignore = [
91+ # "./src/**/*"
92+ # ]
93+
94+ [profile .ci .fuzz ]
95+ optimizer = false
96+ runs = 32
97+
98+ [profile .intense .fuzz ]
99+ optimizer = false
100+ runs = 15000
101+
102+ [profile .forktest .fuzz ]
103+ runs = 16
104+
105+ [rpc_endpoints ]
106+ mainnet = " ${RPC_MAINNET}"
107+ holesky = " ${RPC_HOLESKY}"
19108
20109[etherscan ]
21- mainnet = { key = " ${ETHERSCAN_API_KEY}" }
22- holesky = { key = " ${ETHERSCAN_API_KEY}" }
23-
24- [fmt ]
25- bracket_spacing = false
26- int_types = " long"
27- line_length = 100
28- multiline_func_header = " params_first"
29- number_underscore = " thousands"
30- quote_style = " double"
31- tab_width = 4
32-
33- # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
110+ mainnet = { key = " ${ETHERSCAN_API_KEY}" }
111+ holesky = { key = " ${ETHERSCAN_API_KEY}" }
0 commit comments