Concept PR simplify Module (#6231)

* add test of alternative impl

* simplify query route too

* change name querier

* simplify register routes

* revert change

* add route

* add router

* first step refactor

* refactor

* update documentation

* update

* add format

* simplify appmodule

* update changelog

* rename vars

* remove interface

* Update CHANGELOG.md

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
This commit is contained in:
Jonathan Gimeno 2020-06-10 20:48:16 +02:00 committed by GitHub
parent e12fa58e14
commit 79c308ae4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 101 additions and 147 deletions

View File

@ -61,6 +61,8 @@ older clients.
### API Breaking Changes
* [\#6231](https://github.com/cosmos/cosmos-sdk/pull/6231) Simplify `AppModule` interface, `Route` and `NewHandler` methods become only `Route`
and returns a new `Route` type.
* [\#6212](https://github.com/cosmos/cosmos-sdk/pull/6212) Remove `Get*` prefixes from key construction functions
* [\#6079](https://github.com/cosmos/cosmos-sdk/pull/6079) Remove `UpgradeOldPrivValFile` (deprecated in Tendermint Core v0.28).
* (modules) [\#5664](https://github.com/cosmos/cosmos-sdk/pull/5664) Remove amino `Codec` from simulation `StoreDecoder`, which now returns a function closure in order to unmarshal the key-value pairs.

View File

@ -781,9 +781,9 @@ func TestCheckTx(t *testing.T) {
anteOpt := func(bapp *BaseApp) { bapp.SetAnteHandler(anteHandlerTxTest(t, capKey1, counterKey)) }
routerOpt := func(bapp *BaseApp) {
// TODO: can remove this once CheckTx doesnt process msgs.
bapp.Router().AddRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
bapp.Router().AddRoute(sdk.NewRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
return &sdk.Result{}, nil
})
}))
}
app := setupBaseApp(t, anteOpt, routerOpt)
@ -831,7 +831,8 @@ func TestDeliverTx(t *testing.T) {
// test increments in the handler
deliverKey := []byte("deliver-key")
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, handlerMsgCounter(t, capKey1, deliverKey))
r := sdk.NewRoute(routeMsgCounter, handlerMsgCounter(t, capKey1, deliverKey))
bapp.Router().AddRoute(r)
}
app := setupBaseApp(t, anteOpt, routerOpt)
@ -884,8 +885,10 @@ func TestMultiMsgDeliverTx(t *testing.T) {
deliverKey := []byte("deliver-key")
deliverKey2 := []byte("deliver-key2")
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, handlerMsgCounter(t, capKey1, deliverKey))
bapp.Router().AddRoute(routeMsgCounter2, handlerMsgCounter(t, capKey1, deliverKey2))
r1 := sdk.NewRoute(routeMsgCounter, handlerMsgCounter(t, capKey1, deliverKey))
r2 := sdk.NewRoute(routeMsgCounter2, handlerMsgCounter(t, capKey1, deliverKey2))
bapp.Router().AddRoute(r1)
bapp.Router().AddRoute(r2)
}
app := setupBaseApp(t, anteOpt, routerOpt)
@ -960,10 +963,11 @@ func TestSimulateTx(t *testing.T) {
}
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
r := sdk.NewRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
ctx.GasMeter().ConsumeGas(gasConsumed, "test")
return &sdk.Result{}, nil
})
bapp.Router().AddRoute(r)
}
app := setupBaseApp(t, anteOpt, routerOpt)
@ -1024,9 +1028,10 @@ func TestRunInvalidTransaction(t *testing.T) {
})
}
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
r := sdk.NewRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
return &sdk.Result{}, nil
})
bapp.Router().AddRoute(r)
}
app := setupBaseApp(t, anteOpt, routerOpt)
@ -1149,11 +1154,12 @@ func TestTxGasLimits(t *testing.T) {
}
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
r := sdk.NewRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
count := msg.(msgCounter).Counter
ctx.GasMeter().ConsumeGas(uint64(count), "counter-handler")
return &sdk.Result{}, nil
})
bapp.Router().AddRoute(r)
}
app := setupBaseApp(t, anteOpt, routerOpt)
@ -1232,11 +1238,12 @@ func TestMaxBlockGasLimits(t *testing.T) {
}
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
r := sdk.NewRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
count := msg.(msgCounter).Counter
ctx.GasMeter().ConsumeGas(uint64(count), "counter-handler")
return &sdk.Result{}, nil
})
bapp.Router().AddRoute(r)
}
app := setupBaseApp(t, anteOpt, routerOpt)
@ -1317,9 +1324,10 @@ func TestCustomRunTxPanicHandler(t *testing.T) {
})
}
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
r := sdk.NewRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
return &sdk.Result{}, nil
})
bapp.Router().AddRoute(r)
}
app := setupBaseApp(t, anteOpt, routerOpt)
@ -1356,7 +1364,8 @@ func TestBaseAppAnteHandler(t *testing.T) {
deliverKey := []byte("deliver-key")
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, handlerMsgCounter(t, capKey1, deliverKey))
r := sdk.NewRoute(routeMsgCounter, handlerMsgCounter(t, capKey1, deliverKey))
bapp.Router().AddRoute(r)
}
cdc := codec.New()
@ -1451,11 +1460,12 @@ func TestGasConsumptionBadTx(t *testing.T) {
}
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
r := sdk.NewRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
count := msg.(msgCounter).Counter
ctx.GasMeter().ConsumeGas(uint64(count), "counter-handler")
return &sdk.Result{}, nil
})
bapp.Router().AddRoute(r)
}
cdc := codec.New()
@ -1504,11 +1514,12 @@ func TestQuery(t *testing.T) {
}
routerOpt := func(bapp *BaseApp) {
bapp.Router().AddRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
r := sdk.NewRoute(routeMsgCounter, func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
store := ctx.KVStore(capKey1)
store.Set(key, value)
return &sdk.Result{}, nil
})
bapp.Router().AddRoute(r)
}
app := setupBaseApp(t, anteOpt, routerOpt)
@ -1639,8 +1650,8 @@ type testCustomRouter struct {
routes sync.Map
}
func (rtr *testCustomRouter) AddRoute(path string, h sdk.Handler) sdk.Router {
rtr.routes.Store(path, h)
func (rtr *testCustomRouter) AddRoute(route *sdk.Route) sdk.Router {
rtr.routes.Store(route.Path(), route.Handler())
return rtr
}
@ -1662,7 +1673,8 @@ func TestWithRouter(t *testing.T) {
deliverKey := []byte("deliver-key")
routerOpt := func(bapp *BaseApp) {
bapp.SetRouter(&testCustomRouter{routes: sync.Map{}})
bapp.Router().AddRoute(routeMsgCounter, handlerMsgCounter(t, capKey1, deliverKey))
r := sdk.NewRoute(routeMsgCounter, handlerMsgCounter(t, capKey1, deliverKey))
bapp.Router().AddRoute(r)
}
app := setupBaseApp(t, anteOpt, routerOpt)

View File

@ -21,15 +21,15 @@ func NewRouter() *Router {
// AddRoute adds a route path to the router with a given handler. The route must
// be alphanumeric.
func (rtr *Router) AddRoute(path string, h sdk.Handler) sdk.Router {
if !sdk.IsAlphaNumeric(path) {
func (rtr *Router) AddRoute(route *sdk.Route) sdk.Router {
if !sdk.IsAlphaNumeric(route.Path()) {
panic("route expressions can only contain alphanumeric characters")
}
if rtr.routes[path] != nil {
panic(fmt.Sprintf("route %s has already been initialized", path))
if rtr.routes[route.Path()] != nil {
panic(fmt.Sprintf("route %s has already been initialized", route.Path()))
}
rtr.routes[path] = h
rtr.routes[route.Path()] = route.Handler()
return rtr
}

View File

@ -17,15 +17,15 @@ func TestRouter(t *testing.T) {
// require panic on invalid route
require.Panics(t, func() {
rtr.AddRoute("*", testHandler)
rtr.AddRoute(sdk.NewRoute("*", testHandler))
})
rtr.AddRoute("testRoute", testHandler)
rtr.AddRoute(sdk.NewRoute("testRoute", testHandler))
h := rtr.Route(sdk.Context{}, "testRoute")
require.NotNil(t, h)
// require panic on duplicate route
require.Panics(t, func() {
rtr.AddRoute("testRoute", testHandler)
rtr.AddRoute(sdk.NewRoute("testRoute", testHandler))
})
}

View File

@ -28,8 +28,8 @@ Let us break it down:
Module `handler`s are typically implemented in a `./handler.go` file inside the module's folder. The
[module manager](./module-manager.md) is used to add the module's `handler`s to the
[application's `router`](../core/baseapp.md#message-routing) via the `NewHandler()` method. Typically,
the manager's `NewHandler()` method simply calls a `NewHandler()` method defined in `handler.go`,
[application's `router`](../core/baseapp.md#message-routing) via the `Route()` method. Typically,
the manager's `Route()` method simply constructs a Route that calls a `NewHandler()` method defined in `handler.go`,
which looks like the following:
```go

View File

@ -67,8 +67,7 @@ The `AppModule` interface defines the inter-dependent methods modules need to im
Let us go through the methods of `AppModule`:
- `RegisterInvariants(sdk.InvariantRegistry)`: Registers the [`invariants`](./invariants.md) of the module. If the invariants deviates from its predicted value, the [`InvariantRegistry`](./invariants.md#registry) triggers appropriate logic (most often the chain will be halted).
- `Route()`: Returns the name of the module's route, for [`message`s](./messages-and-queries.md#messages) to be routed to the module by [`baseapp`](../core/baseapp.md#message-routing).
- `NewHandler()`: Returns a [`handler`](./handler.md) given the `Type()` of the `message`, in order to process the `message`.
- `Route()`: Returns the route for [`message`s](./messages-and-queries.md#messages) to be routed to the module by [`baseapp`](../core/baseapp.md#message-routing).
- `QuerierRoute()`: Returns the name of the module's query route, for [`queries`](./messages-and-queries.md#queries) to be routes to the module by [`baseapp`](../core/baseapp.md#query-routing).
- `NewQuerierHandler()`: Returns a [`querier`](./querier.md) given the query `path`, in order to process the `query`.
- `BeginBlock(sdk.Context, abci.RequestBeginBlock)`: This method gives module developers the option to implement logic that is automatically triggered at the beginning of each block. Implement empty if no logic needs to be triggered at the beginning of each block for this module.
@ -78,7 +77,7 @@ Let us go through the methods of `AppModule`:
Typically, the various application module interfaces are implemented in a file called `module.go`, located in the module's folder (e.g. `./x/module/module.go`).
Almost every module need to implement the `AppModuleBasic` and `AppModule` interfaces. If the module is only used for genesis, it will implement `AppModuleGenesis` instead of `AppModule`. The concrete type that implements the interface can add parameters that are required for the implementation of the various methods of the interface. For example, the `NewHandler()` function often calls a `NewHandler(k keeper)` function defined in [`handler.go`](./handler.md) and therefore needs to pass the module's [`keeper`](./keeper.md) as parameter.
Almost every module need to implement the `AppModuleBasic` and `AppModule` interfaces. If the module is only used for genesis, it will implement `AppModuleGenesis` instead of `AppModule`. The concrete type that implements the interface can add parameters that are required for the implementation of the various methods of the interface. For example, the `Route()` function often calls a `NewHandler(k keeper)` function defined in [`handler.go`](./handler.md) and therefore needs to pass the module's [`keeper`](./keeper.md) as parameter.
```go
// example

View File

@ -36,8 +36,8 @@ func NewApp(rootDir string, logger log.Logger) (abci.Application, error) {
baseApp.SetInitChainer(InitChainer(capKeyMainStore))
// Set a handler Route.
baseApp.Router().AddRoute("kvstore", KVStoreHandler(capKeyMainStore))
// Set a Route.
baseApp.Router().AddRoute(sdk.NewRoute("kvstore", KVStoreHandler(capKeyMainStore)))
// Load latest version.
if err := baseApp.LoadLatestVersion(); err != nil {

View File

@ -437,10 +437,10 @@ func (mr *MockAppModuleMockRecorder) RegisterInvariants(arg0 interface{}) *gomoc
}
// Route mocks base method
func (m *MockAppModule) Route() string {
func (m *MockAppModule) Route() *types.Route {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Route")
ret0, _ := ret[0].(string)
ret0, _ := ret[0].(*types.Route)
return ret0
}
@ -450,20 +450,6 @@ func (mr *MockAppModuleMockRecorder) Route() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Route", reflect.TypeOf((*MockAppModule)(nil).Route))
}
// NewHandler mocks base method
func (m *MockAppModule) NewHandler() types.Handler {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "NewHandler")
ret0, _ := ret[0].(types.Handler)
return ret0
}
// NewHandler indicates an expected call of NewHandler
func (mr *MockAppModuleMockRecorder) NewHandler() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewHandler", reflect.TypeOf((*MockAppModule)(nil).NewHandler))
}
// QuerierRoute mocks base method
func (m *MockAppModule) QuerierRoute() string {
m.ctrl.T.Helper()

View File

@ -34,17 +34,17 @@ func (m *MockRouter) EXPECT() *MockRouterMockRecorder {
}
// AddRoute mocks base method
func (m *MockRouter) AddRoute(r string, h types.Handler) types.Router {
func (m *MockRouter) AddRoute(r *types.Route) types.Router {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "AddRoute", r, h)
ret := m.ctrl.Call(m, "AddRoute", r)
ret0, _ := ret[0].(types.Router)
return ret0
}
// AddRoute indicates an expected call of AddRoute
func (mr *MockRouterMockRecorder) AddRoute(r, h interface{}) *gomock.Call {
func (mr *MockRouterMockRecorder) AddRoute(r interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoute", reflect.TypeOf((*MockRouter)(nil).AddRoute), r, h)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoute", reflect.TypeOf((*MockRouter)(nil).AddRoute), r)
}
// Route mocks base method

View File

@ -141,8 +141,7 @@ type AppModule interface {
RegisterInvariants(sdk.InvariantRegistry)
// routes
Route() string
NewHandler() sdk.Handler
Route() *sdk.Route
// Deprecated: use RegisterQueryService
QuerierRoute() string
// Deprecated: use RegisterQueryService
@ -173,10 +172,7 @@ func NewGenesisOnlyAppModule(amg AppModuleGenesis) AppModule {
func (GenesisOnlyAppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
// Route empty module message route
func (GenesisOnlyAppModule) Route() string { return "" }
// NewHandler returns an empty module handler
func (GenesisOnlyAppModule) NewHandler() sdk.Handler { return nil }
func (GenesisOnlyAppModule) Route() *sdk.Route { return nil }
// QuerierRoute returns an empty module querier route
func (GenesisOnlyAppModule) QuerierRoute() string { return "" }
@ -255,8 +251,8 @@ func (m *Manager) RegisterInvariants(ir sdk.InvariantRegistry) {
// RegisterRoutes registers all module routes and module querier routes
func (m *Manager) RegisterRoutes(router sdk.Router, queryRouter sdk.QueryRouter) {
for _, module := range m.Modules {
if module.Route() != "" {
router.AddRoute(module.Route(), module.NewHandler())
if module.Route() != nil {
router.AddRoute(module.Route())
}
if module.QuerierRoute() != "" {
queryRouter.AddRoute(module.QuerierRoute(), module.NewQuerierHandler())

View File

@ -69,9 +69,8 @@ func TestGenesisOnlyAppModule(t *testing.T) {
mockInvariantRegistry := mocks.NewMockInvariantRegistry(mockCtrl)
goam := module.NewGenesisOnlyAppModule(mockModule)
require.Empty(t, goam.Route())
require.Nil(t, goam.Route())
require.Empty(t, goam.QuerierRoute())
require.Nil(t, goam.NewHandler())
require.Nil(t, goam.NewQuerierHandler())
// no-op
@ -142,12 +141,10 @@ func TestManager_RegisterRoutes(t *testing.T) {
router := mocks.NewMockRouter(mockCtrl)
handler1, handler2 := sdk.Handler(nil), sdk.Handler(nil)
mockAppModule1.EXPECT().Route().Times(2).Return("route1")
mockAppModule2.EXPECT().Route().Times(2).Return("route2")
mockAppModule1.EXPECT().NewHandler().Times(1).Return(handler1)
mockAppModule2.EXPECT().NewHandler().Times(1).Return(handler2)
router.EXPECT().AddRoute(gomock.Eq("route1"), gomock.Eq(handler1)).Times(1)
router.EXPECT().AddRoute(gomock.Eq("route2"), gomock.Eq(handler2)).Times(1)
mockAppModule1.EXPECT().Route().Times(2).Return(sdk.NewRoute("route1", handler1))
mockAppModule2.EXPECT().Route().Times(2).Return(sdk.NewRoute("route2", handler2))
router.EXPECT().AddRoute(gomock.Eq(sdk.NewRoute("route1", handler1))).Times(1)
router.EXPECT().AddRoute(gomock.Eq(sdk.NewRoute("route2", handler2))).Times(1)
queryRouter := mocks.NewMockQueryRouter(mockCtrl)
mockAppModule1.EXPECT().QuerierRoute().Times(2).Return("querierRoute1")

View File

@ -26,10 +26,27 @@ var (
// Router provides handlers for each transaction type.
type Router interface {
AddRoute(r string, h Handler) Router
AddRoute(r *Route) Router
Route(ctx Context, path string) Handler
}
type Route struct {
path string
handler Handler
}
func NewRoute(p string, h Handler) *Route {
return &Route{path: p, handler: h}
}
func (r Route) Path() string {
return r.path
}
func (r Route) Handler() Handler {
return r.handler
}
// QueryRouter provides queryables for each query path.
type QueryRouter interface {
AddRoute(r string, h Querier) QueryRouter

View File

@ -105,10 +105,7 @@ func (AppModule) Name() string {
func (AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
// Route returns the message routing key for the auth module.
func (AppModule) Route() string { return "" }
// NewHandler returns an sdk.Handler for the auth module.
func (AppModule) NewHandler() sdk.Handler { return nil }
func (AppModule) Route() *sdk.Route { return nil }
// QuerierRoute returns the auth module's querier route name.
func (AppModule) QuerierRoute() string {

View File

@ -108,10 +108,9 @@ func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {
}
// Route returns the message routing key for the bank module.
func (AppModule) Route() string { return RouterKey }
// NewHandler returns an sdk.Handler for the bank module.
func (am AppModule) NewHandler() sdk.Handler { return NewHandler(am.keeper) }
func (am AppModule) Route() *sdk.Route {
return sdk.NewRoute(RouterKey, NewHandler(am.keeper))
}
// QuerierRoute returns the bank module's querier route name.
func (AppModule) QuerierRoute() string { return RouterKey }

View File

@ -95,14 +95,11 @@ func (am AppModule) Name() string {
}
// Route returns the capability module's message routing key.
func (AppModule) Route() string { return "" }
func (AppModule) Route() *sdk.Route { return nil }
// QuerierRoute returns the capability module's query routing key.
func (AppModule) QuerierRoute() string { return "" }
// NewHandler returns the capability module's message Handler.
func (am AppModule) NewHandler() sdk.Handler { return nil }
// NewQuerierHandler returns the capability module's Querier.
func (am AppModule) NewQuerierHandler() sdk.Querier { return nil }

View File

@ -94,13 +94,8 @@ func (AppModule) Name() string {
func (AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
// Route returns the message routing key for the crisis module.
func (AppModule) Route() string {
return RouterKey
}
// NewHandler returns an sdk.Handler for the crisis module.
func (am AppModule) NewHandler() sdk.Handler {
return NewHandler(*am.keeper)
func (am AppModule) Route() *sdk.Route {
return sdk.NewRoute(RouterKey, NewHandler(*am.keeper))
}
// QuerierRoute returns no querier route.

View File

@ -119,13 +119,8 @@ func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {
}
// Route returns the message routing key for the distribution module.
func (AppModule) Route() string {
return RouterKey
}
// NewHandler returns an sdk.Handler for the distribution module.
func (am AppModule) NewHandler() sdk.Handler {
return NewHandler(am.keeper)
func (am AppModule) Route() *sdk.Route {
return sdk.NewRoute(RouterKey, NewHandler(am.keeper))
}
// QuerierRoute returns the distribution module's querier route name.

View File

@ -127,8 +127,8 @@ func (am AppModule) Name() string {
}
// Route returns the evidence module's message routing key.
func (AppModule) Route() string {
return RouterKey
func (am AppModule) Route() *sdk.Route {
return sdk.NewRoute(RouterKey, NewHandler(am.keeper))
}
// QuerierRoute returns the evidence module's query routing key.
@ -136,11 +136,6 @@ func (AppModule) QuerierRoute() string {
return QuerierRoute
}
// NewHandler returns the evidence module's message Handler.
func (am AppModule) NewHandler() sdk.Handler {
return NewHandler(am.keeper)
}
// NewQuerierHandler returns the evidence module's Querier.
func (am AppModule) NewQuerierHandler() sdk.Querier {
return NewQuerier(am.keeper)

View File

@ -135,13 +135,8 @@ func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {
}
// Route returns the message routing key for the gov module.
func (AppModule) Route() string {
return RouterKey
}
// NewHandler returns an sdk.Handler for the gov module.
func (am AppModule) NewHandler() sdk.Handler {
return NewHandler(am.keeper)
func (am AppModule) Route() *sdk.Route {
return sdk.NewRoute(RouterKey, NewHandler(am.keeper))
}
// QuerierRoute returns the gov module's querier route name.

View File

@ -105,13 +105,8 @@ func (AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {
}
// Route implements the AppModule interface
func (AppModule) Route() string {
return RouterKey
}
// NewHandler implements the AppModule interface
func (am AppModule) NewHandler() sdk.Handler {
return NewHandler(am.keeper)
func (am AppModule) Route() *sdk.Route {
return sdk.NewRoute(RouterKey, NewHandler(am.keeper))
}
// QuerierRoute implements the AppModule interface

View File

@ -108,13 +108,8 @@ func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {
}
// Route returns the message routing key for the ibc module.
func (AppModule) Route() string {
return RouterKey
}
// NewHandler returns an sdk.Handler for the ibc module.
func (am AppModule) NewHandler() sdk.Handler {
return NewHandler(*am.keeper)
func (am AppModule) Route() *sdk.Route {
return sdk.NewRoute(RouterKey, NewHandler(*am.keeper))
}
// QuerierRoute returns the ibc module's querier route name.

View File

@ -100,10 +100,7 @@ func (AppModule) Name() string {
func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
// Route returns the message routing key for the mint module.
func (AppModule) Route() string { return "" }
// NewHandler returns an sdk.Handler for the mint module.
func (am AppModule) NewHandler() sdk.Handler { return nil }
func (AppModule) Route() *sdk.Route { return nil }
// QuerierRoute returns the mint module's querier route name.
func (AppModule) QuerierRoute() string {

View File

@ -79,14 +79,12 @@ func NewAppModule(k Keeper) AppModule {
func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
func (am AppModule) NewHandler() sdk.Handler { return nil }
// InitGenesis performs a no-op.
func (am AppModule) InitGenesis(_ sdk.Context, _ codec.JSONMarshaler, _ json.RawMessage) []abci.ValidatorUpdate {
return []abci.ValidatorUpdate{}
}
func (AppModule) Route() string { return "" }
func (AppModule) Route() *sdk.Route { return nil }
// GenerateGenesisState performs a no-op.
func (AppModule) GenerateGenesisState(simState *module.SimulationState) {}

View File

@ -110,13 +110,8 @@ func (AppModule) Name() string {
func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
// Route returns the message routing key for the slashing module.
func (AppModule) Route() string {
return RouterKey
}
// NewHandler returns an sdk.Handler for the slashing module.
func (am AppModule) NewHandler() sdk.Handler {
return NewHandler(am.keeper)
func (am AppModule) Route() *sdk.Route {
return sdk.NewRoute(RouterKey, NewHandler(am.keeper))
}
// QuerierRoute returns the slashing module's querier route name.

View File

@ -134,13 +134,8 @@ func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {
}
// Route returns the message routing key for the staking module.
func (AppModule) Route() string {
return RouterKey
}
// NewHandler returns an sdk.Handler for the staking module.
func (am AppModule) NewHandler() sdk.Handler {
return NewHandler(am.keeper)
func (am AppModule) Route() *sdk.Route {
return sdk.NewRoute(RouterKey, NewHandler(am.keeper))
}
// QuerierRoute returns the staking module's querier route name.

View File

@ -98,10 +98,7 @@ func NewAppModule(keeper Keeper) AppModule {
func (AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
// Route is empty, as we do not handle Messages (just proposals)
func (AppModule) Route() string { return "" }
// NewHandler is empty, as we do not handle Messages (just proposals)
func (am AppModule) NewHandler() sdk.Handler { return nil }
func (AppModule) Route() *sdk.Route { return nil }
// QuerierRoute returns the route we respond to for abci queries
func (AppModule) QuerierRoute() string { return QuerierKey }