refactor(x/group): use core migrations api (#19423)
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
This commit is contained in:
parent
01bad3ebb6
commit
f6d970d52f
@ -41,7 +41,7 @@ type App struct {
|
||||
*baseapp.BaseApp
|
||||
|
||||
ModuleManager *module.Manager
|
||||
configurator module.Configurator
|
||||
configurator module.Configurator // nolint:staticcheck // SA1019: Configurator is deprecated but still used in runtime v1.
|
||||
config *runtimev1alpha1.Module
|
||||
storeKeys []storetypes.StoreKey
|
||||
interfaceRegistry codectypes.InterfaceRegistry
|
||||
@ -233,7 +233,7 @@ func (a *App) RegisterNodeService(clientCtx client.Context, cfg config.Config) {
|
||||
}
|
||||
|
||||
// Configurator returns the app's configurator.
|
||||
func (a *App) Configurator() module.Configurator {
|
||||
func (a *App) Configurator() module.Configurator { // nolint:staticcheck // SA1019: Configurator is deprecated but still used in runtime v1.
|
||||
return a.configurator
|
||||
}
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@ type appModule struct {
|
||||
app *App
|
||||
}
|
||||
|
||||
func (m appModule) RegisterServices(configurator module.Configurator) {
|
||||
func (m appModule) RegisterServices(configurator module.Configurator) { // nolint:staticcheck // SA1019: Configurator is deprecated but still used in runtime v1.
|
||||
err := m.app.registerRuntimeServices(configurator)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
||||
@ -8,7 +8,7 @@ import (
|
||||
"github.com/cosmos/cosmos-sdk/types/module"
|
||||
)
|
||||
|
||||
func (a *App) registerRuntimeServices(cfg module.Configurator) error {
|
||||
func (a *App) registerRuntimeServices(cfg module.Configurator) error { // nolint:staticcheck // SA1019: Configurator is deprecated but still used in runtime v1.
|
||||
autocliv1.RegisterQueryServer(cfg.QueryServer(), services.NewAutoCLIQueryService(a.ModuleManager.Modules))
|
||||
|
||||
reflectionSvc, err := services.NewReflectionService()
|
||||
|
||||
@ -103,7 +103,7 @@ type autocliConfigurator struct {
|
||||
err error
|
||||
}
|
||||
|
||||
var _ module.Configurator = &autocliConfigurator{}
|
||||
var _ module.Configurator = &autocliConfigurator{} // nolint:staticcheck // SA1019: Configurator is deprecated but still used in runtime v1.
|
||||
|
||||
func (a *autocliConfigurator) MsgServer() gogogrpc.Server { return &a.msgServer }
|
||||
|
||||
|
||||
@ -177,7 +177,7 @@ type SimApp struct {
|
||||
sm *module.SimulationManager
|
||||
|
||||
// module configurator
|
||||
configurator module.Configurator
|
||||
configurator module.Configurator // nolint:staticcheck // SA1019: Configurator is deprecated but still used in runtime v1.
|
||||
}
|
||||
|
||||
func init() {
|
||||
@ -651,7 +651,7 @@ func (app *SimApp) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) {
|
||||
return app.ModuleManager.EndBlock(ctx)
|
||||
}
|
||||
|
||||
func (a *SimApp) Configurator() module.Configurator {
|
||||
func (a *SimApp) Configurator() module.Configurator { // nolint:staticcheck // SA1019: Configurator is deprecated but still used in runtime v1.
|
||||
return a.configurator
|
||||
}
|
||||
|
||||
|
||||
@ -17,10 +17,6 @@ import (
|
||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||
)
|
||||
|
||||
// Configurator provides the hooks to allow modules to configure and register
|
||||
// their services in the RegisterServices method. It is designed to eventually
|
||||
// support module object capabilities isolation as described in
|
||||
// https://github.com/cosmos/cosmos-sdk/issues/7093
|
||||
// Deprecated: The Configurator is deprecated.
|
||||
// Preferably use core services for registering msg/query server and migrations.
|
||||
type Configurator interface {
|
||||
|
||||
@ -6,6 +6,7 @@ import (
|
||||
|
||||
"github.com/grpc-ecosystem/grpc-gateway/runtime"
|
||||
"github.com/spf13/cobra"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"cosmossdk.io/core/appmodule"
|
||||
"cosmossdk.io/x/accounts/cli"
|
||||
@ -32,10 +33,11 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
_ appmodule.AppModule = AppModule{}
|
||||
_ appmodule.AppModule = AppModule{}
|
||||
_ appmodule.HasServices = AppModule{}
|
||||
|
||||
_ module.HasName = AppModule{}
|
||||
_ module.HasGenesis = AppModule{}
|
||||
_ module.HasServices = AppModule{}
|
||||
_ module.HasConsensusVersion = AppModule{}
|
||||
)
|
||||
|
||||
@ -59,9 +61,11 @@ func (m AppModule) RegisterGRPCGatewayRoutes(_ client.Context, _ *runtime.ServeM
|
||||
|
||||
// App module services
|
||||
|
||||
func (m AppModule) RegisterServices(configurator module.Configurator) {
|
||||
v1.RegisterQueryServer(configurator.QueryServer(), NewQueryServer(m.k))
|
||||
v1.RegisterMsgServer(configurator.MsgServer(), NewMsgServer(m.k))
|
||||
func (m AppModule) RegisterServices(registar grpc.ServiceRegistrar) error {
|
||||
v1.RegisterQueryServer(registar, NewQueryServer(m.k))
|
||||
v1.RegisterMsgServer(registar, NewMsgServer(m.k))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// App module genesis
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package keeper
|
||||
|
||||
import (
|
||||
v2 "cosmossdk.io/x/group/migrations/v2"
|
||||
"context"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
v2 "cosmossdk.io/x/group/migrations/v2"
|
||||
)
|
||||
|
||||
// Migrator is a struct for handling in-place store migrations.
|
||||
@ -17,7 +17,7 @@ func NewMigrator(keeper Keeper) Migrator {
|
||||
}
|
||||
|
||||
// Migrate1to2 migrates from version 1 to 2.
|
||||
func (m Migrator) Migrate1to2(ctx sdk.Context) error {
|
||||
func (m Migrator) Migrate1to2(ctx context.Context) error {
|
||||
return v2.Migrate(
|
||||
ctx,
|
||||
m.keeper.storeService,
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package v2
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
|
||||
@ -24,7 +25,7 @@ const (
|
||||
// Migrate migrates the x/group module state from the consensus version 1 to version 2.
|
||||
// Specifically, it changes the group policy account from module account to base account.
|
||||
func Migrate(
|
||||
ctx sdk.Context,
|
||||
ctx context.Context,
|
||||
storeService store.KVStoreService,
|
||||
accountKeeper group.AccountKeeper,
|
||||
groupPolicySeq orm.Sequence,
|
||||
|
||||
@ -7,6 +7,7 @@ import (
|
||||
|
||||
gwruntime "github.com/grpc-ecosystem/grpc-gateway/runtime"
|
||||
"github.com/spf13/cobra"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"cosmossdk.io/core/address"
|
||||
"cosmossdk.io/core/appmodule"
|
||||
@ -30,11 +31,12 @@ var (
|
||||
_ module.AppModuleBasic = AppModule{}
|
||||
_ module.AppModuleSimulation = AppModule{}
|
||||
_ module.HasGenesis = AppModule{}
|
||||
_ module.HasServices = AppModule{}
|
||||
_ module.HasInvariants = AppModule{}
|
||||
|
||||
_ appmodule.AppModule = AppModule{}
|
||||
_ appmodule.HasEndBlocker = AppModule{}
|
||||
_ appmodule.HasServices = AppModule{}
|
||||
_ appmodule.HasMigrations = AppModule{}
|
||||
)
|
||||
|
||||
type AppModule struct {
|
||||
@ -124,16 +126,21 @@ func (am AppModule) ExportGenesis(ctx context.Context, cdc codec.JSONCodec) json
|
||||
return cdc.MustMarshalJSON(gs)
|
||||
}
|
||||
|
||||
// RegisterServices registers a gRPC query service to respond to the
|
||||
// module-specific gRPC queries.
|
||||
func (am AppModule) RegisterServices(cfg module.Configurator) {
|
||||
group.RegisterMsgServer(cfg.MsgServer(), am.keeper)
|
||||
group.RegisterQueryServer(cfg.QueryServer(), am.keeper)
|
||||
// RegisterServices registers module services.
|
||||
func (am AppModule) RegisterServices(registrar grpc.ServiceRegistrar) error {
|
||||
group.RegisterMsgServer(registrar, am.keeper)
|
||||
group.RegisterQueryServer(registrar, am.keeper)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (am AppModule) RegisterMigrations(mr appmodule.MigrationRegistrar) error {
|
||||
m := keeper.NewMigrator(am.keeper)
|
||||
if err := cfg.RegisterMigration(group.ModuleName, 1, m.Migrate1to2); err != nil {
|
||||
panic(fmt.Sprintf("failed to migrate x/%s from version 1 to 2: %v", group.ModuleName, err))
|
||||
if err := mr.Register(group.ModuleName, 1, m.Migrate1to2); err != nil {
|
||||
return fmt.Errorf("failed to migrate x/%s from version 1 to 2: %v", group.ModuleName, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ConsensusVersion implements AppModule/ConsensusVersion.
|
||||
|
||||
@ -118,18 +118,18 @@ func (am AppModule) RegisterServices(registrar grpc.ServiceRegistrar) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (am AppModule) RegisterMigrations(mh appmodule.MigrationRegistrar) error {
|
||||
func (am AppModule) RegisterMigrations(mr appmodule.MigrationRegistrar) error {
|
||||
m := keeper.NewMigrator(am.keeper)
|
||||
|
||||
if err := mh.Register(types.ModuleName, 1, m.Migrate1to2); err != nil {
|
||||
if err := mr.Register(types.ModuleName, 1, m.Migrate1to2); err != nil {
|
||||
return fmt.Errorf("failed to migrate x/%s from version 1 to 2: %w", types.ModuleName, err)
|
||||
}
|
||||
|
||||
if err := mh.Register(types.ModuleName, 2, m.Migrate2to3); err != nil {
|
||||
if err := mr.Register(types.ModuleName, 2, m.Migrate2to3); err != nil {
|
||||
return fmt.Errorf("failed to migrate x/%s from version 2 to 3: %w", types.ModuleName, err)
|
||||
}
|
||||
|
||||
if err := mh.Register(types.ModuleName, 3, m.Migrate3to4); err != nil {
|
||||
if err := mr.Register(types.ModuleName, 3, m.Migrate3to4); err != nil {
|
||||
return fmt.Errorf("failed to migrate x/%s from version 3 to 4: %w", types.ModuleName, err)
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user