github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/mint/abci.go (about)

     1  package mint
     2  
     3  import (
     4  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     5  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/mint/internal/types"
     6  )
     7  
     8  // BeginBlocker mints new tokens for the previous block.
     9  func BeginBlocker_org(ctx sdk.Context, k Keeper) {
    10  	// fetch stored minter & params
    11  	minter := k.GetMinter(ctx)
    12  	params := k.GetParams(ctx)
    13  
    14  	// recalculate inflation rate
    15  	totalStakingSupply := k.StakingTokenSupply(ctx)
    16  	bondedRatio := k.BondedRatio(ctx)
    17  	minter.Inflation = minter.NextInflationRate(params, bondedRatio)
    18  	minter.AnnualProvisions = minter.NextAnnualProvisions(params, totalStakingSupply)
    19  	//k.SetMinter(ctx, minter)
    20  
    21  	// mint coins, update supply
    22  	mintedCoin := minter.BlockProvision(params)
    23  	mintedCoins := sdk.NewCoins(mintedCoin)
    24  
    25  	err := k.MintCoins(ctx, mintedCoins)
    26  	if err != nil {
    27  		panic(err)
    28  	}
    29  
    30  	// send the minted coins to the fee collector account
    31  	err = k.AddCollectedFees(ctx, mintedCoins)
    32  	if err != nil {
    33  		panic(err)
    34  	}
    35  
    36  	ctx.EventManager().EmitEvent(
    37  		sdk.NewEvent(
    38  			types.EventTypeMint,
    39  			sdk.NewAttribute(types.AttributeKeyBondedRatio, bondedRatio.String()),
    40  			sdk.NewAttribute(types.AttributeKeyInflation, minter.Inflation.String()),
    41  			sdk.NewAttribute(types.AttributeKeyAnnualProvisions, minter.AnnualProvisions.String()),
    42  			sdk.NewAttribute(sdk.AttributeKeyAmount, mintedCoin.Amount.String()),
    43  		),
    44  	)
    45  }