4 "github.com/bytom/bytom/database/storage"
5 "github.com/bytom/bytom/protocol/bc"
6 "github.com/bytom/bytom/protocol/bc/types"
7 "github.com/bytom/bytom/protocol/state"
10 // Store provides storage interface for blockchain data
11 type Store interface {
12 BlockExist(*bc.Hash) bool
14 GetBlock(*bc.Hash) (*types.Block, error)
15 GetBlockHeader(*bc.Hash) (*types.BlockHeader, error)
16 GetStoreStatus() *BlockStoreState
17 GetTransactionsUtxo(*state.UtxoViewpoint, []*bc.Tx) error
18 GetUtxo(*bc.Hash) (*storage.UtxoEntry, error)
19 GetContract(hash [32]byte) ([]byte, error)
21 GetCheckpoint(*bc.Hash) (*state.Checkpoint, error)
22 GetCheckpointsByHeight(uint64) ([]*state.Checkpoint, error)
23 SaveCheckpoints(...*state.Checkpoint) error
25 LoadBlockIndex(uint64) (*state.BlockIndex, error)
26 SaveBlock(*types.Block) error
27 SaveChainStatus(*state.BlockNode, *state.UtxoViewpoint, *state.ContractViewpoint) error
30 // BlockStoreState represents the core's db status
31 type BlockStoreState struct {