From 73e5eb5e98c6248e56a104ccbf7af21c842ec492 Mon Sep 17 00:00:00 2001 From: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Date: Mon, 16 Nov 2020 14:09:40 +0100 Subject: [PATCH] ante: fix fee check (#597) * ante: fix fee check * changelog * comment --- CHANGELOG.md | 1 + app/ante/eth.go | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcd70e29..2373a015 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ corresponding Ethereum API namespace: ### Bug Fixes +* (ante) [\#597](https://github.com/cosmos/ethermint/pull/597) Fix incorrect fee check on `AnteHandler`. * (evm) [\#583](https://github.com/cosmos/ethermint/pull/583) Fixes incorrect resetting of tx count and block bloom during `BeginBlock`, as well as gas consumption. * (crypto) [\#577](https://github.com/cosmos/ethermint/pull/577) Fix `BIP44HDPath` that did not prepend `m/` to the path. This now uses the `DefaultBaseDerivationPath` variable from go-ethereum to ensure addresses are consistent. diff --git a/app/ante/eth.go b/app/ante/eth.go index bad8243f..2075235d 100644 --- a/app/ante/eth.go +++ b/app/ante/eth.go @@ -100,20 +100,21 @@ func (emfd EthMempoolFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula evmDenom := emfd.evmKeeper.GetParams(ctx).EvmDenom - // fee = GP * GL + // fee = gas price * gas limit fee := sdk.NewInt64DecCoin(evmDenom, msgEthTx.Fee().Int64()) minGasPrices := ctx.MinGasPrices() + minFees := minGasPrices.AmountOf(evmDenom).MulInt64(int64(msgEthTx.Data.GasLimit)) - // check that fee provided is greater than the minimum - // NOTE: we only check if aphotons are present in min gas prices. It is up to the + // check that fee provided is greater than the minimum defined by the validator node + // NOTE: we only check if the evm denom tokens are present in min gas prices. It is up to the // sender if they want to send additional fees in other denominations. var hasEnoughFees bool - if fee.Amount.GTE(minGasPrices.AmountOf(evmDenom)) { + if fee.Amount.GTE(minFees) { hasEnoughFees = true } - // reject transaction if minimum gas price is positive and the transaction does not + // reject transaction if minimum gas price is not zero and the transaction does not // meet the minimum fee if !ctx.MinGasPrices().IsZero() && !hasEnoughFees { return ctx, sdkerrors.Wrap(