@across-protocol/contracts 4.1.8 → 4.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  const dotenv = __importStar(require("dotenv"));
27
27
  dotenv.config();
28
28
  const constants_1 = require("./utils/constants");
29
+ const utils_1 = require("./utils");
29
30
  require("@nomicfoundation/hardhat-verify"); // Must be above hardhat-upgrades
30
31
  require("@nomiclabs/hardhat-waffle");
31
32
  require("@typechain/hardhat");
@@ -36,15 +37,6 @@ require("hardhat-gas-reporter");
36
37
  require("solidity-coverage");
37
38
  require("hardhat-deploy");
38
39
  require("@openzeppelin/hardhat-upgrades");
39
- const getNodeUrl = (chainId) => {
40
- let url = process.env[`NODE_URL_${chainId}`] ?? process.env.CUSTOM_NODE_URL;
41
- if (url === undefined) {
42
- // eslint-disable-next-line no-console
43
- console.log(`No configured RPC provider for chain ${chainId}, reverting to public RPC.`);
44
- url = constants_1.PUBLIC_NETWORKS[chainId].publicRPC;
45
- }
46
- return url;
47
- };
48
40
  const getMnemonic = () => {
49
41
  // Publicly-disclosed mnemonic. This is required for hre deployments in test.
50
42
  const PUBLIC_MNEMONIC = "candy maple cake sugar pudding cream honey rich smooth crumble sweet treat";
@@ -52,6 +44,15 @@ const getMnemonic = () => {
52
44
  return MNEMONIC;
53
45
  };
54
46
  const mnemonic = getMnemonic();
47
+ const getDefaultHardhatConfig = (chainId, isTestnet = false) => {
48
+ return {
49
+ chainId,
50
+ url: (0, utils_1.getNodeUrl)(chainId),
51
+ accounts: { mnemonic },
52
+ saveDeployments: true,
53
+ companionNetworks: { l1: isTestnet ? "sepolia" : "mainnet" },
54
+ };
55
+ };
55
56
  // Custom tasks to add to HRE.
56
57
  const tasks = [
57
58
  "enableL1TokenAcrossEcosystem",
@@ -142,7 +143,7 @@ const config = {
142
143
  enabled: true,
143
144
  },
144
145
  suppressedErrors: ["sendtransfer"],
145
- contractsToCompile: ["SpokePoolPeriphery", "MulticallHandler"],
146
+ contractsToCompile: ["SpokePoolPeriphery", "MulticallHandler", "SpokePoolVerifier"],
146
147
  },
147
148
  },
