Merge PR #7121: Support Event Indexing
This commit is contained in:
+4
-2
@@ -145,6 +145,7 @@ func (app *BaseApp) BeginBlock(req abci.RequestBeginBlock) (res abci.ResponseBeg
|
||||
|
||||
if app.beginBlocker != nil {
|
||||
res = app.beginBlocker(app.deliverState.ctx, req)
|
||||
res.Events = sdk.MarkEventsToIndex(res.Events, app.indexEvents)
|
||||
}
|
||||
// set the signed validators for addition to context in deliverTx
|
||||
app.voteInfos = req.LastCommitInfo.GetVotes()
|
||||
@@ -161,6 +162,7 @@ func (app *BaseApp) EndBlock(req abci.RequestEndBlock) (res abci.ResponseEndBloc
|
||||
|
||||
if app.endBlocker != nil {
|
||||
res = app.endBlocker(app.deliverState.ctx, req)
|
||||
res.Events = sdk.MarkEventsToIndex(res.Events, app.indexEvents)
|
||||
}
|
||||
|
||||
if cp := app.GetConsensusParams(app.deliverState.ctx); cp != nil {
|
||||
@@ -207,7 +209,7 @@ func (app *BaseApp) CheckTx(req abci.RequestCheckTx) abci.ResponseCheckTx {
|
||||
GasUsed: int64(gInfo.GasUsed), // TODO: Should type accept unsigned ints?
|
||||
Log: result.Log,
|
||||
Data: result.Data,
|
||||
Events: result.Events,
|
||||
Events: sdk.MarkEventsToIndex(result.Events, app.indexEvents),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,7 +247,7 @@ func (app *BaseApp) DeliverTx(req abci.RequestDeliverTx) abci.ResponseDeliverTx
|
||||
GasUsed: int64(gInfo.GasUsed), // TODO: Should type accept unsigned ints?
|
||||
Log: result.Log,
|
||||
Data: result.Data,
|
||||
Events: result.Events,
|
||||
Events: sdk.MarkEventsToIndex(result.Events, app.indexEvents),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -98,6 +98,10 @@ type BaseApp struct { // nolint: maligned
|
||||
|
||||
// trace set will return full stack traces for errors in ABCI Log field
|
||||
trace bool
|
||||
|
||||
// indexEvents defines the set of events in the form {eventType}.{attributeKey},
|
||||
// which informs Tendermint what to index. If empty, all events will be indexed.
|
||||
indexEvents map[string]struct{}
|
||||
}
|
||||
|
||||
// NewBaseApp returns a reference to an initialized BaseApp. It accepts a
|
||||
@@ -283,6 +287,14 @@ func (app *BaseApp) setTrace(trace bool) {
|
||||
app.trace = trace
|
||||
}
|
||||
|
||||
func (app *BaseApp) setIndexEvents(ie []string) {
|
||||
app.indexEvents = make(map[string]struct{})
|
||||
|
||||
for _, e := range ie {
|
||||
app.indexEvents[e] = struct{}{}
|
||||
}
|
||||
}
|
||||
|
||||
// Router returns the router of the BaseApp.
|
||||
func (app *BaseApp) Router() sdk.Router {
|
||||
if app.sealed {
|
||||
|
||||
@@ -43,6 +43,11 @@ func SetTrace(trace bool) func(*BaseApp) {
|
||||
return func(app *BaseApp) { app.setTrace(trace) }
|
||||
}
|
||||
|
||||
// SetIndexEvents provides a BaseApp option function that sets the events to index.
|
||||
func SetIndexEvents(ie []string) func(*BaseApp) {
|
||||
return func(app *BaseApp) { app.setIndexEvents(ie) }
|
||||
}
|
||||
|
||||
// SetInterBlockCache provides a BaseApp option function that sets the
|
||||
// inter-block cache.
|
||||
func SetInterBlockCache(cache sdk.MultiStorePersistentCache) func(*BaseApp) {
|
||||
|
||||
Reference in New Issue
Block a user