diff options
Diffstat (limited to 'cmd/utils/flags.go')
-rw-r--r-- | cmd/utils/flags.go | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 626c2615d..2d6bb4f5b 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -801,7 +801,7 @@ func SetupNetwork(ctx *cli.Context) { } // MakeChainConfig reads the chain configuration from the database in ctx.Datadir. -func MakeChainConfig(ctx *cli.Context, stack *node.Node) *core.ChainConfig { +func MakeChainConfig(ctx *cli.Context, stack *node.Node) *params.ChainConfig { db := MakeChainDatabase(ctx, stack) defer db.Close() @@ -809,9 +809,9 @@ func MakeChainConfig(ctx *cli.Context, stack *node.Node) *core.ChainConfig { } // MakeChainConfigFromDb reads the chain configuration from the given database. -func MakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainConfig { +func MakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *params.ChainConfig { // If the chain is already initialized, use any existing chain configs - config := new(core.ChainConfig) + config := new(params.ChainConfig) genesis := core.GetBlock(db, core.GetCanonicalHash(db, 0), 0) if genesis != nil { @@ -825,6 +825,10 @@ func MakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainConfi Fatalf("Could not make chain configuration: %v", err) } } + // set chain id in case it's zero. + if config.ChainId == nil { + config.ChainId = new(big.Int) + } // Check whether we are allowed to set default config params or not: // - If no genesis is set, we're running either mainnet or testnet (private nets use `geth init`) // - If a genesis is already set, ensure we have a configuration for it (mainnet or testnet) @@ -849,21 +853,37 @@ func MakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainConfi } config.DAOForkSupport = true } - if config.HomesteadGasRepriceBlock == nil { + if config.EIP150Block == nil { + if ctx.GlobalBool(TestNetFlag.Name) { + config.EIP150Block = params.TestNetHomesteadGasRepriceBlock + } else { + config.EIP150Block = params.MainNetHomesteadGasRepriceBlock + } + } + if config.EIP150Hash == (common.Hash{}) { if ctx.GlobalBool(TestNetFlag.Name) { - config.HomesteadGasRepriceBlock = params.TestNetHomesteadGasRepriceBlock + config.EIP150Hash = params.TestNetHomesteadGasRepriceHash } else { - config.HomesteadGasRepriceBlock = params.MainNetHomesteadGasRepriceBlock + config.EIP150Hash = params.MainNetHomesteadGasRepriceHash } } - if config.HomesteadGasRepriceHash == (common.Hash{}) { + if config.EIP155Block == nil { if ctx.GlobalBool(TestNetFlag.Name) { - config.HomesteadGasRepriceHash = params.TestNetHomesteadGasRepriceHash + config.EIP150Block = params.TestNetSpuriousDragon } else { - config.HomesteadGasRepriceHash = params.MainNetHomesteadGasRepriceHash + config.EIP155Block = params.MainNetSpuriousDragon } } + if config.EIP158Block == nil { + if ctx.GlobalBool(TestNetFlag.Name) { + config.EIP158Block = params.TestNetSpuriousDragon + } else { + config.EIP158Block = params.MainNetSpuriousDragon + } + } + config.DAOForkSupport = true } + // Force override any existing configs if explicitly requested switch { case ctx.GlobalBool(SupportDAOFork.Name): |