fix(baseapp): return events from preblocker in FinalizeBlockResponse (#21159)

This commit is contained in:
Facundo Medica
2024-08-02 10:50:19 +00:00
committed by GitHub
parent 04bedcd32b
commit c312d99ea0
3 changed files with 6 additions and 1 deletions
+1
View File
@@ -789,6 +789,7 @@ func (app *BaseApp) internalFinalizeBlock(ctx context.Context, req *abci.Finaliz
if err := app.preBlock(req); err != nil {
return nil, err
}
events = append(events, app.finalizeBlockState.ctx.EventManager().ABCIEvents()...)
beginBlock, err := app.beginBlock(req)
if err != nil {
+4 -1
View File
@@ -2298,13 +2298,16 @@ func TestBaseApp_PreBlocker(t *testing.T) {
wasHookCalled := false
app.SetPreBlocker(func(ctx sdk.Context, req *abci.FinalizeBlockRequest) error {
wasHookCalled = true
ctx.EventManager().EmitEvent(sdk.NewEvent("preblockertest", sdk.NewAttribute("height", fmt.Sprintf("%d", req.Height))))
return nil
})
app.Seal()
_, err = app.FinalizeBlock(&abci.FinalizeBlockRequest{Height: 1})
res, err := app.FinalizeBlock(&abci.FinalizeBlockRequest{Height: 1})
require.NoError(t, err)
require.Equal(t, true, wasHookCalled)
require.Len(t, res.Events, 1)
require.Equal(t, "preblockertest", res.Events[0].Type)
// Now try erroring
app = baseapp.NewBaseApp(name, logger, db, nil)