github.com/okex/exchain@v1.8.0/libs/ibc-go/modules/apps/27-interchain-accounts/handler.go (about) 1 package ica 2 3 import ( 4 "fmt" 5 6 sdk "github.com/okex/exchain/libs/cosmos-sdk/types" 7 sdkerrors "github.com/okex/exchain/libs/cosmos-sdk/types/errors" 8 controllerkeeper "github.com/okex/exchain/libs/ibc-go/modules/apps/27-interchain-accounts/controller/keeper" 9 hostkeeper "github.com/okex/exchain/libs/ibc-go/modules/apps/27-interchain-accounts/host/keeper" 10 tmtypes "github.com/okex/exchain/libs/tendermint/types" 11 ) 12 13 func NewHandler(hostKeeper *hostkeeper.Keeper, ck *controllerkeeper.Keeper) sdk.Handler { 14 return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) { 15 if !tmtypes.HigherThanVenus4(ctx.BlockHeight()) { 16 errMsg := fmt.Sprintf("ibc ica is not supported at height %d", ctx.BlockHeight()) 17 return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) 18 } 19 20 ctx.SetEventManager(sdk.NewEventManager()) 21 22 switch msg := msg.(type) { 23 default: 24 return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized ica message type: %T", msg) 25 } 26 27 } 28 }