Versions in this module Expand all Collapse all v1 v1.0.0 May 26, 2022 Changes in this version + var ErrContractDuplicated = errors.New("contract is duplicated") + var ErrContractNotFound = errors.New("contract not found") + type ChainService interface + BestChain func() (uint64, bc.Hash) + BlockWaiter func(height uint64) <-chan struct{} + FinalizedHeight func() uint64 + GetBlockByHash func(*bc.Hash) (*types.Block, error) + GetBlockByHeight func(uint64) (*types.Block, error) + type ChainStatus struct + BlockHash bc.Hash + BlockHeight uint64 + type Contract struct + Alias string + CallProgram chainjson.HexBytes + Contract chainjson.HexBytes + Hash chainjson.HexBytes + RegisterProgram chainjson.HexBytes + type Infrastructure struct + Chain ChainService + Repository Repository + func NewInfrastructure(chain ChainService, repository Repository) *Infrastructure + type Instance struct + EndedHeight uint64 + ScannedHash bc.Hash + ScannedHeight uint64 + Status Status + TraceID string + TxHash *bc.Hash + UTXOs []*UTXO + Unconfirmed []*TreeNode + type Registry struct + func NewRegistry(db dbm.DB) *Registry + func (reg *Registry) GetContract(hash chainjson.HexBytes) (*Contract, error) + func (reg *Registry) ListContracts() ([]*Contract, error) + func (reg *Registry) SaveContract(contract *Contract) error + func (reg *Registry) UpdateContract(hash chainjson.HexBytes, alias string) error + type Repository interface + GetChainStatus func() *ChainStatus + GetInstance func(traceID string) (*Instance, error) + LoadInstances func() ([]*Instance, error) + RemoveInstance func(traceID string) + SaveChainStatus func(status *ChainStatus) error + SaveInstances func(instances []*Instance) error + SaveInstancesWithStatus func(instances []*Instance, blockHeight uint64, blockHash bc.Hash) error + type Status uint8 + const Ended + const InSync + const Lagging + const OffChain + type TraceService struct + func NewTraceService(infra *Infrastructure) *TraceService + func (t *TraceService) AddUnconfirmedTx(tx *types.Tx) + func (t *TraceService) ApplyBlock(block *types.Block) error + func (t *TraceService) BestHash() bc.Hash + func (t *TraceService) BestHeight() uint64 + func (t *TraceService) CreateInstance(txHash, blockHash bc.Hash) ([]string, error) + func (t *TraceService) DetachBlock(block *types.Block) error + func (t *TraceService) GetInstance(traceID string) (*Instance, error) + func (t *TraceService) RemoveInstance(traceID string) error + type TraceStore struct + func NewTraceStore(db dbm.DB) *TraceStore + func (t *TraceStore) GetChainStatus() *ChainStatus + func (t *TraceStore) GetInstance(traceID string) (*Instance, error) + func (t *TraceStore) LoadInstances() ([]*Instance, error) + func (t *TraceStore) RemoveInstance(traceID string) + func (t *TraceStore) SaveChainStatus(chainStatus *ChainStatus) error + func (t *TraceStore) SaveInstances(instances []*Instance) error + func (t *TraceStore) SaveInstancesWithStatus(instances []*Instance, blockHeight uint64, blockHash bc.Hash) error + type TraceUpdater struct + func NewTraceUpdater(traceService *TraceService, chain ChainService) *TraceUpdater + func (t *TraceUpdater) Sync() + type TreeNode struct + Children []*TreeNode + TxHash bc.Hash + UTXOs []*UTXO + type UTXO struct + Amount uint64 + AssetID bc.AssetID + Hash bc.Hash + Program []byte + SourceID bc.Hash + SourcePos uint64 + StateData [][]byte