From fd480410ca9078a84974c1864cefe70ee5d36b23 Mon Sep 17 00:00:00 2001 From: rustdev Date: Thu, 25 Apr 2024 18:12:24 +0100 Subject: [PATCH] call SetSequenceFee during keeper transfer execution flow. --- custom/ibc-transfer/keeper/keeper.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/custom/ibc-transfer/keeper/keeper.go b/custom/ibc-transfer/keeper/keeper.go index 4d1fdcbc3..72c75d98e 100644 --- a/custom/ibc-transfer/keeper/keeper.go +++ b/custom/ibc-transfer/keeper/keeper.go @@ -57,6 +57,7 @@ func NewKeeper( func (k Keeper) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*types.MsgTransferResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) params := k.IbcTransfermiddleware.GetParams(ctx) + charge_coin := sdk.NewCoin("", sdk.ZeroInt()) if params.ChannelFees != nil && len(params.ChannelFees) > 0 { channelFee := findChannelParams(params.ChannelFees, msg.SourceChannel) if channelFee != nil { @@ -103,7 +104,8 @@ func (k Keeper) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*types. return nil, err } - send_err := k.bank.SendCoins(ctx, msgSender, feeAddress, sdk.NewCoins(sdk.NewCoin(msg.Token.Denom, charge))) + charge_coin = sdk.NewCoin(msg.Token.Denom, charge) + send_err := k.bank.SendCoins(ctx, msgSender, feeAddress, sdk.NewCoins(charge_coin)) if send_err != nil { return nil, send_err } @@ -114,5 +116,9 @@ func (k Keeper) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*types. msg.Token.Amount = newAmount } } - return k.Keeper.Transfer(goCtx, msg) + ret, err := k.Transfer(goCtx, msg) + if err != nil || !charge_coin.IsZero() { + k.IbcTransfermiddleware.SetSequenceFee(ctx, ret.Sequence, charge_coin) + } + return ret, err }