mukan-core/x/poj/keeper/emission.go
Mukan Erkin Törük 02226c4bd9
Some checks are pending
/ might_release (push) Waiting to run
initial: sovereign Mukan Network fork
2026-05-11 03:18:23 +03:00

33 lines
811 B
Go

package keeper
import (
"context"
sdkmath "cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
)
// GetBlockReward calculates the block reward based on the current epoch.
func (k Keeper) GetBlockReward(ctx context.Context) sdk.Coin {
sdkCtx := sdk.UnwrapSDKContext(ctx)
currentBlock := sdkCtx.BlockHeight()
params, _ := k.Params.Get(ctx)
// Calculate epoch
// Each epoch has blocks_per_epoch (default 525,600)
epoch := currentBlock / params.BlocksPerEpoch
// Reward drops 10x every epoch
baseReward := sdkmath.NewInt(params.BaseReward)
minReward := sdkmath.NewInt(params.MinReward)
for i := int64(0); i < epoch; i++ {
baseReward = baseReward.Quo(sdkmath.NewInt(10))
if baseReward.LT(minReward) {
baseReward = minReward
break
}
}
return sdk.NewCoin("umc", baseReward)
}