}
func (bcr *BlockchainReactor) walletImportKey(ctx context.Context, in struct {
- Alias string `json:"alias"`
- Password string `json:"password"`
- XPrv chainkd.XPrv `json:"xprv"`
- Index uint64 `json:"index"`
+ KeyAlias string `json:"key_alias"`
+ Password string `json:"password"`
+ XPrv chainkd.XPrv `json:"xprv"`
+ Index uint64 `json:"index"`
+ AccountAlias string `json:"account_alias"`
}) Response {
- xpub, err := bcr.wallet.ImportAccountPrivKey(bcr.hsm, in.XPrv, in.Alias, in.Password, in.Index)
+ xpub, err := bcr.wallet.ImportAccountPrivKey(bcr.hsm, in.XPrv, in.KeyAlias, in.Password, in.Index, in.AccountAlias)
if err != nil {
return resWrapper(nil, err)
}
import (
"encoding/json"
- "time"
log "github.com/sirupsen/logrus"
"github.com/tendermint/go-wire/data/base58"
}
// ImportAccountPrivKey imports the account key in the Wallet Import Formt.
-func (w *Wallet) ImportAccountPrivKey(hsm *pseudohsm.HSM, xprv chainkd.XPrv, alias, auth string, index uint64) (*pseudohsm.XPub, error) {
- xpub, _, err := hsm.ImportXPrvKey(auth, alias, xprv)
+func (w *Wallet) ImportAccountPrivKey(hsm *pseudohsm.HSM, xprv chainkd.XPrv, keyAlias, auth string, index uint64, accountAlias string) (*pseudohsm.XPub, error) {
+ xpub, _, err := hsm.ImportXPrvKey(auth, keyAlias, xprv)
if err != nil {
return nil, err
}
- newAccount, err := w.AccountMgr.Create([]chainkd.XPub{xpub.XPub}, SINGLE, alias, nil)
+
+ newAccount, err := w.AccountMgr.Create([]chainkd.XPub{xpub.XPub}, SINGLE, accountAlias, nil)
if err != nil {
return nil, err
}
func (w *Wallet) createProgram(account *account.Account, XPub *pseudohsm.XPub, index uint64) error {
for i := uint64(0); i < index; i++ {
- if _, err := w.AccountMgr.CreateControlProgram(nil, account.ID, true, time.Now()); err != nil {
+ if _, err := w.AccountMgr.CreateAddress(nil, account.ID, false); err != nil {
return err
}
}
}
var importPrivateCmd = &cobra.Command{
- Use: "import-private-key <alias> <private key> <index> <password>",
+ Use: "import-private-key <key-alias> <private key> <index> <password> <account-alias>",
Short: "Import the private key",
- Args: cobra.ExactArgs(4),
+ Args: cobra.ExactArgs(5),
Run: func(cmd *cobra.Command, args []string) {
type Key struct {
- Alias string
- Password string
- XPrv chainkd.XPrv
- Index uint64
+ KeyAlias string `json:"key_alias"`
+ Password string `json:"password"`
+ XPrv chainkd.XPrv `json:"xprv"`
+ Index uint64 `json:"index"`
+ AccountAlias string `json:"account_alias"`
}
privHash, err := base58.Decode(args[1])
}
var key Key
- key.Alias = args[0]
+ key.KeyAlias = args[0]
key.Password = args[3]
key.Index, _ = strconv.ParseUint(args[2], 10, 64)
copy(key.XPrv[:], privHash[:64])
+ key.AccountAlias = args[4]
data, exitCode := util.ClientCall("/import-private-key", &key)
if exitCode != util.Success {