OSDN Git Service

revert
authorHAOYUatHZ <haoyu@protonmail.com>
Wed, 22 May 2019 01:17:41 +0000 (09:17 +0800)
committerHAOYUatHZ <haoyu@protonmail.com>
Wed, 22 May 2019 01:17:41 +0000 (09:17 +0800)
14 files changed:
account/accounts.go
account/accounts_test.go
account/builder.go
blockchain/txfeed/txfeed.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/annotated.go
wallet/recovery_test.go
wallet/unconfirmed_test.go
wallet/utxo_test.go
wallet/wallet_test.go

index cd32066..0526efe 100644 (file)
@@ -11,7 +11,6 @@ import (
        "github.com/golang/groupcache/lru"
        log "github.com/sirupsen/logrus"
 
-       "github.com/vapor/asset"
        "github.com/vapor/blockchain/signers"
        "github.com/vapor/blockchain/txbuilder"
        "github.com/vapor/common"
@@ -107,7 +106,6 @@ type Manager struct {
        db         dbm.DB
        chain      *protocol.Chain
        utxoKeeper *utxoKeeper
-       assetReg   *asset.Registry
 
        cacheMu    sync.Mutex
        cache      *lru.Cache
@@ -121,11 +119,10 @@ type Manager struct {
 }
 
 // NewManager creates a new account manager
-func NewManager(walletDB dbm.DB, chain *protocol.Chain, assetReg *asset.Registry) *Manager {
+func NewManager(walletDB dbm.DB, chain *protocol.Chain) *Manager {
        return &Manager{
                db:          walletDB,
                chain:       chain,
-               assetReg:    assetReg,
                utxoKeeper:  newUtxoKeeper(chain.BestBlockHeight, walletDB),
                cache:       lru.New(maxAccountCache),
                aliasCache:  lru.New(maxAccountCache),
index 85ffb23..ad2a007 100644 (file)
@@ -221,7 +221,7 @@ func mockAccountManager(t *testing.T) *Manager {
                t.Fatal(err)
        }
 
-       return NewManager(testDB, chain, nil)
+       return NewManager(testDB, chain)
 }
 
 func (m *Manager) createTestAccount(t testing.TB, alias string, tags map[string]interface{}) *Account {
index 5e2d591..6b62eef 100644 (file)
@@ -5,18 +5,18 @@ import (
        // TODO: stdjson?
        "encoding/json"
 
-       "github.com/vapor/asset"
+       // "github.com/vapor/asset"
        "github.com/vapor/blockchain/signers"
        "github.com/vapor/blockchain/txbuilder"
        "github.com/vapor/common"
        "github.com/vapor/consensus"
        "github.com/vapor/crypto/ed25519/chainkd"
-       chainjson "github.com/vapor/encoding/json"
+       // chainjson "github.com/vapor/encoding/json"
        "github.com/vapor/errors"
        "github.com/vapor/protocol/bc"
        "github.com/vapor/protocol/bc/types"
        "github.com/vapor/protocol/vm/vmutil"
-       "github.com/vapor/testutil"
+       // "github.com/vapor/testutil"
 )
 
 var (
@@ -59,63 +59,65 @@ type crossInAction struct {
 // }
 
 func (a *crossInAction) Build(ctx context.Context, builder *txbuilder.TemplateBuilder) error {
-       var missing []string
-       if a.AssetId.IsZero() {
-               missing = append(missing, "asset_id")
-       }
-       if a.Amount == 0 {
-               missing = append(missing, "amount")
-       }
-       if len(missing) > 0 {
-               return txbuilder.MissingFieldsError(missing...)
-       }
+       return nil
+       /*      var missing []string
+               if a.AssetId.IsZero() {
+                       missing = append(missing, "asset_id")
+               }
+               if a.Amount == 0 {
+                       missing = append(missing, "amount")
+               }
+               if len(missing) > 0 {
+                       return txbuilder.MissingFieldsError(missing...)
+               }
 
-       // Handle asset definition.
-       // Asset issuance's legality is guaranteed by the federation.
-       rawDefinition, err := asset.SerializeAssetDef(a.AssetDefinition)
-       if err != nil {
-               return asset.ErrSerializing
-       }
-       // TODO: may need to skip here
-       if !chainjson.IsValidJSON(rawDefinition) {
-               return errors.New("asset definition is not in valid json format")
-       }
-       if preAsset, _ := a.accounts.assetReg.GetAsset(a.AssetId.String()); preAsset != nil {
-               // GetAsset() doesn't unmashall for RawDefinitionBytes
-               preRawDefinition, err := asset.SerializeAssetDef(preAsset.DefinitionMap)
+               // Handle asset definition.
+               // Asset issuance's legality is guaranteed by the federation.
+               rawDefinition, err := asset.SerializeAssetDef(a.AssetDefinition)
                if err != nil {
                        return asset.ErrSerializing
                }
+               // TODO: may need to skip here
+               if !chainjson.IsValidJSON(rawDefinition) {
+                       return errors.New("asset definition is not in valid json format")
+               }
+               if preAsset, _ := a.accounts.assetReg.GetAsset(a.AssetId.String()); preAsset != nil {
+                       // GetAsset() doesn't unmashall for RawDefinitionBytes
+                       preRawDefinition, err := asset.SerializeAssetDef(preAsset.DefinitionMap)
+                       if err != nil {
+                               return asset.ErrSerializing
+                       }
 
-               if !testutil.DeepEqual(preRawDefinition, rawDefinition) && !UpdateAssetDef {
-                       return errors.New("asset definition mismatch with previous definition")
+                       if !testutil.DeepEqual(preRawDefinition, rawDefinition) && !UpdateAssetDef {
+                               return errors.New("asset definition mismatch with previous definition")
+                       }
+                       // TODO: update asset def here?
                }
-               // TODO: update asset def here?
-       }
-
-       // TODO: IssuanceProgram vs arguments?
-       // TODO: also need to hard-code mapTx
-       // TODO: save AssetDefinition
-
-       // in :=  types.NewCrossChainInput(arguments [][]byte, sourceID bc.Hash, assetID bc.AssetID, amount, sourcePos uint64, controlProgram, assetDefinition []byte)
-       // txin := types.NewIssuanceInput(nonce[:], a.Amount, asset.IssuanceProgram, nil, asset.RawDefinitionByte)
-       // input's arguments will be set when signing
-       sourceID := testutil.MustDecodeHash(a.SourceID)
-       txin := types.NewCrossChainInput(nil, sourceID, *a.AssetId, a.Amount, a.SourcePos, nil, rawDefinition)
-       tplIn := &txbuilder.SigningInstruction{}
-       if false {
-               // if asset.Signer != nil {
-               // path := signers.GetBip0032Path(asset.Signer, signers.AssetKeySpace)
-               // tplIn.AddRawWitnessKeys(asset.Signer.XPubs, path, asset.Signer.Quorum)
-       } else if a.Arguments != nil {
-               if err := txbuilder.AddContractArgs(tplIn, a.Arguments); err != nil {
-                       return err
+
+               // TODO: IssuanceProgram vs arguments?
+               // TODO: also need to hard-code mapTx
+               // TODO: save AssetDefinition
+
+               // in :=  types.NewCrossChainInput(arguments [][]byte, sourceID bc.Hash, assetID bc.AssetID, amount, sourcePos uint64, controlProgram, assetDefinition []byte)
+               // txin := types.NewIssuanceInput(nonce[:], a.Amount, asset.IssuanceProgram, nil, asset.RawDefinitionByte)
+               // input's arguments will be set when signing
+               sourceID := testutil.MustDecodeHash(a.SourceID)
+               txin := types.NewCrossChainInput(nil, sourceID, *a.AssetId, a.Amount, a.SourcePos, nil, rawDefinition)
+               tplIn := &txbuilder.SigningInstruction{}
+               if false {
+                       // if asset.Signer != nil {
+                       // path := signers.GetBip0032Path(asset.Signer, signers.AssetKeySpace)
+                       // tplIn.AddRawWitnessKeys(asset.Signer.XPubs, path, asset.Signer.Quorum)
+               } else if a.Arguments != nil {
+                       if err := txbuilder.AddContractArgs(tplIn, a.Arguments); err != nil {
+                               return err
+                       }
                }
-       }
 
-       log.Info("cross-chain input action build")
-       builder.RestrictMinTime(time.Now())
-       return builder.AddInput(txin, tplIn)
+               log.Info("cross-chain input action build")
+               builder.RestrictMinTime(time.Now())
+               return builder.AddInput(txin, tplIn)
+       */
 }
 
 func (a *crossInAction) ActionType() string {
index b6a4c2e..01691eb 100644 (file)
@@ -357,7 +357,7 @@ func buildAnnotatedInput(tx *types.Tx, i uint32) *query.AnnotatedInput {
        case *bc.CrossChainInput:
                in.Type = "cross_chain_in"
                in.ControlProgram = orig.ControlProgram()
-               in.SpentOutputID = e.MainnetOutputId
+               in.SpentOutputID = e.MainchainOutputId
        }
 
        return in
index 9db279f..be7809b 100644 (file)
@@ -104,7 +104,7 @@ func NewNode(config *cfg.Config) *Node {
        if !config.Wallet.Disable {
                walletDB := dbm.NewDB("wallet", config.DBBackend, config.DBDir())
                assets = asset.NewRegistry(walletDB, chain)
-               accounts = account.NewManager(walletDB, chain, assets)
+               accounts = account.NewManager(walletDB, chain)
                wallet, err = w.NewWallet(walletDB, accounts, assets, hsm, chain, dispatcher, config.Wallet.TxIndex)
                if err != nil {
                        log.WithFields(log.Fields{"module": logModule, "error": err}).Error("init NewWallet")
index dd9c6df..824d684 100644 (file)
@@ -366,7 +366,7 @@ 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, nil)
+       accountManager := account.NewManager(testDB, nil)
        hsm, err := pseudohsm.New(keyDirPath)
        if err != nil {
                return nil, err
@@ -408,7 +408,7 @@ 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, nil)
+       accountManager := account.NewManager(testDB, nil)
        hsm, err := pseudohsm.New(keyDirPath)
        if err != nil {
                return nil, err
@@ -455,7 +455,7 @@ 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, nil)
+       accountManager := account.NewManager(testDB, nil)
        hsm, err := pseudohsm.New(keyDirPath)
        if err != nil {
                return nil, err
index 3b0855a..fee4e21 100644 (file)
@@ -31,7 +31,7 @@ func TestP2PKH(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain, nil)
+       accountManager := account.NewManager(testDB, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -82,7 +82,7 @@ func TestBip0032P2PKH(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain, nil)
+       accountManager := account.NewManager(testDB, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -146,7 +146,7 @@ func TestP2SH(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain, nil)
+       accountManager := account.NewManager(testDB, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -207,7 +207,7 @@ func TestBip0032P2SH(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain, nil)
+       accountManager := account.NewManager(testDB, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -280,7 +280,7 @@ func TestMutilNodeSign(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain, nil)
+       accountManager := account.NewManager(testDB, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -351,7 +351,7 @@ func TestBip0032MutilNodeSign(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain, nil)
+       accountManager := account.NewManager(testDB, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
index e8e7a35..bd26fcd 100644 (file)
@@ -19,7 +19,7 @@ func BenchmarkNewBlockTpl(b *testing.B) {
        if err != nil {
                b.Fatal(err)
        }
-       accountManager := account.NewManager(testDB, chain, nil)
+       accountManager := account.NewManager(testDB, chain)
 
        b.ResetTimer()
        for i := 0; i < b.N; i++ {
index b80f059..b03b430 100644 (file)
@@ -241,7 +241,7 @@ func (cfg *walletTestConfig) Run() error {
                return err
        }
        walletDB := dbm.NewDB("wallet", "leveldb", path.Join(dirPath, "wallet_db"))
-       accountManager := account.NewManager(walletDB, chain, nil)
+       accountManager := account.NewManager(walletDB, chain)
        assets := asset.NewRegistry(walletDB, chain)
        dispatcher := event.NewDispatcher()
        wallet, err := w.NewWallet(walletDB, accountManager, assets, hsm, chain, dispatcher, false)
index 8d9650f..94189bc 100644 (file)
@@ -185,7 +185,7 @@ func (w *Wallet) BuildAnnotatedInput(tx *types.Tx, i uint32) *query.AnnotatedInp
                in.Type = "cross_chain_in"
                in.ControlProgram = orig.ControlProgram()
                in.Address = w.getAddressFromControlProgram(in.ControlProgram)
-               in.SpentOutputID = e.MainnetOutputId
+               in.SpentOutputID = e.MainchainOutputId
                arguments := orig.Arguments()
                for _, arg := range arguments {
                        in.WitnessArguments = append(in.WitnessArguments, arg)
index c2843ae..eff5850 100644 (file)
@@ -146,7 +146,7 @@ func TestXPubsRecoveryLock(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil, nil)
+       acctMgr := account.NewManager(testDB, nil)
        recoveryMgr := newRecoveryManager(testDB, acctMgr)
        recoveryMgr.state = newRecoveryState()
        recoveryMgr.state.XPubs = []chainkd.XPub{xpub.XPub}
@@ -195,7 +195,7 @@ func TestExtendScanAddresses(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil, nil)
+       acctMgr := account.NewManager(testDB, nil)
        recoveryMgr := newRecoveryManager(testDB, 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"}
@@ -251,9 +251,9 @@ func TestRecoveryFromXPubs(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil, nil)
+       acctMgr := account.NewManager(testDB, nil)
        txs, err := MockTxsP2PKH(acctMgr, xpub.XPub, false)
-       recAcctMgr := account.NewManager(recoveryDB, nil, nil)
+       recAcctMgr := account.NewManager(recoveryDB, nil)
        recoveryMgr := newRecoveryManager(recoveryDB, recAcctMgr)
 
        cases := []struct {
@@ -325,7 +325,7 @@ func TestRecoveryByRescanAccount(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil, nil)
+       acctMgr := account.NewManager(testDB, nil)
        txs, err := MockTxsP2PKH(acctMgr, xpub.XPub, true)
        if err != nil {
                t.Fatal("recovery by rescan account err:", err)
@@ -336,7 +336,7 @@ func TestRecoveryByRescanAccount(t *testing.T) {
                t.Fatal("recovery by rescan account err:", err)
        }
 
-       recAcctMgr := account.NewManager(recoveryDB, nil, nil)
+       recAcctMgr := account.NewManager(recoveryDB, nil)
        for _, acct := range allAccounts {
                if err := recAcctMgr.SaveAccount(acct); err != nil {
                        t.Fatal("recovery by rescan account err:", err)
@@ -418,7 +418,7 @@ func TestReportFound(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil, nil)
+       acctMgr := account.NewManager(testDB, nil)
        recoveryMgr := newRecoveryManager(testDB, 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}}
@@ -502,7 +502,7 @@ func TestLoadStatusInfo(t *testing.T) {
                t.Fatal(err)
        }
 
-       acctMgr := account.NewManager(testDB, nil, nil)
+       acctMgr := account.NewManager(testDB, nil)
        recoveryMgr := newRecoveryManager(testDB, acctMgr)
        // StatusInit init recovery status manager.
        recoveryMgr.state = newRecoveryState()
@@ -566,7 +566,7 @@ func TestLock(t *testing.T) {
        testDB := dbm.NewDB("testdb", "leveldb", "temp")
        defer os.RemoveAll("temp")
 
-       acctMgr := account.NewManager(testDB, nil, nil)
+       acctMgr := account.NewManager(testDB, nil)
        recoveryMgr := newRecoveryManager(testDB, acctMgr)
        if !recoveryMgr.tryStartXPubsRec() {
                t.Fatal("recovery manager try lock test err")
@@ -633,7 +633,7 @@ func TestContractIndexResidue(t *testing.T) {
        }
 
        contractIndexResidue := uint64(5)
-       acctMgr := account.NewManager(testDB, nil, nil)
+       acctMgr := account.NewManager(testDB, nil)
        recoveryMgr := newRecoveryManager(testDB, acctMgr)
        acct := &account.Account{ID: "testA", Alias: "test1", Signer: &signers.Signer{XPubs: []chainkd.XPub{xpub1.XPub}, KeyIndex: 1, DeriveRule: signers.BIP0044}}
 
index 7184ec2..60ece60 100644 (file)
@@ -29,7 +29,7 @@ func TestWalletUnconfirmedTxs(t *testing.T) {
        testDB := dbm.NewDB("testdb", "leveldb", "temp")
        defer os.RemoveAll("temp")
 
-       accountManager := account.NewManager(testDB, nil, nil)
+       accountManager := account.NewManager(testDB, nil)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
index e902d74..5f9928d 100644 (file)
@@ -195,7 +195,7 @@ func TestGetAccountUtxos(t *testing.T) {
                        testDB.Set([]byte(k), data)
                }
 
-               w.AccountMgr = account.NewManager(testDB, nil, nil)
+               w.AccountMgr = account.NewManager(testDB, nil)
                w.AccountMgr.AddUnconfirmedUtxo(c.unconfirmedUtxos)
                gotUtxos := w.GetAccountUtxos("", c.id, c.unconfirmed, c.isSmartContract)
                if !testutil.DeepEqual(gotUtxos, c.wantUtxos) {
index ddc0ad9..a0a3708 100644 (file)
@@ -125,7 +125,7 @@ func TestWalletUpdate(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain, nil)
+       accountManager := account.NewManager(testDB, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)
@@ -266,7 +266,7 @@ func TestMemPoolTxQueryLoop(t *testing.T) {
                t.Fatal(err)
        }
 
-       accountManager := account.NewManager(testDB, chain, nil)
+       accountManager := account.NewManager(testDB, chain)
        hsm, err := pseudohsm.New(dirPath)
        if err != nil {
                t.Fatal(err)