OSDN Git Service

update master (#487)
[bytom/bytom.git] / api / wallet.go
similarity index 69%
rename from blockchain/wallet.go
rename to api/wallet.go
index e470a4c..ec950c0 100644 (file)
@@ -1,4 +1,4 @@
-package blockchain
+package api
 
 import (
        "bytes"
@@ -20,11 +20,11 @@ type KeyImportParams struct {
        AccountAlias string `json:"account_alias"`
 }
 
-func (bcr *BlockchainReactor) walletExportKey(ctx context.Context, in struct {
+func (a *API) walletExportKey(ctx context.Context, in struct {
        Password string       `json:"password"`
        XPub     chainkd.XPub `json:"xpub"`
 }) Response {
-       key, err := bcr.wallet.ExportAccountPrivKey(bcr.hsm, in.XPub, in.Password)
+       key, err := a.wallet.ExportAccountPrivKey(in.XPub, in.Password)
        if err != nil {
                return NewErrorResponse(err)
        }
@@ -35,7 +35,7 @@ func (bcr *BlockchainReactor) walletExportKey(ctx context.Context, in struct {
        return NewSuccessResponse(privateKey{PrivateKey: *key})
 }
 
-func (bcr *BlockchainReactor) walletImportKey(ctx context.Context, in KeyImportParams) Response {
+func (a *API) walletImportKey(ctx context.Context, in KeyImportParams) Response {
        rawData, err := base58.Decode(in.XPrv)
        if err != nil {
                return NewErrorResponse(err)
@@ -54,17 +54,22 @@ func (bcr *BlockchainReactor) walletImportKey(ctx context.Context, in KeyImportP
        var xprv [64]byte
        copy(xprv[:], rawData[:64])
 
-       xpub, err := bcr.wallet.ImportAccountPrivKey(bcr.hsm, xprv, in.KeyAlias, in.Password, in.Index, in.AccountAlias)
+       xpub, err := a.wallet.ImportAccountPrivKey(xprv, in.KeyAlias, in.Password, in.Index, in.AccountAlias)
        if err != nil {
                return NewErrorResponse(err)
        }
        return NewSuccessResponse(xpub)
 }
 
-func (bcr *BlockchainReactor) keyImportProgress(ctx context.Context) Response {
-       data, err := bcr.wallet.GetRescanStatus()
+func (a *API) keyImportProgress(ctx context.Context) Response {
+       data, err := a.wallet.GetRescanStatus()
        if err != nil {
                return NewErrorResponse(err)
        }
        return NewSuccessResponse(data)
 }
+
+// POST /wallet error
+func (a *API) walletError() Response {
+       return NewErrorResponse(errors.New("wallet not found, please check that the wallet is open"))
+}