-
Notifications
You must be signed in to change notification settings - Fork 103
Expand file tree
/
Copy pathfoundry.toml
More file actions
194 lines (187 loc) · 13.2 KB
/
foundry.toml
File metadata and controls
194 lines (187 loc) · 13.2 KB
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
[profile.default]
test = 'test/solidity'
solc_version = '0.8.29'
evm_version = 'cancun'
auto_detect_solc = false
optimizer = true
optimizer_runs = 1000000
out = 'out'
fs_permissions = [
{ access = "read", path = "./deployments/" },
{ access = "read", path = "./config/" },
{ access = "read-write", path = "./test/logs/" },
{ access = "read", path = "./zkout/" },
]
ffi = true
libs = ["node_modules", "lib"]
cache = true
[profile.zksync]
solc_version = '0.8.29'
evm_version = 'cancun'
test = "notest"
script = "script/deploy/zksync"
cache_path = "./zkcache"
out = "out/zksync"
[lint]
lint_on_build = false
# zksolc needs to be defined here as foundry can't detect it if it's under [profile.zksync]
[profile.default.zksync]
zksync = { zksolc = '1.5.15' }
[rpc_endpoints]
mainnet = "${ETH_NODE_URI_MAINNET}"
0g = "${ETH_NODE_URI_0G}"
abstract = "${ETH_NODE_URI_ABSTRACT}"
apechain = "${ETH_NODE_URI_APECHAIN}"
arbitrum = "${ETH_NODE_URI_ARBITRUM}"
arbitrumnova = "${ETH_NODE_URI_ARBITRUMNOVA}"
arc = "${ETH_NODE_URI_ARC}"
arctestnet = "${ETH_NODE_URI_ARCTESTNET}"
avalanche = "${ETH_NODE_URI_AVALANCHE}"
base = "${ETH_NODE_URI_BASE}"
berachain = "${ETH_NODE_URI_BERACHAIN}"
blast = "${ETH_NODE_URI_BLAST}"
boba = "${ETH_NODE_URI_BOBA}"
bob = "${ETH_NODE_URI_BOB}"
botanix = "${ETH_NODE_URI_BOTANIX}"
bsc = "${ETH_NODE_URI_BSC}"
celo = "${ETH_NODE_URI_CELO}"
corn = "${ETH_NODE_URI_CORN}"
cronos = "${ETH_NODE_URI_CRONOS}"
evmos = "${ETH_NODE_URI_EVMOS}"
flare = "${ETH_NODE_URI_FLARE}"
flow = "${ETH_NODE_URI_FLOW}"
fraxtal = "${ETH_NODE_URI_FRAXTAL}"
fuse = "${ETH_NODE_URI_FUSE}"
harmony = "${ETH_NODE_URI_HARMONY}"
hemi = "${ETH_NODE_URI_HEMI}"
hyperevm = "${ETH_NODE_URI_HYPEREVM}"
gnosis = "${ETH_NODE_URI_GNOSIS}"
gravity = "${ETH_NODE_URI_GRAVITY}"
etherlink = "${ETH_NODE_URI_ETHERLINK}"
immutablezkevm = "${ETH_NODE_URI_IMMUTABLEZKEVM}"
jovay = "${ETH_NODE_URI_JOVAY}"
ink = "${ETH_NODE_URI_INK}"
kaia = "${ETH_NODE_URI_KAIA}"
katana = "${ETH_NODE_URI_KATANA}"
lens = "${ETH_NODE_URI_LENS}"
linea = "${ETH_NODE_URI_LINEA}"
lisk = "${ETH_NODE_URI_LISK}"
megaeth = "${ETH_NODE_URI_MEGAETH}"
monad= "${ETH_NODE_URI_MONAD}"
moonbeam = "${ETH_NODE_URI_MOONBEAM}"
nova = "${ETH_NODE_URI_NOVA}"
mantle = "${ETH_NODE_URI_MANTLE}"
metis = "${ETH_NODE_URI_METIS}"
mode = "${ETH_NODE_URI_MODE}"
morph = "${ETH_NODE_URI_MORPH}"
nibiru = "${ETH_NODE_URI_NIBIRU}"
okx = "${ETH_NODE_URI_OKX}"
opbnb = "${ETH_NODE_URI_OPBNB}"
optimism = "${ETH_NODE_URI_OPTIMISM}"
pharos = "${ETH_NODE_URI_PHAROS}"
plasma = "${ETH_NODE_URI_PLASMA}"
plume = "${ETH_NODE_URI_PLUME}"
polygon = "${ETH_NODE_URI_POLYGON}"
rootstock = "${ETH_NODE_URI_ROOTSTOCK}"
ronin = "${ETH_NODE_URI_RONIN}"
sei = "${ETH_NODE_URI_SEI}"
somnia = "${ETH_NODE_URI_SOMNIA}"
soneium = "${ETH_NODE_URI_SONEIUM}"
sonic = "${ETH_NODE_URI_SONIC}"
sophon = "${ETH_NODE_URI_SOPHON}"
stable = "${ETH_NODE_URI_STABLE}"
superposition = "${ETH_NODE_URI_SUPERPOSITION}"
swellchain = "${ETH_NODE_URI_SWELLCHAIN}"
taiko = "${ETH_NODE_URI_TAIKO}"
telos = "${ETH_NODE_URI_TELOS}"
tempo = "${ETH_NODE_URI_TEMPO}"
velas = "${ETH_NODE_URI_VELAS}"
unichain = "${ETH_NODE_URI_UNICHAIN}"
vana = "${ETH_NODE_URI_VANA}"
viction = "${ETH_NODE_URI_VICTION}"
worldchain = "${ETH_NODE_URI_WORLDCHAIN}"
xdc = "${ETH_NODE_URI_XDC}"
xlayer = "${ETH_NODE_URI_XLAYER}"
zksync = "${ETH_NODE_URI_ZKSYNC}"
scroll = "${ETH_NODE_URI_SCROLL}"
# testnets
basesepolia = "${ETH_NODE_URI_BASESEPOLIA}"
arbitrumsepolia = "${ETH_NODE_URI_ARBITRUMSEPOLIA}"
localanvil = "${ETH_NODE_URI_LOCALANVIL}"
optimismsepolia = "${ETH_NODE_URI_OPTIMISMSEPOLIA}"
[etherscan]
mainnet = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=1", chain = "1" }
0g = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://chainscan.0g.ai/api/", chain = "16661", verifier = "blockscout" }
abstract = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://abscan.org/contract_verification", chain = "2741", verifier = "zksync" }
apechain = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=33139", chain = "33139" }
arbitrum = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=42161", chain = "42161" }
arbitrumnova = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://arbitrum-nova.blockscout.com/api", chain = "42170", verifier = "blockscout" }
arc = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.arc.io/api", chain = "5042", verifier = "blockscout" }
arctestnet = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://testnet.arcscan.app/api", chain = "5042002", verifier = "blockscout" }
avalanche = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=43114", chain = "43114" }
base = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=8453", chain = "8453" }
berachain = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=80094", chain = "80094" }
blast = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=81457", chain = "81457" }
bob = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.gobob.xyz/api", verifier = "blockscout", chain = "60808" }
boba = { key = "${BOBA_ETHERSCAN_API_KEY}", url = "https://api.routescan.io/v2/network/mainnet/evm/288/etherscan/api", chain = "288" }
botanix = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://api.routescan.io/v2/network/mainnet/evm/3637/etherscan", chain = "3637" }
bsc = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=56", chain = "56" }
celo = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=42220", chain = "42220" }
corn = { key = "${CORN_ETHERSCAN_API_KEY}", url = "https://api.routescan.io/v2/network/mainnet/evm/21000000/etherscan", chain = "21000000" }
cronos = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://cronos.org/explorer/api", verifier = "blockscout", chain = "25" }
flare = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://api.routescan.io/v2/network/mainnet/evm/14/etherscan", chain = "14" }
flow = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://evm.flowscan.io/api", chain = "747" , verifier = "blockscout"}
fraxtal = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=252", chain = "252" }
fuse = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.fuse.io/api?", chain = "122" , verifier = "blockscout"}
gnosis = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=100", chain = "100" }
gravity = { key = "${GRAVITY_ETHERSCAN_API_KEY}", url = "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/GRAVITY", chain = "1625", verifier = "oklink" }
hemi = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.hemi.xyz/api", chain = "43111", verifier = "blockscout" }
hyperevm = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=999", chain = "999" }
etherlink = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.etherlink.com/api", chain = "42793", verifier = "blockscout" }
ink = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.inkonchain.com/api", verifier = "blockscout", chain = "57073"}
jovay = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.jovay.io/api", chain = "5734951"}
immutablezkevm = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.immutable.com/api", chain = "13371", verifier = "blockscout" }
kaia = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/kaia", chain = "8217", verifier = "oklink" }
katana = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=747474", chain = "747474" }
lens = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://api-explorer-verify.lens.matterhosted.dev/contract_verification", chain = "232", verifier = "zksync" }
linea = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=59144", chain = "59144" }
lisk = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://blockscout.lisk.com/api", chain = "1135", verifier = "blockscout" }
mantle = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=5000", chain = "5000" }
megaeth = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://megaeth.blockscout.com/api", chain = "4326", verifier = "blockscout" }
metis = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan", chain = "1088" }
mode = { key = "${MODE_ETHERSCAN_API_KEY}", url = "https://api.routescan.io/v2/network/mainnet/evm/34443/etherscan", chain = "34443" }
monad = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=143", verifier = "custom", chain = "143" }
moonbeam = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=1284", chain = "1284" }
morph = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer-api.morph.network/api", chain = "2818", verifier = "blockscout" }
nibiru = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://api.routescan.io/v2/network/mainnet/evm/6900/etherscan", chain = "6900" }
optimism = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=10", chain = "10" }
opbnb = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=204", chain = "204" }
pharos = { key = "${PHAROS_SOCIALSCAN_API_KEY}", url = "https://api.socialscan.io/pharos-mainnet/v1/explorer/command_api/contract", chain = "1672", verifier = "custom" }
plasma = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://api.routescan.io/v2/network/mainnet/evm/9745/etherscan", chain = "9745" }
plume = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer-plume-mainnet-1.t.conduit.xyz/api", verifier = "blockscout", chain = "98866" }
polygon = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=137", chain = "137" }
ronin= { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://sourcify.roninchain.com/server", chain = "2020", verifier = "sourcify" }
rootstock= { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://rootstock.blockscout.com/api", chain = "30", verifier = "blockscout" }
scroll = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=534352", chain = "534352" }
sei = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=1329", chain = "1329" }
somnia = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://mainnet.somnia.w3us.site/api", chain = "5031", verifier = "blockscout" }
soneium = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://soneium.blockscout.com/api", verifier = "blockscout", chain = "1868" }
sonic = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=146", chain = "146" }
sophon = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.sophon.xyz/contract_verification", chain = "50104", verifier = "zksync" }
stable = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=988", chain = "988"}
superposition = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer-superposition-1v9rjalnat.t.conduit.xyz/api/", chain = "55244", verifier = "blockscout" }
swellchain = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=1923", chain = "1923" }
taiko = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=167000", chain = "167000" }
telos = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://sourcify.dev/server", chain = "40", verifier = "sourcify"}
tempo = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://contracts.tempo.xyz", verifier = "sourcify", chain = "4217" }
unichain = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://unichain.blockscout.com/api?", chain = "130" , verifier = "blockscout" }
vana = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://vanascan.io/api", chain = "1480", verifier = "blockscout" }
viction = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://www.vicscan.xyz/api/contract/foundry/verify", chain = "88" }
worldchain = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=480", chain = "480" }
xdc = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=50", chain = "50" }
xlayer = { key = "${OKLINK_ETHERSCAN_API_KEY}", url = "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/xlayer", chain = "196", verifier = "oklink" }
zksync = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://zksync2-mainnet-explorer.zksync.io/contract_verification", chain = "324", verifier = "zksync" }
# testnets
basesepolia = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=84532", chain = "84532" }
arbitrumsepolia = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=421614", chain = "421614" }
optimismsepolia = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=11155420", chain = "11155420" }