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:
parent
5d237a5ee4
commit
50e463725e
@ -40,6 +40,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
### State Machine Breaking
|
||||
|
||||
- (evm) [tharsis#840](https://github.com/tharsis/ethermint/pull/840) Store empty topics as empty array rather than nil.
|
||||
- (feemarket) [tharsis#822](https://github.com/tharsis/ethermint/pull/822) Update EIP1559 base fee in `BeginBlock`.
|
||||
|
||||
### Improvements
|
||||
|
||||
|
@ -439,6 +439,7 @@ func NewEthermintApp(
|
||||
app.mm.SetOrderBeginBlockers(
|
||||
upgradetypes.ModuleName,
|
||||
capabilitytypes.ModuleName,
|
||||
feemarkettypes.ModuleName,
|
||||
evmtypes.ModuleName,
|
||||
minttypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName,
|
||||
evidencetypes.ModuleName, stakingtypes.ModuleName, ibchost.ModuleName,
|
||||
|
@ -955,7 +955,7 @@ func (e *EVMBackend) BaseFee(height int64) (*big.Int, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
baseFee := types.BaseFeeFromEvents(blockRes.EndBlockEvents)
|
||||
baseFee := types.BaseFeeFromEvents(blockRes.BeginBlockEvents)
|
||||
if baseFee != nil {
|
||||
return baseFee, nil
|
||||
}
|
||||
|
@ -258,7 +258,7 @@ func (api *PublicFilterAPI) NewBlockFilter() rpc.ID {
|
||||
continue
|
||||
}
|
||||
|
||||
baseFee := types.BaseFeeFromEvents(data.ResultEndBlock.Events)
|
||||
baseFee := types.BaseFeeFromEvents(data.ResultBeginBlock.Events)
|
||||
|
||||
header := types.EthHeaderFromTendermint(data.Header, ethtypes.Bloom{}, baseFee)
|
||||
api.filtersMu.Lock()
|
||||
@ -310,7 +310,7 @@ func (api *PublicFilterAPI) NewHeads(ctx context.Context) (*rpc.Subscription, er
|
||||
continue
|
||||
}
|
||||
|
||||
baseFee := types.BaseFeeFromEvents(data.ResultEndBlock.Events)
|
||||
baseFee := types.BaseFeeFromEvents(data.ResultBeginBlock.Events)
|
||||
|
||||
// TODO: fetch bloom from events
|
||||
header := types.EthHeaderFromTendermint(data.Header, ethtypes.Bloom{}, baseFee)
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user