From 3feb2c08b59669d70946cd88300cd415f2c5f643 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Tue, 17 Sep 2024 11:01:19 +0200 Subject: [PATCH] docs: demonstrate how to wire custom ante handlers in 0.50 app_di (#21767) --- simapp/app_config.go | 6 +++-- simapp/{app_v2.go => app_di.go} | 31 ++++++++++++++++++++-- simapp/simd/cmd/{root_v2.go => root_di.go} | 0 3 files changed, 33 insertions(+), 4 deletions(-) rename simapp/{app_v2.go => app_di.go} (93%) rename simapp/simd/cmd/{root_v2.go => root_di.go} (100%) diff --git a/simapp/app_config.go b/simapp/app_config.go index 2b11313e60..13c9a984ca 100644 --- a/simapp/app_config.go +++ b/simapp/app_config.go @@ -202,8 +202,10 @@ var ( Config: appconfig.WrapAny(¶msmodulev1.Module{}), }, { - Name: "tx", - Config: appconfig.WrapAny(&txconfigv1.Config{}), + Name: "tx", + Config: appconfig.WrapAny(&txconfigv1.Config{ + SkipAnteHandler: true, // Enable this to skip the default antehandlers and set custom ante handlers. + }), }, { Name: genutiltypes.ModuleName, diff --git a/simapp/app_v2.go b/simapp/app_di.go similarity index 93% rename from simapp/app_v2.go rename to simapp/app_di.go index dff1ec74ea..71999c12ac 100644 --- a/simapp/app_v2.go +++ b/simapp/app_di.go @@ -29,6 +29,7 @@ import ( testdata_pulsar "github.com/cosmos/cosmos-sdk/testutil/testdata/testpb" "github.com/cosmos/cosmos-sdk/types/module" "github.com/cosmos/cosmos-sdk/x/auth" + "github.com/cosmos/cosmos-sdk/x/auth/ante" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -81,7 +82,7 @@ type SimApp struct { GroupKeeper groupkeeper.Keeper NFTKeeper nftkeeper.Keeper ConsensusParamsKeeper consensuskeeper.Keeper - CircuitBreakerKeeper circuitkeeper.Keeper + CircuitKeeper circuitkeeper.Keeper // simulation manager sm *module.SimulationManager @@ -182,7 +183,7 @@ func NewSimApp( &app.GroupKeeper, &app.NFTKeeper, &app.ConsensusParamsKeeper, - &app.CircuitBreakerKeeper, + &app.CircuitKeeper, ); err != nil { panic(err) } @@ -248,6 +249,9 @@ func NewSimApp( app.sm.RegisterStoreDecoders() + // set custom ante handler + app.setAnteHandler(app.txConfig) + // A custom InitChainer can be set if extra pre-init-genesis logic is required. // By default, when using app wiring enabled module, this is not required. // For instance, the upgrade module will set automatically the module version map in its init genesis thanks to app wiring. @@ -266,6 +270,29 @@ func NewSimApp( return app } +// setAnteHandler sets custom ante handlers. +// "x/auth/tx" pre-defined ante handler have been disabled in app_config. +func (app *SimApp) setAnteHandler(txConfig client.TxConfig) { + anteHandler, err := NewAnteHandler( + HandlerOptions{ + ante.HandlerOptions{ + AccountKeeper: app.AccountKeeper, + BankKeeper: app.BankKeeper, + SignModeHandler: txConfig.SignModeHandler(), + FeegrantKeeper: app.FeeGrantKeeper, + SigGasConsumer: ante.DefaultSigVerificationGasConsumer, + }, + &app.CircuitKeeper, + }, + ) + if err != nil { + panic(err) + } + + // Set the AnteHandler for the app + app.SetAnteHandler(anteHandler) +} + // LegacyAmino returns SimApp's amino codec. // // NOTE: This is solely to be used for testing purposes as it may be desirable diff --git a/simapp/simd/cmd/root_v2.go b/simapp/simd/cmd/root_di.go similarity index 100% rename from simapp/simd/cmd/root_v2.go rename to simapp/simd/cmd/root_di.go