From daaf435df96fdfa2a33d33f3660a997ffc9087d7 Mon Sep 17 00:00:00 2001 From: HAOYUatHZ Date: Wed, 22 May 2019 09:17:41 +0800 Subject: [PATCH] revert --- account/accounts.go | 5 +- account/accounts_test.go | 2 +- account/builder.go | 106 +++++++++++++------------- blockchain/txfeed/txfeed.go | 2 +- node/node.go | 2 +- test/bench_blockchain_test.go | 6 +- test/integration/standard_transaction_test.go | 12 +-- test/performance/mining_test.go | 2 +- test/wallet_test_util.go | 2 +- wallet/annotated.go | 2 +- wallet/recovery_test.go | 20 ++--- wallet/unconfirmed_test.go | 2 +- wallet/utxo_test.go | 2 +- wallet/wallet_test.go | 4 +- 14 files changed, 84 insertions(+), 85 deletions(-) diff --git a/account/accounts.go b/account/accounts.go index cd320664..0526efe7 100644 --- a/account/accounts.go +++ b/account/accounts.go @@ -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), diff --git a/account/accounts_test.go b/account/accounts_test.go index 85ffb234..ad2a007d 100644 --- a/account/accounts_test.go +++ b/account/accounts_test.go @@ -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 { diff --git a/account/builder.go b/account/builder.go index 5e2d5913..6b62eefd 100644 --- a/account/builder.go +++ b/account/builder.go @@ -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 { diff --git a/blockchain/txfeed/txfeed.go b/blockchain/txfeed/txfeed.go index b6a4c2ed..01691eb8 100644 --- a/blockchain/txfeed/txfeed.go +++ b/blockchain/txfeed/txfeed.go @@ -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 diff --git a/node/node.go b/node/node.go index 9db279f6..be7809b0 100644 --- a/node/node.go +++ b/node/node.go @@ -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") diff --git a/test/bench_blockchain_test.go b/test/bench_blockchain_test.go index dd9c6df4..824d6845 100644 --- a/test/bench_blockchain_test.go +++ b/test/bench_blockchain_test.go @@ -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 diff --git a/test/integration/standard_transaction_test.go b/test/integration/standard_transaction_test.go index 3b0855a0..fee4e211 100644 --- a/test/integration/standard_transaction_test.go +++ b/test/integration/standard_transaction_test.go @@ -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) diff --git a/test/performance/mining_test.go b/test/performance/mining_test.go index e8e7a35c..bd26fcd4 100644 --- a/test/performance/mining_test.go +++ b/test/performance/mining_test.go @@ -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++ { diff --git a/test/wallet_test_util.go b/test/wallet_test_util.go index b80f0594..b03b430b 100644 --- a/test/wallet_test_util.go +++ b/test/wallet_test_util.go @@ -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) diff --git a/wallet/annotated.go b/wallet/annotated.go index 8d9650f7..94189bcb 100644 --- a/wallet/annotated.go +++ b/wallet/annotated.go @@ -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) diff --git a/wallet/recovery_test.go b/wallet/recovery_test.go index c2843aec..eff58507 100644 --- a/wallet/recovery_test.go +++ b/wallet/recovery_test.go @@ -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}} diff --git a/wallet/unconfirmed_test.go b/wallet/unconfirmed_test.go index 7184ec2f..60ece604 100644 --- a/wallet/unconfirmed_test.go +++ b/wallet/unconfirmed_test.go @@ -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) diff --git a/wallet/utxo_test.go b/wallet/utxo_test.go index e902d746..5f9928de 100644 --- a/wallet/utxo_test.go +++ b/wallet/utxo_test.go @@ -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) { diff --git a/wallet/wallet_test.go b/wallet/wallet_test.go index ddc0ad94..a0a3708f 100644 --- a/wallet/wallet_test.go +++ b/wallet/wallet_test.go @@ -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) -- 2.11.0