Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrorEmptyHash = errors.New("transaction hash cannot be empty")
ErrorEmptyHash indicates empty hash
Functions ¶
func DeduplicateBatch ¶
DeduplicateBatch consider the case of duplicate txs. if the current one under investigation is NOT OK, then we need to check whether there's a previously indexed tx. SKIP the current tx if the previously indexed record is found and successful.
Types ¶
type Batch ¶
Batch groups together multiple Index operations to be performed at the same time. NOTE: Batch is NOT thread-safe and must not be modified after starting its execution.
type IndexerService ¶
type IndexerService struct { service.BaseService // contains filtered or unexported fields }
IndexerService connects event bus, transaction and block indexers together in order to index transactions and blocks coming from the event bus.
func NewIndexerService ¶
func NewIndexerService( txIdxr TxIndexer, blockIdxr indexer.BlockIndexer, eventBus *types.EventBus, ) *IndexerService
NewIndexerService returns a new service instance.
func (*IndexerService) OnStart ¶
func (is *IndexerService) OnStart() error
OnStart implements service.Service by subscribing for all transactions and indexing them by events.
func (*IndexerService) OnStop ¶
func (is *IndexerService) OnStop()
OnStop implements service.Service by unsubscribing from all transactions.
type TxIndexer ¶
type TxIndexer interface { // AddBatch analyzes, indexes and stores a batch of transactions. AddBatch(b *Batch) error // Index analyzes, indexes and stores a single transaction. Index(result *abci.TxResult) error // Get returns the transaction specified by hash or nil if the transaction is not indexed // or stored. Get(hash []byte) (*abci.TxResult, error) // Search allows you to query for transactions. Search(ctx context.Context, q *query.Query) ([]*abci.TxResult, error) }
TxIndexer interface defines methods to index and search transactions.