From 35368f75f9c6a4ae73dc0a71b18bf12bde48817a Mon Sep 17 00:00:00 2001 From: caleb Date: Wed, 27 Aug 2025 16:35:52 -0500 Subject: [PATCH 1/3] bump hardhat verify to support etherscan v2 --- hardhat.config.ts | 24 +++++++----------------- package.json | 2 +- scripts/deployment.ts | 9 ++++----- yarn.lock | 8 ++++---- 4 files changed, 16 insertions(+), 27 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index 76fb4115..36fac93f 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,13 +1,13 @@ import '@nomicfoundation/hardhat-chai-matchers' -import 'hardhat-deploy' -import '@nomiclabs/hardhat-ethers' import '@nomicfoundation/hardhat-verify' +import '@nomiclabs/hardhat-ethers' import '@typechain/hardhat' -import 'solidity-coverage' -import 'hardhat-gas-reporter' +import dotenv from 'dotenv' import 'hardhat-contract-sizer' +import 'hardhat-deploy' +import 'hardhat-gas-reporter' import 'hardhat-ignore-warnings' -import dotenv from 'dotenv' +import 'solidity-coverage' dotenv.config() @@ -192,7 +192,7 @@ module.exports = { : [], }, base: { - url: 'https://mainnet.base.org', + url: process.env['BASE_RPC_URL'], accounts: process.env['MAINNET_PRIVKEY'] ? [process.env['MAINNET_PRIVKEY']] : [], @@ -211,17 +211,7 @@ module.exports = { }, }, etherscan: { - apiKey: { - mainnet: process.env['ETHERSCAN_API_KEY'], - sepolia: process.env['ETHERSCAN_API_KEY'], - holesky: process.env['ETHERSCAN_API_KEY'], - arbitrumOne: process.env['ARBISCAN_API_KEY'], - nova: process.env['NOVA_ARBISCAN_API_KEY'], - arbSepolia: process.env['ARBISCAN_API_KEY'], - base: process.env['BASESCAN_API_KEY'], - baseSepolia: process.env['BASESCAN_API_KEY'], - custom: process.env['CUSTOM_ETHERSCAN_API_KEY'], - }, + apiKey: process.env['ETHERSCAN_API_KEY'], customChains: [ { network: 'nova', diff --git a/package.json b/package.json index 9b8c8951..c6928650 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "@arbitrum/sdk": "^3.7.3", "@ethersproject/providers": "^5.8.0", "@nomicfoundation/hardhat-chai-matchers": "^1.0.6", - "@nomicfoundation/hardhat-verify": "^2.0.13", + "@nomicfoundation/hardhat-verify": "^2.0.14", "@nomiclabs/hardhat-ethers": "^2.2.3", "@typechain/ethers-v5": "^10.2.1", "@typechain/hardhat": "^6.1.6", diff --git a/scripts/deployment.ts b/scripts/deployment.ts index c41d247d..9d8040b8 100644 --- a/scripts/deployment.ts +++ b/scripts/deployment.ts @@ -1,9 +1,8 @@ -import { ethers } from 'hardhat' import '@nomiclabs/hardhat-ethers' -import { deployAllContracts, _isRunningOnArbitrum } from './deploymentUtils' -import { maxDataSize, disableMessageFromOriginEvent } from './config' +import { ethers } from 'hardhat' +import { disableMessageFromOriginEvent, maxDataSize } from './config' +import { _isRunningOnArbitrum, deployAllContracts } from './deploymentUtils' -import { ArbSys__factory } from '../build/types' async function main() { const [signer] = await ethers.getSigners() @@ -26,7 +25,7 @@ async function main() { try { // Deploying all contracts - const verify = false; + const verify = true; const contracts = await deployAllContracts( signer, ethers.BigNumber.from(maxDataSize), diff --git a/yarn.lock b/yarn.lock index fe673702..a717aad6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -680,10 +680,10 @@ deep-eql "^4.0.1" ordinal "^1.0.3" -"@nomicfoundation/hardhat-verify@^2.0.13": - version "2.0.13" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.13.tgz#41691adc32e01dc5cf6b725615f64958fba2100b" - integrity sha512-i57GX1sC0kYGyRVnbQrjjyBTpWTKgrvKC+jH8CMKV6gHp959Upb8lKaZ58WRHIU0espkulTxLnacYeUDirwJ2g== +"@nomicfoundation/hardhat-verify@^2.0.14": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.1.1.tgz#0af5fc4228df860062865fcafb4a01bc0b89f8a3" + integrity sha512-K1plXIS42xSHDJZRkrE2TZikqxp9T4y6jUMUNI/imLgN5uCcEQokmfU0DlyP9zzHncYK92HlT5IWP35UVCLrPw== dependencies: "@ethersproject/abi" "^5.1.2" "@ethersproject/address" "^5.0.2" From 31c189f133db924ef6579952bcc83982f9009e5c Mon Sep 17 00:00:00 2001 From: caleb Date: Wed, 27 Aug 2025 16:57:09 -0500 Subject: [PATCH 2/3] sleep 5s between deploying & attempting to verify --- hardhat.config.ts | 2 +- scripts/deployment.ts | 2 +- scripts/deploymentUtils.ts | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index 36fac93f..71e34612 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -144,7 +144,7 @@ module.exports = { }, }, mainnet: { - url: 'https://mainnet.infura.io/v3/' + process.env['INFURA_KEY'], + url: process.env['MAINNET_RPC_URL'], accounts: process.env['MAINNET_PRIVKEY'] ? [process.env['MAINNET_PRIVKEY']] : [], diff --git a/scripts/deployment.ts b/scripts/deployment.ts index 9d8040b8..c0d6f6c0 100644 --- a/scripts/deployment.ts +++ b/scripts/deployment.ts @@ -6,7 +6,6 @@ import { _isRunningOnArbitrum, deployAllContracts } from './deploymentUtils' async function main() { const [signer] = await ethers.getSigners() - console.log('Deploying contracts with maxDataSize:', maxDataSize) if (process.env['IGNORE_MAX_DATA_SIZE_WARNING'] !== 'true') { let isArbitrum = await _isRunningOnArbitrum(signer) @@ -47,6 +46,7 @@ async function main() { ) console.log('Template is set on the Rollup Creator') } catch (error) { + console.error(error) console.error( 'Deployment failed:', error instanceof Error ? error.message : error diff --git a/scripts/deploymentUtils.ts b/scripts/deploymentUtils.ts index 9554a65e..259fb6ce 100644 --- a/scripts/deploymentUtils.ts +++ b/scripts/deploymentUtils.ts @@ -76,7 +76,6 @@ export async function deployContract( ): Promise { const factory: ContractFactory = await ethers.getContractFactory(contractName) const connectedFactory: ContractFactory = factory.connect(signer) - let deploymentArgs = [...constructorArgs] if (overrides) { deploymentArgs.push(overrides) @@ -87,7 +86,6 @@ export async function deployContract( // } // deploymentArgs.push(overrides) } - const contract: Contract = await connectedFactory.deploy(...deploymentArgs) await contract.deployTransaction.wait() console.log( @@ -95,9 +93,12 @@ export async function deployContract( contract.address } ${constructorArgs.join(' ')}` ) + - if (verify) + if (verify) { + await new Promise(r => setTimeout(r, 3_000)); await verifyContract(contractName, contract.address, constructorArgs) + } return contract } From 3f0cd92dae6c8e2d3acb6e7132a3a9d11dce9517 Mon Sep 17 00:00:00 2001 From: caleb Date: Wed, 27 Aug 2025 16:57:21 -0500 Subject: [PATCH 3/3] sleep 5s --- scripts/deploymentUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deploymentUtils.ts b/scripts/deploymentUtils.ts index 259fb6ce..0d3bc991 100644 --- a/scripts/deploymentUtils.ts +++ b/scripts/deploymentUtils.ts @@ -96,7 +96,7 @@ export async function deployContract( if (verify) { - await new Promise(r => setTimeout(r, 3_000)); + await new Promise(r => setTimeout(r, 5_000)); await verifyContract(contractName, contract.address, constructorArgs) }