Skip to content

Commit 3d83150

Browse files
committed
Merge branch 'release/v4.2.x' of github.com:babylonlabs-io/babylon into release/v4.2.x
2 parents 6f6ec67 + 6f47e3b commit 3d83150

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
3737

3838
## Unreleased
3939

40+
## v4.2.3
41+
42+
### Improvements
43+
44+
- [#1922](https://github.com/babylonlabs-io/babylon/pull/1922) chore: add const of `MaxMintedPerBlock`
45+
4046
## v4.2.2
4147

4248
### Improvements

x/mint/types/minter.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ import (
1212

1313
const DefaultBondDenom = "ubbn"
1414

15+
// MaxMintedPerBlock defines the maximum amount allowed to mint per block
16+
// On mainnet currently there is around 189 Baby tokens minted per block.
17+
var MaxMintedPerBlock = math.NewInt(600_000000)
18+
1519
// NewMinter returns a new Minter object.
1620
func NewMinter(inflationRate math.LegacyDec, annualProvisions math.LegacyDec, bondDenom string) Minter {
1721
return Minter{
@@ -67,7 +71,11 @@ func (m Minter) CalculateBlockProvision(current time.Time, previous time.Time) (
6771
timeElapsed := current.Sub(previous).Nanoseconds()
6872
portionOfYear := math.LegacyNewDec(timeElapsed).Quo(math.LegacyNewDec(NanosecondsPerYear))
6973
blockProvision := m.AnnualProvisions.Mul(portionOfYear)
70-
return sdk.NewCoin(m.BondDenom, blockProvision.TruncateInt()), nil
74+
75+
blockProvisionInt := blockProvision.TruncateInt()
76+
amountToMint := math.MinInt(blockProvisionInt, MaxMintedPerBlock)
77+
78+
return sdk.NewCoin(m.BondDenom, amountToMint), nil
7179
}
7280

7381
// YearsSinceGenesis returns the number of years that have passed between

x/mint/types/minter_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,13 @@ func TestCalculateBlockProvision(t *testing.T) {
112112
// 55 billion ubbn (annual provisions) * 30 (seconds) / 31,556,952 (seconds per year) = 52286.418536238861091527470713901646775011731170995 which truncates to 52.286 ubbn
113113
want: sdk.NewCoin(types.DefaultBondDenom, math.NewInt(52286)),
114114
},
115+
{
116+
name: "capped at maximum when block provision exceeds limit",
117+
annualProvisions: math.LegacyNewDec(2_000_000_000_000_000),
118+
current: current,
119+
previous: current.Add(-blockInterval),
120+
want: sdk.NewCoin(types.DefaultBondDenom, types.MaxMintedPerBlock),
121+
},
115122
{
116123
name: "want error when current time is before previous time",
117124
annualProvisions: annualProvisions,

0 commit comments

Comments
 (0)