OSDN Git Service

txpool handle orphan (#1228)
[bytom/bytom.git] / test / util.go
index 6276708..421aa3d 100644 (file)
@@ -9,7 +9,6 @@ import (
        "github.com/bytom/account"
        "github.com/bytom/blockchain/pseudohsm"
        "github.com/bytom/blockchain/txbuilder"
-       cfg "github.com/bytom/config"
        "github.com/bytom/consensus"
        "github.com/bytom/crypto/ed25519/chainkd"
        "github.com/bytom/database/leveldb"
@@ -19,22 +18,20 @@ import (
        "github.com/bytom/protocol/vm"
 )
 
-// Mock transaction pool
-func MockTxPool() *protocol.TxPool {
-       return protocol.NewTxPool()
-}
+const (
+       vmVersion    = 1
+       assetVersion = 1
+)
 
-func MockChain(testDB dbm.DB) (*protocol.Chain, error) {
+// MockChain mock chain with genesis block
+func MockChain(testDB dbm.DB) (*protocol.Chain, *leveldb.Store, *protocol.TxPool, error) {
        store := leveldb.NewStore(testDB)
-       txPool := MockTxPool()
-       genesisBlock := cfg.GenerateGenesisBlock()
-       chain, err := protocol.NewChain(genesisBlock.Hash(), store, txPool)
-       if err != nil {
-               return nil, err
-       }
-       return chain, nil
+       txPool := protocol.NewTxPool(store)
+       chain, err := protocol.NewChain(store, txPool)
+       return chain, store, txPool, err
 }
 
+// MockUTXO mock a utxo
 func MockUTXO(controlProg *account.CtrlProgram) *account.UTXO {
        utxo := &account.UTXO{}
        utxo.OutputID = bc.Hash{V0: 1}
@@ -49,6 +46,7 @@ func MockUTXO(controlProg *account.CtrlProgram) *account.UTXO {
        return utxo
 }
 
+// MockTx mock a tx
 func MockTx(utxo *account.UTXO, testAccount *account.Account) (*txbuilder.Template, *types.TxData, error) {
        txInput, sigInst, err := account.UtxoToInputs(testAccount.Signer, utxo)
        if err != nil {
@@ -62,8 +60,9 @@ func MockTx(utxo *account.UTXO, testAccount *account.Account) (*txbuilder.Templa
        return b.Build()
 }
 
+// MockSign sign a tx
 func MockSign(tpl *txbuilder.Template, hsm *pseudohsm.HSM, password string) (bool, error) {
-       err := txbuilder.Sign(nil, tpl, nil, password, func(_ context.Context, xpub chainkd.XPub, path [][]byte, data [32]byte, password string) ([]byte, error) {
+       err := txbuilder.Sign(nil, tpl, password, func(_ context.Context, xpub chainkd.XPub, path [][]byte, data [32]byte, password string) ([]byte, error) {
                return hsm.XSign(xpub, path, data[:], password)
        })
        if err != nil {
@@ -72,7 +71,7 @@ func MockSign(tpl *txbuilder.Template, hsm *pseudohsm.HSM, password string) (boo
        return txbuilder.SignProgress(tpl), nil
 }
 
-// Mock block
+// MockBlock mock a block
 func MockBlock() *bc.Block {
        return &bc.Block{
                BlockHeader: &bc.BlockHeader{Height: 1},