OSDN Git Service

update TestRescanWallet
authorChengcheng Zhang <943420582@qq.com>
Thu, 4 Jul 2019 19:57:39 +0000 (03:57 +0800)
committerChengcheng Zhang <943420582@qq.com>
Thu, 4 Jul 2019 19:57:39 +0000 (03:57 +0800)
test/wallet_test.go
wallet/indexer.go

index da932ac..f1a5b7e 100644 (file)
@@ -123,70 +123,69 @@ func TestWalletUpdate(t *testing.T) {
        }
 }
 
-// func TestRescanWallet(t *testing.T) {
-//     // prepare wallet & db
-//     dirPath, err := ioutil.TempDir(".", "")
-//     if err != nil {
-//             t.Fatal(err)
-//     }
-//     defer os.RemoveAll(dirPath)
-
-//     config.CommonConfig = config.DefaultConfig()
-//     testDB := dbm.NewDB("testdb", "leveldb", "temp")
-//     walletStore := database.NewWalletStore(testDB)
-//     defer func() {
-//             testDB.Close()
-//             os.RemoveAll("temp")
-//     }()
-
-//     store := database.NewStore(testDB)
-//     dispatcher := event.NewDispatcher()
-//     txPool := protocol.NewTxPool(store, dispatcher)
-//     chain, err := protocol.NewChain(store, txPool, dispatcher)
-//     if err != nil {
-//             t.Fatal(err)
-//     }
-
-//     statusInfo := wt.StatusInfo{
-//             Version:  uint(1),
-//             WorkHash: bc.Hash{V0: 0xff},
-//     }
-//     if err := walletStore.SetWalletInfo(&statusInfo); err != nil {
-//             t.Fatal(err)
-//     }
-//     walletInfo, err := walletStore.GetWalletInfo()
-//     if err != nil {
-//             t.Fatal(err)
-//     }
-//     // w.status =
-
-//     // rawWallet, err := json.Marshal(statusInfo)
-//     // if err != nil {
-//     //      t.Fatal("save wallet info")
-//     // }
-
-//     w := newMockWallet(walletStore, nil, nil, chain, dispatcher, false)
-
-//     // w.store.SetWalletInfo(rawWallet)
-//     // rawWallet = w.store.GetWalletInfo()
-//     // if rawWallet == nil {
-//     //      t.Fatal("fail to load wallet StatusInfo")
-//     // }
-
-//     if err := json.Unmarshal(rawWallet, &w.status); err != nil {
-//             t.Fatal(err)
-//     }
-
-//     // rescan wallet
-//     if err := w.LoadWalletInfo(); err != nil {
-//             t.Fatal(err)
-//     }
-
-//     block := config.GenesisBlock()
-//     if w.status.WorkHash != block.Hash() {
-//             t.Fatal("reattach from genesis block")
-//     }
-// }
+func TestRescanWallet(t *testing.T) {
+       // prepare wallet & db
+       dirPath, err := ioutil.TempDir(".", "")
+       if err != nil {
+               t.Fatal(err)
+       }
+       defer os.RemoveAll(dirPath)
+
+       config.CommonConfig = config.DefaultConfig()
+       testDB := dbm.NewDB("testdb", "leveldb", "temp")
+       walletStore := database.NewWalletStore(testDB)
+       defer func() {
+               testDB.Close()
+               os.RemoveAll("temp")
+       }()
+
+       store := database.NewStore(testDB)
+       dispatcher := event.NewDispatcher()
+       txPool := protocol.NewTxPool(store, dispatcher)
+       chain, err := protocol.NewChain(store, txPool, dispatcher)
+       if err != nil {
+               t.Fatal(err)
+       }
+
+       statusInfo := wt.StatusInfo{
+               Version:  uint(1),
+               WorkHash: bc.Hash{V0: 0xff},
+       }
+       if err := walletStore.SetWalletInfo(&statusInfo); err != nil {
+               t.Fatal(err)
+       }
+       walletInfo, err := walletStore.GetWalletInfo()
+       if err != nil {
+               t.Fatal(err)
+       }
+
+       // rawWallet, err := json.Marshal(statusInfo)
+       // if err != nil {
+       //      t.Fatal("save wallet info")
+       // }
+
+       w := newMockWallet(walletStore, nil, nil, chain, dispatcher, false)
+       w.Wallet.Status = *walletInfo
+       // w.store.SetWalletInfo(rawWallet)
+       // rawWallet = w.store.GetWalletInfo()
+       // if rawWallet == nil {
+       //      t.Fatal("fail to load wallet StatusInfo")
+       // }
+
+       // if err := json.Unmarshal(rawWallet, &w.Wallet.Status); err != nil {
+       //      t.Fatal(err)
+       // }
+
+       // rescan wallet
+       if err := w.Wallet.LoadWalletInfo(); err != nil {
+               t.Fatal(err)
+       }
+
+       block := config.GenesisBlock()
+       if w.Wallet.Status.WorkHash != block.Hash() {
+               t.Fatal("reattach from genesis block")
+       }
+}
 
 func mockUTXO(controlProg *account.CtrlProgram, assetID *bc.AssetID) *account.UTXO {
        utxo := &account.UTXO{}
index 5c0c413..9065f86 100644 (file)
@@ -105,7 +105,7 @@ transactionLoop:
                        var hash [32]byte
                        sha3pool.Sum256(hash[:], v.ControlProgram())
 
-                       _, err := w.AccountMgr.GetControlProgram(bc.NewHash(hash))
+                       _, err := w.store.GetControlProgram(bc.NewHash(hash))
                        if err != nil {
                                log.WithFields(log.Fields{"module": logModule, "err": err, "hash": string(hash[:])}).Error("filterAccountTxs fail.")
                                continue