-
-
Notifications
You must be signed in to change notification settings - Fork 59
/
foundry.toml
61 lines (54 loc) · 4.92 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
# Defaults for all profiles.
[profile.default]
src = "src/snekmate" # Set the source directory.
test = "test" # Set the test directory.
out = "out" # Set the output directory for the artifacts.
libs = ["lib"] # Configure an array of library directories.
cache = true # Enable caching.
cache_path = "cache" # Set the path to the cache.
force = false # Do not ignore the cache.
skip = ["src/snekmate/**/*[!c][!k].vy", "src/snekmate/**/*.vyi"] # Skip the compilation of non-mock and interface files.
solc_version = "0.8.28" # Set the Solidity compiler version.
evm_version = "cancun" # Set the EVM target version.
optimizer = true # Enable the Solidity compiler optimiser.
optimizer_runs = 200 # Configure the number of optimiser runs.
via_ir = false # Prevent the compilation pipeline from running through the Yul intermediate representation.
vyper = { optimize = "gas" } # Configure the Vyper compiler optimisation mode.
verbosity = 3 # Set the verbosity level for the tests.
ffi = true # Enable the foreign function interface (ffi) cheatcode.
no_match_path = "test/**/{echidna,halmos}/**/*" # Run only tests in the test directory that do not match the specified glob pattern.
fs_permissions = [{ access = "read-write", path = "./" }] # Configure read-write access to the project root.
fuzz = { runs = 256, max_test_rejects = 65_536 } # Configure the number of fuzz runs and maximum number of combined inputs that may be rejected for the tests.
invariant = { runs = 256, depth = 15 } # Configure the number of runs and calls (executed in one run) for each invariant test group.
# Default overrides for the CI runs.
[profile.ci]
force = true # Perform always a clean build.
verbosity = 4 # Increase the verbosity level for the tests.
fuzz = { runs = 10_000, max_test_rejects = 350_000 } # Increase the number of fuzz runs and maximum number of combined inputs that may be rejected for the tests.
invariant = { runs = 375, depth = 500 } # Increase the number of runs (while preserving the default depth) for each invariant test group.
# Default overrides for the Echidna tests.
[profile.echidna]
force = true # Perform always a clean build.
# Default overrides for the Halmos tests.
[profile.halmos]
force = true # Perform always a clean build.
evm_version = "shanghai" # Set the EVM target version to `shanghai`.
# Default overrides for the Venom-based tests.
[profile.default-venom]
vyper = { experimental_codegen = true } # Enable experimental code generation using the Venom backend.
# Default overrides for the Venom-based CI tests.
[profile.ci-venom]
force = true # Perform always a clean build.
verbosity = 4 # Increase the verbosity level for the tests.
fuzz = { runs = 10_000, max_test_rejects = 350_000 } # Increase the number of fuzz runs and maximum number of combined inputs that may be rejected for the tests.
invariant = { runs = 375, depth = 500 } # Increase the number of runs (while preserving the default depth) for each invariant test group.
vyper = { experimental_codegen = true } # Enable experimental code generation using the Venom backend.
# Default overrides for the the Venom-based Echidna tests.
[profile.echidna-venom]
force = true # Perform always a clean build.
vyper = { experimental_codegen = true } # Enable experimental code generation using the Venom backend.
# Default overrides for the Venom-based Halmos tests.
[profile.halmos-venom]
force = true # Perform always a clean build.
evm_version = "shanghai" # Set the EVM target version to `shanghai`.
vyper = { experimental_codegen = true } # Enable experimental code generation using the Venom backend.