laconicd/x/feemarket/keeper/abci.go
Thomas Nguy cd3b0be5ed
rpc, feemarket: store base fee in event (#673)
* store base fee in event

* update changelog
2021-10-15 08:59:26 +00:00

48 lines
1.2 KiB
Go

package keeper
import (
"fmt"
abci "github.com/tendermint/tendermint/abci/types"
"github.com/tharsis/ethermint/x/feemarket/types"
sdk "github.com/cosmos/cosmos-sdk/types"
)
// EndBlock also retrieves the bloom filter value from the transient store and commits it to the
// KVStore. The EVM end block logic doesn't update the validator set, thus it returns
// an empty slice.
func (k *Keeper) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) {
baseFee := k.CalculateBaseFee(ctx)
// return immediately if base fee is nil
if baseFee == nil {
return
}
k.SetBaseFee(ctx, baseFee)
// Store current base fee in event
ctx.EventManager().EmitEvents(sdk.Events{
sdk.NewEvent(
types.EventTypeFeeMarket,
sdk.NewAttribute(types.AttributeKeyBaseFee, baseFee.String()),
),
})
if ctx.BlockGasMeter() == nil {
k.Logger(ctx).Error("block gas meter is nil when setting block gas used")
return
}
gasUsed := ctx.BlockGasMeter().GasConsumedToLimit()
k.SetBlockGasUsed(ctx, gasUsed)
ctx.EventManager().EmitEvent(sdk.NewEvent(
"block_gas",
sdk.NewAttribute("height", fmt.Sprintf("%d", ctx.BlockHeight())),
sdk.NewAttribute("amount", fmt.Sprintf("%d", ctx.BlockGasMeter().GasConsumedToLimit())),
))
}