Skip to content

Commit

Permalink
Merge pull request cosmos#21 from crodriguezvega/carlos/remove-depend…
Browse files Browse the repository at this point in the history
…ency-from-core-ibc

remove wasm client keeper from IBC keeper
  • Loading branch information
misko9 committed Mar 5, 2023
2 parents 12815e2 + 9c35eff commit 2bd84b4
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 34 deletions.
4 changes: 0 additions & 4 deletions modules/core/keeper/keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import (
portkeeper "github.com/cosmos/ibc-go/v7/modules/core/05-port/keeper"
porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types"
"github.com/cosmos/ibc-go/v7/modules/core/types"
wasmkeeper "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/keeper"
)

var _ types.QueryServer = (*Keeper)(nil)
Expand All @@ -34,7 +33,6 @@ type Keeper struct {
ChannelKeeper channelkeeper.Keeper
PortKeeper portkeeper.Keeper
Router *porttypes.Router
WasmClientKeeper wasmkeeper.Keeper
}

// NewKeeper creates a new ibc Keeper
Expand Down Expand Up @@ -67,15 +65,13 @@ func NewKeeper(
connectionKeeper := connectionkeeper.NewKeeper(cdc, key, paramSpace, clientKeeper)
portKeeper := portkeeper.NewKeeper(scopedKeeper)
channelKeeper := channelkeeper.NewKeeper(cdc, key, clientKeeper, connectionKeeper, portKeeper, scopedKeeper)
wasmKeeper := wasmkeeper.NewKeeper(cdc, key)

return &Keeper{
cdc: cdc,
ClientKeeper: clientKeeper,
ConnectionKeeper: connectionKeeper,
ChannelKeeper: channelKeeper,
PortKeeper: portKeeper,
WasmClientKeeper: wasmKeeper,
}
}

