|
|
@ -25,6 +25,7 @@ import ( |
|
|
|
|
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/accounts" |
|
|
|
"github.com/ethereum/go-ethereum/accounts" |
|
|
|
"github.com/ethereum/go-ethereum/accounts/keystore" |
|
|
|
"github.com/ethereum/go-ethereum/accounts/keystore" |
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/crypto" |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
const ( |
|
|
|
const ( |
|
|
@ -176,6 +177,11 @@ func (ks *KeyStore) NewAccount(passphrase string) (*Account, error) { |
|
|
|
return &Account{account}, nil |
|
|
|
return &Account{account}, nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// UpdateAccount changes the passphrase of an existing account.
|
|
|
|
|
|
|
|
func (ks *KeyStore) UpdateAccount(account *Account, passphrase, newPassphrase string) error { |
|
|
|
|
|
|
|
return ks.keystore.Update(account.account, passphrase, newPassphrase) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// ExportKey exports as a JSON key, encrypted with newPassphrase.
|
|
|
|
// ExportKey exports as a JSON key, encrypted with newPassphrase.
|
|
|
|
func (ks *KeyStore) ExportKey(account *Account, passphrase, newPassphrase string) (key []byte, _ error) { |
|
|
|
func (ks *KeyStore) ExportKey(account *Account, passphrase, newPassphrase string) (key []byte, _ error) { |
|
|
|
return ks.keystore.Export(account.account, passphrase, newPassphrase) |
|
|
|
return ks.keystore.Export(account.account, passphrase, newPassphrase) |
|
|
@ -190,9 +196,17 @@ func (ks *KeyStore) ImportKey(keyJSON []byte, passphrase, newPassphrase string) |
|
|
|
return &Account{acc}, nil |
|
|
|
return &Account{acc}, nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// UpdateAccount changes the passphrase of an existing account.
|
|
|
|
// ImportECDSAKey stores the given encrypted JSON key into the key directory.
|
|
|
|
func (ks *KeyStore) UpdateAccount(account *Account, passphrase, newPassphrase string) error { |
|
|
|
func (ks *KeyStore) ImportECDSAKey(key []byte, passphrase string) (account *Account, _ error) { |
|
|
|
return ks.keystore.Update(account.account, passphrase, newPassphrase) |
|
|
|
privkey, err := crypto.ToECDSA(key) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
return nil, err |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
acc, err := ks.keystore.ImportECDSA(privkey, passphrase) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
return nil, err |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return &Account{acc}, nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// ImportPreSaleKey decrypts the given Ethereum presale wallet and stores
|
|
|
|
// ImportPreSaleKey decrypts the given Ethereum presale wallet and stores
|
|
|
|