mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-10-31 21:57:27 +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
	 drklee3
						drklee3