OSDN Git Service

update
authorChengcheng Zhang <943420582@qq.com>
Thu, 4 Jul 2019 08:31:37 +0000 (16:31 +0800)
committerChengcheng Zhang <943420582@qq.com>
Thu, 4 Jul 2019 08:31:37 +0000 (16:31 +0800)
database/leveldb/db.go
database/wallet_store.go
wallet/recovery.go
wallet/store.go
wallet/wallet_test.go

index 201c7a7..af1ea9a 100644 (file)
@@ -53,7 +53,7 @@ const (
        walletKey
        miningAddressKey
        coinbaseAbKey
-       recoveryKey
+       // recoveryKey
 )
 
 // leveldb key prefix
@@ -73,7 +73,8 @@ var (
        WalletKey                = []byte{walletKey}
        MiningAddressKey         = []byte{miningAddressKey}
        CoinbaseAbKey            = []byte{coinbaseAbKey}
-       RecoveryKey              = []byte{recoveryKey}
+       // RecoveryKey              = []byte{recoveryKey}
+       RecoveryKey = []byte("RecoveryInfo")
 )
 
 const (
index 8a74568..e922ee8 100644 (file)
@@ -429,12 +429,17 @@ func (store *WalletStore) SetGlobalTransactionIndex(globalTxID string, blockHash
 }
 
 // SetRecoveryStatus set recovery status
-func (store *WalletStore) SetRecoveryStatus(recoveryKey, rawStatus []byte) {
+func (store *WalletStore) SetRecoveryStatus(recoveryState *wallet.RecoveryState) error {
+       rawStatus, err := json.Marshal(recoveryState)
+       if err != nil {
+               return err
+       }
        if store.batch == nil {
-               store.walletDB.Set(recoveryKey, rawStatus)
+               store.walletDB.Set(dbm.RecoveryKey, rawStatus)
        } else {
-               store.batch.Set(recoveryKey, rawStatus)
+               store.batch.Set(dbm.RecoveryKey, rawStatus)
        }
+       return nil
 }
 
 // SetTransaction set raw transaction by block height and tx position
index d4fb27e..2a55455 100644 (file)
@@ -248,13 +248,14 @@ func (m *recoveryManager) AcctResurrect(xPubs []chainkd.XPub) error {
 }
 
 func (m *recoveryManager) commitStatusInfo() error {
-       rawStatus, err := json.Marshal(m.state)
-       if err != nil {
-               return err
-       }
+       // rawStatus, err := json.Marshal(m.state)
+       // if err != nil {
+       //      return err
+       // }
 
-       m.store.SetRecoveryStatus(recoveryKey, rawStatus)
-       return nil
+       // m.store.SetRecoveryStatus(recoveryKey, rawStatus)
+
+       return m.store.SetRecoveryStatus(m.state)
 }
 
 func genAcctAlias(xPubs []chainkd.XPub, index uint64) string {
index d192645..05462d2 100644 (file)
@@ -31,7 +31,7 @@ type WalletStore interface {
        SetAssetDefinition(*bc.AssetID, []byte)
        SetContractUTXO(bc.Hash, *acc.UTXO) error
        SetGlobalTransactionIndex(string, *bc.Hash, uint64)
-       SetRecoveryStatus([]byte, []byte) // recoveryManager.state isn't exported outside
+       SetRecoveryStatus(*RecoveryState) error // recoveryManager.state isn't exported outside
        SetTransaction(uint64, *query.AnnotatedTx) error
        SetUnconfirmedTransaction(string, *query.AnnotatedTx) error
        SetWalletInfo(*StatusInfo) error
index 662b626..ff4710c 100644 (file)
@@ -905,12 +905,17 @@ func (store *MockWalletStore) SetGlobalTransactionIndex(globalTxID string, block
 }
 
 // SetRecoveryStatus set recovery status
-func (store *MockWalletStore) SetRecoveryStatus(recoveryKey, rawStatus []byte) {
+func (store *MockWalletStore) SetRecoveryStatus(recoveryState *RecoveryState) error {
+       rawStatus, err := json.Marshal(recoveryState)
+       if err != nil {
+               return err
+       }
        if store.batch == nil {
-               store.walletDB.Set(recoveryKey, rawStatus)
+               store.walletDB.Set(dbm.RecoveryKey, rawStatus)
        } else {
-               store.batch.Set(recoveryKey, rawStatus)
+               store.batch.Set(dbm.RecoveryKey, rawStatus)
        }
+       return nil
 }
 
 // SetTransaction set raw transaction by block height and tx position