fix(evm): clear logs if tx failed in post processing hooks (#1128)
* Problem: clear logs if tx failed in post processing hooks * Update x/evm/keeper/state_transition.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
This commit is contained in:
parent
5e55e5c444
commit
6cf2b9fdd3
@ -40,7 +40,8 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
|||||||
|
|
||||||
### State Machine Breaking
|
### State Machine Breaking
|
||||||
|
|
||||||
* (evm) [tharsis#1124](https://github.com/evmos/ethermint/pull/1124) Reject non-replay-protected tx in ante handler to prevent replay attack
|
* (evm) [\#1128](https://github.com/tharsis/ethermint/pull/1128) Clear tx logs if tx failed in post processing hooks
|
||||||
|
* (evm) [tharsis#1124](https://github.com/tharsis/ethermint/pull/1124) Reject non-replay-protected tx in `AnteHandler` to prevent replay attack
|
||||||
|
|
||||||
### API Breaking
|
### API Breaking
|
||||||
|
|
||||||
|
@ -599,6 +599,7 @@ func (suite *EvmTestSuite) TestERC20TransferReverted() {
|
|||||||
|
|
||||||
suite.Require().True(res.Failed())
|
suite.Require().True(res.Failed())
|
||||||
suite.Require().Equal(tc.expErr, res.VmError)
|
suite.Require().Equal(tc.expErr, res.VmError)
|
||||||
|
suite.Require().Empty(res.Logs)
|
||||||
|
|
||||||
after := k.GetBalance(suite.ctx, suite.from)
|
after := k.GetBalance(suite.ctx, suite.from)
|
||||||
|
|
||||||
|
@ -268,6 +268,9 @@ func (k *Keeper) ApplyTransaction(ctx sdk.Context, tx *ethtypes.Transaction) (*t
|
|||||||
// If hooks return error, revert the whole tx.
|
// If hooks return error, revert the whole tx.
|
||||||
res.VmError = types.ErrPostTxProcessing.Error()
|
res.VmError = types.ErrPostTxProcessing.Error()
|
||||||
k.Logger(ctx).Error("tx post processing failed", "error", err)
|
k.Logger(ctx).Error("tx post processing failed", "error", err)
|
||||||
|
|
||||||
|
// If the tx failed in post processing hooks, we should clear the logs
|
||||||
|
res.Logs = nil
|
||||||
} else if commit != nil {
|
} else if commit != nil {
|
||||||
// PostTxProcessing is successful, commit the tmpCtx
|
// PostTxProcessing is successful, commit the tmpCtx
|
||||||
commit()
|
commit()
|
||||||
|
Loading…
Reference in New Issue
Block a user