-
Notifications
You must be signed in to change notification settings - Fork 54
/
Copy pathfoundry.toml
73 lines (64 loc) · 1.89 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
[profile.default]
auto_detect_solc = false
bytecode_hash = "none"
cbor_metadata = false
fs_permissions = [{ access = "read", path = "./optimized-out" }]
libs = ["lib"]
gas_reports = [
"SablierV2Comptroller",
"SablierV2LockupLinear",
"SablierV2LockupPro",
]
optimizer = true
optimizer_runs = 5_000
out = "out"
script = "script"
solc = "0.8.18"
src = "src"
test = "test"
[profile.default.fuzz]
max_test_rejects = 1_000_000 # Number of times `vm.assume` can fail
runs = 1_000
[profile.default.invariant]
call_override = false # Override unsafe external calls to perform reentrancy checks
fail_on_revert = true
depth = 200 # Number of calls executed in one run
# Speed up compilation and tests during development
[profile.lite]
fuzz = { runs = 50 }
invariant = { depth = 50, runs = 50 }
optimizer = false
# Compile only the production code with IR
[profile.optimized]
out = "optimized-out"
test = "src"
via_ir = true
# See "SMTChecker and Formal Verification" in the Solidity docs
[profile.smt.model_checker]
engine = "chc" # constrained Horn clauses
showUnproved = true
timeout = 100_000 # in milliseconds
targets = [
"assert",
"constantCondition",
"divByZero",
"outOfBounds",
"overflow",
"underflow",
]
[profile.smt.model_checker.contracts]
"src/SablierV2LockupLinear.sol" = ["SablierV2LockupLinear"]
"src/SablierV2LockupPro.sol" = ["SablierV2LockupPro"]
# Test the optimized contracts without re-compiling them
[profile.test-optimized]
fuzz = { runs = 5_000 }
invariant = { depth = 250, runs = 200 }
src = "test"
verbosity = 4
[etherscan]
ethereum = { key = "${ETHERSCAN_API_KEY}" }
goerli = { key = "${ETHERSCAN_API_KEY}" }
[rpc_endpoints]
ethereum = "https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}"
goerli = "https://goerli.infura.io/v3/${INFURA_API_KEY}"
localhost = "http://localhost:8545"