@across-protocol/contracts 4.1.8 → 4.1.9

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.
@@ -164,7 +164,7 @@
164
164
  },
165
165
  "9745": {
166
166
  "Helios": { "address": "0x7e63a5f1a8f0b4d0934b2f2327daed3f6bb2ee75", "blockNumber": 1552582 },
167
- "SpokePool": { "address": "0x2271a5E74eA8A29764ab10523575b41AA52455f0", "blockNumber": 1623864 },
167
+ "SpokePool": { "address": "0x50039fAEfebef707cFD94D6d462fE6D10B39207a", "blockNumber": 1710028 },
168
168
  "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", "blockNumber": 1619568 },
169
169
  "SpokePoolPeriphery": { "address": "0xF1BF00D947267Da5cC63f8c8A60568c59FA31bCb", "blockNumber": 1628438 },
170
170
  "MulticallHandler": { "address": "0x5E7840E06fAcCb6d1c3b5F5E0d1d3d07F2829bba", "blockNumber": 1619956 }
@@ -52,6 +52,15 @@ const getMnemonic = () => {
52
52
  return MNEMONIC;
53
53
  };
54
54
  const mnemonic = getMnemonic();
55
+ const getDefaultHardhatConfig = (chainId, isTestnet = false) => {
56
+ return {
57
+ chainId,
58
+ url: getNodeUrl(chainId),
59
+ accounts: { mnemonic },
60
+ saveDeployments: true,
61
+ companionNetworks: { l1: isTestnet ? "sepolia" : "mainnet" },
62
+ };
63
+ };
55
64
  // Custom tasks to add to HRE.
56
65
  const tasks = [
57
66
  "enableL1TokenAcrossEcosystem",
@@ -142,7 +151,7 @@ const config = {
142
151
  enabled: true,
143
152
  },
144
153
  suppressedErrors: ["sendtransfer"],
145
- contractsToCompile: ["SpokePoolPeriphery", "MulticallHandler"],
154
+ contractsToCompile: ["SpokePoolPeriphery", "MulticallHandler", "SpokePoolVerifier"],
146
155
  },
147
156
  },
