forked from cerc-io/laconicd-deprecated
feemarket: update base fee in BeginBlock (#822)
* Update base fee in begin blocker Closes: #820 * changelog Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
This commit is contained in:
co-authored by
Federico Kunze Küllmer
parent
5d237a5ee4
commit
50e463725e
@@ -9,10 +9,8 @@ import (
|
||||
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) {
|
||||
// BeginBlock updates base fee
|
||||
func (k *Keeper) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {
|
||||
baseFee := k.CalculateBaseFee(ctx)
|
||||
|
||||
// return immediately if base fee is nil
|
||||
@@ -29,7 +27,12 @@ func (k *Keeper) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) {
|
||||
sdk.NewAttribute(types.AttributeKeyBaseFee, baseFee.String()),
|
||||
),
|
||||
})
|
||||
}
|
||||
|
||||
// EndBlock update block gas used.
|
||||
// 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) {
|
||||
if ctx.BlockGasMeter() == nil {
|
||||
k.Logger(ctx).Error("block gas meter is nil when setting block gas used")
|
||||
return
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
)
|
||||
|
||||
// CalculateBaseFee calculates the base fee for the current block. This is only calculated once per
|
||||
// block during EndBlock. If the NoBaseFee parameter is enabled or below activation height, this function returns nil.
|
||||
// block during BeginBlock. If the NoBaseFee parameter is enabled or below activation height, this function returns nil.
|
||||
// NOTE: This code is inspired from the go-ethereum EIP1559 implementation and adapted to Cosmos SDK-based
|
||||
// chains. For the canonical code refer to: https://github.com/ethereum/go-ethereum/blob/master/consensus/misc/eip1559.go
|
||||
func (k Keeper) CalculateBaseFee(ctx sdk.Context) *big.Int {
|
||||
|
||||
@@ -135,7 +135,9 @@ func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sd
|
||||
}
|
||||
|
||||
// BeginBlock returns the begin block for the fee market module.
|
||||
func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {}
|
||||
func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {
|
||||
am.keeper.BeginBlock(ctx, req)
|
||||
}
|
||||
|
||||
// EndBlock returns the end blocker for the fee market module. It returns no validator
|
||||
// updates.
|
||||
|
||||
Reference in New Issue
Block a user