diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-10-04 17:15:58 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2017-10-04 17:15:58 +0800 |
commit | edba5e9854dcef9b4dcb6d75c06d5b5c7e5b8856 (patch) | |
tree | f899e9cfb1385d55cc7abfa4eb03512abba1a5ed /cmd/puppeth/wizard_genesis.go | |
parent | c0a1f1c9076608cb98f9cbd02a896e966cc2a93b (diff) | |
download | dexon-edba5e9854dcef9b4dcb6d75c06d5b5c7e5b8856.tar dexon-edba5e9854dcef9b4dcb6d75c06d5b5c7e5b8856.tar.gz dexon-edba5e9854dcef9b4dcb6d75c06d5b5c7e5b8856.tar.bz2 dexon-edba5e9854dcef9b4dcb6d75c06d5b5c7e5b8856.tar.lz dexon-edba5e9854dcef9b4dcb6d75c06d5b5c7e5b8856.tar.xz dexon-edba5e9854dcef9b4dcb6d75c06d5b5c7e5b8856.tar.zst dexon-edba5e9854dcef9b4dcb6d75c06d5b5c7e5b8856.zip |
cmd/puppeth: support managing fork block in the chain config
Diffstat (limited to 'cmd/puppeth/wizard_genesis.go')
-rw-r--r-- | cmd/puppeth/wizard_genesis.go | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/cmd/puppeth/wizard_genesis.go b/cmd/puppeth/wizard_genesis.go index 43dae9c20..222fc2a7c 100644 --- a/cmd/puppeth/wizard_genesis.go +++ b/cmd/puppeth/wizard_genesis.go @@ -18,7 +18,9 @@ package main import ( "bytes" + "encoding/json" "fmt" + "io/ioutil" "math/big" "math/rand" "time" @@ -135,3 +137,53 @@ func (w *wizard) makeGenesis() { // All done, store the genesis and flush to disk w.conf.genesis = genesis } + +// manageGenesis permits the modification of chain configuration parameters in +// a genesis config and the export of the entire genesis spec. +func (w *wizard) manageGenesis() { + // Figure out whether to modify or export the genesis + fmt.Println() + fmt.Println(" 1. Modify existing fork rules") + fmt.Println(" 2. Export genesis configuration") + + choice := w.read() + switch { + case choice == "1": + // Fork rule updating requested, iterate over each fork + fmt.Println() + fmt.Printf("Which block should Homestead come into effect? (default = %v)\n", w.conf.genesis.Config.HomesteadBlock) + w.conf.genesis.Config.HomesteadBlock = w.readDefaultBigInt(w.conf.genesis.Config.HomesteadBlock) + + fmt.Println() + fmt.Printf("Which block should EIP150 come into effect? (default = %v)\n", w.conf.genesis.Config.EIP150Block) + w.conf.genesis.Config.EIP150Block = w.readDefaultBigInt(w.conf.genesis.Config.EIP150Block) + + fmt.Println() + fmt.Printf("Which block should EIP155 come into effect? (default = %v)\n", w.conf.genesis.Config.EIP155Block) + w.conf.genesis.Config.EIP155Block = w.readDefaultBigInt(w.conf.genesis.Config.EIP155Block) + + fmt.Println() + fmt.Printf("Which block should EIP158 come into effect? (default = %v)\n", w.conf.genesis.Config.EIP158Block) + w.conf.genesis.Config.EIP158Block = w.readDefaultBigInt(w.conf.genesis.Config.EIP158Block) + + fmt.Println() + fmt.Printf("Which block should Byzantium come into effect? (default = %v)\n", w.conf.genesis.Config.ByzantiumBlock) + w.conf.genesis.Config.ByzantiumBlock = w.readDefaultBigInt(w.conf.genesis.Config.ByzantiumBlock) + + out, _ := json.MarshalIndent(w.conf.genesis.Config, "", " ") + fmt.Printf("Chain configuration updated:\n\n%s\n", out) + + case choice == "2": + // Save whatever genesis configuration we currently have + fmt.Println() + fmt.Printf("Which file to save the genesis into? (default = %s.json)\n", w.network) + out, _ := json.MarshalIndent(w.conf.genesis, "", " ") + if err := ioutil.WriteFile(w.readDefaultString(fmt.Sprintf("%s.json", w.network)), out, 0644); err != nil { + log.Error("Failed to save genesis file", "err", err) + } + log.Info("Exported existing genesis block") + + default: + log.Error("That's not something I can do") + } +} |