148
157
  networks: {
@@ -151,13 +160,7 @@ const config = {
151
160
  zksync: compileZk,
152
161
  allowUnlimitedContractSize: true,
153
162
  },
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
- },
163
+ mainnet: getDefaultHardhatConfig(constants_1.CHAIN_IDs.MAINNET),
161
164
  zksync: {
162
165
  chainId: constants_1.CHAIN_IDs.ZK_SYNC,
163
166
  url: getNodeUrl(constants_1.CHAIN_IDs.ZK_SYNC),
@@ -168,122 +171,26 @@ const config = {
168
171
  zksync: true,
169
172
  verifyURL: "https://zksync2-mainnet-explorer.zksync.io/contract_verification",
170
173
  },
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
- },
174
+ optimism: getDefaultHardhatConfig(constants_1.CHAIN_IDs.OPTIMISM),
175
+ "optimism-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.OPTIMISM_SEPOLIA, true),
176
+ arbitrum: getDefaultHardhatConfig(constants_1.CHAIN_IDs.ARBITRUM),
177
+ "arbitrum-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.ARBITRUM_SEPOLIA, true),
178
+ sepolia: getDefaultHardhatConfig(constants_1.CHAIN_IDs.SEPOLIA, true),
179
+ polygon: getDefaultHardhatConfig(constants_1.CHAIN_IDs.POLYGON),
180
+ bsc: getDefaultHardhatConfig(constants_1.CHAIN_IDs.BSC),
181
+ // ! Notice. Params below helped deploy Universal_Spoke on BSC, but might not be desirable always
182
+ // gas: "auto",
183
+ // gasPrice: 3e8, // 0.3 GWEI
184
+ // gasMultiplier: 4.0,
185
+ hyperevm: getDefaultHardhatConfig(constants_1.CHAIN_IDs.HYPEREVM),
186
+ "polygon-amoy": getDefaultHardhatConfig(constants_1.CHAIN_IDs.POLYGON_AMOY),
187
+ base: getDefaultHardhatConfig(constants_1.CHAIN_IDs.BASE),
188
+ "base-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.BASE_SEPOLIA, true),
189
+ ink: getDefaultHardhatConfig(constants_1.CHAIN_IDs.INK),
190
+ linea: getDefaultHardhatConfig(constants_1.CHAIN_IDs.LINEA),
191
+ plasma: getDefaultHardhatConfig(constants_1.CHAIN_IDs.PLASMA),
192
+ scroll: getDefaultHardhatConfig(constants_1.CHAIN_IDs.SCROLL),
193
+ "scroll-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.SCROLL_SEPOLIA, true),
287
194
  "polygon-zk-evm": {
288
195
  chainId: 1101,
289
196
  url: "https://zkevm-rpc.com",
@@ -298,20 +205,8 @@ const config = {
298
205
  accounts: { mnemonic },
299
206
  companionNetworks: { l1: "goerli" },
300
207
  },
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
- },
208
+ mode: getDefaultHardhatConfig(constants_1.CHAIN_IDs.MODE),
209
+ "mode-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.MODE_SEPOLIA, true),
315
210
  tatara: {
316
211
  chainId: constants_1.CHAIN_IDs.TATARA,
317
212
  url: getNodeUrl(constants_1.CHAIN_IDs.TATARA),
@@ -340,247 +235,65 @@ const config = {
340
235
  verifyURL: "https://block-explorer-verify.testnet.lens.dev/contract_verification",
341
236
  zksync: true,
342
237
  },
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
- },
238
+ lisk: getDefaultHardhatConfig(constants_1.CHAIN_IDs.LISK),
239
+ "lisk-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.LISK_SEPOLIA, true),
240
+ redstone: getDefaultHardhatConfig(constants_1.CHAIN_IDs.REDSTONE),
241
+ blast: getDefaultHardhatConfig(constants_1.CHAIN_IDs.BLAST),
242
+ "blast-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.BLAST_SEPOLIA, true),
243
+ worldchain: getDefaultHardhatConfig(constants_1.CHAIN_IDs.WORLD_CHAIN),
244
+ zora: getDefaultHardhatConfig(constants_1.CHAIN_IDs.ZORA),
245
+ soneium: getDefaultHardhatConfig(constants_1.CHAIN_IDs.SONEIUM),
246
+ unichain: getDefaultHardhatConfig(constants_1.CHAIN_IDs.UNICHAIN),
247
+ "unichain-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.UNICHAIN_SEPOLIA, true),
248
+ "bob-sepolia": getDefaultHardhatConfig(constants_1.CHAIN_IDs.BOB_SEPOLIA, true),
420
249
  },
421
250
  gasReporter: { enabled: process.env.REPORT_GAS !== undefined, currency: "USD" },
422
251
  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
- },
252
+ apiKey: process.env.ETHERSCAN_API_KEY,
457
253
  customChains: [
458
254
  {
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,
255
+ network: "hyperevm",
256
+ chainId: constants_1.CHAIN_IDs.HYPEREVM,
485
257
  urls: {
486
- apiURL: "https://soneium.blockscout.com/api",
487
- browserURL: "https://soneium.blockscout.com",
258
+ apiURL: "https://hyperevmscan.io/api",
259
+ browserURL: "https://hyperevmscan.io",
488
260
  },
489
261
  },
490
262
  {
491
- network: "linea",
492
- chainId: constants_1.CHAIN_IDs.LINEA,
263
+ network: "zksync",
264
+ chainId: constants_1.CHAIN_IDs.ZK_SYNC,
493
265
  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,
541
- urls: {
542
- apiURL: "https://api-testnet-zkevm.polygonscan.com/api",
543
- browserURL: "https://testnet-zkevm.polygonscan.com/",
544
- },
545
- },
546
- {
547
- network: "polygon-amoy",
548
- chainId: constants_1.CHAIN_IDs.POLYGON_AMOY,
549
- 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",
266
+ apiURL: "https://zksync2-mainnet-explorer.zksync.io/contract_verification",
267
+ browserURL: "https://era.zksync.network/",
560
268
  },
561
269
  },
