"fmt"
"sort"
+ "github.com/vapor/wallet"
+
acc "github.com/vapor/account"
"github.com/vapor/asset"
"github.com/vapor/blockchain/query"
}
// SetWalletInfo get wallet information
-func (store *WalletStore) SetWalletInfo(rawWallet []byte) {
+func (store *WalletStore) SetWalletInfo(status *wallet.StatusInfo) error {
+ rawWallet, err := json.Marshal(status)
+ if err != nil {
+ return err
+ }
+
if store.batch == nil {
store.walletDB.Set([]byte(dbm.WalletKey), rawWallet)
} else {
store.batch.Set([]byte(dbm.WalletKey), rawWallet)
}
+ return nil
}
SetRecoveryStatus([]byte, []byte) // recoveryManager.state isn't exported outside
SetTransaction(uint64, *query.AnnotatedTx) error
SetUnconfirmedTransaction(string, *query.AnnotatedTx) error
- SetWalletInfo([]byte) // need move database.NewWalletStore in wallet package
+ SetWalletInfo(*StatusInfo) error // need move database.NewWalletStore in wallet package
}
dispatcher := event.NewDispatcher()
w := mockWallet(walletStore, nil, nil, nil, dispatcher, false)
- // legacy status test case
- type legacyStatusInfo struct {
- WorkHeight uint64
- WorkHash bc.Hash
- BestHeight uint64
- BestHash bc.Hash
- }
- rawWallet, err := json.Marshal(legacyStatusInfo{})
- if err != nil {
- t.Fatal("Marshal legacyStatusInfo")
+ // // legacy status test case
+ // type legacyStatusInfo struct {
+ // WorkHeight uint64
+ // WorkHash bc.Hash
+ // BestHeight uint64
+ // BestHash bc.Hash
+ // }
+
+ // rawWallet, err := json.Marshal(legacyStatusInfo{})
+ // if err != nil {
+ // t.Fatal("Marshal legacyStatusInfo")
+ // }
+ walletStatus := new(StatusInfo)
+
+ if err := w.store.SetWalletInfo(walletStatus); err != nil {
+ t.Fatal(err)
}
-
- w.store.SetWalletInfo(rawWallet)
- rawWallet = w.store.GetWalletInfo()
+ rawWallet := w.store.GetWalletInfo()
if rawWallet == nil {
t.Fatal("fail to load wallet StatusInfo")
}
// lower wallet version test case
lowerVersion := StatusInfo{Version: currentVersion - 1}
- rawWallet, err = json.Marshal(lowerVersion)
- if err != nil {
- t.Fatal("save wallet info")
- }
+ // rawWallet, err = json.Marshal(lowerVersion)
+ // if err != nil {
+ // t.Fatal("save wallet info")
+ // }
- w.store.SetWalletInfo(rawWallet)
+ if err := w.store.SetWalletInfo(&lowerVersion); err != nil {
+ t.Fatal(err)
+ }
rawWallet = w.store.GetWalletInfo()
if rawWallet == nil {
t.Fatal("fail to load wallet StatusInfo")
}
// SetWalletInfo get wallet information
-func (store *MockWalletStore) SetWalletInfo(rawWallet []byte) {
+func (store *MockWalletStore) SetWalletInfo(status *StatusInfo) error {
+ rawWallet, err := json.Marshal(status)
+ if err != nil {
+ return err
+ }
+
if store.batch == nil {
- store.walletDB.Set([]byte(WalletKey), rawWallet)
+ store.walletDB.Set([]byte(dbm.WalletKey), rawWallet)
} else {
- store.batch.Set([]byte(WalletKey), rawWallet)
+ store.batch.Set([]byte(dbm.WalletKey), rawWallet)
}
+ return nil
}
//-------------