OSDN Git Service

dispatch signature when proccess block (#85)
[bytom/vapor.git] / protocol / store.go
index 915d067..48ac4e8 100644 (file)
@@ -1,12 +1,18 @@
 package protocol
 
 import (
+       "errors"
+
        "github.com/vapor/database/storage"
        "github.com/vapor/protocol/bc"
        "github.com/vapor/protocol/bc/types"
        "github.com/vapor/protocol/state"
 )
 
+var (
+       ErrNotFoundVoteResult = errors.New("can't find the vote result by given sequence")
+)
+
 // Store provides storage interface for blockchain data
 type Store interface {
        BlockExist(*bc.Hash) bool
@@ -16,20 +22,18 @@ type Store interface {
        GetTransactionStatus(*bc.Hash) (*bc.TransactionStatus, error)
        GetTransactionsUtxo(*state.UtxoViewpoint, []*bc.Tx) error
        GetUtxo(*bc.Hash) (*storage.UtxoEntry, error)
+       GetVoteResult(uint64) (*state.VoteResult, error)
 
        LoadBlockIndex(uint64) (*state.BlockIndex, error)
        SaveBlock(*types.Block, *bc.TransactionStatus) error
-       SaveChainStatus(*state.BlockNode, *state.UtxoViewpoint) error
-
-       IsWithdrawSpent(hash *bc.Hash) bool
-       SetWithdrawSpent(hash *bc.Hash)
-
-       Set(hash *bc.Hash, data []byte) error
-       Get(hash *bc.Hash) ([]byte, error)
+       SaveChainStatus(*state.BlockNode, *state.BlockNode, *state.UtxoViewpoint, map[uint64]*state.VoteResult) error
+       SaveChainNodeStatus(*state.BlockNode, *state.BlockNode) error
 }
 
 // BlockStoreState represents the core's db status
 type BlockStoreState struct {
-       Height uint64
-       Hash   *bc.Hash
+       Height             uint64
+       Hash               *bc.Hash
+       IrreversibleHeight uint64
+       IrreversibleHash   *bc.Hash
 }