270
+ ],
271
+ },
272
+ blockscout: {
273
+ enabled: true,
274
+ customChains: [
562
275
  {
563
- network: "mode-sepolia",
564
- chainId: constants_1.CHAIN_IDs.MODE_SEPOLIA,
276
+ network: "bob-sepolia",
277
+ chainId: constants_1.CHAIN_IDs.BOB_SEPOLIA,
565
278
  urls: {
566
- apiURL: "https://api.routescan.io/v2/network/testnet/evm/919/etherscan",
567
- browserURL: "https://testnet.modescan.io",
279
+ apiURL: "https://bob-sepolia.explorer.gobob.xyz/api",
280
+ browserURL: "https://bob-sepolia.explorer.gobob.xyz",
568
281
  },
569
282
  },
570
283
  {
571
- network: "mode",
572
- chainId: constants_1.CHAIN_IDs.MODE,
284
+ network: "ink",
285
+ chainId: constants_1.CHAIN_IDs.INK,
573
286
  urls: {
574
- apiURL: "https://explorer.mode.network/api",
575
- browserURL: "https://explorer.mode.network/",
287
+ apiURL: "https://explorer.inkonchain.com/api",
288
+ browserURL: "https://explorer.inkonchain.com",
576
289
  },
577
290
  },
578
291
  {
579
- network: "tatara",
580
- chainId: constants_1.CHAIN_IDs.TATARA,
292
+ network: "lens",
293
+ chainId: constants_1.CHAIN_IDs.LENS,
581
294
  urls: {
582
- apiURL: "https://explorer.tatara.katana.network/api",
583
- browserURL: "https://explorer.tatara.katana.network",
295
+ apiURL: "https://verify.lens.xyz/contract_verification",
296
+ browserURL: "https://explorer.lens.xyz/",
584
297
  },
585
298
  },
586
299
  {
@@ -600,67 +313,43 @@ const config = {
600
313
  },
601
314
  },
602
315
  {
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,
316
+ network: "mode",
317
+ chainId: constants_1.CHAIN_IDs.MODE,
629
318
  urls: {
630
- apiURL: "https://worldchain-mainnet.explorer.alchemy.com/api",
631
- browserURL: "https://worldchain-mainnet.explorer.alchemy.com",
319
+ apiURL: "https://explorer.mode.network/api",
320
+ browserURL: "https://explorer.mode.network/",
632
321
  },
633
322
  },
634
323
  {
635
- network: "zora",
636
- chainId: constants_1.CHAIN_IDs.ZORA,
324
+ network: "mode-sepolia",
325
+ chainId: constants_1.CHAIN_IDs.MODE_SEPOLIA,
637
326
  urls: {
638
- apiURL: "https://api.routescan.io/v2/network/mainnet/evm/7777777/etherscan",
639
- browserURL: "https://zorascan.xyz",
327
+ apiURL: "https://api.routescan.io/v2/network/testnet/evm/919/etherscan",
328
+ browserURL: "https://testnet.modescan.io",
640
329
  },
641
330
  },
642
331
  {
643
- network: "unichain",
644
- chainId: constants_1.CHAIN_IDs.UNICHAIN,
332
+ network: "redstone",
333
+ chainId: constants_1.CHAIN_IDs.REDSTONE,
645
334
  urls: {
646
- apiURL: "https://api.uniscan.xyz/api",
647
- browserURL: "https://uniscan.xyz",
335
+ apiURL: "https://explorer.redstone.xyz/api",
336
+ browserURL: "https://explorer.redstone.xyz",
648
337
  },
649
338
  },
650
339
  {
651
- network: "unichain-sepolia",
652
- chainId: constants_1.CHAIN_IDs.UNICHAIN_SEPOLIA,
340
+ network: "soneium",
341
+ chainId: constants_1.CHAIN_IDs.SONEIUM,
653
342
  urls: {
654
- apiURL: "https://api-sepolia.uniscan.xyz/api",
655
- browserURL: "https://sepolia.uniscan.xyz",
343
+ apiURL: "https://soneium.blockscout.com/api",
344
+ browserURL: "https://soneium.blockscout.com",
656
345
  },
657
346
  },
658
347
  {
659
- network: "bob-sepolia",
660
- chainId: constants_1.CHAIN_IDs.BOB_SEPOLIA,
348
+ network: "tatara",
349
+ chainId: constants_1.CHAIN_IDs.TATARA,
661
350
  urls: {
662
- apiURL: "https://bob-sepolia.explorer.gobob.xyz/api",
663
- browserURL: "https://bob-sepolia.explorer.gobob.xyz",
351
+ apiURL: "https://explorer.tatara.katana.network/api",
352
+ browserURL: "https://explorer.tatara.katana.network",
664
353
  },
665
354
  },
666
355
  ],
@@ -15,4 +15,5 @@ export declare function getSpokePoolDeploymentInfo(hre: HardhatRuntimeEnvironmen
15
15
  }>;
16
16
  type FnArgs = number | string | BigNumber;
17
17
  export declare function deployNewProxy(name: string, constructorArgs: FnArgs[], initArgs: FnArgs[], implementationOnly?: boolean): Promise<void>;
18
+ export declare function verifyContract(address: string, constructorArguments: any[], contract?: string): Promise<void>;
18
19
  export { hre };
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.hre = void 0;
7
7
  exports.getSpokePoolDeploymentInfo = getSpokePoolDeploymentInfo;
8
8
  exports.deployNewProxy = deployNewProxy;
9
+ exports.verifyContract = verifyContract;
9
10
  const hardhat_1 = __importDefault(require("hardhat"));
10
11
  exports.hre = hardhat_1.default;
11
12
  const constants_1 = require("@across-protocol/constants");
@@ -72,5 +73,15 @@ async function deployNewProxy(name, constructorArgs, initArgs, implementationOnl
72
73
  // to the implementation's ABI on etherscan.
73
74
  // https://docs.openzeppelin.com/upgrades-plugins/1.x/api-hardhat-upgrades#verify
74
75
  const contract = `contracts/${name}.sol:${name}`;
75
- await run("verify:verify", { address: instance, constructorArguments: constructorArgs, contract });
76
+ await verifyContract(instance, constructorArgs, contract);
77
+ }
78
+ async function verifyContract(address, constructorArguments, contract) {
79
+ const { run, getChainId } = hardhat_1.default;
80
+ const chainId = Number(await getChainId());
81
+ if (hardhat_1.default.config.blockscout.enabled && hardhat_1.default.config.blockscout.customChains.some((chain) => chain.chainId === chainId)) {
82
+ await run("verify:blockscout", { address, constructorArguments, contract });
83
+ }
84
+ else {
85
+ await run("verify:verify", { address, constructorArguments, contract });
86
+ }
76
87
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@across-protocol/contracts",
3
- "version": "4.1.8",
3
+ "version": "4.1.9",
4
4
  "author": "UMA Team",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -85,9 +85,9 @@
85
85
  "@matterlabs/hardhat-zksync-deploy": "^0.6.3",
86
86
  "@matterlabs/hardhat-zksync-solc": "^1.4.0",
87
87
  "@matterlabs/hardhat-zksync-upgradable": "^0.1.0",
88
- "@matterlabs/hardhat-zksync-verify": "^0.2.0",
88
+ "@matterlabs/hardhat-zksync-verify": "^1.9.0",
89
89
  "@matterlabs/zksync-contracts": "^0.2.4",
90
- "@nomicfoundation/hardhat-verify": "^1.0.3",
90
+ "@nomicfoundation/hardhat-verify": "^2.0.14",
91
91
  "@nomiclabs/hardhat-ethers": "^2.2.3",
92
92
  "@nomiclabs/hardhat-waffle": "2.0.3",
93
93
  "@openzeppelin/hardhat-upgrades": "^1.22.0",