diff options
author | Bas van Kervel <basvankervel@gmail.com> | 2017-04-28 18:38:49 +0800 |
---|---|---|
committer | Bas van Kervel <basvankervel@gmail.com> | 2017-04-28 20:01:54 +0800 |
commit | f6c0f76cc56e98ac564dd523569b03468a387ef7 (patch) | |
tree | a516a68d267950b4237e8f70bafb08ebbbdff768 /cmd/geth/accountcmd.go | |
parent | f9be9a2302dd73fe3cc792167d65f24c7b7d35c4 (diff) | |
download | dexon-f6c0f76cc56e98ac564dd523569b03468a387ef7.tar dexon-f6c0f76cc56e98ac564dd523569b03468a387ef7.tar.gz dexon-f6c0f76cc56e98ac564dd523569b03468a387ef7.tar.bz2 dexon-f6c0f76cc56e98ac564dd523569b03468a387ef7.tar.lz dexon-f6c0f76cc56e98ac564dd523569b03468a387ef7.tar.xz dexon-f6c0f76cc56e98ac564dd523569b03468a387ef7.tar.zst dexon-f6c0f76cc56e98ac564dd523569b03468a387ef7.zip |
cmd/geth: reorganise account/wallet command/flags
Diffstat (limited to 'cmd/geth/accountcmd.go')
-rw-r--r-- | cmd/geth/accountcmd.go | 123 |
1 files changed, 62 insertions, 61 deletions
diff --git a/cmd/geth/accountcmd.go b/cmd/geth/accountcmd.go index 90f79a47e..1a3c63da9 100644 --- a/cmd/geth/accountcmd.go +++ b/cmd/geth/accountcmd.go @@ -31,41 +31,33 @@ import ( var ( walletCommand = cli.Command{ - Name: "wallet", - Usage: "Manage Ethereum presale wallets", - ArgsUsage: "", - Category: "ACCOUNT COMMANDS", + Name: "wallet", + Usage: "Import Ethereum presale wallets", + Action: utils.MigrateFlags(importWallet), + Category: "ACCOUNT COMMANDS", + Flags: []cli.Flag{ + utils.DataDirFlag, + utils.KeyStoreDirFlag, + utils.PasswordFileFlag, + utils.LightKDFFlag, + }, Description: ` - geth wallet import /path/to/my/presale.wallet + geth wallet [options] /path/to/my/presale.wallet -will prompt for your password and imports your ether presale account. -It can be used non-interactively with the --password option taking a -passwordfile as argument containing the wallet password in plaintext. + will prompt for your password and imports your ether presale account. + It can be used non-interactively with the --password option taking a + passwordfile as argument containing the wallet password in plaintext. -`, - Subcommands: []cli.Command{ - { - Action: importWallet, - Name: "import", - Usage: "Import Ethereum presale wallet", - ArgsUsage: "<keyFile>", - Description: ` -TODO: Please write this -`, - }, - }, + `, } accountCommand = cli.Command{ - Action: accountList, - Name: "account", - Usage: "Manage accounts", - ArgsUsage: "", - Category: "ACCOUNT COMMANDS", + Name: "account", + Usage: "Manage accounts", + Category: "ACCOUNT COMMANDS", Description: ` -Manage accounts lets you create new accounts, list all existing accounts, -import a private key into a new account. -' help' shows a list of subcommands or help for one subcommand. +Manage accounts, list all existing accounts, import a private key into a new +account, create a new account or update an existing account. It supports interactive mode, when you are prompted for password as well as non-interactive mode where passwords are supplied via a given password file. @@ -80,36 +72,34 @@ Note that exporting your key in unencrypted format is NOT supported. Keys are stored under <DATADIR>/keystore. It is safe to transfer the entire directory or the individual keys therein between ethereum nodes by simply copying. -Make sure you backup your keys regularly. -In order to use your account to send transactions, you need to unlock them using -the '--unlock' option. The argument is a space separated list of addresses or -indexes. If used non-interactively with a passwordfile, the file should contain -the respective passwords one per line. If you unlock n accounts and the password -file contains less than n entries, then the last password is meant to apply to -all remaining accounts. - -And finally. DO NOT FORGET YOUR PASSWORD. -`, +Make sure you backup your keys regularly.`, Subcommands: []cli.Command{ { - Action: accountList, - Name: "list", - Usage: "Print account addresses", - ArgsUsage: " ", + Name: "list", + Usage: "Print summary of existing accounts", + Action: utils.MigrateFlags(accountList), + Flags: []cli.Flag{ + utils.DataDirFlag, + utils.KeyStoreDirFlag, + }, Description: ` -TODO: Please write this -`, +Print a short summary of all accounts`, }, { - Action: accountCreate, - Name: "new", - Usage: "Create a new account", - ArgsUsage: " ", + Name: "new", + Usage: "Create a new account", + Action: utils.MigrateFlags(accountCreate), + Flags: []cli.Flag{ + utils.DataDirFlag, + utils.KeyStoreDirFlag, + utils.PasswordFileFlag, + utils.LightKDFFlag, + }, Description: ` geth account new -Creates a new account. Prints the address. +Creates a new account and prints the address. The account is saved in encrypted format, you are prompted for a passphrase. @@ -117,17 +107,20 @@ You must remember this passphrase to unlock your account in the future. For non-interactive use the passphrase can be specified with the --password flag: - geth --password <passwordfile> account new - Note, this is meant to be used for testing only, it is a bad idea to save your password to file or expose in any other way. `, }, { - Action: accountUpdate, Name: "update", Usage: "Update an existing account", + Action: utils.MigrateFlags(accountUpdate), ArgsUsage: "<address>", + Flags: []cli.Flag{ + utils.DataDirFlag, + utils.KeyStoreDirFlag, + utils.LightKDFFlag, + }, Description: ` geth account update <address> @@ -141,16 +134,22 @@ format to the newest format or change the password for an account. For non-interactive use the passphrase can be specified with the --password flag: - geth --password <passwordfile> account update <address> + geth account update [options] <address> Since only one password can be given, only format update can be performed, changing your password is only possible interactively. `, }, { - Action: accountImport, - Name: "import", - Usage: "Import a private key into a new account", + Name: "import", + Usage: "Import a private key into a new account", + Action: utils.MigrateFlags(accountImport), + Flags: []cli.Flag{ + utils.DataDirFlag, + utils.KeyStoreDirFlag, + utils.PasswordFileFlag, + utils.LightKDFFlag, + }, ArgsUsage: "<keyFile>", Description: ` geth account import <keyfile> @@ -166,7 +165,7 @@ You must remember this passphrase to unlock your account in the future. For non-interactive use the passphrase can be specified with the -password flag: - geth --password <passwordfile> account import <keyfile> + geth account import [options] <keyfile> Note: As you can directly copy your encrypted accounts to another ethereum instance, @@ -298,10 +297,12 @@ func accountUpdate(ctx *cli.Context) error { stack, _ := makeConfigNode(ctx) ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore) - account, oldPassword := unlockAccount(ctx, ks, ctx.Args().First(), 0, nil) - newPassword := getPassPhrase("Please give a new password. Do not forget this password.", true, 0, nil) - if err := ks.Update(account, oldPassword, newPassword); err != nil { - utils.Fatalf("Could not update the account: %v", err) + for _, addr := range ctx.Args() { + account, oldPassword := unlockAccount(ctx, ks, addr, 0, nil) + newPassword := getPassPhrase("Please give a new password. Do not forget this password.", true, 0, nil) + if err := ks.Update(account, oldPassword, newPassword); err != nil { + utils.Fatalf("Could not update the account: %v", err) + } } return nil } |