From: Chengcheng Zhang <943420582@qq.com> Date: Thu, 4 Jul 2019 19:57:39 +0000 (+0800) Subject: update TestRescanWallet X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=071500558b76cf034ece924611817b43478a7e53;p=bytom%2Fvapor.git update TestRescanWallet --- diff --git a/test/wallet_test.go b/test/wallet_test.go index da932acf..f1a5b7ef 100644 --- a/test/wallet_test.go +++ b/test/wallet_test.go @@ -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{} diff --git a/wallet/indexer.go b/wallet/indexer.go index 5c0c4133..9065f863 100644 --- a/wallet/indexer.go +++ b/wallet/indexer.go @@ -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