"testing"
"time"
- dbm "github.com/tendermint/tmlibs/db"
-
"github.com/vapor/account"
"github.com/vapor/blockchain/pseudohsm"
"github.com/vapor/blockchain/signers"
"github.com/vapor/blockchain/txbuilder"
"github.com/vapor/consensus"
- "github.com/vapor/consensus/difficulty"
"github.com/vapor/crypto/ed25519/chainkd"
- "github.com/vapor/database/leveldb"
+ "github.com/vapor/database"
+ dbm "github.com/vapor/database/leveldb"
"github.com/vapor/database/storage"
+ "github.com/vapor/event"
"github.com/vapor/mining"
"github.com/vapor/protocol"
"github.com/vapor/protocol/bc"
return nil, nil, nil, err
}
- store := leveldb.NewStore(testDB)
- txPool := protocol.NewTxPool(store)
- chain, err := protocol.NewChain(store, txPool)
+ store := database.NewStore(testDB)
+ dispatcher := event.NewDispatcher()
+ txPool := protocol.NewTxPool(store, dispatcher)
+ chain, err := protocol.NewChain(store, txPool, dispatcher)
if err != nil {
return nil, nil, nil, err
}
fmt.Println("txsize:", uint64(block.Transactions[1].SerializedSize))
}
- seed, err := chain.CalcNextSeed(&block.PreviousBlockHash)
- if err != nil {
- return err
- }
-
- if err := SolveBlock(seed, block); err != nil {
- return err
- }
-
if _, err := chain.ProcessBlock(block); err != nil {
return err
}
}
func processNewTxch(txPool *protocol.TxPool) {
- newTxCh := txPool.GetMsgCh()
- for tx := range newTxCh {
- if tx == nil {
- }
- }
-}
-
-func SolveBlock(seed *bc.Hash, block *types.Block) error {
- maxNonce := ^uint64(0) // 2^64 - 1
- header := &block.BlockHeader
- for i := uint64(0); i < maxNonce; i++ {
- header.Nonce = i
- headerHash := header.Hash()
- if difficulty.CheckProofOfWork(&headerHash, seed, header.Bits) {
- return nil
- }
- }
- return nil
}
func MockSimpleUtxo(index uint64, assetID *bc.AssetID, amount uint64, ctrlProg *account.CtrlProgram) *account.UTXO {
}
func AddTxOutput(assetID bc.AssetID, amount uint64, controlProgram []byte) *types.TxOutput {
- out := types.NewTxOutput(assetID, amount, controlProgram)
+ out := types.NewIntraChainOutput(assetID, amount, controlProgram)
return out
}
func SetUtxoView(db dbm.DB, view *state.UtxoViewpoint) error {
batch := db.NewBatch()
- if err := leveldb.SaveUtxoView(batch, view); err != nil {
+ if err := database.SaveUtxoView(batch, view); err != nil {
return err
}
batch.Write()