Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem: no historical staking params #238

Closed
wants to merge 10 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
gov
mmsqe committed Mar 28, 2024
commit 889f130f957b301ba0a2d0afa545d08370c7bc8f
8 changes: 5 additions & 3 deletions simapp/app.go
Original file line number Diff line number Diff line change
@@ -76,6 +76,7 @@ import (
govclient "github.com/cosmos/cosmos-sdk/x/gov/client"
govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
"github.com/cosmos/cosmos-sdk/x/group"
groupkeeper "github.com/cosmos/cosmos-sdk/x/group/keeper"
@@ -367,9 +368,10 @@ func NewSimApp(
Example of setting gov params:
govConfig.MaxMetadataLen = 10000
*/
govS := app.GetSubspace(govtypes.ModuleName)
govKeeper := govkeeper.NewKeeper(
appCodec, keys[govtypes.StoreKey], app.AccountKeeper, app.BankKeeper,
app.StakingKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
app.StakingKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(), govS,
)

// Set legacy router for backwards compatibility with gov v1beta1
@@ -409,7 +411,7 @@ func NewSimApp(
capability.NewAppModule(appCodec, *app.CapabilityKeeper, false),
crisis.NewAppModule(app.CrisisKeeper, skipGenesisInvariants, crisisS),
feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry),
gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)),
gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, govS),
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, mintS),
slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)),
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)),
@@ -745,7 +747,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(minttypes.ModuleName).WithKeyTable(minttypes.ParamKeyTable()) //nolint:staticcheck
paramsKeeper.Subspace(distrtypes.ModuleName)
paramsKeeper.Subspace(slashingtypes.ModuleName)
paramsKeeper.Subspace(govtypes.ModuleName)
paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govv1.ParamKeyTable()) //nolint: staticcheck
paramsKeeper.Subspace(crisistypes.ModuleName).WithKeyTable(crisistypes.ParamKeyTable()) //nolint:staticcheck

return paramsKeeper
3 changes: 2 additions & 1 deletion x/gov/keeper/common_test.go
Original file line number Diff line number Diff line change
@@ -22,6 +22,7 @@ import (
v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
"github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
)

var (
@@ -81,7 +82,7 @@ func setupGovKeeper(t *testing.T) (
stakingKeeper.EXPECT().TotalBondedTokens(gomock.Any()).Return(math.NewInt(10000000)).AnyTimes()

// Gov keeper initializations
govKeeper := keeper.NewKeeper(encCfg.Codec, key, acctKeeper, bankKeeper, stakingKeeper, msr, types.DefaultConfig(), govAcct.String())
govKeeper := keeper.NewKeeper(encCfg.Codec, key, acctKeeper, bankKeeper, stakingKeeper, msr, types.DefaultConfig(), govAcct.String(), paramstypes.Subspace{})
govKeeper.SetProposalID(ctx, 1)
govRouter := v1beta1.NewRouter() // Also register legacy gov handlers to test them too.
govRouter.AddRoute(types.RouterKey, v1beta1.ProposalHandler)
22 changes: 13 additions & 9 deletions x/gov/keeper/keeper.go
Original file line number Diff line number Diff line change
@@ -11,6 +11,7 @@ import (
storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/cosmos/cosmos-sdk/x/gov/exported"
"github.com/cosmos/cosmos-sdk/x/gov/types"
v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
"github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
@@ -43,7 +44,8 @@ type Keeper struct {

// the address capable of executing a MsgUpdateParams message. Typically, this
// should be the x/gov module account.
authority string
authority string
legacySubspace exported.ParamSubspace
}

// GetAuthority returns the x/gov module's authority.
@@ -62,6 +64,7 @@ func NewKeeper(
cdc codec.BinaryCodec, key storetypes.StoreKey, authKeeper types.AccountKeeper,
bankKeeper types.BankKeeper, sk types.StakingKeeper,
router *baseapp.MsgServiceRouter, config types.Config, authority string,
legacySubspace exported.ParamSubspace,
) *Keeper {
// ensure governance module account is set
if addr := authKeeper.GetModuleAddress(types.ModuleName); addr == nil {
@@ -78,14 +81,15 @@ func NewKeeper(
}

return &Keeper{
storeKey: key,
authKeeper: authKeeper,
bankKeeper: bankKeeper,
sk: sk,
cdc: cdc,
router: router,
config: config,
authority: authority,
storeKey: key,
authKeeper: authKeeper,
bankKeeper: bankKeeper,
sk: sk,
cdc: cdc,
router: router,
config: config,
authority: authority,
legacySubspace: legacySubspace,
}
}

16 changes: 15 additions & 1 deletion x/gov/keeper/params.go
Original file line number Diff line number Diff line change
@@ -22,7 +22,21 @@ func (k Keeper) SetParams(ctx sdk.Context, params v1.Params) error {
func (k Keeper) GetParams(clientCtx sdk.Context) (params v1.Params) {
store := clientCtx.KVStore(k.storeKey)
bz := store.Get(types.ParamsKey)
if bz == nil {
if len(bz) == 0 {
var depositParams v1.DepositParams
k.legacySubspace.Get(clientCtx, v1.ParamStoreKeyDepositParams, &depositParams)
var votingParams v1.VotingParams
k.legacySubspace.Get(clientCtx, v1.ParamStoreKeyVotingParams, &votingParams)
var tallyParams v1.TallyParams
k.legacySubspace.Get(clientCtx, v1.ParamStoreKeyTallyParams, &tallyParams)
params = v1.Params{
MinDeposit: depositParams.MinDeposit,
MaxDepositPeriod: depositParams.MaxDepositPeriod,
VotingPeriod: votingParams.VotingPeriod,
Quorum: tallyParams.Quorum,
Threshold: tallyParams.Threshold,
VetoThreshold: tallyParams.VetoThreshold,
}
return params
}

1 change: 1 addition & 0 deletions x/gov/module.go
Original file line number Diff line number Diff line change
@@ -208,6 +208,7 @@ func ProvideModule(in GovInputs) GovOutputs {
in.MsgServiceRouter,
kConfig,
authority.String(),
in.LegacySubspace,
)
m := NewAppModule(in.Cdc, k, in.AccountKeeper, in.BankKeeper, in.LegacySubspace)
hr := v1beta1.HandlerRoute{Handler: v1beta1.ProposalHandler, RouteKey: govtypes.RouterKey}