diff --git a/modules/apps/27-interchain-accounts/controller/keeper/account.go b/modules/apps/27-interchain-accounts/controller/keeper/account.go index b0d77bf4640..237098ee4a7 100644 --- a/modules/apps/27-interchain-accounts/controller/keeper/account.go +++ b/modules/apps/27-interchain-accounts/controller/keeper/account.go @@ -8,7 +8,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/cosmos/ibc-go/v9/internal/logging" icatypes "github.com/cosmos/ibc-go/v9/modules/apps/27-interchain-accounts/types" channeltypes "github.com/cosmos/ibc-go/v9/modules/core/04-channel/types" host "github.com/cosmos/ibc-go/v9/modules/core/24-host" @@ -84,12 +83,6 @@ func (k Keeper) registerInterchainAccount(ctx context.Context, connectionID, por return "", err } - events := sdkCtx.EventManager().Events() - k.Logger(ctx).Debug("emitting interchain account registration events", logging.SdkEventsToLogArguments(events)) - - // NOTE: The sdk msg handler creates a new EventManager, so events must be correctly propagated back to the current context - sdkCtx.EventManager().EmitEvents(events) - firstMsgResponse := res.MsgResponses[0] channelOpenInitResponse, ok := firstMsgResponse.GetCachedValue().(*channeltypes.MsgChannelOpenInitResponse) if !ok { diff --git a/modules/apps/27-interchain-accounts/host/client/cli/tx_test.go b/modules/apps/27-interchain-accounts/host/client/cli/tx_test.go index 7f1decd4ab5..ee313ca5e22 100644 --- a/modules/apps/27-interchain-accounts/host/client/cli/tx_test.go +++ b/modules/apps/27-interchain-accounts/host/client/cli/tx_test.go @@ -6,6 +6,7 @@ import ( "github.com/stretchr/testify/require" + "cosmossdk.io/core/registry" banktypes "cosmossdk.io/x/bank/types" stakingtypes "cosmossdk.io/x/staking/types" "github.com/cosmos/cosmos-sdk/codec" @@ -46,7 +47,7 @@ func TestGeneratePacketData(t *testing.T) { memo string expectedPass bool message string - registerInterfaceFn func(registry codectypes.InterfaceRegistry) + registerInterfaceFn func(registry registry.InterfaceRegistrar) assertionFn func(t *testing.T, msgs []sdk.Msg) }{ { @@ -54,7 +55,7 @@ func TestGeneratePacketData(t *testing.T) { memo: "", expectedPass: true, message: multiMsg, - registerInterfaceFn: func(registry codectypes.InterfaceRegistry) { + registerInterfaceFn: func(registry registry.InterfaceRegistrar) { stakingtypes.RegisterInterfaces(registry) banktypes.RegisterInterfaces(registry) }, diff --git a/modules/apps/27-interchain-accounts/simulation/proposals.go b/modules/apps/27-interchain-accounts/simulation/proposals.go index 1776362f8fc..0ad8ad20801 100644 --- a/modules/apps/27-interchain-accounts/simulation/proposals.go +++ b/modules/apps/27-interchain-accounts/simulation/proposals.go @@ -1,8 +1,10 @@ package simulation import ( + "context" "math/rand" + coreaddress "cosmossdk.io/core/address" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/address" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" @@ -25,14 +27,14 @@ const ( func ProposalMsgs(controllerKeeper *controllerkeeper.Keeper, hostKeeper *hostkeeper.Keeper) []simtypes.WeightedProposalMsg { msgs := make([]simtypes.WeightedProposalMsg, 0, 2) if hostKeeper != nil { - msgs = append(msgs, simulation.NewWeightedProposalMsg( + msgs = append(msgs, simulation.NewWeightedProposalMsgX( OpWeightMsgUpdateParams, DefaultWeightMsgUpdateParams, SimulateHostMsgUpdateParams, )) } if controllerKeeper != nil { - msgs = append(msgs, simulation.NewWeightedProposalMsg( + msgs = append(msgs, simulation.NewWeightedProposalMsgX( OpWeightMsgUpdateParams, DefaultWeightMsgUpdateParams, SimulateControllerMsgUpdateParams, @@ -42,7 +44,7 @@ func ProposalMsgs(controllerKeeper *controllerkeeper.Keeper, hostKeeper *hostkee } // SimulateHostMsgUpdateParams returns a MsgUpdateParams for the host module -func SimulateHostMsgUpdateParams(_ *rand.Rand, _ sdk.Context, _ []simtypes.Account) sdk.Msg { +func SimulateHostMsgUpdateParams(ctx context.Context, _ *rand.Rand, _ []simtypes.Account, _ coreaddress.Codec) (sdk.Msg, error) { var signer sdk.AccAddress = address.Module("gov") params := types.DefaultParams() params.HostEnabled = false @@ -50,11 +52,11 @@ func SimulateHostMsgUpdateParams(_ *rand.Rand, _ sdk.Context, _ []simtypes.Accou return &types.MsgUpdateParams{ Signer: signer.String(), Params: params, - } + }, nil } // SimulateControllerMsgUpdateParams returns a MsgUpdateParams for the controller module -func SimulateControllerMsgUpdateParams(_ *rand.Rand, _ sdk.Context, _ []simtypes.Account) sdk.Msg { +func SimulateControllerMsgUpdateParams(ctx context.Context, _ *rand.Rand, _ []simtypes.Account, _ coreaddress.Codec) (sdk.Msg, error) { var signer sdk.AccAddress = address.Module("gov") params := controllertypes.DefaultParams() params.ControllerEnabled = false @@ -62,5 +64,5 @@ func SimulateControllerMsgUpdateParams(_ *rand.Rand, _ sdk.Context, _ []simtypes return &controllertypes.MsgUpdateParams{ Signer: signer.String(), Params: params, - } + }, nil } diff --git a/modules/apps/27-interchain-accounts/simulation/proposals_test.go b/modules/apps/27-interchain-accounts/simulation/proposals_test.go index 4799b16f57a..d10ab78c4fa 100644 --- a/modules/apps/27-interchain-accounts/simulation/proposals_test.go +++ b/modules/apps/27-interchain-accounts/simulation/proposals_test.go @@ -84,7 +84,8 @@ func TestProposalMsgs(t *testing.T) { require.Equal(t, simulation.OpWeightMsgUpdateParams, weightedMsg.AppParamsKey()) require.Equal(t, simulation.DefaultWeightMsgUpdateParams, weightedMsg.DefaultWeight()) - msg := weightedMsg.MsgSimulatorFn()(r, ctx, accounts) + msg, err := weightedMsg.MsgSimulatorFn()(ctx, r, accounts, nil) + require.NoError(t, err) if msgUpdateHostParams, ok := msg.(*hosttypes.MsgUpdateParams); ok { require.Equal(t, tc.expMsgs[idx], msgUpdateHostParams) diff --git a/modules/apps/29-fee/module.go b/modules/apps/29-fee/module.go index 05d2f1cd0c2..e47dfb7e161 100644 --- a/modules/apps/29-fee/module.go +++ b/modules/apps/29-fee/module.go @@ -13,7 +13,6 @@ import ( "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" @@ -23,18 +22,18 @@ import ( ) var ( - _ module.AppModule = (*AppModule)(nil) - _ module.AppModuleBasic = (*AppModuleBasic)(nil) - _ module.AppModuleSimulation = (*AppModule)(nil) - _ module.HasGenesis = (*AppModule)(nil) - _ module.HasName = (*AppModule)(nil) - _ module.HasConsensusVersion = (*AppModule)(nil) - _ module.HasServices = (*AppModule)(nil) - _ appmodule.AppModule = (*AppModule)(nil) + _ module.AppModule = (*AppModule)(nil) + _ module.AppModuleSimulation = (*AppModule)(nil) + _ module.HasGenesis = (*AppModule)(nil) + _ appmodule.HasConsensusVersion = (*AppModule)(nil) + _ module.HasServices = (*AppModule)(nil) + _ appmodule.AppModule = (*AppModule)(nil) ) // AppModuleBasic is the 29-fee AppModuleBasic -type AppModuleBasic struct{} +type AppModuleBasic struct { + cdc codec.Codec +} // Name implements AppModuleBasic interface func (AppModuleBasic) Name() string { @@ -59,14 +58,14 @@ func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) // DefaultGenesis returns default genesis state as raw bytes for the ibc // 29-fee module. -func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage { - return cdc.MustMarshalJSON(types.DefaultGenesisState()) +func (am AppModuleBasic) DefaultGenesis() json.RawMessage { + return am.cdc.MustMarshalJSON(types.DefaultGenesisState()) } // ValidateGenesis performs genesis state validation for the 29-fee module. -func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, bz json.RawMessage) error { +func (am AppModuleBasic) ValidateGenesis(bz json.RawMessage) error { var gs types.GenesisState - if err := cdc.UnmarshalJSON(bz, &gs); err != nil { + if err := am.cdc.UnmarshalJSON(bz, &gs); err != nil { return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } @@ -117,17 +116,18 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { // InitGenesis performs genesis initialization for the ibc-29-fee module. It returns // no validator updates. -func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) { +func (am AppModule) InitGenesis(ctx context.Context, data json.RawMessage) error { var genesisState types.GenesisState - cdc.MustUnmarshalJSON(data, &genesisState) + am.cdc.MustUnmarshalJSON(data, &genesisState) am.keeper.InitGenesis(ctx, genesisState) + return nil } // ExportGenesis returns the exported genesis state as raw bytes for the ibc-29-fee // module. -func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { +func (am AppModule) ExportGenesis(ctx context.Context) (json.RawMessage, error) { gs := am.keeper.ExportGenesis(ctx) - return cdc.MustMarshalJSON(gs) + return am.cdc.MarshalJSON(gs) } // ConsensusVersion implements AppModule/ConsensusVersion. diff --git a/modules/apps/29-fee/types/msgs_test.go b/modules/apps/29-fee/types/msgs_test.go index be39ea3ac2b..e097208fbfc 100644 --- a/modules/apps/29-fee/types/msgs_test.go +++ b/modules/apps/29-fee/types/msgs_test.go @@ -98,7 +98,7 @@ func TestRegisterPayeeGetSigners(t *testing.T) { msg := types.NewMsgRegisterPayee(ibctesting.MockPort, ibctesting.FirstChannelID, accAddress.String(), defaultAccAddress) encodingCfg := moduletestutil.MakeTestEncodingConfig(testutil.CodecOptions{}, modulefee.AppModule{}) - signers, _, err := encodingCfg.Codec.GetMsgV1Signers(msg) + signers, _, err := encodingCfg.Codec.GetMsgSigners(msg) require.NoError(t, err) require.Equal(t, accAddress.Bytes(), signers[0]) } @@ -186,7 +186,7 @@ func TestRegisterCountepartyAddressGetSigners(t *testing.T) { msg := types.NewMsgRegisterCounterpartyPayee(ibctesting.MockPort, ibctesting.FirstChannelID, accAddress.String(), defaultAccAddress) encodingCfg := moduletestutil.MakeTestEncodingConfig(testutil.CodecOptions{}, modulefee.AppModule{}) - signers, _, err := encodingCfg.Codec.GetMsgV1Signers(msg) + signers, _, err := encodingCfg.Codec.GetMsgSigners(msg) require.NoError(t, err) require.Equal(t, accAddress.Bytes(), signers[0]) } @@ -265,7 +265,7 @@ func TestPayPacketFeeGetSigners(t *testing.T) { msg := types.NewMsgPayPacketFee(fee, ibctesting.MockFeePort, ibctesting.FirstChannelID, refundAddr.String(), nil) encodingCfg := moduletestutil.MakeTestEncodingConfig(testutil.CodecOptions{}, modulefee.AppModule{}) - signers, _, err := encodingCfg.Codec.GetMsgV1Signers(msg) + signers, _, err := encodingCfg.Codec.GetMsgSigners(msg) require.NoError(t, err) require.Equal(t, refundAddr.Bytes(), signers[0]) } @@ -404,7 +404,7 @@ func TestPayPacketFeeAsyncGetSigners(t *testing.T) { msg := types.NewMsgPayPacketFeeAsync(packetID, packetFee) encodingCfg := moduletestutil.MakeTestEncodingConfig(testutil.CodecOptions{}, modulefee.AppModule{}) - signers, _, err := encodingCfg.Codec.GetMsgV1Signers(msg) + signers, _, err := encodingCfg.Codec.GetMsgSigners(msg) require.NoError(t, err) require.Equal(t, refundAddr.Bytes(), signers[0]) } diff --git a/modules/apps/transfer/keeper/forwarding.go b/modules/apps/transfer/keeper/forwarding.go index cb68b9d919a..fbf015d0413 100644 --- a/modules/apps/transfer/keeper/forwarding.go +++ b/modules/apps/transfer/keeper/forwarding.go @@ -83,7 +83,7 @@ func (k Keeper) revertForwardedPacket(ctx context.Context, forwardedPacket chann // given that the packet is being reversed, we check the DestinationChannel and DestinationPort // of the forwardedPacket to see if a hop was added to the trace during the receive step if token.Denom.HasPrefix(forwardedPacket.DestinationPort, forwardedPacket.DestinationChannel) { - if err := k.bankKeeper.BurnCoins(ctx, types.ModuleName, sdk.NewCoins(coin)); err != nil { + if err := k.bankKeeper.BurnCoins(ctx, forwardingAddr, sdk.NewCoins(coin)); err != nil { return err } } else { diff --git a/modules/apps/transfer/keeper/genesis.go b/modules/apps/transfer/keeper/genesis.go index d9653ce3c6c..e107df83934 100644 --- a/modules/apps/transfer/keeper/genesis.go +++ b/modules/apps/transfer/keeper/genesis.go @@ -1,13 +1,13 @@ package keeper import ( - sdk "github.com/cosmos/cosmos-sdk/types" + "context" "github.com/cosmos/ibc-go/v9/modules/apps/transfer/types" ) // InitGenesis initializes the ibc-transfer state and binds to PortID. -func (k Keeper) InitGenesis(ctx sdk.Context, state types.GenesisState) { +func (k Keeper) InitGenesis(ctx context.Context, state types.GenesisState) { k.SetPort(ctx, state.PortId) for _, denom := range state.Denoms { @@ -31,7 +31,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, state types.GenesisState) { } // ExportGenesis exports ibc-transfer module's portID and denom trace info into its genesis state. -func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { +func (k Keeper) ExportGenesis(ctx context.Context) *types.GenesisState { return &types.GenesisState{ PortId: k.GetPort(ctx), Denoms: k.GetAllDenoms(ctx), diff --git a/modules/apps/transfer/keeper/keeper_test.go b/modules/apps/transfer/keeper/keeper_test.go index 1ace8029507..a4cd9fb66fb 100644 --- a/modules/apps/transfer/keeper/keeper_test.go +++ b/modules/apps/transfer/keeper/keeper_test.go @@ -6,12 +6,12 @@ import ( testifysuite "github.com/stretchr/testify/suite" + "cosmossdk.io/math" sdkmath "cosmossdk.io/math" storetypes "cosmossdk.io/store/types" minttypes "cosmossdk.io/x/mint/types" "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/runtime" sdk "github.com/cosmos/cosmos-sdk/types" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" @@ -192,7 +192,6 @@ func (suite *KeeperTestSuite) TestSetGetTotalEscrowForDenom() { func (suite *KeeperTestSuite) TestGetAllDenomEscrows() { var ( store storetypes.KVStore - cdc codec.Codec expDenomEscrows sdk.Coins ) @@ -208,7 +207,8 @@ func (suite *KeeperTestSuite) TestGetAllDenomEscrows() { amount := sdkmath.NewInt(100) expDenomEscrows = append(expDenomEscrows, sdk.NewCoin(denom, amount)) - bz := cdc.MustMarshal(&sdk.IntProto{Int: amount}) + bz, err := math.Int(amount).Marshal() + suite.Require().NoError(err) store.Set(types.TotalEscrowForDenomKey(denom), bz) }, true, @@ -220,14 +220,16 @@ func (suite *KeeperTestSuite) TestGetAllDenomEscrows() { amount := sdkmath.NewInt(100) expDenomEscrows = append(expDenomEscrows, sdk.NewCoin(denom, amount)) - bz := cdc.MustMarshal(&sdk.IntProto{Int: amount}) + bz, err := math.Int(amount).Marshal() + suite.Require().NoError(err) store.Set(types.TotalEscrowForDenomKey(denom), bz) denom = "bar/foo" amount = sdkmath.NewInt(50) expDenomEscrows = append(expDenomEscrows, sdk.NewCoin(denom, amount)) - bz = cdc.MustMarshal(&sdk.IntProto{Int: amount}) + bz, err = math.Int(amount).Marshal() + suite.Require().NoError(err) store.Set(types.TotalEscrowForDenomKey(denom), bz) }, true, @@ -239,7 +241,8 @@ func (suite *KeeperTestSuite) TestGetAllDenomEscrows() { amount := sdkmath.NewInt(100) expDenomEscrows = append(expDenomEscrows, sdk.NewCoin(denom, amount)) - bz := cdc.MustMarshal(&sdk.IntProto{Int: amount}) + bz, err := math.Int(amount).Marshal() + suite.Require().NoError(err) store.Set(types.TotalEscrowForDenomKey(denom), bz) }, true, @@ -250,7 +253,8 @@ func (suite *KeeperTestSuite) TestGetAllDenomEscrows() { denom := "" amount := sdkmath.ZeroInt() - bz := cdc.MustMarshal(&sdk.IntProto{Int: amount}) + bz, err := math.Int(amount).Marshal() + suite.Require().NoError(err) store.Set(types.TotalEscrowForDenomKey(denom), bz) }, false, @@ -261,7 +265,8 @@ func (suite *KeeperTestSuite) TestGetAllDenomEscrows() { denom := "uatom" amount := sdkmath.ZeroInt() - bz := cdc.MustMarshal(&sdk.IntProto{Int: amount}) + bz, err := math.Int(amount).Marshal() + suite.Require().NoError(err) store.Set([]byte(fmt.Sprintf("wrong-prefix/%s", denom)), bz) }, false, @@ -279,7 +284,6 @@ func (suite *KeeperTestSuite) TestGetAllDenomEscrows() { storeKey := suite.chainA.GetSimApp().GetKey(types.ModuleName) store = ctx.KVStore(storeKey) - cdc = suite.chainA.App.AppCodec() tc.malleate() diff --git a/modules/apps/transfer/keeper/relay.go b/modules/apps/transfer/keeper/relay.go index 71ef740132c..9d105344a7d 100644 --- a/modules/apps/transfer/keeper/relay.go +++ b/modules/apps/transfer/keeper/relay.go @@ -119,7 +119,7 @@ func (k Keeper) sendTransfer( } if err := k.bankKeeper.BurnCoins( - ctx, types.ModuleName, sdk.NewCoins(coin), + ctx, k.authKeeper.GetModuleAddress(types.ModuleName), sdk.NewCoins(coin), ); err != nil { // NOTE: should not happen as the module account was // retrieved on the step above and it has enough balance diff --git a/modules/apps/transfer/module.go b/modules/apps/transfer/module.go index 095c7d49685..6c4ef267ad8 100644 --- a/modules/apps/transfer/module.go +++ b/modules/apps/transfer/module.go @@ -9,6 +9,7 @@ import ( "github.com/spf13/cobra" "cosmossdk.io/core/appmodule" + "cosmossdk.io/core/registry" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" @@ -25,22 +26,23 @@ import ( ) var ( - _ module.AppModule = (*AppModule)(nil) - _ module.AppModuleBasic = (*AppModuleBasic)(nil) - _ module.AppModuleSimulation = (*AppModule)(nil) - _ module.HasGenesis = (*AppModule)(nil) - _ module.HasName = (*AppModule)(nil) - _ module.HasConsensusVersion = (*AppModule)(nil) - _ module.HasInvariants = (*AppModule)(nil) - _ module.HasServices = (*AppModule)(nil) - _ module.HasProposalMsgs = (*AppModule)(nil) - _ appmodule.AppModule = (*AppModule)(nil) + _ module.AppModule = (*AppModule)(nil) + _ module.AppModuleBasic = (*AppModuleBasic)(nil) + _ module.AppModuleSimulation = (*AppModule)(nil) + _ module.HasGenesis = (*AppModule)(nil) + _ appmodule.HasConsensusVersion = (*AppModule)(nil) + _ module.HasInvariants = (*AppModule)(nil) + _ module.HasServices = (*AppModule)(nil) + _ module.HasProposalMsgs = (*AppModule)(nil) + _ appmodule.AppModule = (*AppModule)(nil) _ porttypes.IBCModule = (*IBCModule)(nil) ) // AppModuleBasic is the IBC Transfer AppModuleBasic -type AppModuleBasic struct{} +type AppModuleBasic struct { + cdc codec.Codec +} // Name implements AppModuleBasic interface func (AppModuleBasic) Name() string { @@ -54,7 +56,7 @@ func (AppModule) IsOnePerModuleType() {} func (AppModule) IsAppModule() {} // RegisterLegacyAminoCodec implements AppModuleBasic interface -func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { +func (AppModuleBasic) RegisterLegacyAminoCodec(cdc registry.AminoRegistrar) { types.RegisterLegacyAminoCodec(cdc) } @@ -65,14 +67,14 @@ func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) // DefaultGenesis returns default genesis state as raw bytes for the ibc // transfer module. -func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage { - return cdc.MustMarshalJSON(types.DefaultGenesisState()) +func (am AppModuleBasic) DefaultGenesis() json.RawMessage { + return am.cdc.MustMarshalJSON(types.DefaultGenesisState()) } // ValidateGenesis performs genesis state validation for the ibc transfer module. -func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, bz json.RawMessage) error { +func (am AppModuleBasic) ValidateGenesis(bz json.RawMessage) error { var gs types.GenesisState - if err := cdc.UnmarshalJSON(bz, &gs); err != nil { + if err := am.cdc.UnmarshalJSON(bz, &gs); err != nil { return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } @@ -144,17 +146,18 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { // InitGenesis performs genesis initialization for the ibc-transfer module. It returns // no validator updates. -func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) { +func (am AppModule) InitGenesis(ctx context.Context, data json.RawMessage) error { var genesisState types.GenesisState - cdc.MustUnmarshalJSON(data, &genesisState) + am.cdc.MustUnmarshalJSON(data, &genesisState) am.keeper.InitGenesis(ctx, genesisState) + return nil } // ExportGenesis returns the exported genesis state as raw bytes for the ibc-transfer // module. -func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { +func (am AppModule) ExportGenesis(ctx context.Context) (json.RawMessage, error) { gs := am.keeper.ExportGenesis(ctx) - return cdc.MustMarshalJSON(gs) + return am.cdc.MarshalJSON(gs) } // ConsensusVersion implements AppModule/ConsensusVersion defining the current version of transfer. diff --git a/modules/apps/transfer/simulation/proposals.go b/modules/apps/transfer/simulation/proposals.go index 404a24ff3a0..f0a76a6515e 100644 --- a/modules/apps/transfer/simulation/proposals.go +++ b/modules/apps/transfer/simulation/proposals.go @@ -1,8 +1,10 @@ package simulation import ( + "context" "math/rand" + coreaddress "cosmossdk.io/core/address" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/address" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" @@ -21,7 +23,7 @@ const ( // ProposalMsgs defines the module weighted proposals' contents func ProposalMsgs() []simtypes.WeightedProposalMsg { return []simtypes.WeightedProposalMsg{ - simulation.NewWeightedProposalMsg( + simulation.NewWeightedProposalMsgX( OpWeightMsgUpdateParams, DefaultWeightMsgUpdateParams, SimulateMsgUpdateParams, @@ -30,13 +32,17 @@ func ProposalMsgs() []simtypes.WeightedProposalMsg { } // SimulateMsgUpdateParams returns a MsgUpdateParams -func SimulateMsgUpdateParams(_ *rand.Rand, _ sdk.Context, _ []simtypes.Account) sdk.Msg { - var gov sdk.AccAddress = address.Module("gov") +func SimulateMsgUpdateParams(_ context.Context, _ *rand.Rand, _ []simtypes.Account, accCdc coreaddress.Codec) (sdk.Msg, error) { + var gov = address.Module("gov") + govString, err := accCdc.BytesToString(gov) + if err != nil { + return nil, err + } params := types.DefaultParams() params.SendEnabled = false return &types.MsgUpdateParams{ - Signer: gov.String(), + Signer: govString, Params: params, - } + }, nil } diff --git a/modules/apps/transfer/simulation/proposals_test.go b/modules/apps/transfer/simulation/proposals_test.go index 7e399e3afd1..90add4d33da 100644 --- a/modules/apps/transfer/simulation/proposals_test.go +++ b/modules/apps/transfer/simulation/proposals_test.go @@ -32,7 +32,8 @@ func TestProposalMsgs(t *testing.T) { require.Equal(t, simulation.OpWeightMsgUpdateParams, w0.AppParamsKey()) require.Equal(t, simulation.DefaultWeightMsgUpdateParams, w0.DefaultWeight()) - msg := w0.MsgSimulatorFn()(r, ctx, accounts) + msg, err := w0.MsgSimulatorFn()(ctx, r, accounts, nil) + require.NoError(t, err) msgUpdateParams, ok := msg.(*types.MsgUpdateParams) require.True(t, ok) diff --git a/modules/apps/transfer/types/codec.go b/modules/apps/transfer/types/codec.go index 58d37e61112..51f4b2c1a28 100644 --- a/modules/apps/transfer/types/codec.go +++ b/modules/apps/transfer/types/codec.go @@ -1,6 +1,7 @@ package types import ( + "cosmossdk.io/core/registry" "cosmossdk.io/x/authz" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/legacy" @@ -11,7 +12,7 @@ import ( // RegisterLegacyAminoCodec registers the necessary x/ibc transfer interfaces and concrete types // on the provided LegacyAmino codec. These types are used for Amino JSON serialization. -func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { +func RegisterLegacyAminoCodec(cdc registry.AminoRegistrar) { legacy.RegisterAminoMsg(cdc, &MsgTransfer{}, "cosmos-sdk/MsgTransfer") } diff --git a/modules/apps/transfer/types/expected_keepers.go b/modules/apps/transfer/types/expected_keepers.go index b2822dc8e3b..735b49f653e 100644 --- a/modules/apps/transfer/types/expected_keepers.go +++ b/modules/apps/transfer/types/expected_keepers.go @@ -23,7 +23,7 @@ type AccountKeeper interface { type BankKeeper interface { SendCoins(ctx context.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + BurnCoins(ctx context.Context, moduleName []byte, amt sdk.Coins) error SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error BlockedAddr(addr sdk.AccAddress) bool diff --git a/modules/apps/transfer/types/msgs_test.go b/modules/apps/transfer/types/msgs_test.go index b68fb92e7cf..7c2f070b353 100644 --- a/modules/apps/transfer/types/msgs_test.go +++ b/modules/apps/transfer/types/msgs_test.go @@ -113,7 +113,7 @@ func TestMsgTransferGetSigners(t *testing.T) { msg := types.NewMsgTransfer(validPort, validChannel, coins, addr.String(), receiver, timeoutHeight, 0, "", nil) encodingCfg := moduletestutil.MakeTestEncodingConfig(testutil.CodecOptions{}, transfer.AppModule{}) - signers, _, err := encodingCfg.Codec.GetMsgV1Signers(msg) + signers, _, err := encodingCfg.Codec.GetMsgSigners(msg) require.NoError(t, err) require.Equal(t, addr.Bytes(), signers[0]) } @@ -163,7 +163,7 @@ func TestMsgUpdateParamsGetSigners(t *testing.T) { } encodingCfg := moduletestutil.MakeTestEncodingConfig(testutil.CodecOptions{}, transfer.AppModule{}) - signers, _, err := encodingCfg.Codec.GetMsgV1Signers(&msg) + signers, _, err := encodingCfg.Codec.GetMsgSigners(&msg) if tc.errMsg == "" { require.NoError(t, err) diff --git a/modules/core/04-channel/types/acknowledgement_test.go b/modules/core/04-channel/types/acknowledgement_test.go index 73304ecd87f..f4bcd344c3e 100644 --- a/modules/core/04-channel/types/acknowledgement_test.go +++ b/modules/core/04-channel/types/acknowledgement_test.go @@ -5,10 +5,6 @@ import ( errorsmod "cosmossdk.io/errors" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - cmtstate "github.com/cometbft/cometbft/state" - "github.com/cosmos/ibc-go/v9/modules/core/04-channel/types" ibcerrors "github.com/cosmos/ibc-go/v9/modules/core/errors" ) @@ -92,37 +88,6 @@ func (suite TypesTestSuite) TestAcknowledgement() { //nolint:govet // this is a } } -// The safety of including ABCI error codes in the acknowledgement rests -// on the inclusion of these ABCI error codes in the abcitypes.ResposneDeliverTx -// hash. If the ABCI codes get removed from consensus they must no longer be used -// in the packet acknowledgement. -// -// This test acts as an indicator that the ABCI error codes may no longer be deterministic. -func (suite *TypesTestSuite) TestABCICodeDeterminism() { - // same ABCI error code used - err := errorsmod.Wrap(ibcerrors.ErrOutOfGas, "error string 1") - errSameABCICode := errorsmod.Wrap(ibcerrors.ErrOutOfGas, "error string 2") - - // different ABCI error code used - errDifferentABCICode := ibcerrors.ErrNotFound - - deliverTx := sdkerrors.ResponseExecTxResultWithEvents(err, gasUsed, gasWanted, []abcitypes.Event{}, false) - execTxResults := []*abcitypes.ExecTxResult{deliverTx} - - deliverTxSameABCICode := sdkerrors.ResponseExecTxResultWithEvents(errSameABCICode, gasUsed, gasWanted, []abcitypes.Event{}, false) - resultsSameABCICode := []*abcitypes.ExecTxResult{deliverTxSameABCICode} - - deliverTxDifferentABCICode := sdkerrors.ResponseExecTxResultWithEvents(errDifferentABCICode, gasUsed, gasWanted, []abcitypes.Event{}, false) - resultsDifferentABCICode := []*abcitypes.ExecTxResult{deliverTxDifferentABCICode} - - hash := cmtstate.TxResultsHash(execTxResults) - hashSameABCICode := cmtstate.TxResultsHash(resultsSameABCICode) - hashDifferentABCICode := cmtstate.TxResultsHash(resultsDifferentABCICode) - - suite.Require().Equal(hash, hashSameABCICode) - suite.Require().NotEqual(hash, hashDifferentABCICode) -} - // TestAcknowledgementError will verify that only a constant string and // ABCI error code are used in constructing the acknowledgement error string func (suite *TypesTestSuite) TestAcknowledgementError() { diff --git a/modules/core/simulation/proposals.go b/modules/core/simulation/proposals.go index e909d1fa1f0..1bd4afd5e02 100644 --- a/modules/core/simulation/proposals.go +++ b/modules/core/simulation/proposals.go @@ -1,11 +1,13 @@ package simulation import ( + "context" "math/rand" "time" upgradetypes "cosmossdk.io/x/upgrade/types" + coreaddress "cosmossdk.io/core/address" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/address" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" @@ -29,22 +31,22 @@ const ( // ProposalMsgs defines the module weighted proposals' contents func ProposalMsgs() []simtypes.WeightedProposalMsg { return []simtypes.WeightedProposalMsg{ - simulation.NewWeightedProposalMsg( + simulation.NewWeightedProposalMsgX( OpWeightMsgUpdateParams, DefaultWeight, SimulateClientMsgUpdateParams, ), - simulation.NewWeightedProposalMsg( + simulation.NewWeightedProposalMsgX( OpWeightMsgUpdateParams, DefaultWeight, SimulateConnectionMsgUpdateParams, ), - simulation.NewWeightedProposalMsg( + simulation.NewWeightedProposalMsgX( OpWeightMsgRecoverClient, DefaultWeight, SimulateClientMsgRecoverClient, ), - simulation.NewWeightedProposalMsg( + simulation.NewWeightedProposalMsgX( OpWeightMsgIBCSoftwareUpgrade, DefaultWeight, SimulateClientMsgScheduleIBCSoftwareUpgrade, @@ -53,7 +55,7 @@ func ProposalMsgs() []simtypes.WeightedProposalMsg { } // SimulateClientMsgUpdateParams returns a MsgUpdateParams for 02-client -func SimulateClientMsgUpdateParams(r *rand.Rand, _ sdk.Context, _ []simtypes.Account) sdk.Msg { +func SimulateClientMsgUpdateParams(ctx context.Context, r *rand.Rand, _ []simtypes.Account, _ coreaddress.Codec) (sdk.Msg, error) { var signer sdk.AccAddress = address.Module("gov") params := types.DefaultParams() params.AllowedClients = []string{"06-solomachine", "07-tendermint"} @@ -61,22 +63,22 @@ func SimulateClientMsgUpdateParams(r *rand.Rand, _ sdk.Context, _ []simtypes.Acc return &types.MsgUpdateParams{ Signer: signer.String(), Params: params, - } + }, nil } // SimulateClientMsgRecoverClient returns a MsgRecoverClient for 02-client -func SimulateClientMsgRecoverClient(r *rand.Rand, _ sdk.Context, _ []simtypes.Account) sdk.Msg { +func SimulateClientMsgRecoverClient(ctx context.Context, r *rand.Rand, _ []simtypes.Account, _ coreaddress.Codec) (sdk.Msg, error) { var signer sdk.AccAddress = address.Module("gov") return &types.MsgRecoverClient{ Signer: signer.String(), SubjectClientId: "07-tendermint-0", SubstituteClientId: "07-tendermint-1", - } + }, nil } // SimulateClientMsgScheduleIBCSoftwareUpgrade returns a MsgScheduleIBCSoftwareUpgrade for 02-client -func SimulateClientMsgScheduleIBCSoftwareUpgrade(r *rand.Rand, _ sdk.Context, _ []simtypes.Account) sdk.Msg { +func SimulateClientMsgScheduleIBCSoftwareUpgrade(ctx context.Context, r *rand.Rand, _ []simtypes.Account, _ coreaddress.Codec) (sdk.Msg, error) { var signer sdk.AccAddress = address.Module("gov") chainID := "chain-a-0" @@ -91,7 +93,7 @@ func SimulateClientMsgScheduleIBCSoftwareUpgrade(r *rand.Rand, _ sdk.Context, _ } anyClient, err := types.PackClientState(upgradedClientState) if err != nil { - panic(err) + return nil, err } return &types.MsgIBCSoftwareUpgrade{ @@ -101,11 +103,11 @@ func SimulateClientMsgScheduleIBCSoftwareUpgrade(r *rand.Rand, _ sdk.Context, _ Height: 100, }, UpgradedClientState: anyClient, - } + }, nil } // SimulateConnectionMsgUpdateParams returns a MsgUpdateParams 03-connection -func SimulateConnectionMsgUpdateParams(r *rand.Rand, _ sdk.Context, _ []simtypes.Account) sdk.Msg { +func SimulateConnectionMsgUpdateParams(ctx context.Context, r *rand.Rand, _ []simtypes.Account, _ coreaddress.Codec) (sdk.Msg, error) { var signer sdk.AccAddress = address.Module("gov") params := connectiontypes.DefaultParams() params.MaxExpectedTimePerBlock = uint64(100) @@ -113,5 +115,5 @@ func SimulateConnectionMsgUpdateParams(r *rand.Rand, _ sdk.Context, _ []simtypes return &connectiontypes.MsgUpdateParams{ Signer: signer.String(), Params: params, - } + }, nil } diff --git a/modules/core/simulation/proposals_test.go b/modules/core/simulation/proposals_test.go index 1d1a86c7f6e..e34901e5228 100644 --- a/modules/core/simulation/proposals_test.go +++ b/modules/core/simulation/proposals_test.go @@ -34,7 +34,8 @@ func TestProposalMsgs(t *testing.T) { require.Equal(t, simulation.OpWeightMsgUpdateParams, w0.AppParamsKey()) require.Equal(t, simulation.DefaultWeight, w0.DefaultWeight()) - msg := w0.MsgSimulatorFn()(r, ctx, accounts) + msg, err := w0.MsgSimulatorFn()(ctx, r, accounts, nil) + require.NoError(t, err) msgUpdateParams, ok := msg.(*clienttypes.MsgUpdateParams) require.True(t, ok) @@ -46,7 +47,8 @@ func TestProposalMsgs(t *testing.T) { require.Equal(t, simulation.OpWeightMsgUpdateParams, w1.AppParamsKey()) require.Equal(t, simulation.DefaultWeight, w1.DefaultWeight()) - msg1 := w1.MsgSimulatorFn()(r, ctx, accounts) + msg1, err := w1.MsgSimulatorFn()(ctx, r, accounts, nil) + require.NoError(t, err) msgUpdateConnectionParams, ok := msg1.(*connectiontypes.MsgUpdateParams) require.True(t, ok) @@ -58,7 +60,8 @@ func TestProposalMsgs(t *testing.T) { require.Equal(t, simulation.OpWeightMsgRecoverClient, w2.AppParamsKey()) require.Equal(t, simulation.DefaultWeight, w2.DefaultWeight()) - msg2 := w2.MsgSimulatorFn()(r, ctx, accounts) + msg2, err := w2.MsgSimulatorFn()(ctx, r, accounts, nil) + require.NoError(t, err) msgRecoverClient, ok := msg2.(*clienttypes.MsgRecoverClient) require.True(t, ok) @@ -70,7 +73,8 @@ func TestProposalMsgs(t *testing.T) { require.Equal(t, simulation.OpWeightMsgIBCSoftwareUpgrade, w3.AppParamsKey()) require.Equal(t, simulation.DefaultWeight, w3.DefaultWeight()) - msg3 := w3.MsgSimulatorFn()(r, ctx, accounts) + msg3, err := w3.MsgSimulatorFn()(ctx, r, accounts, nil) + require.NoError(t, err) msgIBCSoftwareUpgrade, ok := msg3.(*clienttypes.MsgIBCSoftwareUpgrade) require.True(t, ok) diff --git a/modules/light-clients/08-wasm/go.mod b/modules/light-clients/08-wasm/go.mod index fcec4182340..65524315d09 100644 --- a/modules/light-clients/08-wasm/go.mod +++ b/modules/light-clients/08-wasm/go.mod @@ -4,12 +4,6 @@ go 1.22.2 toolchain go1.22.3 -replace github.com/cosmos/ibc-go/v9 => ../../../ - -replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 - -replace github.com/cosmos/ibc-go/modules/capability => ../../capability - require ( cosmossdk.io/api v0.7.5 cosmossdk.io/client/v2 v2.0.0-beta.3 @@ -211,3 +205,31 @@ require ( pgregory.net/rapid v1.1.0 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) + +replace github.com/cosmos/ibc-go/v9 => ../../../ + +replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 + +replace github.com/cosmos/ibc-go/modules/capability => ../../capability + +//TODO: remove everything below after tags are created +replace ( + cosmossdk.io/api => cosmossdk.io/api v0.7.3-0.20240815194237-858ec2fcb897 // main + cosmossdk.io/client/v2 => cosmossdk.io/client/v2 v2.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/core => cosmossdk.io/core v0.12.1-0.20240906083041-6033330182c7 // main + cosmossdk.io/store => cosmossdk.io/store v1.0.0-rc.0.0.20240815194237-858ec2fcb897 // main + cosmossdk.io/x/authz => cosmossdk.io/x/authz v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/bank => cosmossdk.io/x/bank v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/consensus => cosmossdk.io/x/consensus v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/gov => cosmossdk.io/x/gov v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/group => cosmossdk.io/x/group v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/params => cosmossdk.io/x/params v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/slashing => cosmossdk.io/x/slashing v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/staking => cosmossdk.io/x/staking v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/tx => cosmossdk.io/x/tx v0.13.4-0.20240815194237-858ec2fcb897 // main + cosmossdk.io/x/upgrade => cosmossdk.io/x/upgrade v0.0.0-20240905174638-8ce77cbb2450 + github.com/cometbft/cometbft => github.com/cometbft/cometbft v1.0.0-rc1 + // pseudo version lower than the latest tag + github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-alpha.1.0.20240905174638-8ce77cbb2450 + github.com/cosmos/ibc-go/modules/capability => ./modules/capability //TODO: remove after capability is tagged +) diff --git a/simapp/app.go b/simapp/app.go index 22ec27f564a..b907b7fdc08 100644 --- a/simapp/app.go +++ b/simapp/app.go @@ -17,32 +17,27 @@ import ( "cosmossdk.io/core/appmodule" "cosmossdk.io/log" storetypes "cosmossdk.io/store/types" - "cosmossdk.io/x/circuit" - circuitkeeper "cosmossdk.io/x/circuit/keeper" - circuittypes "cosmossdk.io/x/circuit/types" - "cosmossdk.io/x/evidence" - evidencekeeper "cosmossdk.io/x/evidence/keeper" - evidencetypes "cosmossdk.io/x/evidence/types" - "cosmossdk.io/x/feegrant" - feegrantkeeper "cosmossdk.io/x/feegrant/keeper" - feegrantmodule "cosmossdk.io/x/feegrant/module" - "cosmossdk.io/x/tx/signing" - "cosmossdk.io/x/upgrade" - upgradekeeper "cosmossdk.io/x/upgrade/keeper" - upgradetypes "cosmossdk.io/x/upgrade/types" - "cosmossdk.io/x/authz" authzkeeper "cosmossdk.io/x/authz/keeper" authzmodule "cosmossdk.io/x/authz/module" "cosmossdk.io/x/bank" bankkeeper "cosmossdk.io/x/bank/keeper" banktypes "cosmossdk.io/x/bank/types" + "cosmossdk.io/x/circuit" + circuitkeeper "cosmossdk.io/x/circuit/keeper" + circuittypes "cosmossdk.io/x/circuit/types" "cosmossdk.io/x/consensus" consensusparamkeeper "cosmossdk.io/x/consensus/keeper" consensusparamtypes "cosmossdk.io/x/consensus/types" distr "cosmossdk.io/x/distribution" distrkeeper "cosmossdk.io/x/distribution/keeper" distrtypes "cosmossdk.io/x/distribution/types" + "cosmossdk.io/x/evidence" + evidencekeeper "cosmossdk.io/x/evidence/keeper" + evidencetypes "cosmossdk.io/x/evidence/types" + "cosmossdk.io/x/feegrant" + feegrantkeeper "cosmossdk.io/x/feegrant/keeper" + feegrantmodule "cosmossdk.io/x/feegrant/module" "cosmossdk.io/x/gov" govclient "cosmossdk.io/x/gov/client" govkeeper "cosmossdk.io/x/gov/keeper" @@ -63,6 +58,10 @@ import ( "cosmossdk.io/x/staking" stakingkeeper "cosmossdk.io/x/staking/keeper" stakingtypes "cosmossdk.io/x/staking/types" + "cosmossdk.io/x/tx/signing" + "cosmossdk.io/x/upgrade" + upgradekeeper "cosmossdk.io/x/upgrade/keeper" + upgradetypes "cosmossdk.io/x/upgrade/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" diff --git a/simapp/go.mod b/simapp/go.mod index 283a7a6dad2..30a3925d58d 100644 --- a/simapp/go.mod +++ b/simapp/go.mod @@ -210,3 +210,26 @@ require ( ) replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 + +//TODO: remove everything below after tags are created +replace ( + cosmossdk.io/api => cosmossdk.io/api v0.7.3-0.20240815194237-858ec2fcb897 // main + cosmossdk.io/client/v2 => cosmossdk.io/client/v2 v2.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/core => cosmossdk.io/core v0.12.1-0.20240906083041-6033330182c7 // main + cosmossdk.io/store => cosmossdk.io/store v1.0.0-rc.0.0.20240815194237-858ec2fcb897 // main + cosmossdk.io/x/authz => cosmossdk.io/x/authz v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/bank => cosmossdk.io/x/bank v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/consensus => cosmossdk.io/x/consensus v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/gov => cosmossdk.io/x/gov v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/group => cosmossdk.io/x/group v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/params => cosmossdk.io/x/params v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/circuit => cosmossdk.io/x/circuit v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/slashing => cosmossdk.io/x/slashing v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/mint => cosmossdk.io/x/mint v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/staking => cosmossdk.io/x/staking v0.0.0-20240905174638-8ce77cbb2450 + cosmossdk.io/x/tx => cosmossdk.io/x/tx v0.13.4-0.20240815194237-858ec2fcb897 // main + cosmossdk.io/x/upgrade => cosmossdk.io/x/upgrade v0.0.0-20240905174638-8ce77cbb2450 + github.com/cometbft/cometbft => github.com/cometbft/cometbft v1.0.0-rc1 + // pseudo version lower than the latest tag + github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.52.0-alpha.1.0.20240905174638-8ce77cbb2450 +)