From d76148b6711d4b4229072dcc8f0e5244b7aae242 Mon Sep 17 00:00:00 2001 From: Jan-Felix Date: Wed, 9 Oct 2024 10:41:45 +0200 Subject: [PATCH] add support for zkevm --- packages/deployments/src/chains.ts | 6 ++++++ packages/evm/hardhat.config.ts | 14 +++++++++++--- packages/evm/tasks/verify-mastercopy.ts | 13 +++++++++---- packages/subgraph/.env.sample | 1 + packages/subgraph/networks/polygon-zkevm.json | 4 ++++ packages/subgraph/package.json | 6 ++++-- 6 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 packages/subgraph/networks/polygon-zkevm.json diff --git a/packages/deployments/src/chains.ts b/packages/deployments/src/chains.ts index ca2d7b942..75d7d2c68 100644 --- a/packages/deployments/src/chains.ts +++ b/packages/deployments/src/chains.ts @@ -23,6 +23,12 @@ export const chains = { subgraph: "https://api.studio.thegraph.com/query/23167/zodiac-roles-polygon/v2.2.3", }, + [1101]: { + name: "zkevm", + prefix: "zkevm", + subgraph: + "https://api.studio.thegraph.com/query/23167/zodiac-roles-zkevm/v2.2.3", + }, [42161]: { name: "arbitrumOne", prefix: "arb1", diff --git a/packages/evm/hardhat.config.ts b/packages/evm/hardhat.config.ts index 19298e844..0beeda6b6 100644 --- a/packages/evm/hardhat.config.ts +++ b/packages/evm/hardhat.config.ts @@ -29,7 +29,7 @@ const { POLYGONSCAN_API_KEY, ARBISCAN_API_KEY, SNOWTRACE_API_KEY, - ZKEVM_POLYGONSCAN_API_KEY + ZKEVM_POLYGONSCAN_API_KEY, } = process.env; const sharedNetworkConfig: HttpNetworkUserConfig = {}; @@ -102,7 +102,7 @@ const config: HardhatUserConfig = { chainId: 43114, url: "https://rpc.ankr.com/avalanche", }, - zkEVM: { + zkevm: { ...sharedNetworkConfig, chainId: 1101, url: "https://zkevm-rpc.com", @@ -117,7 +117,7 @@ const config: HardhatUserConfig = { matic: POLYGONSCAN_API_KEY, arbitrum: ARBISCAN_API_KEY, avalanche: SNOWTRACE_API_KEY, - zkEVM: ZKEVM_POLYGONSCAN_API_KEY + zkevm: ZKEVM_POLYGONSCAN_API_KEY, } as Record, customChains: [ { @@ -160,6 +160,14 @@ const config: HardhatUserConfig = { browserURL: "https://www.snowtrace.io", }, }, + { + network: "zkevm", + chainId: 1101, + urls: { + apiURL: "https://api-zkevm.polygonscan.com/api", + browserURL: "https://zkevm.polygonscan.com", + }, + }, ], }, gasReporter: { diff --git a/packages/evm/tasks/verify-mastercopy.ts b/packages/evm/tasks/verify-mastercopy.ts index 5967d0f4c..7f7be9836 100644 --- a/packages/evm/tasks/verify-mastercopy.ts +++ b/packages/evm/tasks/verify-mastercopy.ts @@ -9,13 +9,18 @@ task( ) .addOptionalParam( "contractVersion", - "Filters by a specific version or lateat", + "Specify a specific version", "latest", // Default value types.string ) .setAction(async ({ contractVersion }, hre) => { - if (!ETHERSCAN_API_KEY) { - throw new Error("Missing ENV ETHERSCAN_API_KEY"); + const apiKey = (hre.config.etherscan.apiKey as any)[hre.network.name] as + | string + | undefined; + if (!apiKey) { + throw new Error( + "Missing etherscan api key for network " + hre.network.name + ); } const chainId = String((await hre.ethers.provider.getNetwork()).chainId); @@ -24,7 +29,7 @@ task( const { noop } = await verifyMastercopy({ artifact, apiUrlOrChainId: chainId, - apiKey: ETHERSCAN_API_KEY, + apiKey: apiKey, }); const { contractName, contractVersion, address } = artifact; diff --git a/packages/subgraph/.env.sample b/packages/subgraph/.env.sample index 317603af2..881ab2b18 100644 --- a/packages/subgraph/.env.sample +++ b/packages/subgraph/.env.sample @@ -6,4 +6,5 @@ SUBGRAPH_AVALANCHE=zodiac-roles-avalanche SUBGRAPH_BSC=zodiac-roles-bsc SUBGRAPH_OPTIMISM=zodiac-roles-optimism SUBGRAPH_POLYGON=zodiac-roles-polygon +SUBGRAPH_ZKEVM=zodiac-roles-zkevm SUBGRAPH_BASE=zodiac-roles-base \ No newline at end of file diff --git a/packages/subgraph/networks/polygon-zkevm.json b/packages/subgraph/networks/polygon-zkevm.json new file mode 100644 index 000000000..5eb081984 --- /dev/null +++ b/packages/subgraph/networks/polygon-zkevm.json @@ -0,0 +1,4 @@ +{ + "network": "polygon-zkevm", + "startBlock": 16677236 +} \ No newline at end of file diff --git a/packages/subgraph/package.json b/packages/subgraph/package.json index b36f0ef53..f989ead13 100644 --- a/packages/subgraph/package.json +++ b/packages/subgraph/package.json @@ -17,6 +17,7 @@ "deploy:optimism": "yarn prepare:optimism && bash -c 'source .env || true && graph deploy --studio $SUBGRAPH_OPTIMISM'", "deploy:base": "yarn prepare:base && bash -c 'source .env || true && graph deploy --studio $SUBGRAPH_BASE'", "deploy:polygon": "yarn prepare:polygon && bash -c 'source .env || true && graph deploy --studio $SUBGRAPH_POLYGON'", + "deploy:zkevm": "yarn prepare:zkevm && bash -c 'source .env || true && graph deploy --studio $SUBGRAPH_ZKEVM'", "prepare:mainnet": "mustache networks/mainnet.json subgraph.template.yaml > subgraph.yaml", "prepare:sepolia": "mustache networks/sepolia.json subgraph.template.yaml > subgraph.yaml", "prepare:gnosis": "mustache networks/gnosis.json subgraph.template.yaml > subgraph.yaml", @@ -25,7 +26,8 @@ "prepare:bsc": "mustache networks/bsc.json subgraph.template.yaml > subgraph.yaml", "prepare:optimism": "mustache networks/optimism.json subgraph.template.yaml > subgraph.yaml", "prepare:base": "mustache networks/base.json subgraph.template.yaml > subgraph.yaml", - "prepare:polygon": "mustache networks/polygon.json subgraph.template.yaml > subgraph.yaml" + "prepare:polygon": "mustache networks/polygon.json subgraph.template.yaml > subgraph.yaml", + "prepare:zkevm": "mustache networks/polygon-zkevm.json subgraph.template.yaml > subgraph.yaml" }, "devDependencies": { "mustache": "^4.2.0", @@ -39,4 +41,4 @@ "installConfig": { "hoistingLimits": "workspaces" } -} +} \ No newline at end of file