From 1f0b0c6052f7fd415fea1b87501310aef4aa1d18 Mon Sep 17 00:00:00 2001 From: Federico Kunze Date: Fri, 29 May 2020 13:33:05 -0400 Subject: [PATCH 1/3] add default case on ibc AnteHandler --- x/ibc/ante/ante.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/x/ibc/ante/ante.go b/x/ibc/ante/ante.go index 82484be5a32e..3e7e7f1fe236 100644 --- a/x/ibc/ante/ante.go +++ b/x/ibc/ante/ante.go @@ -37,6 +37,9 @@ func (pvr ProofVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, sim _, err = pvr.channelKeeper.AcknowledgePacket(ctx, msg.Packet, msg.Acknowledgement, msg.Proof, msg.ProofHeight) case channel.MsgTimeout: _, err = pvr.channelKeeper.TimeoutPacket(ctx, msg.Packet, msg.Proof, msg.ProofHeight, msg.NextSequenceRecv) + default: + // don't emit sender event for other msg types + continue } attributes := make([]sdk.Attribute, len(msg.GetSigners())) From 93913a0e113972e40d3fd9b65a50b8fdbf76450d Mon Sep 17 00:00:00 2001 From: Federico Kunze Date: Fri, 29 May 2020 14:01:41 -0400 Subject: [PATCH 2/3] reset ante handler EventManager --- baseapp/baseapp.go | 1 + 1 file changed, 1 insertion(+) diff --git a/baseapp/baseapp.go b/baseapp/baseapp.go index e9d0d2baa087..22747e80fe90 100644 --- a/baseapp/baseapp.go +++ b/baseapp/baseapp.go @@ -551,6 +551,7 @@ func (app *BaseApp) runTx(mode runTxMode, txBytes []byte, tx sdk.Tx) (gInfo sdk. // writes do not happen if aborted/failed. This may have some // performance benefits, but it'll be more difficult to get right. anteCtx, msCache = app.cacheTxContext(ctx, txBytes) + anteCtx = anteCtx.WithEventManager(sdk.NewEventManager()) newCtx, err := app.anteHandler(anteCtx, tx, mode == runTxModeSimulate) if !newCtx.IsZero() { From 64182e7264bcc74736f7d76144785e30dc43aa35 Mon Sep 17 00:00:00 2001 From: Federico Kunze Date: Fri, 29 May 2020 15:59:32 -0400 Subject: [PATCH 3/3] use event manager from runTx instead the one set by the ante handler --- baseapp/baseapp_test.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/baseapp/baseapp_test.go b/baseapp/baseapp_test.go index 79d6cb5f5ab5..7b842bbda9c8 100644 --- a/baseapp/baseapp_test.go +++ b/baseapp/baseapp_test.go @@ -664,25 +664,24 @@ func testTxDecoder(cdc *codec.Codec) sdk.TxDecoder { } func anteHandlerTxTest(t *testing.T, capKey sdk.StoreKey, storeKey []byte) sdk.AnteHandler { - return func(ctx sdk.Context, tx sdk.Tx, simulate bool) (newCtx sdk.Context, err error) { - newCtx = ctx.WithEventManager(sdk.NewEventManager()) - store := newCtx.KVStore(capKey) + return func(ctx sdk.Context, tx sdk.Tx, simulate bool) (sdk.Context, error) { + store := ctx.KVStore(capKey) txTest := tx.(txTest) if txTest.FailOnAnte { - return newCtx, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "ante handler failure") + return ctx, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "ante handler failure") } - _, err = incrementingCounter(t, store, storeKey, txTest.Counter) + _, err := incrementingCounter(t, store, storeKey, txTest.Counter) if err != nil { - return newCtx, err + return ctx, err } - newCtx.EventManager().EmitEvents( + ctx.EventManager().EmitEvents( counterEvent("ante_handler", txTest.Counter), ) - return newCtx, nil + return ctx, nil } } @@ -1323,6 +1322,7 @@ func TestBaseAppAnteHandler(t *testing.T) { txBytes, err := cdc.MarshalBinaryBare(tx) require.NoError(t, err) res := app.DeliverTx(abci.RequestDeliverTx{Tx: txBytes}) + require.Empty(t, res.Events) require.False(t, res.IsOK(), fmt.Sprintf("%v", res)) ctx := app.getState(runTxModeDeliver).ctx @@ -1338,6 +1338,7 @@ func TestBaseAppAnteHandler(t *testing.T) { require.NoError(t, err) res = app.DeliverTx(abci.RequestDeliverTx{Tx: txBytes}) + require.Empty(t, res.Events) require.False(t, res.IsOK(), fmt.Sprintf("%v", res)) ctx = app.getState(runTxModeDeliver).ctx @@ -1353,6 +1354,7 @@ func TestBaseAppAnteHandler(t *testing.T) { require.NoError(t, err) res = app.DeliverTx(abci.RequestDeliverTx{Tx: txBytes}) + require.NotEmpty(t, res.Events) require.True(t, res.IsOK(), fmt.Sprintf("%v", res)) ctx = app.getState(runTxModeDeliver).ctx