generated from Uniswap/foundry-template
-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathfoundry.toml
84 lines (78 loc) · 4.14 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
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
verbosity = 2
bytecode_hash = "none"
auto_detect_remappings = false
fs_permissions = [
{ access = "read-write", path = ".forge-snapshots"},
{ access = "read", path = "script/" },
{ access = "read-write", path = "script/deploy/tasks" },
{ access = "read", path = "out/" }
]
skip = [
"src/pkgs/**/audits/**",
"src/pkgs/**/certora/**",
"src/pkgs/**/lib/**",
"src/pkgs/**/test/**",
"src/pkgs/universal-router/permit2/**",
"src/pkgs/universal-router/solmate/**",
"src/pkgs/**/*.s.sol",
"*.t.sol",
]
additional_compiler_profiles = [
{ name = "v4", optimizer_runs = 44444444, via_ir = true, evm_version = "cancun" },
{ name = "v4-posm", optimizer_runs = 30000, via_ir = true, evm_version = "cancun" },
{ name = "v4-descriptor", optimizer_runs = 1, via_ir = true, evm_version = "cancun" },
{ name = "v2", optimizer_runs = 999999 },
{ name = "v3-core", optimizer_runs = 800, evm_version = "istanbul", via_ir = false },
{ name = "v3-periphery-lowest", optimizer_runs = 1000, evm_version = "istanbul", via_ir = false },
{ name = "v3-periphery-low", optimizer_runs = 2000, evm_version = "istanbul", via_ir = false },
{ name = "v3-periphery-default", optimizer_runs = 1000000, evm_version = "istanbul", via_ir = false },
{ name = "permit2", optimizer_runs = 1000000, via_ir = true },
{ name = "uniswapx", optimizer_runs = 1000000, via_ir = false },
]
compilation_restrictions = [
# v2
{ paths = "src/pkgs/v2-core/contracts/[!i]*.sol", version = "0.5.16", optimizer_runs = 999999 },
{ paths = "src/pkgs/v2-periphery/contracts/[!i]*.sol", version = "0.6.6", optimizer_runs = 999999 },
# v3
{ paths = "src/pkgs/v3-core/contracts/{UniswapV3Factory,UniswapV3Pool}.sol", optimizer_runs = 800 },
{ paths = "src/**/v3-core/**/libraries/TickBitmap.sol", version = "<0.8.0" },
{ paths = "src/pkgs/v3-periphery/contracts/lens/*.sol", version = "0.7.6", via_ir = false, optimizer_runs = 1000000 },
{ paths = "src/pkgs/v3-periphery/contracts/NonfungiblePositionManager.sol", optimizer_runs = 2000 },
{ paths = "src/pkgs/v3-periphery/contracts/NonfungibleTokenPositionDescriptor.sol", optimizer_runs = 1000 },
{ paths = "src/pkgs/v3-periphery/contracts/libraries/NFTDescriptor.sol", optimizer_runs = 1000 },
{ paths = "src/pkgs/v3-periphery/contracts/*.sol", version = "0.7.6", via_ir = false, max_optimizer_runs = 1000000 },
{ paths = "src/pkgs/v3-periphery/**/libraries/**", version = "<0.8.0" },
# permit2
{ paths = "src/pkgs/permit2/src/**", version = "0.8.17", via_ir = true },
# v4
{ paths = "lib/v4-core/src/PoolManager.sol", optimizer_runs = 44444444 },
{ paths = "src/pkgs/v4-periphery/src/PositionDescriptor.sol", version = "0.8.26", optimizer_runs = 1 },
{ paths = "src/pkgs/v4-periphery/src/PositionManager.sol", version = "0.8.26", optimizer_runs = 30000 },
{ paths = "src/pkgs/v4-periphery/src/lens/**", version = "0.8.26", optimizer_runs = 44444444 },
# router
{ paths = "src/pkgs/universal-router/contracts/**", optimizer_runs = 44444444 },
{ paths = "src/pkgs/swap-router-contracts/contracts/**", version = "0.7.6", via_ir = false, optimizer_runs = 1000000 },
# X
{ paths = "src/pkgs/uniswapx/src/base/BlockNumberish.sol", version = "0.8.24" },
# Briefcase
{ paths = "src/briefcase/protocols/v2-periphery/libraries/UniswapV2Library.sol", version = "<0.8.0" },
{ paths = "src/briefcase/protocols/lib-external/solidity-lib/**", version = "<0.8.0" },
{ paths = "src/briefcase/protocols/v4-core/libraries/**", evm_version = "cancun" },
{ paths = "src/briefcase/protocols/v4-periphery/libraries/Locker.sol", evm_version = "cancun" },
{ paths = "src/briefcase/protocols/swap-router-contracts/libraries/**", version = "<0.8.0" },
{ paths = "src/briefcase/protocols/v3-periphery/libraries/**", version = "<0.8.0" },
]
[fmt]
line_length = 120
tab_width = 4
quote_style = "single"
sort_imports = true
number_underscore = "thousands"
[etherscan]
# chain id 129412 is reserved for the tenderly testnet
# config to deploy and verify contracts on tenderly testnet using CI
tenderly_vnet = { key = "${TENDERLY_ACCESS_KEY}", chain = 129412, url = "${TENDERLY_PUBLIC_RPC_URL}/verify/etherscan" }