OSDN Git Service

trace updater (#2109)
[bytom/bytom.git] / contract / infrastructure.go
index ecc19bf..e86f210 100644 (file)
@@ -15,15 +15,23 @@ func NewInfrastructure(chain ChainService, repository Repository) *Infrastructur
 }
 
 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
 }