forked from cerc-io/plugeth
accounts, cmd, internal, signer: add note about backing up the keystore (#19432)
* accounts: add note about backing up the keystore * cmd, accounts: move the printout to accountCreate * internal, signer: add info when new account is created via rpc * cmd, internal, signer: split logs * cmd/geth: make account new output a bit more verbose
This commit is contained in:
parent
c8cf360f29
commit
107c67d74e
@ -38,6 +38,7 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/ethereum/go-ethereum/accounts"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/common/math"
|
||||
"github.com/ethereum/go-ethereum/crypto"
|
||||
@ -97,9 +98,9 @@ func (ks keyStorePassphrase) GetKey(addr common.Address, filename, auth string)
|
||||
}
|
||||
|
||||
// StoreKey generates a key, encrypts with 'auth' and stores in the given directory
|
||||
func StoreKey(dir, auth string, scryptN, scryptP int) (common.Address, error) {
|
||||
func StoreKey(dir, auth string, scryptN, scryptP int) (accounts.Account, error) {
|
||||
_, a, err := storeNewKey(&keyStorePassphrase{dir, scryptN, scryptP, false}, rand.Reader, auth)
|
||||
return a.Address, err
|
||||
return a, err
|
||||
}
|
||||
|
||||
func (ks keyStorePassphrase) StoreKey(filename string, key *Key, auth string) error {
|
||||
|
@ -307,12 +307,18 @@ func accountCreate(ctx *cli.Context) error {
|
||||
|
||||
password := getPassPhrase("Your new account is locked with a password. Please give a password. Do not forget this password.", true, 0, utils.MakePasswordList(ctx))
|
||||
|
||||
address, err := keystore.StoreKey(keydir, password, scryptN, scryptP)
|
||||
account, err := keystore.StoreKey(keydir, password, scryptN, scryptP)
|
||||
|
||||
if err != nil {
|
||||
utils.Fatalf("Failed to create account: %v", err)
|
||||
}
|
||||
fmt.Printf("Address: {%x}\n", address)
|
||||
fmt.Printf("\nYour new key was generated\n\n")
|
||||
fmt.Printf("Public address of the key: %s\n", account.Address.Hex())
|
||||
fmt.Printf("Path of the secret key file: %s\n\n", account.URL.Path)
|
||||
fmt.Printf("- You can share your public address with anyone. Others need it to interact with you.\n")
|
||||
fmt.Printf("- You must NEVER share the secret key with anyone! The key controls access to your funds!\n")
|
||||
fmt.Printf("- You must BACKUP your key file! Without the key, it's impossible to access account funds!\n")
|
||||
fmt.Printf("- You must REMEMBER your password! Without the password, it's impossible to decrypt the key!\n\n")
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -74,8 +74,18 @@ Your new account is locked with a password. Please give a password. Do not forge
|
||||
!! Unsupported terminal, password will be echoed.
|
||||
Passphrase: {{.InputLine "foobar"}}
|
||||
Repeat passphrase: {{.InputLine "foobar"}}
|
||||
|
||||
Your new key was generated
|
||||
`)
|
||||
geth.ExpectRegexp(`
|
||||
Public address of the key: 0x[0-9a-fA-F]{40}
|
||||
Path of the secret key file: .*UTC--.+--[0-9a-f]{40}
|
||||
|
||||
- You can share your public address with anyone. Others need it to interact with you.
|
||||
- You must NEVER share the secret key with anyone! The key controls access to your funds!
|
||||
- You must BACKUP your key file! Without the key, it's impossible to access account funds!
|
||||
- You must REMEMBER your password! Without the password, it's impossible to decrypt the key!
|
||||
`)
|
||||
geth.ExpectRegexp(`Address: \{[0-9a-f]{40}\}\n`)
|
||||
}
|
||||
|
||||
func TestAccountNewBadRepeat(t *testing.T) {
|
||||
|
@ -295,6 +295,9 @@ func (s *PrivateAccountAPI) DeriveAccount(url string, path string, pin *bool) (a
|
||||
func (s *PrivateAccountAPI) NewAccount(password string) (common.Address, error) {
|
||||
acc, err := fetchKeystore(s.am).NewAccount(password)
|
||||
if err == nil {
|
||||
log.Info("Your new key was generated", "address", acc.Address)
|
||||
log.Warn("Please backup your key file!", "path", acc.URL.Path)
|
||||
log.Warn("Please remember your password!")
|
||||
return acc.Address, nil
|
||||
}
|
||||
return common.Address{}, err
|
||||
|
@ -392,6 +392,9 @@ func (api *SignerAPI) New(ctx context.Context) (common.Address, error) {
|
||||
} else {
|
||||
// No error
|
||||
acc, err := be[0].(*keystore.KeyStore).NewAccount(resp.Text)
|
||||
log.Info("Your new key was generated", "address", acc.Address)
|
||||
log.Warn("Please backup your key file!", "path", acc.URL.Path)
|
||||
log.Warn("Please remember your password!")
|
||||
return acc.Address, err
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user