Commit 7256a570 authored by Mark Tyneway's avatar Mark Tyneway

op-node: update genesis commands

parent 11b1ab33
...@@ -17,7 +17,6 @@ import ( ...@@ -17,7 +17,6 @@ import (
"github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum-optimism/optimism/op-bindings/hardhat" "github.com/ethereum-optimism/optimism/op-bindings/hardhat"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys"
"github.com/ethereum-optimism/optimism/op-chain-ops/genesis" "github.com/ethereum-optimism/optimism/op-chain-ops/genesis"
"github.com/ethereum-optimism/optimism/op-node/eth" "github.com/ethereum-optimism/optimism/op-node/eth"
"github.com/ethereum-optimism/optimism/op-node/rollup" "github.com/ethereum-optimism/optimism/op-node/rollup"
...@@ -52,6 +51,11 @@ var Subcommands = cli.Commands{ ...@@ -52,6 +51,11 @@ var Subcommands = cli.Commands{
return err return err
} }
// Add the developer L1 addresses to the config
if err := config.GetDeveloperDeployedAddresses(); err != nil {
return err
}
if err := config.Check(); err != nil { if err := config.Check(); err != nil {
return err return err
} }
...@@ -62,12 +66,15 @@ var Subcommands = cli.Commands{ ...@@ -62,12 +66,15 @@ var Subcommands = cli.Commands{
} }
l1StartBlock := l1Genesis.ToBlock() l1StartBlock := l1Genesis.ToBlock()
l2Genesis, err := genesis.BuildL2DeveloperGenesis(config, l1StartBlock, nil) l2Genesis, err := genesis.BuildL2DeveloperGenesis(config, l1StartBlock)
if err != nil { if err != nil {
return err return err
} }
rollupConfig := makeRollupConfig(config, l1StartBlock, l2Genesis, predeploys.DevOptimismPortalAddr, predeploys.DevSystemConfigAddr) rollupConfig, err := makeRollupConfig(config, l1StartBlock, l2Genesis)
if err != nil {
return err
}
if err := writeGenesisFile(ctx.String("outfile.l1"), l1Genesis); err != nil { if err := writeGenesisFile(ctx.String("outfile.l1"), l1Genesis); err != nil {
return err return err
...@@ -138,31 +145,24 @@ var Subcommands = cli.Commands{ ...@@ -138,31 +145,24 @@ var Subcommands = cli.Commands{
return err return err
} }
// Read the appropriate deployment addresses from disk
if err := config.GetDeployedAddresses(hh); err != nil { if err := config.GetDeployedAddresses(hh); err != nil {
return err return err
} }
// Sanity check the config
if err := config.Check(); err != nil { if err := config.Check(); err != nil {
return err return err
} }
// Build the developer L2 genesis block
// TODO: delete this struct as everything is now in the DeployConfig l2Genesis, err := genesis.BuildL2DeveloperGenesis(config, l1StartBlock)
l2Addrs := &genesis.L2Addresses{
ProxyAdminOwner: config.ProxyAdminOwner,
L1StandardBridgeProxy: config.L1StandardBridgeProxy,
L1CrossDomainMessengerProxy: config.L1CrossDomainMessengerProxy,
L1ERC721BridgeProxy: config.L1ERC721BridgeProxy,
BaseFeeVaultRecipient: config.BaseFeeVaultRecipient,
L1FeeVaultRecipient: config.L1FeeVaultRecipient,
SequencerFeeVaultRecipient: config.SequencerFeeVaultRecipient,
SystemConfigProxy: config.SystemConfigProxy,
}
l2Genesis, err := genesis.BuildL2DeveloperGenesis(config, l1StartBlock, l2Addrs)
if err != nil { if err != nil {
return fmt.Errorf("error creating l2 developer genesis: %w", err) return fmt.Errorf("error creating l2 developer genesis: %w", err)
} }
rollupConfig := makeRollupConfig(config, l1StartBlock, l2Genesis, config.OptimismPortalProxy, config.SystemConfigProxy) rollupConfig, err := makeRollupConfig(config, l1StartBlock, l2Genesis)
if err != nil {
return err
}
if err := rollupConfig.Check(); err != nil { if err := rollupConfig.Check(); err != nil {
return fmt.Errorf("generated rollup config does not pass validation: %w", err) return fmt.Errorf("generated rollup config does not pass validation: %w", err)
} }
...@@ -175,13 +175,14 @@ var Subcommands = cli.Commands{ ...@@ -175,13 +175,14 @@ var Subcommands = cli.Commands{
}, },
} }
func makeRollupConfig( func makeRollupConfig(config *genesis.DeployConfig, l1StartBlock *types.Block, l2Genesis *core.Genesis) (*rollup.Config, error) {
config *genesis.DeployConfig, if config.OptimismPortalProxy == (common.Address{}) {
l1StartBlock *types.Block, return nil, errors.New("OptimismPortalProxy cannot be address(0)")
l2Genesis *core.Genesis, }
portalAddr common.Address, if config.SystemConfigProxy == (common.Address{}) {
sysConfigAddr common.Address, return nil, errors.New("SystemConfigProxy cannot be address(0)")
) *rollup.Config { }
return &rollup.Config{ return &rollup.Config{
Genesis: rollup.Genesis{ Genesis: rollup.Genesis{
L1: eth.BlockID{ L1: eth.BlockID{
...@@ -208,9 +209,9 @@ func makeRollupConfig( ...@@ -208,9 +209,9 @@ func makeRollupConfig(
L2ChainID: new(big.Int).SetUint64(config.L2ChainID), L2ChainID: new(big.Int).SetUint64(config.L2ChainID),
P2PSequencerAddress: config.P2PSequencerAddress, P2PSequencerAddress: config.P2PSequencerAddress,
BatchInboxAddress: config.BatchInboxAddress, BatchInboxAddress: config.BatchInboxAddress,
DepositContractAddress: portalAddr, DepositContractAddress: config.OptimismPortalProxy,
L1SystemConfigAddress: sysConfigAddr, L1SystemConfigAddress: config.SystemConfigProxy,
} }, nil
} }
func writeGenesisFile(outfile string, input interface{}) error { func writeGenesisFile(outfile string, input interface{}) error {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment