diff --git a/package-lock.json b/package-lock.json index a85cc9c72c..76180d0177 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9121,20 +9121,6 @@ "hardhat": "^2.12.6" } }, - "node_modules/@matterlabs/hardhat-zksync-verify": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-0.1.3.tgz", - "integrity": "sha512-gZhJmsC529HaLiJ42qSfvT+lYpStqj9IsiEzkI/jxyKHH8FVQz5Uu1wWMeWIRd3Q4GkF0arIYIJWf14oO5AhqA==", - "dependencies": { - "@matterlabs/hardhat-zksync-solc": "0.3.14", - "axios": "^1.3.4", - "chalk": "4.1.2", - "dockerode": "^3.3.4" - }, - "peerDependencies": { - "@nomiclabs/hardhat-etherscan": "3.1.2" - } - }, "node_modules/@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -10292,20 +10278,20 @@ } }, "node_modules/@nomiclabs/hardhat-etherscan": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.2.tgz", - "integrity": "sha512-IEikeOVq0C/7CY6aD74d8L4BpGoc/FNiN6ldiPVg0QIFIUSu4FSGA1dmtJZJKk1tjpwgrfTLQNWnigtEaN9REg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz", + "integrity": "sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==", "dependencies": { "@ethersproject/abi": "^5.1.2", "@ethersproject/address": "^5.0.2", - "cbor": "^5.0.2", + "cbor": "^8.1.0", "chalk": "^2.4.2", "debug": "^4.1.1", "fs-extra": "^7.0.1", "lodash": "^4.17.11", "semver": "^6.3.0", "table": "^6.8.0", - "undici": "^5.4.0" + "undici": "^5.14.0" }, "peerDependencies": { "hardhat": "^2.0.4" @@ -10322,18 +10308,6 @@ "node": ">=4" } }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@nomiclabs/hardhat-etherscan/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -10389,14 +10363,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "engines": { - "node": ">=8" - } - }, "node_modules/@nomiclabs/hardhat-etherscan/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -27911,6 +27877,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", + "hasInstallScript": true, "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -28240,6 +28207,7 @@ "version": "5.0.7", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "hasInstallScript": true, "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -48072,7 +48040,7 @@ }, "price_pusher": { "name": "@pythnetwork/pyth-price-pusher", - "version": "4.1.0", + "version": "4.1.1", "license": "Apache-2.0", "dependencies": { "@injectivelabs/sdk-ts": "^1.0.484", @@ -49664,8 +49632,7 @@ "@certusone/wormhole-sdk": "^0.9.9", "@matterlabs/hardhat-zksync-deploy": "^0.6.2", "@matterlabs/hardhat-zksync-solc": "^0.3.14", - "@matterlabs/hardhat-zksync-verify": "^0.1.3", - "@nomiclabs/hardhat-etherscan": "^3.1.2", + "@nomiclabs/hardhat-etherscan": "^3.1.7", "@openzeppelin/contracts": "^4.5.0", "@openzeppelin/contracts-upgradeable": "^4.5.2", "@openzeppelin/hardhat-upgrades": "^1.22.1", @@ -56234,17 +56201,6 @@ "dockerode": "^3.3.4" } }, - "@matterlabs/hardhat-zksync-verify": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-0.1.3.tgz", - "integrity": "sha512-gZhJmsC529HaLiJ42qSfvT+lYpStqj9IsiEzkI/jxyKHH8FVQz5Uu1wWMeWIRd3Q4GkF0arIYIJWf14oO5AhqA==", - "requires": { - "@matterlabs/hardhat-zksync-solc": "0.3.14", - "axios": "^1.3.4", - "chalk": "4.1.2", - "dockerode": "^3.3.4" - } - }, "@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -57122,20 +57078,20 @@ "requires": {} }, "@nomiclabs/hardhat-etherscan": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.2.tgz", - "integrity": "sha512-IEikeOVq0C/7CY6aD74d8L4BpGoc/FNiN6ldiPVg0QIFIUSu4FSGA1dmtJZJKk1tjpwgrfTLQNWnigtEaN9REg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz", + "integrity": "sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==", "requires": { "@ethersproject/abi": "^5.1.2", "@ethersproject/address": "^5.0.2", - "cbor": "^5.0.2", + "cbor": "^8.1.0", "chalk": "^2.4.2", "debug": "^4.1.1", "fs-extra": "^7.0.1", "lodash": "^4.17.11", "semver": "^6.3.0", "table": "^6.8.0", - "undici": "^5.4.0" + "undici": "^5.14.0" }, "dependencies": { "ansi-styles": { @@ -57146,15 +57102,6 @@ "color-convert": "^1.9.0" } }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -57201,11 +57148,6 @@ "graceful-fs": "^4.1.6" } }, - "nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==" - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -58091,8 +58033,7 @@ "@certusone/wormhole-sdk": "^0.9.9", "@matterlabs/hardhat-zksync-deploy": "^0.6.2", "@matterlabs/hardhat-zksync-solc": "^0.3.14", - "@matterlabs/hardhat-zksync-verify": "^0.1.3", - "@nomiclabs/hardhat-etherscan": "^3.1.2", + "@nomiclabs/hardhat-etherscan": "^3.1.7", "@openzeppelin/contracts": "^4.5.0", "@openzeppelin/contracts-upgradeable": "^4.5.2", "@openzeppelin/hardhat-upgrades": "^1.22.1", @@ -59196,7 +59137,7 @@ "@pythnetwork/pyth-price-pusher": { "version": "file:price_pusher", "requires": { - "@injectivelabs/sdk-ts": "1.0.484", + "@injectivelabs/sdk-ts": "^1.0.484", "@pythnetwork/price-service-client": "*", "@pythnetwork/pyth-sdk-solidity": "^2.2.0", "@truffle/hdwallet-provider": "^2.1.3", diff --git a/target_chains/ethereum/contracts/VERIFY.md b/target_chains/ethereum/contracts/VERIFY.md index 0bf8e6843d..5e22df42d6 100644 --- a/target_chains/ethereum/contracts/VERIFY.md +++ b/target_chains/ethereum/contracts/VERIFY.md @@ -39,3 +39,17 @@ dependencies, so it fails to parse the `HDWallet` arguments in our `truffle-config.json`. As a quick workaround, we backport the patch to `0.5.11` by applying the `truffle-verify-constants.patch` file, which the `npm run verify` script does transparently. Once the toolchain has been upgraded and the errors fixed, this patch can be removed. + +## Verifying with hardhat + +Some chains might require users to verify with hardhat. Here are the additional steps : + +- Add the chain to `networks` in `hardhat.config.ts` (equivalent of `truffle-config.js`) +- Add the explorer parameters to `etherscan` in `hardhat.config.ts` +- Run : + +``` +MNEMONIC=... npx hardhat verify 0x354bF866A4B006C9AF9d9e06d9364217A8616E12 --network shimmer_testnet +``` + +This process is somehow flaky. After running it, check the explorer as sometimes it will work even when it says it failed. diff --git a/target_chains/ethereum/contracts/hardhat.config.ts b/target_chains/ethereum/contracts/hardhat.config.ts index 75dfed3827..7986c360f9 100644 --- a/target_chains/ethereum/contracts/hardhat.config.ts +++ b/target_chains/ethereum/contracts/hardhat.config.ts @@ -1,8 +1,8 @@ -import "@matterlabs/hardhat-zksync-deploy"; -import "@matterlabs/hardhat-zksync-solc"; import "@nomiclabs/hardhat-etherscan"; import "@openzeppelin/hardhat-upgrades"; -import "@matterlabs/hardhat-zksync-verify"; +import "@matterlabs/hardhat-zksync-deploy"; +import "@matterlabs/hardhat-zksync-solc"; +// import "@matterlabs/hardhat-zksync-verify"; UNCOMMENT THIS AND INSTALL THIS PACKAGE TO VERIFY ZKSYNC module.exports = { zksolc: { @@ -32,6 +32,44 @@ module.exports = { verifyURL: "https://zksync2-mainnet-explorer.zksync.io/contract_verification", }, + neon_devnet: { + url: "https://devnet.neonevm.org", + chainId: 245022926, + accounts: { + mnemonic: process.env.MNEMONIC, + }, + }, + shimmer_testnet: { + url: "https://json-rpc.evm.testnet.shimmer.network", + chainId: 1070, + accounts: { + mnemonic: process.env.MNEMONIC, + }, + }, + }, + etherscan: { + apiKey: { + neon_devnet: "there_should_be_a_dummy_value_here_to_avoid_error", + shimmer_testnet: "there_should_be_a_dummy_value_here_to_avoid_error", + }, + customChains: [ + { + network: "neon_devnet", + chainId: 245022926, + urls: { + apiURL: "https://devnet-api.neonscan.org/hardhat/verify", + browserURL: "https://devnet.neonscan.org", + }, + }, + { + network: "shimmer_testnet", + chainId: 1070, + urls: { + apiURL: "https://explorer.evm.testnet.shimmer.network/api", + browserURL: "https://explorer.evm.testnet.shimmer.network", + }, + }, + ], }, solidity: { version: "0.8.4", diff --git a/target_chains/ethereum/contracts/package.json b/target_chains/ethereum/contracts/package.json index 04f1626b19..cc6c3ba9ef 100644 --- a/target_chains/ethereum/contracts/package.json +++ b/target_chains/ethereum/contracts/package.json @@ -27,8 +27,7 @@ "@certusone/wormhole-sdk": "^0.9.9", "@matterlabs/hardhat-zksync-deploy": "^0.6.2", "@matterlabs/hardhat-zksync-solc": "^0.3.14", - "@matterlabs/hardhat-zksync-verify": "^0.1.3", - "@nomiclabs/hardhat-etherscan": "^3.1.2", + "@nomiclabs/hardhat-etherscan": "^3.1.7", "@openzeppelin/contracts": "^4.5.0", "@openzeppelin/contracts-upgradeable": "^4.5.2", "@openzeppelin/hardhat-upgrades": "^1.22.1",