148
149
  networks: {
@@ -151,16 +152,10 @@ const config = {
151
152
  zksync: compileZk,
152
153
  allowUnlimitedContractSize: true,
153
154
  },
154
- mainnet: {
155
- url: getNodeUrl(constants_1.CHAIN_IDs.MAINNET),
156
- accounts: { mnemonic },
157
- saveDeployments: true,
158
- chainId: constants_1.CHAIN_IDs.MAINNET,
159
- companionNetworks: { l1: "mainnet" },
160
- },
155
+ mainnet: getDefaultHardhatConfig(constants_1.CHAIN_IDs.MAINNET),
161
156
  zksync: {
162
157
  chainId: constants_1.CHAIN_IDs.ZK_SYNC,
163
- url: getNodeUrl(constants_1.CHAIN_IDs.ZK_SYNC),
158
+ url: (0, utils_1.getNodeUrl)(constants_1.CHAIN_IDs.ZK_SYNC),
164
159
  saveDeployments: true,
165
160
  accounts: { mnemonic },
166
161
  ethNetwork: "mainnet",
@@ -168,122 +163,26 @@ const config = {
168
163
  zksync: true,
169
164
  verifyURL: "https://zksync2-mainnet-explorer.zksync.io/contract_verification",
170
165
  },
171
- optimism: {
172
- chainId: constants_1.CHAIN_IDs.OPTIMISM,
173
- url: getNodeUrl(constants_1.CHAIN_IDs.OPTIMISM),
174
- accounts: { mnemonic },
175
- saveDeployments: true,
176
- companionNetworks: { l1: "mainnet" },
177
- },
178
- "optimism-sepolia": {
179
- chainId: constants_1.CHAIN_IDs.OPTIMISM_SEPOLIA,
180
- url: getNodeUrl(constants_1.CHAIN_IDs.OPTIMISM_SEPOLIA),
181
- accounts: { mnemonic },
182
- saveDeployments: true,
183
- companionNetworks: { l1: "sepolia" },
184
- },
185
- arbitrum: {
186
- chainId: constants_1.CHAIN_IDs.ARBITRUM,
187
- url: getNodeUrl(constants_1.CHAIN_IDs.ARBITRUM),
188
- saveDeployments: true,
189
- accounts: { mnemonic },
190
- companionNetworks: { l1: "mainnet" },
191
- },
192
- "arbitrum-sepolia": {
193
- chainId: constants_1.CHAIN_IDs.ARBITRUM_SEPOLIA,
194
- url: getNodeUrl(constants_1.CHAIN_IDs.ARBITRUM_SEPOLIA),
195
- saveDeployments: true,
196
- accounts: { mnemonic },
197
- companionNetworks: { l1: "sepolia" },
198
- },
199
- sepolia: {
200
- chainId: constants_1.CHAIN_IDs.SEPOLIA,
201
- url: getNodeUrl(constants_1.CHAIN_IDs.SEPOLIA),
202
- accounts: { mnemonic },
203
- saveDeployments: true,
204
- companionNetworks: { l1: "sepolia" },
205
- },
206
- polygon: {
207
- chainId: constants_1.CHAIN_IDs.POLYGON,
208
- url: getNodeUrl(constants_1.CHAIN_IDs.POLYGON),
209
- saveDeployments: true,
210
- accounts: { mnemonic },
211
- companionNetworks: { l1: "mainnet" },
212
- },
213
- bsc: {
214
- // ! Notice. Params below helped deploy Universal_Spoke on BSC, but might not be desirable always
215
- // gas: "auto",
216
- // gasPrice: 3e8, // 0.3 GWEI
217
- // gasMultiplier: 4.0,
218
- chainId: constants_1.CHAIN_IDs.BSC,
219
- url: getNodeUrl(constants_1.CHAIN_IDs.BSC),
220
- saveDeployments: true,
221
- accounts: { mnemonic },
222
- companionNetworks: { l1: "mainnet" },
223
- },
224
- hyperevm: {
225
- chainId: constants_1.CHAIN_IDs.HYPEREVM,
226
- url: getNodeUrl(constants_1.CHAIN_IDs.HYPEREVM),
227
- saveDeployments: true,
228
- accounts: { mnemonic },
229
- companionNetworks: { l1: "mainnet" },
230
- },
231
- "polygon-amoy": {
232
- chainId: constants_1.CHAIN_IDs.POLYGON_AMOY,
233
- url: getNodeUrl(constants_1.CHAIN_IDs.POLYGON_AMOY),
234
- saveDeployments: true,
235
- accounts: { mnemonic },
236
- companionNetworks: { l1: "sepolia" },
237
- },
238
- base: {
239
- chainId: constants_1.CHAIN_IDs.BASE,
240
- url: getNodeUrl(constants_1.CHAIN_IDs.BASE),
241
- saveDeployments: true,
242
- accounts: { mnemonic },
243
- companionNetworks: { l1: "mainnet" },
244
- },
245
- "base-sepolia": {
246
- chainId: constants_1.CHAIN_IDs.BASE_SEPOLIA,
247
- url: getNodeUrl(constants_1.CHAIN_IDs.BASE_SEPOLIA),
248
- saveDeployments: true,
249
- accounts: { mnemonic },
250
- companionNetworks: { l1: "sepolia" },
251
- },
252
- ink: {
253
- chainId: constants_1.CHAIN_IDs.INK,
254
- url: getNodeUrl(constants_1.CHAIN_IDs.INK),
255
- saveDeployments: true,
256
- accounts: { mnemonic },
257
- companionNetworks: { l1: "mainnet" },
258
- },
259
- linea: {
260
- chainId: constants_1.CHAIN_IDs.LINEA,
261
- url: getNodeUrl(constants_1.CHAIN_IDs.LINEA),
262
- saveDeployments: true,
263
- accounts: { mnemonic },
264
- companionNetworks: { l1: "mainnet" },
265
- },
266
- plasma: {
267
- chainId: constants_1.CHAIN_IDs.PLASMA,
268
- url: getNodeUrl(constants_1.CHAIN_IDs.PLASMA),
269
- saveDeployments: true,
270
- accounts: { mnemonic },
271
- companionNetworks: { l1: "mainnet" },
272
- },
273
- scroll: {
274
- chainId: constants_1.CHAIN_IDs.SCROLL,
275
- url: getNodeUrl(constants_1.CHAIN_IDs.SCROLL),
276
- saveDeployments: true,
277
- accounts: { mnemonic },
278
- companionNetworks: { l1: "mainnet" },
279
- },
280
- "scroll-sepolia": {
281
- chainId: constants_1.CHAIN_IDs.SCROLL_SEPOLIA,
282
- url: getNodeUrl(constants_1.CHAIN_IDs.SCROLL_SEPOLIA),
283
- saveDeployments: true,
284
- accounts: { mnemonic },
285
- companionNetworks: { l1: "sepolia" },
286
- },
166
+ optimism: getDefaultHardhatConfig(constants_1.CHAIN_IDs.OPTIMISM),
167
+ "optimism-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.OPTIMISM_SEPOLIA, true),
168
+ arbitrum: getDefaultHardhatConfig(constants_1.CHAIN_IDs.ARBITRUM),
169
+ "arbitrum-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.ARBITRUM_SEPOLIA, true),
170
+ sepolia: getDefaultHardhatConfig(constants_1.CHAIN_IDs.SEPOLIA, true),
171
+ polygon: getDefaultHardhatConfig(constants_1.CHAIN_IDs.POLYGON),
172
+ bsc: getDefaultHardhatConfig(constants_1.CHAIN_IDs.BSC),
173
+ // ! Notice. Params below helped deploy Universal_Spoke on BSC, but might not be desirable always
174
+ // gas: "auto",
175
+ // gasPrice: 3e8, // 0.3 GWEI
176
+ // gasMultiplier: 4.0,
177
+ hyperevm: getDefaultHardhatConfig(constants_1.CHAIN_IDs.HYPEREVM),
178
+ "polygon-amoy": getDefaultHardhatConfig(constants_1.CHAIN_IDs.POLYGON_AMOY),
179
+ base: getDefaultHardhatConfig(constants_1.CHAIN_IDs.BASE),
180
+ "base-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.BASE_SEPOLIA, true),
181
+ ink: getDefaultHardhatConfig(constants_1.CHAIN_IDs.INK),
182
+ linea: getDefaultHardhatConfig(constants_1.CHAIN_IDs.LINEA),
183
+ plasma: getDefaultHardhatConfig(constants_1.CHAIN_IDs.PLASMA),
184
+ scroll: getDefaultHardhatConfig(constants_1.CHAIN_IDs.SCROLL),
185
+ "scroll-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.SCROLL_SEPOLIA, true),
287
186
  "polygon-zk-evm": {
288
187
  chainId: 1101,
289
188
  url: "https://zkevm-rpc.com",
@@ -298,23 +197,11 @@ const config = {
298
197
  accounts: { mnemonic },
299
198
  companionNetworks: { l1: "goerli" },
300
199
  },
301
- mode: {
302
- chainId: constants_1.CHAIN_IDs.MODE,
303
- url: getNodeUrl(constants_1.CHAIN_IDs.MODE),
304
- saveDeployments: true,
305
- accounts: { mnemonic },
306
- companionNetworks: { l1: "mainnet" },
307
- },
308
- "mode-sepolia": {
309
- chainId: constants_1.CHAIN_IDs.MODE_SEPOLIA,
310
- url: getNodeUrl(constants_1.CHAIN_IDs.MODE_SEPOLIA),
311
- saveDeployments: true,
312
- accounts: { mnemonic },
313
- companionNetworks: { l1: "sepolia" },
314
- },
200
+ mode: getDefaultHardhatConfig(constants_1.CHAIN_IDs.MODE),
201
+ "mode-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.MODE_SEPOLIA, true),
315
202
  tatara: {
316
203
  chainId: constants_1.CHAIN_IDs.TATARA,
317
- url: getNodeUrl(constants_1.CHAIN_IDs.TATARA),
204
+ url: (0, utils_1.getNodeUrl)(constants_1.CHAIN_IDs.TATARA),
318
205
  saveDeployments: true,
319
206
  accounts: { mnemonic },
320
207
  companionNetworks: { l1: "sepolia" },
@@ -322,7 +209,7 @@ const config = {
322
209
  },
323
210
  lens: {
324
211
  chainId: constants_1.CHAIN_IDs.LENS,
325
- url: getNodeUrl(constants_1.CHAIN_IDs.LENS),
212
+ url: (0, utils_1.getNodeUrl)(constants_1.CHAIN_IDs.LENS),
326
213
  saveDeployments: true,
327
214
  accounts: { mnemonic },
328
215
  companionNetworks: { l1: "mainnet" },
@@ -332,7 +219,7 @@ const config = {
332
219
  },
333
220
  "lens-sepolia": {
334
221
  chainId: constants_1.CHAIN_IDs.LENS_SEPOLIA,
335
- url: getNodeUrl(constants_1.CHAIN_IDs.LENS_SEPOLIA),
222
+ url: (0, utils_1.getNodeUrl)(constants_1.CHAIN_IDs.LENS_SEPOLIA),
336
223
  saveDeployments: true,
337
224
  accounts: { mnemonic },
338
225
  companionNetworks: { l1: "sepolia" },
@@ -340,247 +227,65 @@ const config = {
340
227
  verifyURL: "https://block-explorer-verify.testnet.lens.dev/contract_verification",
341
228
  zksync: true,
342
229
  },
343
- lisk: {
344
- chainId: constants_1.CHAIN_IDs.LISK,
345
- url: getNodeUrl(constants_1.CHAIN_IDs.LISK),
346
- saveDeployments: true,
347
- accounts: { mnemonic },
348
- companionNetworks: { l1: "mainnet" },
349
- },
350
- "lisk-sepolia": {
351
- chainId: constants_1.CHAIN_IDs.LISK_SEPOLIA,
352
- url: getNodeUrl(constants_1.CHAIN_IDs.LISK_SEPOLIA),
353
- saveDeployments: true,
354
- accounts: { mnemonic },
355
- companionNetworks: { l1: "sepolia" },
356
- },
357
- redstone: {
358
- chainId: constants_1.CHAIN_IDs.REDSTONE,
359
- url: getNodeUrl(constants_1.CHAIN_IDs.REDSTONE),
360
- saveDeployments: true,
361
- accounts: { mnemonic },
362
- companionNetworks: { l1: "mainnet" },
363
- },
364
- blast: {
365
- chainId: constants_1.CHAIN_IDs.BLAST,
366
- url: getNodeUrl(constants_1.CHAIN_IDs.BLAST),
367
- saveDeployments: true,
368
- accounts: { mnemonic },
369
- companionNetworks: { l1: "mainnet" },
370
- },
371
- "blast-sepolia": {
372
- chainId: constants_1.CHAIN_IDs.BLAST_SEPOLIA,
373
- url: getNodeUrl(constants_1.CHAIN_IDs.BLAST_SEPOLIA),
374
- saveDeployments: true,
375
- accounts: { mnemonic },
376
- companionNetworks: { l1: "sepolia" },
377
- },
378
- worldchain: {
379
- chainId: constants_1.CHAIN_IDs.WORLD_CHAIN,
380
- url: getNodeUrl(constants_1.CHAIN_IDs.WORLD_CHAIN),
381
- saveDeployments: true,
382
- accounts: { mnemonic },
383
- companionNetworks: { l1: "mainnet" },
384
- },
385
- zora: {
386
- chainId: constants_1.CHAIN_IDs.ZORA,
387
- url: getNodeUrl(constants_1.CHAIN_IDs.ZORA),
388
- saveDeployments: true,
389
- accounts: { mnemonic },
390
- companionNetworks: { l1: "mainnet" },
391
- },
392
- soneium: {
393
- chainId: constants_1.CHAIN_IDs.SONEIUM,
394
- url: getNodeUrl(constants_1.CHAIN_IDs.SONEIUM),
395
- saveDeployments: true,
396
- accounts: { mnemonic },
397
- companionNetworks: { l1: "mainnet" },
398
- },
399
- unichain: {
400
- chainId: constants_1.CHAIN_IDs.UNICHAIN,
401
- url: getNodeUrl(constants_1.CHAIN_IDs.UNICHAIN),
402
- saveDeployments: true,
403
- accounts: { mnemonic },
404
- companionNetworks: { l1: "mainnet" },
405
- },
406
- "unichain-sepolia": {
407
- chainId: constants_1.CHAIN_IDs.UNICHAIN_SEPOLIA,
408
- url: getNodeUrl(constants_1.CHAIN_IDs.UNICHAIN_SEPOLIA),
409
- saveDeployments: true,
410
- accounts: { mnemonic },
411
- companionNetworks: { l1: "sepolia" },
412
- },
413
- "bob-sepolia": {
414
- chainId: constants_1.CHAIN_IDs.BOB_SEPOLIA,
415
- url: getNodeUrl(constants_1.CHAIN_IDs.BOB_SEPOLIA),
416
- saveDeployments: true,
417
- accounts: { mnemonic },
418
- companionNetworks: { l1: "sepolia" },
419
- },
230
+ lisk: getDefaultHardhatConfig(constants_1.CHAIN_IDs.LISK),
231
+ "lisk-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.LISK_SEPOLIA, true),
232
+ redstone: getDefaultHardhatConfig(constants_1.CHAIN_IDs.REDSTONE),
233
+ blast: getDefaultHardhatConfig(constants_1.CHAIN_IDs.BLAST),
234
+ "blast-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.BLAST_SEPOLIA, true),
235
+ worldchain: getDefaultHardhatConfig(constants_1.CHAIN_IDs.WORLD_CHAIN),
236
+ zora: getDefaultHardhatConfig(constants_1.CHAIN_IDs.ZORA),
237
+ soneium: getDefaultHardhatConfig(constants_1.CHAIN_IDs.SONEIUM),
238
+ unichain: getDefaultHardhatConfig(constants_1.CHAIN_IDs.UNICHAIN),
239
+ "unichain-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.UNICHAIN_SEPOLIA, true),
240
+ "bob-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.BOB_SEPOLIA, true),
420
241
  },
421
242
  gasReporter: { enabled: process.env.REPORT_GAS !== undefined, currency: "USD" },
422
243
  etherscan: {
423
- apiKey: {
424
- mainnet: process.env.ETHERSCAN_API_KEY,
425
- sepolia: process.env.ETHERSCAN_API_KEY,
426
- optimisticEthereum: process.env.OPTIMISM_ETHERSCAN_API_KEY,
427
- optimisticSepolia: process.env.OPTIMISM_ETHERSCAN_API_KEY,
428
- arbitrumOne: process.env.ARBITRUM_ETHERSCAN_API_KEY,
429
- "arbitrum-sepolia": process.env.ARBITRUM_ETHERSCAN_API_KEY,
430
- polygon: process.env.POLYGON_ETHERSCAN_API_KEY,
431
- "polygon-amoy": process.env.POLYGON_ETHERSCAN_API_KEY,
432
- base: process.env.BASE_ETHERSCAN_API_KEY,
433
- "base-sepolia": process.env.BASE_ETHERSCAN_API_KEY,
434
- linea: process.env.LINEA_ETHERSCAN_API_KEY,
435
- scroll: process.env.SCROLL_ETHERSCAN_API_KEY,
436
- "scroll-sepolia": process.env.SCROLL_ETHERSCAN_API_KEY,
437
- "polygon-zk-evm": process.env.POLYGON_ZK_EVM_ETHERSCAN_API_KEY,
438
- "polygon-zk-evm-testnet": process.env.POLYGON_ZK_EVM_ETHERSCAN_API_KEY,
439
- bsc: process.env.BNB_ETHERSCAN_API_KEY,
440
- hyperevm: process.env.ETHERSCAN_API_KEY,
441
- mode: "blockscout",
442
- "mode-sepolia": "blockscout",
443
- tatara: "blockscout",
444
- lisk: "blockscout",
445
- "lisk-sepolia": "blockscout",
446
- redstone: "blockscout",
447
- blast: process.env.BLAST_ETHERSCAN_API_KEY,
448
- "blast-sepolia": process.env.BLAST_ETHERSCAN_API_KEY,
449
- zora: "routescan",
450
- worldchain: "blockscout",
451
- ink: "blockscout",
452
- soneium: "blockscout",
453
- unichain: process.env.UNICHAIN_ETHERSCAN_API_KEY,
454
- "unichain-sepolia": process.env.UNICHAIN_ETHERSCAN_API_KEY,
455
- "bob-sepolia": "blockscout",
456
- },
244
+ apiKey: process.env.ETHERSCAN_API_KEY,
457
245
  customChains: [
458
246
  {
459
- network: "base",
460
- chainId: constants_1.CHAIN_IDs.BASE,
461
- urls: {
462
- apiURL: "https://api.basescan.org/api",
463
- browserURL: "https://basescan.org",
464
- },
465
- },
466
- {
467
- network: "base-sepolia",
468
- chainId: constants_1.CHAIN_IDs.BASE_SEPOLIA,
469
- urls: {
470
- apiURL: "https://api-sepolia.basescan.org/api",
471
- browserURL: "https://sepolia.basescan.org",
472
- },
473
- },
474
- {
475
- network: "ink",
476
- chainId: constants_1.CHAIN_IDs.INK,
477
- urls: {
478
- apiURL: "https://explorer.inkonchain.com/api",
479
- browserURL: "https://explorer.inkonchain.com",
480
- },
481
- },
482
- {
483
- network: "soneium",
484
- chainId: constants_1.CHAIN_IDs.SONEIUM,
485
- urls: {
486
- apiURL: "https://soneium.blockscout.com/api",
487
- browserURL: "https://soneium.blockscout.com",
488
- },
489
- },
490
- {
491
- network: "linea",
492
- chainId: constants_1.CHAIN_IDs.LINEA,
493
- urls: {
494
- apiURL: "https://api.lineascan.build/api",
495
- browserURL: "https://lineascan.build",
496
- },
497
- },
498
- {
499
- network: "sepolia",
500
- chainId: constants_1.CHAIN_IDs.SEPOLIA,
501
- urls: {
502
- apiURL: "https://api-sepolia.etherscan.io/api",
503
- browserURL: "https://sepolia.etherscan.io",
504
- },
505
- },
506
- {
507
- network: "scroll",
508
- chainId: constants_1.CHAIN_IDs.SCROLL,
509
- urls: {
510
- apiURL: "https://api.scrollscan.com/api",
511
- browserURL: "https://scrollscan.com",
512
- },
513
- },
514
- {
515
- network: "scroll-sepolia",
516
- chainId: constants_1.CHAIN_IDs.SCROLL_SEPOLIA,
517
- urls: {
518
- apiURL: "https://api-sepolia.scrollscan.com/api",
519
- browserURL: "https://api-sepolia.scrollscan.com",
520
- },
521
- },
522
- {
523
- network: "optimisticSepolia",
524
- chainId: constants_1.CHAIN_IDs.OPTIMISM_SEPOLIA,
525
- urls: {
526
- apiURL: "https://api-sepolia-optimistic.etherscan.io/api",
527
- browserURL: "https://sepolia-optimism.etherscan.io",
528
- },
529
- },
530
- {
531
- network: "polygon-zk-evm",
532
- chainId: 1101,
533
- urls: {
534
- apiURL: "https://api-zkevm.polygonscan.com/api",
535
- browserURL: "https://zkevm.polygonscan.com",
536
- },
537
- },
538
- {
539
- network: "polygon-zk-evm-testnet",
540
- chainId: 1442,
247
+ network: "hyperevm",
248
+ chainId: constants_1.CHAIN_IDs.HYPEREVM,
541
249
  urls: {
542
- apiURL: "https://api-testnet-zkevm.polygonscan.com/api",
543
- browserURL: "https://testnet-zkevm.polygonscan.com/",
250
+ apiURL: "https://hyperevmscan.io/api",
251
+ browserURL: "https://hyperevmscan.io",
544
252
  },
545
253
  },
546
254
  {
547
- network: "polygon-amoy",
548
- chainId: constants_1.CHAIN_IDs.POLYGON_AMOY,
255
+ network: "zksync",
256
+ chainId: constants_1.CHAIN_IDs.ZK_SYNC,
549
257
  urls: {
550
- apiURL: "https://api-amoy.polygonscan.com/api",
551
- browserURL: "https://amoy.polygonscan.com",
552
- },
553
- },
554
- {
555
- network: "arbitrum-sepolia",
556
- chainId: constants_1.CHAIN_IDs.ARBITRUM_SEPOLIA,
557
- urls: {
558
- apiURL: "https://api-sepolia.arbiscan.io/api",
559
- browserURL: "https://sepolia.arbiscan.io",
258
+ apiURL: "https://zksync2-mainnet-explorer.zksync.io/contract_verification",
259
+ browserURL: "https://era.zksync.network/",
560
260
  },
561
261
  },
262
+ ],
263
+ },
264
+ blockscout: {
265
+ enabled: true,
266
+ customChains: [
562
267
  {
563
- network: "mode-sepolia",
564
- chainId: constants_1.CHAIN_IDs.MODE_SEPOLIA,
268
+ network: "bob-sepolia",
269
+ chainId: constants_1.CHAIN_IDs.BOB_SEPOLIA,
565
270
  urls: {
566
- apiURL: "https://api.routescan.io/v2/network/testnet/evm/919/etherscan",
567
- browserURL: "https://testnet.modescan.io",
271
+ apiURL: "https://bob-sepolia.explorer.gobob.xyz/api",
272
+ browserURL: "https://bob-sepolia.explorer.gobob.xyz",
568
273
  },
569
274
  },
570
275
  {
571
- network: "mode",
572
- chainId: constants_1.CHAIN_IDs.MODE,
276
+ network: "ink",
277
+ chainId: constants_1.CHAIN_IDs.INK,
573
278
  urls: {
574
- apiURL: "https://explorer.mode.network/api",
575
- browserURL: "https://explorer.mode.network/",
279
+ apiURL: "https://explorer.inkonchain.com/api",
280
+ browserURL: "https://explorer.inkonchain.com",
576
281
  },
577
282
  },
578
283
  {
579
- network: "tatara",
580
- chainId: constants_1.CHAIN_IDs.TATARA,
284
+ network: "lens",
285
+ chainId: constants_1.CHAIN_IDs.LENS,
581
286
  urls: {
582
- apiURL: "https://explorer.tatara.katana.network/api",
583
- browserURL: "https://explorer.tatara.katana.network",
287
+ apiURL: "https://verify.lens.xyz/contract_verification",
288
+ browserURL: "https://explorer.lens.xyz/",
584
289
  },
585
290
  },
586
291
  {
@@ -600,67 +305,43 @@ const config = {
600
305
  },
601
306
  },
602
307
  {
603
- network: "redstone",
604
- chainId: constants_1.CHAIN_IDs.REDSTONE,
605
- urls: {
606
- apiURL: "https://explorer.redstone.xyz/api",
607
- browserURL: "https://explorer.redstone.xyz",
608
- },
609
- },
610
- {
611
- network: "blast",
612
- chainId: constants_1.CHAIN_IDs.BLAST,
613
- urls: {
614
- apiURL: "https://api.blastscan.io/api",
615
- browserURL: "https://blastscan.io",
616
- },
617
- },
618
- {
619
- network: "blast-sepolia",
620
- chainId: constants_1.CHAIN_IDs.BLAST_SEPOLIA,
621
- urls: {
622
- apiURL: "https://api-sepolia.blastscan.io/api",
623
- browserURL: "https://sepolia.blastscan.io",
624
- },
625
- },
626
- {
627
- network: "worldchain",
628
- chainId: constants_1.CHAIN_IDs.WORLD_CHAIN,
308
+ network: "mode",
309
+ chainId: constants_1.CHAIN_IDs.MODE,
629
310
  urls: {
630
- apiURL: "https://worldchain-mainnet.explorer.alchemy.com/api",
631
- browserURL: "https://worldchain-mainnet.explorer.alchemy.com",
311
+ apiURL: "https://explorer.mode.network/api",
312
+ browserURL: "https://explorer.mode.network/",
632
313
  },
633
314
  },
634
315
  {
635
- network: "zora",
636
- chainId: constants_1.CHAIN_IDs.ZORA,
316
+ network: "mode-sepolia",
317
+ chainId: constants_1.CHAIN_IDs.MODE_SEPOLIA,
637
318
  urls: {
638
- apiURL: "https://api.routescan.io/v2/network/mainnet/evm/7777777/etherscan",
639
- browserURL: "https://zorascan.xyz",
319
+ apiURL: "https://api.routescan.io/v2/network/testnet/evm/919/etherscan",
320
+ browserURL: "https://testnet.modescan.io",
640
321
  },
641
322
  },
642
323
  {
643
- network: "unichain",
644
- chainId: constants_1.CHAIN_IDs.UNICHAIN,
324
+ network: "redstone",
325
+ chainId: constants_1.CHAIN_IDs.REDSTONE,
645
326
  urls: {
646
- apiURL: "https://api.uniscan.xyz/api",
647
- browserURL: "https://uniscan.xyz",
327
+ apiURL: "https://explorer.redstone.xyz/api",
328
+ browserURL: "https://explorer.redstone.xyz",
648
329
  },
649
330
  },
650
331
  {
651
- network: "unichain-sepolia",
652
- chainId: constants_1.CHAIN_IDs.UNICHAIN_SEPOLIA,
332
+ network: "soneium",
333
+ chainId: constants_1.CHAIN_IDs.SONEIUM,
653
334
  urls: {
654
- apiURL: "https://api-sepolia.uniscan.xyz/api",
655
- browserURL: "https://sepolia.uniscan.xyz",
335
+ apiURL: "https://soneium.blockscout.com/api",
336
+ browserURL: "https://soneium.blockscout.com",
656
337
  },
657
338
  },
658
339
  {
659
- network: "bob-sepolia",
660
- chainId: constants_1.CHAIN_IDs.BOB_SEPOLIA,
340
+ network: "tatara",
341
+ chainId: constants_1.CHAIN_IDs.TATARA,
661
342
  urls: {
662
- apiURL: "https://bob-sepolia.explorer.gobob.xyz/api",
663
- browserURL: "https://bob-sepolia.explorer.gobob.xyz",
343
+ apiURL: "https://explorer.tatara.katana.network/api",
344
+ browserURL: "https://explorer.tatara.katana.network",
664
345
  },
665
346
  },
666
347
  ],
@@ -0,0 +1 @@
1
+ export {};