cosmos-sdk/x/mint/keeper/abci.go
2024-09-28 11:20:39 +00:00

37 lines
772 B
Go

package keeper
import (
"context"
"cosmossdk.io/x/mint/types"
"github.com/cosmos/cosmos-sdk/telemetry"
)
// BeginBlocker mints new tokens for the previous block.
func (k Keeper) BeginBlocker(ctx context.Context) error {
start := telemetry.Now()
defer telemetry.ModuleMeasureSince(types.ModuleName, start, telemetry.MetricKeyBeginBlocker)
// fetch stored minter & params
minter, err := k.Minter.Get(ctx)
if err != nil {
return err
}
oldMinter := minter
// we pass -1 as epoch number to indicate that this is not an epoch minting,
// but a regular block minting. Same with epoch id "block".
err = k.MintFn(ctx, &minter, "block", -1)
if err != nil {
return err
}
if minter.IsEqual(oldMinter) {
return nil
}
return k.Minter.Set(ctx, minter)
}