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 }