|
|
- package indexer
-
- import (
- "context"
-
- abci "github.com/tendermint/tendermint/abci/types"
- "github.com/tendermint/tendermint/libs/pubsub/query"
- "github.com/tendermint/tendermint/types"
- )
-
- type EventSinkType string
-
- const (
- NULL EventSinkType = "null"
- KV EventSinkType = "kv"
- PSQL EventSinkType = "psql"
- )
-
- //go:generate mockery --case underscore --name EventSink
-
- // EventSink interface is defined the APIs for the IndexerService to interact with the data store,
- // including the block/transaction indexing and the search functions.
- //
- // The IndexerService will accept a list of one or more EventSink types. During the OnStart method
- // it will call the appropriate APIs on each EventSink to index both block and transaction events.
- type EventSink interface {
-
- // IndexBlockEvents indexes the blockheader.
- IndexBlockEvents(types.EventDataNewBlockHeader) error
-
- // IndexTxEvents indexes the given result of transactions. To call it with multi transactions,
- // must guarantee the index of given transactions are in order.
- IndexTxEvents([]*abci.TxResult) error
-
- // SearchBlockEvents provides the block search by given query conditions. This function only
- // supported by the kvEventSink.
- SearchBlockEvents(context.Context, *query.Query) ([]int64, error)
-
- // SearchTxEvents provides the transaction search by given query conditions. This function only
- // supported by the kvEventSink.
- SearchTxEvents(context.Context, *query.Query) ([]*abci.TxResult, error)
-
- // GetTxByHash provides the transaction search by given transaction hash. This function only
- // supported by the kvEventSink.
- GetTxByHash([]byte) (*abci.TxResult, error)
-
- // HasBlock provides the transaction search by given transaction hash. This function only
- // supported by the kvEventSink.
- HasBlock(int64) (bool, error)
-
- // Type checks the eventsink structure type.
- Type() EventSinkType
-
- // Stop will close the data store connection, if the eventsink supports it.
- Stop() error
- }
|