From 3e6b92a1f67df15d4ca6e5bc9b72a516998ba830 Mon Sep 17 00:00:00 2001 From: Chirantan Ekbote Date: Tue, 23 Aug 2022 15:22:34 +0900 Subject: [PATCH] wormchain: tokenbridge: Reject transfers with negative fee --- wormhole_chain/x/tokenbridge/keeper/msg_server_execute_vaa.go | 3 +++ wormhole_chain/x/tokenbridge/types/errors.go | 1 + 2 files changed, 4 insertions(+) diff --git a/wormhole_chain/x/tokenbridge/keeper/msg_server_execute_vaa.go b/wormhole_chain/x/tokenbridge/keeper/msg_server_execute_vaa.go index eb3003ba4..699c5e5ff 100644 --- a/wormhole_chain/x/tokenbridge/keeper/msg_server_execute_vaa.go +++ b/wormhole_chain/x/tokenbridge/keeper/msg_server_execute_vaa.go @@ -118,6 +118,9 @@ func (k msgServer) ExecuteVAA(goCtx context.Context, msg *types.MsgExecuteVAA) ( if err != nil { return nil, err } + if fee.Sign() == -1 { + return nil, types.ErrNegativeFee + } if wrapped { err = k.bankKeeper.MintCoins(ctx, types.ModuleName, sdk.Coins{ diff --git a/wormhole_chain/x/tokenbridge/types/errors.go b/wormhole_chain/x/tokenbridge/types/errors.go index 4c3aa1702..bdda73b5b 100644 --- a/wormhole_chain/x/tokenbridge/types/errors.go +++ b/wormhole_chain/x/tokenbridge/types/errors.go @@ -37,4 +37,5 @@ var ( ErrFeeTooHigh = sdkerrors.Register(ModuleName, 1132, "fee must be < amount") ErrAmountTooHigh = sdkerrors.Register(ModuleName, 1133, "the amount would exceed the bridges capacity of u64") ErrAssetMetaRollback = sdkerrors.Register(ModuleName, 1134, "asset meta must have a higher sequence than the last update") + ErrNegativeFee = sdkerrors.Register(ModuleName, 1135, "fee cannot be negative") )