}
type ChainService interface {
- BestBlockHeight() uint64
- BestBlockHash() *bc.Hash
+ BestChain() (uint64, bc.Hash)
GetBlockByHash(*bc.Hash) (*types.Block, error)
GetBlockByHeight(uint64) (*types.Block, error)
+ BlockWaiter(height uint64) <-chan struct{}
+}
+
+type ChainStatus struct {
+ BlockHeight uint64 `json:"block_height"`
+ BlockHash bc.Hash `json:"block_hash"`
}
type Repository interface {
GetInstance(traceID string) (*Instance, error)
LoadInstances() ([]*Instance, error)
SaveInstances(instances []*Instance) error
+ SaveInstancesWithStatus(instances []*Instance, blockHeight uint64, blockHash bc.Hash) error
RemoveInstance(traceID string)
+ GetChainStatus() *ChainStatus
+ SaveChainStatus(status *ChainStatus) error
}