OSDN Git Service

update account manager
authorChengcheng Zhang <943420582@qq.com>
Thu, 27 Jun 2019 03:23:11 +0000 (11:23 +0800)
committerChengcheng Zhang <943420582@qq.com>
Thu, 27 Jun 2019 03:23:11 +0000 (11:23 +0800)
account/accounts.go
account/accounts_test.go
node/node.go
test/bench_blockchain_test.go
test/integration/standard_transaction_test.go
test/performance/mining_test.go
test/wallet_test_util.go
wallet/recovery_test.go
wallet/unconfirmed_test.go
wallet/utxo_test.go
wallet/wallet_test.go

index 6bec595..86086a9 100644 (file)
@@ -18,8 +18,6 @@ import (
        "github.com/vapor/crypto"
        "github.com/vapor/crypto/ed25519/chainkd"
        "github.com/vapor/crypto/sha3pool"
-       "github.com/vapor/database"
-       dbm "github.com/vapor/database/leveldb"
        "github.com/vapor/errors"
        "github.com/vapor/protocol"
        "github.com/vapor/protocol/bc"
@@ -83,8 +81,7 @@ type Manager struct {
 }
 
 // NewManager creates a new account manager
-func NewManager(accountdb dbm.DB, chain *protocol.Chain) *Manager {
-       store := database.NewAccountStore(accountdb)
+func NewManager(store AccountStorer, chain *protocol.Chain) *Manager {
        return &Manager{
                store:       store,
                chain:       chain,
index 201cc46..48d80f2 100644 (file)
@@ -180,6 +180,7 @@ func mockAccountManager(t *testing.T) *Manager {
        testDB := dbm.NewDB("testdb", "memdb", dirPath)
        dispatcher := event.NewDispatcher()
        store := database.NewStore(testDB)
+       accountStore := database.NewAccountStore(testDB)
        txPool := protocol.NewTxPool(store, dispatcher)
        config.CommonConfig = config.DefaultConfig()
        chain, err := protocol.NewChain(store, txPool, dispatcher)
@@ -187,7 +188,7 @@ func mockAccountManager(t *testing.T) *Manager {
                t.Fatal(err)
        }
 
-       return NewManager(testDB, chain)
+       return NewManager(accountStore, chain)
 }
 
 func (m *Manager) createTestAccount(t testing.TB, alias string, tags map[string]interface{}) *Account {
index 7e0e8a2..94b1114 100644 (file)
@@ -111,7 +111,8 @@ func NewNode(config *cfg.Config) *Node {
        if !config.Wallet.Disable {
                walletDB := dbm.NewDB("wallet", config.DBBackend, config.DBDir())
                walletStore := database.NewWalletStore(walletDB)
-               accounts = account.NewManager(walletDB, chain)
+               accountStore := database.NewAccountStore(walletDB)
+               accounts = account.NewManager(accountStore, chain)
                assets = asset.NewRegistry(walletDB, chain)
                wallet, err = w.NewWallet(walletStore, accounts, assets, hsm, chain, dispatcher, config.Wallet.TxIndex)
                if err != nil {
index 0d548fe..092811d 100644 (file)
@@ -159,7 +159,7 @@ func InsertChain(chain *protocol.Chain, txPool *protocol.TxPool, txs []*types.Tx
                }
        }
 
-       block, err := proposal.NewBlockTemplate(chain, txPool, nil, uint64(time.Now().UnixNano() / 1e6))
+       block, err := proposal.NewBlockTemplate(chain, txPool, nil, uint64(time.Now().UnixNano()/1e6))
        if err != nil {
                return err
        }
@@ -368,7 +368,8 @@ func SetUtxoView(db dbm.DB, view *state.UtxoViewpoint) error {
 
 //-------------------------Mock actual transaction----------------------------------
 func MockTxsP2PKH(keyDirPath string, testDB dbm.DB, txNumber, otherAssetNum int) ([]*types.Tx, error) {
-       accountManager := account.NewManager(testDB, nil)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, nil)
        hsm, err := pseudohsm.New(keyDirPath)
        if err != nil {
                return nil, err
@@ -410,7 +411,8 @@ func MockTxsP2PKH(keyDirPath string, testDB dbm.DB, txNumber, otherAssetNum int)
 }
 
 func MockTxsP2SH(keyDirPath string, testDB dbm.DB, txNumber, otherAssetNum int) ([]*types.Tx, error) {
-       accountManager := account.NewManager(testDB, nil)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, nil)
        hsm, err := pseudohsm.New(keyDirPath)
        if err != nil {
                return nil, err
@@ -457,7 +459,8 @@ func MockTxsP2SH(keyDirPath string, testDB dbm.DB, txNumber, otherAssetNum int)
 }
 
 func MockTxsMultiSign(keyDirPath string, testDB dbm.DB, txNumber, otherAssetNum int) ([]*types.Tx, error) {
-       accountManager := account.NewManager(testDB, nil)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, nil)
        hsm, err := pseudohsm.New(keyDirPath)
        if err != nil {
                return nil, err
index 69a67a0..a82961d 100644 (file)
@@ -32,7 +32,8 @@ func TestP2PKH(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -83,7 +84,8 @@ func TestBip0032P2PKH(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -147,7 +149,8 @@ func TestP2SH(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -208,7 +211,8 @@ func TestBip0032P2SH(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -281,7 +285,8 @@ func TestMutilNodeSign(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -352,7 +357,8 @@ func TestBip0032MutilNodeSign(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
index 8739008..0f3f0d6 100644 (file)
@@ -6,6 +6,7 @@ import (
        "time"
 
        "github.com/vapor/account"
+       "github.com/vapor/database"
        dbm "github.com/vapor/database/leveldb"
        "github.com/vapor/proposal"
        "github.com/vapor/test"
@@ -20,10 +21,11 @@ func BenchmarkNewBlockTpl(b *testing.B) {
        if err != nil {
                b.Fatal(err)
        }
-       accountManager := account.NewManager(testDB, chain)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, chain)
 
        b.ResetTimer()
        for i := 0; i < b.N; i++ {
-               proposal.NewBlockTemplate(chain, txPool, accountManager, uint64(time.Now().UnixNano() / 1e6))
+               proposal.NewBlockTemplate(chain, txPool, accountManager, uint64(time.Now().UnixNano()/1e6))
        }
 }
index 50636f3..570aecc 100644 (file)
@@ -243,7 +243,8 @@ func (cfg *walletTestConfig) Run() error {
        }
        walletDB := dbm.NewDB("wallet", "leveldb", path.Join(dirPath, "wallet_db"))
        walletStore := database.NewWalletStore(walletDB)
-       accountManager := account.NewManager(walletDB, chain)
+       accountStore := database.NewAccountStore(walletDB)
+       accountManager := account.NewManager(accountStore, chain)
        assets := asset.NewRegistry(walletDB, chain)
        dispatcher := event.NewDispatcher()
        wallet, err := w.NewWallet(walletStore, accountManager, assets, hsm, chain, dispatcher, false)
index dc5eedc..9074466 100644 (file)
@@ -148,7 +148,8 @@ func TestXPubsRecoveryLock(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil)
+       acctStore := database.NewAccountStore(testDB)
+       acctMgr := account.NewManager(acctStore, nil)
        recoveryMgr := newRecoveryManager(testStore, acctMgr)
        recoveryMgr.state = newRecoveryState()
        recoveryMgr.state.XPubs = []chainkd.XPub{xpub.XPub}
@@ -198,7 +199,8 @@ func TestExtendScanAddresses(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil)
+       acctStore := database.NewAccountStore(testDB)
+       acctMgr := account.NewManager(acctStore, nil)
        recoveryMgr := newRecoveryManager(testStore, acctMgr)
        acc1 := &account.Account{ID: "testA", Alias: "test1", Signer: &signers.Signer{XPubs: []chainkd.XPub{xpub.XPub}, KeyIndex: 1, DeriveRule: signers.BIP0044}}
        acc2 := &account.Account{ID: "testB", Alias: "test2"}
@@ -255,9 +257,11 @@ func TestRecoveryFromXPubs(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil)
+       acctStore := database.NewAccountStore(testDB)
+       acctMgr := account.NewManager(acctStore, nil)
        txs, err := MockTxsP2PKH(acctMgr, xpub.XPub, false)
-       recAcctMgr := account.NewManager(recoveryDB, nil)
+       recActStore := database.NewAccountStore(recoveryDB)
+       recAcctMgr := account.NewManager(recActStore, nil)
        recoveryMgr := newRecoveryManager(recoveryStore, recAcctMgr)
 
        cases := []struct {
@@ -330,7 +334,8 @@ func TestRecoveryByRescanAccount(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil)
+       acctStore := database.NewAccountStore(testDB)
+       acctMgr := account.NewManager(acctStore, nil)
        txs, err := MockTxsP2PKH(acctMgr, xpub.XPub, true)
        if err != nil {
                t.Fatal("recovery by rescan account err:", err)
@@ -341,7 +346,8 @@ func TestRecoveryByRescanAccount(t *testing.T) {
                t.Fatal("recovery by rescan account err:", err)
        }
 
-       recAcctMgr := account.NewManager(recoveryDB, nil)
+       recActStore := database.NewAccountStore(recoveryDB)
+       recAcctMgr := account.NewManager(recActStore, nil)
        for _, acct := range allAccounts {
                if err := recAcctMgr.SaveAccount(acct); err != nil {
                        t.Fatal("recovery by rescan account err:", err)
@@ -424,7 +430,8 @@ func TestReportFound(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil)
+       acctStore := database.NewAccountStore(testDB)
+       acctMgr := account.NewManager(acctStore, nil)
        recoveryMgr := newRecoveryManager(testStore, acctMgr)
        acc1 := &account.Account{ID: "testA", Alias: "test1", Signer: &signers.Signer{XPubs: []chainkd.XPub{xpub1.XPub}, KeyIndex: 1, DeriveRule: signers.BIP0044}}
        acc2 := &account.Account{ID: "testB", Alias: "test2", Signer: &signers.Signer{XPubs: []chainkd.XPub{xpub2.XPub}, KeyIndex: 1, DeriveRule: signers.BIP0032}}
@@ -509,7 +516,8 @@ func TestLoadStatusInfo(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil)
+       acctStore := database.NewAccountStore(testDB)
+       acctMgr := account.NewManager(acctStore, nil)
        recoveryMgr := newRecoveryManager(testStore, acctMgr)
        // StatusInit init recovery status manager.
        recoveryMgr.state = newRecoveryState()
@@ -574,7 +582,8 @@ func TestLock(t *testing.T) {
        testStore := database.NewWalletStore(testDB)
        defer os.RemoveAll("temp")
 
-       acctMgr := account.NewManager(testDB, nil)
+       acctStore := database.NewAccountStore(testDB)
+       acctMgr := account.NewManager(acctStore, nil)
        recoveryMgr := newRecoveryManager(testStore, acctMgr)
        if !recoveryMgr.tryStartXPubsRec() {
                t.Fatal("recovery manager try lock test err")
@@ -633,7 +642,8 @@ func TestContractIndexResidue(t *testing.T) {
        }
 
        contractIndexResidue := uint64(5)
-       acctMgr := account.NewManager(testDB, nil)
+       acctStore := database.NewAccountStore(testDB)
+       acctMgr := account.NewManager(acctStore, nil)
        recoveryMgr := newRecoveryManager(testStore, acctMgr)
        acct := &account.Account{ID: "testA", Alias: "test1", Signer: &signers.Signer{XPubs: []chainkd.XPub{xpub1.XPub}, KeyIndex: 1, DeriveRule: signers.BIP0044}}
 
index 3ca5ca3..2abdff1 100644 (file)
@@ -31,7 +31,8 @@ func TestWalletUnconfirmedTxs(t *testing.T) {
        testStore := database.NewWalletStore(testDB)
        defer os.RemoveAll("temp")
 
-       accountManager := account.NewManager(testDB, nil)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, nil)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
index ad14a7a..75ddc60 100644 (file)
@@ -197,7 +197,8 @@ func TestGetAccountUtxos(t *testing.T) {
                        testDB.Set([]byte(k), data)
                }
 
-               w.AccountMgr = account.NewManager(testDB, nil)
+               acccountStore := database.NewAccountStore(testDB)
+               w.AccountMgr = account.NewManager(acccountStore, nil)
                w.AccountMgr.AddUnconfirmedUtxo(c.unconfirmedUtxos)
                gotUtxos := w.GetAccountUtxos("", c.id, c.unconfirmed, c.isSmartContract, false)
                if !testutil.DeepEqual(gotUtxos, c.wantUtxos) {
index 7f04e5b..c199d9e 100644 (file)
@@ -134,7 +134,8 @@ func TestWalletUpdate(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -283,7 +284,8 @@ func TestMemPoolTxQueryLoop(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain)
+       accountStore := database.NewAccountStore(testDB)
+       accountManager := account.NewManager(accountStore, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)