Expand Down
4 changes: 2 additions & 2 deletions modules/light-clients/08-wasm/client/cli/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
// GetQueryCmd returns the query commands for IBC channels
func GetQueryCmd() *cobra.Command {
queryCmd := &cobra.Command{
Use: types.SubModuleName,
Use: types.ModuleName,
Short: "IBC wasm manager module query subcommands",
DisableFlagParsing: true,
SuggestionsMinimumDistance: 2,
Expand All @@ -28,7 +28,7 @@ func GetQueryCmd() *cobra.Command {
// NewTxCmd returns a CLI command handler for all x/ibc channel transaction commands.
func NewTxCmd() *cobra.Command {
txCmd := &cobra.Command{
Use: types.SubModuleName,
Use: types.ModuleName,
Short: "IBC wasm manager module transaction subcommands",
DisableFlagParsing: true,
SuggestionsMinimumDistance: 2,
Expand Down
2 changes: 1 addition & 1 deletion modules/light-clients/08-wasm/client/cli/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ func getCmdCode() *cobra.Command {
Short: "Query wasm code",
Long: "Query wasm code",
Example: fmt.Sprintf(
"%s query %s %s code [code-id]", version.AppName, host.SubModuleName, types.SubModuleName,
"%s query %s %s code [code-id]", version.AppName, host.SubModuleName, types.ModuleName,
),
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
Expand Down
21 changes: 19 additions & 2 deletions modules/light-clients/08-wasm/module.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,21 @@ 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"
"github.com/grpc-ecosystem/grpc-gateway/runtime"
"github.com/spf13/cobra"
abci "github.com/tendermint/tendermint/abci/types"

"github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/client/cli"
"github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/keeper"
"github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/types"
)

var _ module.AppModuleBasic = AppModuleBasic{}
var (
_ module.AppModule = AppModule{}
_ module.AppModuleBasic = AppModuleBasic{}
)

// AppModuleBasic defines the basic application module used by the tendermint light client.
// Only the RegisterInterfaces function needs to be implemented. All other function perform
Expand All @@ -24,7 +29,7 @@ type AppModuleBasic struct{}

// Name returns the tendermint module name.
func (AppModuleBasic) Name() string {
return types.SubModuleName
return types.ModuleName
}

// RegisterLegacyAminoCodec performs a no-op. The Wasm client does not support amino.
Expand Down Expand Up @@ -77,3 +82,15 @@ func (am AppModule) RegisterServices(cfg module.Configurator) {
types.RegisterMsgServer(cfg.MsgServer(), am.keeper)
types.RegisterQueryServer(cfg.QueryServer(), am.keeper)
}

// ConsensusVersion implements AppModule/ConsensusVersion.
func (AppModule) ConsensusVersion() uint64 { return 1 }

// BeginBlock implements the AppModule interface
func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {
}

// EndBlock implements the AppModule interface
func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate {
return []abci.ValidatorUpdate{}
}
28 changes: 14 additions & 14 deletions modules/light-clients/08-wasm/types/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ package types
import sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"

var (
ErrInvalidHeader = sdkerrors.Register(SubModuleName, 1, "invalid header")
ErrUnableToUnmarshalPayload = sdkerrors.Register(SubModuleName, 2, "unable to unmarshal wasm contract return value")
ErrUnableToInit = sdkerrors.Register(SubModuleName, 3, "unable to initialize wasm contract")
ErrUnableToCall = sdkerrors.Register(SubModuleName, 4, "unable to call wasm contract")
ErrUnableToQuery = sdkerrors.Register(SubModuleName, 5, "unable to query wasm contract")
ErrUnableToMarshalPayload = sdkerrors.Register(SubModuleName, 6, "unable to marshal wasm contract payload")
ErrInvalidHeader = sdkerrors.Register(ModuleName, 1, "invalid header")
ErrUnableToUnmarshalPayload = sdkerrors.Register(ModuleName, 2, "unable to unmarshal wasm contract return value")
ErrUnableToInit = sdkerrors.Register(ModuleName, 3, "unable to initialize wasm contract")
ErrUnableToCall = sdkerrors.Register(ModuleName, 4, "unable to call wasm contract")
ErrUnableToQuery = sdkerrors.Register(ModuleName, 5, "unable to query wasm contract")
ErrUnableToMarshalPayload = sdkerrors.Register(ModuleName, 6, "unable to marshal wasm contract payload")
// Wasm specific
ErrWasmEmptyCode = sdkerrors.Register(SubModuleName, 7, "empty wasm code")
ErrWasmEmptyCodeHash = sdkerrors.Register(SubModuleName, 8, "empty wasm code hash")
ErrWasmCodeTooLarge = sdkerrors.Register(SubModuleName, 9, "wasm code too large")
ErrWasmCodeExists = sdkerrors.Register(SubModuleName, 10, "wasm code already exists")
ErrWasmCodeValidation = sdkerrors.Register(SubModuleName, 11, "unable to validate wasm code")
ErrWasmInvalidCode = sdkerrors.Register(SubModuleName, 12, "invalid wasm code")
ErrWasmInvalidCodeID = sdkerrors.Register(SubModuleName, 13, "invalid wasm code id")
ErrWasmCodeIDNotFound = sdkerrors.Register(SubModuleName, 14, "wasm code id not found")
ErrWasmEmptyCode = sdkerrors.Register(ModuleName, 7, "empty wasm code")
ErrWasmEmptyCodeHash = sdkerrors.Register(ModuleName, 8, "empty wasm code hash")
ErrWasmCodeTooLarge = sdkerrors.Register(ModuleName, 9, "wasm code too large")
ErrWasmCodeExists = sdkerrors.Register(ModuleName, 10, "wasm code already exists")
ErrWasmCodeValidation = sdkerrors.Register(ModuleName, 11, "unable to validate wasm code")
ErrWasmInvalidCode = sdkerrors.Register(ModuleName, 12, "invalid wasm code")
ErrWasmInvalidCodeID = sdkerrors.Register(ModuleName, 13, "invalid wasm code id")
ErrWasmCodeIDNotFound = sdkerrors.Register(ModuleName, 14, "wasm code id not found")
)
9 changes: 7 additions & 2 deletions modules/light-clients/08-wasm/types/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,13 @@ import (
)

const (
// SubModuleName for the wasm client
SubModuleName = "wasm-client"

// ModuleName for the wasm client
ModuleName = "08-wasm"

// StoreKey is the store key string for 08-wasm
StoreKey = ModuleName

LastInstanceIDKey = "lastInstanceId"
)

Expand Down
2 changes: 1 addition & 1 deletion modules/light-clients/08-wasm/types/types_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ func (suite *WasmTestSuite) SetupTest() {
suite.store = suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), exported.Wasm)

os.MkdirAll("tmp", 0o755)
suite.wasmKeeper = app.IBCKeeper.WasmClientKeeper
suite.wasmKeeper = app.WasmClientKeeper
data, err = os.ReadFile("test_data/ics10_grandpa_cw.wasm")
suite.Require().NoError(err)

Expand Down
20 changes: 12 additions & 8 deletions testing/simapp/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ import (
solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine"
ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint"
ibcwasm "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm"
ibcwasmkeeper "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/keeper"
ibcwasmtypes "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/types"
ibcmock "github.com/cosmos/ibc-go/v7/testing/mock"
simappparams "github.com/cosmos/ibc-go/v7/testing/simapp/params"
Expand Down Expand Up @@ -232,6 +233,7 @@ type SimApp struct {
ICAHostKeeper icahostkeeper.Keeper
EvidenceKeeper evidencekeeper.Keeper
TransferKeeper ibctransferkeeper.Keeper
WasmClientKeeper ibcwasmkeeper.Keeper
FeeGrantKeeper feegrantkeeper.Keeper
ConsensusParamsKeeper consensusparamkeeper.Keeper

Expand Down Expand Up @@ -288,7 +290,7 @@ func NewSimApp(
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
govtypes.StoreKey, group.StoreKey, paramstypes.StoreKey, ibcexported.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey,
evidencetypes.StoreKey, ibctransfertypes.StoreKey, icacontrollertypes.StoreKey, icahosttypes.StoreKey, capabilitytypes.StoreKey,
authzkeeper.StoreKey, ibcfeetypes.StoreKey, consensusparamtypes.StoreKey,
authzkeeper.StoreKey, ibcfeetypes.StoreKey, ibcwasmtypes.StoreKey, consensusparamtypes.StoreKey,
)
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
Expand Down Expand Up @@ -408,6 +410,8 @@ func NewSimApp(
*/
app.GroupKeeper = groupkeeper.NewKeeper(keys[group.StoreKey], appCodec, app.MsgServiceRouter(), app.AccountKeeper, groupConfig)

app.WasmClientKeeper = ibcwasmkeeper.NewKeeper(appCodec, keys[ibcwasmtypes.StoreKey])

// IBC Fee Module keeper
app.IBCFeeKeeper = ibcfeekeeper.NewKeeper(
appCodec, keys[ibcfeetypes.StoreKey],
Expand Down Expand Up @@ -566,7 +570,7 @@ func NewSimApp(
transfer.NewAppModule(app.TransferKeeper),
ibcfee.NewAppModule(app.IBCFeeKeeper),
ica.NewAppModule(&app.ICAControllerKeeper, &app.ICAHostKeeper),
ibcwasm.NewAppModule(app.IBCKeeper.WasmClientKeeper),
ibcwasm.NewAppModule(app.WasmClientKeeper),
mockModule,
)

Expand All @@ -579,15 +583,15 @@ func NewSimApp(
upgradetypes.ModuleName, capabilitytypes.ModuleName, minttypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName,
evidencetypes.ModuleName, stakingtypes.ModuleName, ibcexported.ModuleName, ibctransfertypes.ModuleName, authtypes.ModuleName,
banktypes.ModuleName, govtypes.ModuleName, crisistypes.ModuleName, genutiltypes.ModuleName, authz.ModuleName, feegrant.ModuleName,
paramstypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, group.ModuleName,
consensusparamtypes.ModuleName, ibcwasmtypes.SubModuleName,
paramstypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcwasmtypes.ModuleName, ibcmock.ModuleName,
group.ModuleName, consensusparamtypes.ModuleName,
)
app.mm.SetOrderEndBlockers(
crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName, ibcexported.ModuleName, ibctransfertypes.ModuleName,
capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName,
minttypes.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, feegrant.ModuleName, paramstypes.ModuleName,
upgradetypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, group.ModuleName,
consensusparamtypes.ModuleName, ibcwasmtypes.SubModuleName,
upgradetypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcwasmtypes.ModuleName, ibcmock.ModuleName,
group.ModuleName, consensusparamtypes.ModuleName,
)

// NOTE: The genutils module must occur after staking so that pools are
Expand All @@ -599,8 +603,8 @@ func NewSimApp(
capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName,
slashingtypes.ModuleName, govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName,
ibcexported.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, ibctransfertypes.ModuleName,
icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, feegrant.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName,
vestingtypes.ModuleName, group.ModuleName, consensusparamtypes.ModuleName, ibcwasmtypes.SubModuleName,
icatypes.ModuleName, ibcfeetypes.ModuleName, ibcwasmtypes.ModuleName, ibcmock.ModuleName, feegrant.ModuleName, paramstypes.ModuleName,
upgradetypes.ModuleName, vestingtypes.ModuleName, group.ModuleName, consensusparamtypes.ModuleName,
)

app.mm.RegisterInvariants(app.CrisisKeeper)
Expand Down

0 comments on commit 2bd84b4

Please sign in to comment.