Skip to content

Commit

Permalink
all test passed. with a new custom pfm module with a fee.
Browse files Browse the repository at this point in the history
  • Loading branch information
RustNinja committed May 22, 2024
1 parent 1e9175d commit 378af9d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 22 deletions.
24 changes: 8 additions & 16 deletions custom/custompfm/keeper/keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -199,33 +199,25 @@ func (im IBCMiddleware) OnRecvPacket(
memo,
)

result, err := im.ibcfeekeeper.ChargeFee(goCtx, tr)
result, err := im.ibcfeekeeper.ChargeFee(ctx, tr)
if err != nil {
logger.Error("packetForwardMiddleware OnRecvPacket error charging fee", "error", err)
return newErrorAcknowledgement(fmt.Errorf("error charging fee: %w", err))
}
if result != nil {
if token.Amount.GTE(result.Fee.Amount) {
if result.Fee.Amount.LT(token.Amount) {
token = token.SubAmount(result.Fee.Amount)
} else {
// send_err := im.bank.SendCoins(ctx, msgSender, feeAddress, sdk.NewCoins(charge_coin))
ack := channeltypes.NewResultAcknowledgement([]byte{byte(1)}) //??????
send_err := im.bank.SendCoins(ctx, result.Sender, result.Reciever, sdk.NewCoins(result.Fee))
if send_err != nil {
logger.Error("packetForwardMiddleware OnRecvPacket error sending fee", "error", send_err)
return newErrorAcknowledgement(fmt.Errorf("error charging fee: %w", send_err))
}
ack := channeltypes.NewResultAcknowledgement([]byte{byte(1)})
return ack
// logger.Error("fee is greater than the amount", "error")
// return newErrorAcknowledgement(fmt.Errorf("error charging fee: %w", err))
}

// else {
// logger.Error("fee is greater than the amount", "error")
// return newErrorAcknowledgement(fmt.Errorf("error charging fee: %w", err))
// }
// token = sdk.NewCoin(result.Fee.Denom, result.Fee.Amount)
}

// //fi amount < fee. it is spamer. we do not need proceed this packet. no timeout for this packet
// ack := channeltypes.NewResultAcknowledgement([]byte{byte(1)})
// return ack

err = im.keeper1.ForwardTransferPacket(ctx, nil, packet, data.Sender, overrideReceiver, metadata, token, retries, timeout, []metrics.Label{}, nonrefundable)
if err != nil {
logger.Error("packetForwardMiddleware OnRecvPacket error forwarding packet", "error", err)
Expand Down
9 changes: 3 additions & 6 deletions x/ibctransfermiddleware/keeper/keeper.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package keeper

import (
"context"
"encoding/json"
"fmt"
"time"
Expand Down Expand Up @@ -117,17 +116,15 @@ type BridgeFee struct {
Reciever sdk.AccAddress
}

func (k Keeper) ChargeFee(goCtx context.Context, msg *ibctypes.MsgTransfer) (*BridgeFee, error) {
ctx := sdk.UnwrapSDKContext(goCtx)
func (k Keeper) ChargeFee(ctx sdk.Context, msg *ibctypes.MsgTransfer) (*BridgeFee, error) {
params := k.GetParams(ctx)
// charge_coin := sdk.NewCoin(msg.Token.Denom, sdk.ZeroInt())
if params.ChannelFees != nil && len(params.ChannelFees) > 0 {
channelFee := findChannelParams(params.ChannelFees, msg.SourceChannel)
if channelFee != nil {
if channelFee.MinTimeoutTimestamp > 0 {

goCtx := sdk.UnwrapSDKContext(goCtx)
blockTime := goCtx.BlockTime()
blockTime := ctx.BlockTime()

timeoutTimeInFuture := time.Unix(0, int64(msg.TimeoutTimestamp))
if timeoutTimeInFuture.Before(blockTime) {
Expand Down Expand Up @@ -182,7 +179,7 @@ func (k Keeper) ChargeFee(goCtx context.Context, msg *ibctypes.MsgTransfer) (*Br
// return nil, send_err
// }
msg.Token.Amount = newAmount
return &BridgeFee{fee: charge_coin, sender: msgSender, reciever: feeAddress}, nil
return &BridgeFee{Fee: charge_coin, Sender: msgSender, Reciever: feeAddress}, nil

// if newAmount.LTE(sdk.ZeroInt()) {
// zeroTransfer := sdk.NewCoin(msg.Token.Denom, sdk.ZeroInt())
Expand Down

0 comments on commit 378af9d

Please sign in to comment.