github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/apps/29-fee/handler.go (about) 1 package fee 2 3 import ( 4 "fmt" 5 6 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/29-fee/types" 7 8 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 9 sdkerrors "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/errors" 10 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/29-fee/keeper" 11 tmtypes "github.com/fibonacci-chain/fbc/libs/tendermint/types" 12 ) 13 14 func NewHandler(k keeper.Keeper) sdk.Handler { 15 return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) { 16 if !tmtypes.HigherThanVenus4(ctx.BlockHeight()) { 17 errMsg := fmt.Sprintf("ibc ica is not supported at height %d", ctx.BlockHeight()) 18 return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) 19 } 20 21 ctx.SetEventManager(sdk.NewEventManager()) 22 23 switch detailMsg := msg.(type) { 24 case *types.MsgPayPacketFee: 25 res, err := k.PayPacketFee(sdk.WrapSDKContext(ctx), detailMsg) 26 return sdk.WrapServiceResult(ctx, res, err) 27 case *types.MsgRegisterCounterpartyPayee: 28 res, err := k.RegisterCounterpartyPayee(sdk.WrapSDKContext(ctx), detailMsg) 29 return sdk.WrapServiceResult(ctx, res, err) 30 case *types.MsgPayPacketFeeAsync: 31 res, err := k.PayPacketFeeAsync(sdk.WrapSDKContext(ctx), detailMsg) 32 return sdk.WrapServiceResult(ctx, res, err) 33 case *types.MsgRegisterPayee: 34 res, err := k.RegisterPayee(sdk.WrapSDKContext(ctx), detailMsg) 35 return sdk.WrapServiceResult(ctx, res, err) 36 default: 37 return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized fee message type: %T", msg) 38 } 39 40 } 41 }