cmd/geth: add developer account password support

This commit is contained in:
Pavel Kiselyov 2018-07-10 11:19:34 +03:00
parent 2eedbe799f
commit 515db1116d
3 changed files with 10 additions and 2 deletions

View file

@ -108,6 +108,7 @@ var (
utils.NodeKeyFileFlag, utils.NodeKeyFileFlag,
utils.NodeKeyHexFlag, utils.NodeKeyHexFlag,
utils.DeveloperFlag, utils.DeveloperFlag,
utils.DeveloperPasswordFlag,
utils.DeveloperPeriodFlag, utils.DeveloperPeriodFlag,
utils.TestnetFlag, utils.TestnetFlag,
utils.RinkebyFlag, utils.RinkebyFlag,

View file

@ -87,6 +87,7 @@ var AppHelpFlagGroups = []flagGroup{
Name: "DEVELOPER CHAIN", Name: "DEVELOPER CHAIN",
Flags: []cli.Flag{ Flags: []cli.Flag{
utils.DeveloperFlag, utils.DeveloperFlag,
utils.DeveloperPasswordFlag,
utils.DeveloperPeriodFlag, utils.DeveloperPeriodFlag,
}, },
}, },

View file

@ -145,6 +145,10 @@ var (
Name: "dev", Name: "dev",
Usage: "Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled", Usage: "Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled",
} }
DeveloperPasswordFlag = cli.BoolFlag{
Name: "dev.password",
Usage: "Password to unlock first account in custom keystore and use it as developer coinbase account",
}
DeveloperPeriodFlag = cli.IntFlag{ DeveloperPeriodFlag = cli.IntFlag{
Name: "dev.period", Name: "dev.period",
Usage: "Block period to use in developer mode (0 = mine only if transaction pending)", Usage: "Block period to use in developer mode (0 = mine only if transaction pending)",
@ -1128,16 +1132,18 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
var ( var (
developer accounts.Account developer accounts.Account
err error err error
password string
) )
password = ctx.GlobalString(DeveloperPasswordFlag.Name)
if accs := ks.Accounts(); len(accs) > 0 { if accs := ks.Accounts(); len(accs) > 0 {
developer = ks.Accounts()[0] developer = ks.Accounts()[0]
} else { } else {
developer, err = ks.NewAccount("") developer, err = ks.NewAccount(password)
if err != nil { if err != nil {
Fatalf("Failed to create developer account: %v", err) Fatalf("Failed to create developer account: %v", err)
} }
} }
if err := ks.Unlock(developer, ""); err != nil { if err := ks.Unlock(developer, password); err != nil {
Fatalf("Failed to unlock developer account: %v", err) Fatalf("Failed to unlock developer account: %v", err)
} }
log.Info("Using developer account", "address", developer.Address) log.Info("Using developer account", "address", developer.Address)