github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/icamauth/handler.go (about) 1 package icamauth 2 3 import ( 4 "fmt" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 sdkerrors "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/errors" 8 tmtypes "github.com/fibonacci-chain/fbc/libs/tendermint/types" 9 "github.com/fibonacci-chain/fbc/x/icamauth/types" 10 ) 11 12 // NewHandler returns sdk.Handler for IBC token transfer module messages 13 func NewHandler(k types.MsgServer) sdk.Handler { 14 return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) { 15 if !tmtypes.HigherThanVenus4(ctx.BlockHeight()) { 16 errMsg := fmt.Sprintf("icamauth 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 case *types.MsgSubmitTx: 24 res, err := k.SubmitTx(sdk.WrapSDKContext(ctx), msg) 25 return sdk.WrapServiceResult(ctx, res, err) 26 case *types.MsgRegisterAccount: 27 res, err := k.RegisterAccount(sdk.WrapSDKContext(ctx), msg) 28 return sdk.WrapServiceResult(ctx, res, err) 29 30 default: 31 return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized ICS-20 transfer message type: %T", msg) 32 } 33 } 34 }