From 89c1469f767d6a466a06bb63111165a2d955ca0c Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 11 Aug 2023 10:23:16 +0200 Subject: [PATCH 1/5] refactor!: remove legacy handler --- docs/docs/building-modules/01-module-manager.md | 1 - types/handler.go | 3 --- 2 files changed, 4 deletions(-) diff --git a/docs/docs/building-modules/01-module-manager.md b/docs/docs/building-modules/01-module-manager.md index b7f852a7a77f..6f28829ce1d1 100644 --- a/docs/docs/building-modules/01-module-manager.md +++ b/docs/docs/building-modules/01-module-manager.md @@ -261,7 +261,6 @@ The module manager is used throughout the application whenever an action on a co * `SetOrderPrepareCheckStaters(moduleNames ...string)`: Sets the order in which the `PrepareCheckState()` function of each module will be called during commit of each block. This function is generally called from the application's main [constructor function](../basics/00-app-anatomy.md#constructor-function). * `SetOrderMigrations(moduleNames ...string)`: Sets the order of migrations to be run. If not set then migrations will be run with an order defined in `DefaultMigrationsOrder`. * `RegisterInvariants(ir sdk.InvariantRegistry)`: Registers the [invariants](./07-invariants.md) of module implementing the `HasInvariants` interface. -* `RegisterRoutes(router sdk.Router, queryRouter sdk.QueryRouter, legacyQuerierCdc *codec.LegacyAmino)`: Registers legacy [`Msg`](./02-messages-and-queries.md#messages) and [`querier`](./04-query-services.md#legacy-queriers) routes. * `RegisterServices(cfg Configurator)`: Registers the services of modules implementing the `HasServices` interface. * `InitGenesis(ctx context.Context, cdc codec.JSONCodec, genesisData map[string]json.RawMessage)`: Calls the [`InitGenesis`](./08-genesis.md#initgenesis) function of each module when the application is first started, in the order defined in `OrderInitGenesis`. Returns an `abci.ResponseInitChain` to the underlying consensus engine, which can contain validator updates. * `ExportGenesis(ctx context.Context, cdc codec.JSONCodec)`: Calls the [`ExportGenesis`](./08-genesis.md#exportgenesis) function of each module, in the order defined in `OrderExportGenesis`. The export constructs a genesis file from a previously existing state, and is mainly used when a hard-fork upgrade of the chain is required. diff --git a/types/handler.go b/types/handler.go index 32750c81c1d4..456c3904e43c 100644 --- a/types/handler.go +++ b/types/handler.go @@ -1,8 +1,5 @@ package types -// Handler defines the core of the state transition function of an application. -type Handler func(ctx Context, msg Msg) (*Result, error) - // AnteHandler authenticates transactions, before their internal messages are handled. // If newCtx.IsZero(), ctx is used instead. type AnteHandler func(ctx Context, tx Tx, simulate bool) (newCtx Context, err error) From 26e8f6711b2fec74a5517da28f23b6e5f17a7ba7 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 11 Aug 2023 10:52:45 +0200 Subject: [PATCH 2/5] simplify --- server/mock/app.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/mock/app.go b/server/mock/app.go index b859769a305e..cc9d496b048d 100644 --- a/server/mock/app.go +++ b/server/mock/app.go @@ -66,7 +66,7 @@ func NewApp(rootDir string, logger log.Logger) (servertypes.ABCI, error) { // KVStoreHandler is a simple handler that takes KVStoreTx and writes // them to the db. -func KVStoreHandler(storeKey storetypes.StoreKey) sdk.Handler { +func KVStoreHandler(storeKey storetypes.StoreKey) bam.MsgServiceHandler { return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) { dTx, ok := msg.(*KVStoreTx) if !ok { From 9bc84c9d49a133ce498d5f213a205d7b17e4cbb1 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 11 Aug 2023 11:00:29 +0200 Subject: [PATCH 3/5] updates --- docs/docs/core/08-events.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/docs/docs/core/08-events.md b/docs/docs/core/08-events.md index 9ea8ca900350..e063a991cdaa 100644 --- a/docs/docs/core/08-events.md +++ b/docs/docs/core/08-events.md @@ -96,14 +96,7 @@ ctx.EventManager().EmitEvent( ) ``` -Module's `handler` function should also set a new `EventManager` to the `context` to isolate emitted Events per `message`: - -```go -func NewHandler(keeper Keeper) sdk.Handler { - return func(ctx context.Context, msg sdk.Msg) (*sdk.Result, error) { - ctx = ctx.WithEventManager(sdk.NewEventManager()) - switch msg := msg.(type) { -``` +Where the `EventManager` is accessed via the [`Context`](./02-context.md). See the [`Msg` services](../building-modules/03-msg-services.md) concept doc for a more detailed view on how to typically implement Events and use the `EventManager` in modules. From ab527374d6eb3382cea0a2129787eea41ec17d18 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 11 Aug 2023 11:41:56 +0200 Subject: [PATCH 4/5] add changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a0fdbe7edf1..4de91f5fd7dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### API Breaking Changes +* (types) [#17358](https://github.com/cosmos/cosmos-sdk/pull/17358) Remove deprecated `sdk.Handler`. * (x/slashing) [17044](https://github.com/cosmos/cosmos-sdk/pull/17044) Use collections for `AddrPubkeyRelation`: * remove from `types`: `AddrPubkeyRelationKey` * remove from `Keeper`: `AddPubkey` From 3dee516aa28183be414008bbaf4df9b6905923b5 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 11 Aug 2023 11:44:18 +0200 Subject: [PATCH 5/5] updates --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4de91f5fd7dc..518b62b99691 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,7 +64,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### API Breaking Changes -* (types) [#17358](https://github.com/cosmos/cosmos-sdk/pull/17358) Remove deprecated `sdk.Handler`. +* (types) [#17358](https://github.com/cosmos/cosmos-sdk/pull/17358) Remove deprecated `sdk.Handler`, use `baseapp.MsgServiceHandler` instead. * (x/slashing) [17044](https://github.com/cosmos/cosmos-sdk/pull/17044) Use collections for `AddrPubkeyRelation`: * remove from `types`: `AddrPubkeyRelationKey` * remove from `Keeper`: `AddPubkey`