From 030761cea2f4902eb9a7277afea8c46893c46108 Mon Sep 17 00:00:00 2001 From: Joshua Gutow Date: Thu, 21 Jul 2022 11:04:36 +0200 Subject: [PATCH 1/4] Fix Optimism Config in L2 Genesis builder This places the Optimism chain config in the correct place as well as deleting the spurious Clique config in the L2 genesis. --- packages/contracts-bedrock/tasks/genesis-l2.ts | 16 ++++++---------- .../core-utils/src/external/geth/geth-types.ts | 9 ++------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/packages/contracts-bedrock/tasks/genesis-l2.ts b/packages/contracts-bedrock/tasks/genesis-l2.ts index 1f911f194c622..9a05bdcd546f5 100644 --- a/packages/contracts-bedrock/tasks/genesis-l2.ts +++ b/packages/contracts-bedrock/tasks/genesis-l2.ts @@ -2,7 +2,7 @@ import fs from 'fs' import path from 'path' import assert from 'assert' -import { OptimismGenesis, State } from '@eth-optimism/core-utils' +import { Genesis, State } from '@eth-optimism/core-utils' import 'hardhat-deploy' import '@eth-optimism/hardhat-deploy-config' import { ethers } from 'ethers' @@ -262,7 +262,7 @@ task('genesis-l2', 'create a genesis config') const portal = await hre.deployments.get('OptimismPortalProxy') const l1StartingBlock = await l1.getBlock(portal.receipt.blockHash) - const genesis: OptimismGenesis = { + const genesis: Genesis = { config: { chainId: deployConfig.genesisBlockChainid, homesteadBlock: 0, @@ -278,9 +278,9 @@ task('genesis-l2', 'create a genesis config') londonBlock: 0, mergeNetsplitBlock: 0, terminalTotalDifficulty: 0, - clique: { - period: 0, - epoch: 30000, + optimism: { + baseFeeRecipient: deployConfig.optimismBaseFeeRecipient, + l1FeeRecipient: deployConfig.optimismL1FeeRecipient, }, }, nonce: '0x1234', @@ -288,11 +288,7 @@ task('genesis-l2', 'create a genesis config') timestamp: ethers.BigNumber.from(l1StartingBlock.timestamp).toHexString(), gasLimit: deployConfig.genesisBlockGasLimit, extraData: deployConfig.genesisBlockExtradata, - optimism: { - enabled: true, - baseFeeRecipient: deployConfig.optimismBaseFeeRecipient, - l1FeeRecipient: deployConfig.optimismL1FeeRecipient, - }, + alloc, } diff --git a/packages/core-utils/src/external/geth/geth-types.ts b/packages/core-utils/src/external/geth/geth-types.ts index c015840ea3ed5..80004a8456672 100644 --- a/packages/core-utils/src/external/geth/geth-types.ts +++ b/packages/core-utils/src/external/geth/geth-types.ts @@ -38,10 +38,12 @@ export interface ChainConfig { grayGlacierBlock?: number mergeNetsplitBlock?: number terminalTotalDifficulty?: number + // TODO: Make this an alternation (one xor other) of clique of optimism config clique?: { period: number epoch: number } + optimism?: OptimismChainConfig ethash?: {} } @@ -67,14 +69,7 @@ export interface Genesis { * Represents the chain config for an Optimism chain */ export interface OptimismChainConfig { - enabled: boolean baseFeeRecipient: string l1FeeRecipient: string } -/** - * Represents the Genesis file format for an Optimism chain - */ -export interface OptimismGenesis extends Genesis { - optimism: OptimismChainConfig -} From 1e35141f0b86a6c71fc99d6a7e75cea5c9604791 Mon Sep 17 00:00:00 2001 From: protolambda Date: Thu, 21 Jul 2022 11:28:58 +0200 Subject: [PATCH 2/4] packages/core-utils: bedrock config type fix --- packages/contracts-bedrock/tasks/genesis-l2.ts | 1 - .../core-utils/src/external/geth/geth-types.ts | 15 +++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/contracts-bedrock/tasks/genesis-l2.ts b/packages/contracts-bedrock/tasks/genesis-l2.ts index 9a05bdcd546f5..a03dd2e6fe488 100644 --- a/packages/contracts-bedrock/tasks/genesis-l2.ts +++ b/packages/contracts-bedrock/tasks/genesis-l2.ts @@ -288,7 +288,6 @@ task('genesis-l2', 'create a genesis config') timestamp: ethers.BigNumber.from(l1StartingBlock.timestamp).toHexString(), gasLimit: deployConfig.genesisBlockGasLimit, extraData: deployConfig.genesisBlockExtradata, - alloc, } diff --git a/packages/core-utils/src/external/geth/geth-types.ts b/packages/core-utils/src/external/geth/geth-types.ts index 80004a8456672..3da8f4ce80d5a 100644 --- a/packages/core-utils/src/external/geth/geth-types.ts +++ b/packages/core-utils/src/external/geth/geth-types.ts @@ -43,7 +43,6 @@ export interface ChainConfig { period: number epoch: number } - optimism?: OptimismChainConfig ethash?: {} } @@ -68,8 +67,16 @@ export interface Genesis { /** * Represents the chain config for an Optimism chain */ -export interface OptimismChainConfig { - baseFeeRecipient: string - l1FeeRecipient: string +export interface OptimismChainConfig extends ChainConfig { + optimism: { + baseFeeRecipient: string + l1FeeRecipient: string + } } +/** + * Represents the Genesis file format for an Optimism chain + */ +export interface OptimismGenesis extends Genesis { + config: OptimismChainConfig +} From f25fa6861fc10ef57960a902d96de0bf149a538a Mon Sep 17 00:00:00 2001 From: protolambda Date: Thu, 21 Jul 2022 11:33:49 +0200 Subject: [PATCH 3/4] packages/contracts-bedrock: update genesis l2 task import --- packages/contracts-bedrock/tasks/genesis-l2.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/contracts-bedrock/tasks/genesis-l2.ts b/packages/contracts-bedrock/tasks/genesis-l2.ts index a03dd2e6fe488..45f9f1987eb6e 100644 --- a/packages/contracts-bedrock/tasks/genesis-l2.ts +++ b/packages/contracts-bedrock/tasks/genesis-l2.ts @@ -2,7 +2,7 @@ import fs from 'fs' import path from 'path' import assert from 'assert' -import { Genesis, State } from '@eth-optimism/core-utils' +import { OptimismGenesis, State } from '@eth-optimism/core-utils' import 'hardhat-deploy' import '@eth-optimism/hardhat-deploy-config' import { ethers } from 'ethers' @@ -262,7 +262,7 @@ task('genesis-l2', 'create a genesis config') const portal = await hre.deployments.get('OptimismPortalProxy') const l1StartingBlock = await l1.getBlock(portal.receipt.blockHash) - const genesis: Genesis = { + const genesis: OptimismGenesis = { config: { chainId: deployConfig.genesisBlockChainid, homesteadBlock: 0, From 1c0664023a05b8cffc807c91679d226a731838de Mon Sep 17 00:00:00 2001 From: Diederik Loerakker Date: Thu, 21 Jul 2022 11:36:11 +0200 Subject: [PATCH 4/4] packages/core-utils: bedrock - remove old todo comment Co-authored-by: Joshua Gutow --- packages/core-utils/src/external/geth/geth-types.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core-utils/src/external/geth/geth-types.ts b/packages/core-utils/src/external/geth/geth-types.ts index 3da8f4ce80d5a..434f54f140aca 100644 --- a/packages/core-utils/src/external/geth/geth-types.ts +++ b/packages/core-utils/src/external/geth/geth-types.ts @@ -38,7 +38,6 @@ export interface ChainConfig { grayGlacierBlock?: number mergeNetsplitBlock?: number terminalTotalDifficulty?: number - // TODO: Make this an alternation (one xor other) of clique of optimism config clique?: { period: number epoch: number