mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-25 15:55:18 +00:00
feat(community): disable x/distribution community tax in disable inflation upgrade (#1752)
* Disable distribution community tax in disable inflation upgrade * Add changelog entry
This commit is contained in:
parent
8186367c8b
commit
1d36429fe3
@ -38,7 +38,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
### Features
|
||||
|
||||
- (metrics) [#1668] Adds non-state breaking x/metrics module for custom telemetry.
|
||||
- (metrics) [#1668] Adds non-state breaking x/metrics module for custom telemetry
|
||||
- (metrics) [#1669] Add performance timing metrics to all Begin/EndBlockers
|
||||
- (community) [#1704] Add module params
|
||||
- (community) [#1706] Add disable inflation upgrade
|
||||
@ -52,8 +52,9 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
- (community) [#1704] Add param to control when inflation will be disabled
|
||||
- (community) [#1707] Default staking rewards per second set to `744191`
|
||||
- (community) [#1706] Add disable inflation upgrade to begin blocker that updates x/mint and x/kavadist params.
|
||||
- (community) [#1706] Add disable inflation upgrade to begin blocker that updates x/mint and x/kavadist params
|
||||
- (community) [#1729] Consolidate community funds from `x/distribution` and `x/kavadist` to `x/community`
|
||||
- (community) [#1752] Set `x/distribution` CommunityTax to zero on inflation disable upgrade
|
||||
|
||||
## [v0.24.0]
|
||||
|
||||
@ -294,10 +295,12 @@ the [changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.38.4/CHANGELOG.md).
|
||||
- [#257](https://github.com/Kava-Labs/kava/pulls/257) Include scripts to run
|
||||
large-scale simulations remotely using aws-batch
|
||||
|
||||
[#1752]: https://github.com/Kava-Labs/kava/pull/1752
|
||||
[#1729]: https://github.com/Kava-Labs/kava/pull/1729
|
||||
[#1745]: https://github.com/Kava-Labs/kava/pull/1745
|
||||
[#1707]: https://github.com/Kava-Labs/kava/pull/1707
|
||||
[#1706]: https://github.com/Kava-Labs/kava/pull/1706
|
||||
[#1704]: https://github.com/Kava-Labs/kava/pull/1704
|
||||
[#1668]: https://github.com/Kava-Labs/kava/pull/1668
|
||||
[#1669]: https://github.com/Kava-Labs/kava/pull/1669
|
||||
[#1655]: https://github.com/Kava-Labs/kava/pull/1655
|
||||
|
@ -19,8 +19,14 @@ func (k Keeper) CheckAndDisableMintAndKavaDistInflation(ctx sdk.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
logger := k.Logger(ctx)
|
||||
logger.Info("disable inflation upgrade started")
|
||||
|
||||
// run disable inflation logic
|
||||
k.disableInflation(ctx)
|
||||
k.disableCommunityTax(ctx)
|
||||
|
||||
logger.Info("disable inflation upgrade finished successfully!")
|
||||
|
||||
ctx.EventManager().EmitEvent(
|
||||
sdk.NewEvent(
|
||||
@ -43,7 +49,6 @@ func (k Keeper) CheckAndDisableMintAndKavaDistInflation(ctx sdk.Context) {
|
||||
// affecting rewards. In addition, inflation periods in kavadist should be removed.
|
||||
func (k Keeper) disableInflation(ctx sdk.Context) {
|
||||
logger := k.Logger(ctx)
|
||||
logger.Info("disable inflation upgrade started")
|
||||
|
||||
// set x/min inflation to 0
|
||||
mintParams := k.mintKeeper.GetParams(ctx)
|
||||
@ -57,6 +62,14 @@ func (k Keeper) disableInflation(ctx sdk.Context) {
|
||||
kavadistParams.Active = false
|
||||
k.kavadistKeeper.SetParams(ctx, kavadistParams)
|
||||
logger.Info("x/kavadist inflation disabled")
|
||||
|
||||
logger.Info("disable inflation upgrade finished successfully!")
|
||||
}
|
||||
|
||||
// disableCommunityTax sets x/distribution Params.CommunityTax to 0
|
||||
func (k Keeper) disableCommunityTax(ctx sdk.Context) {
|
||||
logger := k.Logger(ctx)
|
||||
|
||||
distrParams := k.distrKeeper.GetParams(ctx)
|
||||
distrParams.CommunityTax = sdk.ZeroDec()
|
||||
k.distrKeeper.SetParams(ctx, distrParams)
|
||||
logger.Info("x/distribution community tax set to 0")
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import (
|
||||
"time"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
|
||||
"github.com/stretchr/testify/suite"
|
||||
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
|
||||
@ -29,6 +30,7 @@ type disableInflationTestSuite struct {
|
||||
|
||||
genesisMintState *minttypes.GenesisState
|
||||
genesisKavadistState *kavadisttypes.GenesisState
|
||||
genesisDistrState *distrtypes.GenesisState
|
||||
|
||||
testFunc testFunc
|
||||
}
|
||||
@ -57,10 +59,15 @@ func (suite *disableInflationTestSuite) SetupTest() {
|
||||
kavadistGen.Params.Active = true
|
||||
suite.genesisKavadistState = kavadistGen
|
||||
|
||||
distrGen := distrtypes.DefaultGenesisState()
|
||||
distrGen.Params.CommunityTax = sdk.MustNewDecFromStr("0.949500000000000000")
|
||||
suite.genesisDistrState = distrGen
|
||||
|
||||
appCodec := tApp.AppCodec()
|
||||
suite.App.InitializeFromGenesisStates(
|
||||
app.GenesisState{minttypes.ModuleName: appCodec.MustMarshalJSON(mintGen)},
|
||||
app.GenesisState{kavadisttypes.ModuleName: appCodec.MustMarshalJSON(kavadistGen)},
|
||||
app.GenesisState{distrtypes.ModuleName: appCodec.MustMarshalJSON(distrGen)},
|
||||
)
|
||||
}
|
||||
|
||||
@ -70,10 +77,12 @@ func (suite *disableInflationTestSuite) TestDisableInflation() {
|
||||
suite.Require().True(found)
|
||||
mintParams := suite.App.GetMintKeeper().GetParams(suite.Ctx)
|
||||
kavadistParams := suite.App.GetKavadistKeeper().GetParams(suite.Ctx)
|
||||
distrParams := suite.App.GetDistrKeeper().GetParams(suite.Ctx)
|
||||
|
||||
disableTimeMsg := "expected inflation disable time to match"
|
||||
expectedMintState := suite.genesisMintState
|
||||
expectedKavadistState := suite.genesisKavadistState
|
||||
expectedDistrState := suite.genesisDistrState
|
||||
expectedStakingRewards := originalStakingRewards
|
||||
msgSuffix := "before upgrade"
|
||||
|
||||
@ -92,6 +101,9 @@ func (suite *disableInflationTestSuite) TestDisableInflation() {
|
||||
expectedMintState.Params.InflationMax = sdk.ZeroDec()
|
||||
|
||||
expectedKavadistState.Params.Active = false
|
||||
|
||||
expectedDistrState.Params.CommunityTax = sdk.ZeroDec()
|
||||
|
||||
msgSuffix = "after upgrade"
|
||||
|
||||
suite.Require().NoError(app.EventsContains(suite.Ctx.EventManager().Events(), sdk.NewEvent(types.EventTypeInflationStop)))
|
||||
@ -100,6 +112,7 @@ func (suite *disableInflationTestSuite) TestDisableInflation() {
|
||||
suite.Require().Equal(expectedMintState.Params.InflationMin, mintParams.InflationMin, msg+": expected mint inflation min to match state "+msgSuffix)
|
||||
suite.Require().Equal(expectedMintState.Params.InflationMax, mintParams.InflationMax, msg+": expected mint inflation max to match state "+msgSuffix)
|
||||
suite.Require().Equal(expectedKavadistState.Params.Active, kavadistParams.Active, msg+":expected kavadist active flag match state "+msgSuffix)
|
||||
suite.Require().Equal(expectedDistrState.Params.CommunityTax, distrParams.CommunityTax, msg+":expected x/distribution community tax to match state "+msgSuffix)
|
||||
suite.Require().Equal(expectedDisableTime, params.UpgradeTimeDisableInflation, msg+": "+disableTimeMsg)
|
||||
|
||||
// we always check staking rewards per second matches the passed in expectation
|
||||
|
@ -43,6 +43,8 @@ type DistributionKeeper interface {
|
||||
GetFeePoolCommunityCoins(ctx sdk.Context) sdk.DecCoins
|
||||
GetFeePool(ctx sdk.Context) distrtypes.FeePool
|
||||
SetFeePool(ctx sdk.Context, feePool distrtypes.FeePool)
|
||||
GetParams(ctx sdk.Context) distrtypes.Params
|
||||
SetParams(ctx sdk.Context, params distrtypes.Params)
|
||||
}
|
||||
|
||||
type MintKeeper interface {
|
||||
|
Loading…
Reference in New Issue
Block a user