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  }