diff --git a/docs/ibc/proto-docs.md b/docs/ibc/proto-docs.md
index 164017ca3b2..9bf131b1b56 100644
--- a/docs/ibc/proto-docs.md
+++ b/docs/ibc/proto-docs.md
@@ -32,6 +32,8 @@
- [Fee](#ibc.applications.fee.v1.Fee)
- [IdentifiedPacketFee](#ibc.applications.fee.v1.IdentifiedPacketFee)
- [IdentifiedPacketFees](#ibc.applications.fee.v1.IdentifiedPacketFees)
+ - [PacketFee](#ibc.applications.fee.v1.PacketFee)
+ - [PacketFees](#ibc.applications.fee.v1.PacketFees)
- [ibc/applications/fee/v1/genesis.proto](#ibc/applications/fee/v1/genesis.proto)
- [FeeEnabledChannel](#ibc.applications.fee.v1.FeeEnabledChannel)
@@ -742,12 +744,46 @@ and an optional list of relayers that are permitted to receive the fee.
### IdentifiedPacketFees
-IdentifiedPacketFees contains a list of packet fees
+IdentifiedPacketFees contains a list of type PacketFee and associated PacketId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `packet_fees` | [IdentifiedPacketFee](#ibc.applications.fee.v1.IdentifiedPacketFee) | repeated | |
+| `packet_id` | [ibc.core.channel.v1.PacketId](#ibc.core.channel.v1.PacketId) | | |
+| `packet_fees` | [PacketFee](#ibc.applications.fee.v1.PacketFee) | repeated | |
+
+
+
+
+
+
+
+
+### PacketFee
+PacketFee contains the relayer fee, refund address and an optional list of relayers that are permitted to receive the
+fee
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| `fee` | [Fee](#ibc.applications.fee.v1.Fee) | | |
+| `refund_address` | [string](#string) | | |
+| `relayers` | [string](#string) | repeated | |
+
+
+
+
+
+
+
+
+### PacketFees
+PacketFees contains a list of type PacketFee
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| `packet_fees` | [PacketFee](#ibc.applications.fee.v1.PacketFee) | repeated | |
diff --git a/modules/apps/29-fee/ibc_module.go b/modules/apps/29-fee/ibc_module.go
index a4c3cb5292e..c7a73d56e74 100644
--- a/modules/apps/29-fee/ibc_module.go
+++ b/modules/apps/29-fee/ibc_module.go
@@ -226,13 +226,13 @@ func (im IBCModule) OnAcknowledgementPacket(
}
packetID := channeltypes.NewPacketId(packet.SourceChannel, packet.SourcePort, packet.Sequence)
- identifiedPacketFees, found := im.keeper.GetFeesInEscrow(ctx, packetID)
+ feesInEscrow, found := im.keeper.GetFeesInEscrow(ctx, packetID)
if !found {
// return underlying callback if no fee found for given packetID
return im.app.OnAcknowledgementPacket(ctx, packet, ack.Result, relayer)
}
- im.keeper.DistributePacketFees(ctx, ack.ForwardRelayerAddress, relayer, identifiedPacketFees.PacketFees)
+ im.keeper.DistributePacketFees(ctx, ack.ForwardRelayerAddress, relayer, feesInEscrow.PacketFees)
// removes the fees from the store as fees are now paid
im.keeper.DeleteFeesInEscrow(ctx, packetID)
@@ -253,13 +253,13 @@ func (im IBCModule) OnTimeoutPacket(
}
packetID := channeltypes.NewPacketId(packet.SourceChannel, packet.SourcePort, packet.Sequence)
- identifiedPacketFees, found := im.keeper.GetFeesInEscrow(ctx, packetID)
+ feesInEscrow, found := im.keeper.GetFeesInEscrow(ctx, packetID)
if !found {
// return underlying callback if fee not found for given packetID
return im.app.OnTimeoutPacket(ctx, packet, relayer)
}
- im.keeper.DistributePacketFeesOnTimeout(ctx, relayer, identifiedPacketFees.PacketFees)
+ im.keeper.DistributePacketFeesOnTimeout(ctx, relayer, feesInEscrow.PacketFees)
// removes the fee from the store as fee is now paid
im.keeper.DeleteFeesInEscrow(ctx, packetID)
diff --git a/modules/apps/29-fee/ibc_module_test.go b/modules/apps/29-fee/ibc_module_test.go
index 8d6ebb8fcc9..214c171d72a 100644
--- a/modules/apps/29-fee/ibc_module_test.go
+++ b/modules/apps/29-fee/ibc_module_test.go
@@ -307,8 +307,8 @@ func (suite *FeeTestSuite) TestOnChanCloseInit() {
1,
)
refundAcc := suite.chainA.SenderAccount.GetAddress()
- identifiedFee := types.NewIdentifiedPacketFee(packetID, types.Fee{validCoins, validCoins2, validCoins3}, refundAcc.String(), []string{})
- err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedFee)
+ packetFee := types.NewPacketFee(types.Fee{validCoins, validCoins2, validCoins3}, refundAcc.String(), []string{})
+ err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
},
false,
@@ -322,8 +322,8 @@ func (suite *FeeTestSuite) TestOnChanCloseInit() {
Sequence: 1,
}
refundAcc := suite.chainA.SenderAccount.GetAddress()
- identifiedFee := types.NewIdentifiedPacketFee(packetID, types.Fee{validCoins, validCoins2, validCoins3}, refundAcc.String(), []string{})
- err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedFee)
+ packetFee := types.NewPacketFee(types.Fee{validCoins, validCoins2, validCoins3}, refundAcc.String(), []string{})
+ err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
suite.chainA.GetSimApp().BankKeeper.SendCoinsFromModuleToAccount(suite.chainA.GetContext(), types.ModuleName, refundAcc, validCoins3)
@@ -385,8 +385,8 @@ func (suite *FeeTestSuite) TestOnChanCloseConfirm() {
Sequence: 1,
}
refundAcc := suite.chainA.SenderAccount.GetAddress()
- identifiedFee := types.NewIdentifiedPacketFee(packetID, types.Fee{validCoins, validCoins2, validCoins3}, refundAcc.String(), []string{})
- err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedFee)
+ packetFee := types.NewPacketFee(types.Fee{validCoins, validCoins2, validCoins3}, refundAcc.String(), []string{})
+ err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
},
false,
@@ -400,8 +400,8 @@ func (suite *FeeTestSuite) TestOnChanCloseConfirm() {
Sequence: 1,
}
refundAcc := suite.chainA.SenderAccount.GetAddress()
- identifiedFee := types.NewIdentifiedPacketFee(packetID, types.Fee{validCoins, validCoins2, validCoins3}, refundAcc.String(), []string{})
- err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedFee)
+ packetFee := types.NewPacketFee(types.Fee{validCoins, validCoins2, validCoins3}, refundAcc.String(), []string{})
+ err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
suite.chainA.GetSimApp().BankKeeper.SendCoinsFromModuleToAccount(suite.chainA.GetContext(), types.ModuleName, refundAcc, validCoins3)
@@ -544,7 +544,7 @@ func (suite *FeeTestSuite) TestOnRecvPacket() {
func (suite *FeeTestSuite) TestOnAcknowledgementPacket() {
var (
ack []byte
- identifiedFee types.IdentifiedPacketFee
+ packetFee types.PacketFee
originalBalance sdk.Coins
expectedBalance sdk.Coins
expectedRelayerBalance sdk.Coins
@@ -558,7 +558,7 @@ func (suite *FeeTestSuite) TestOnAcknowledgementPacket() {
{
"success",
func() {
- expectedRelayerBalance = identifiedFee.Fee.RecvFee.Add(identifiedFee.Fee.AckFee[0])
+ expectedRelayerBalance = packetFee.Fee.RecvFee.Add(packetFee.Fee.AckFee[0])
},
true,
},
@@ -606,7 +606,7 @@ func (suite *FeeTestSuite) TestOnAcknowledgementPacket() {
ForwardRelayerAddress: blockedAddr.String(),
}.Acknowledgement()
- expectedRelayerBalance = identifiedFee.Fee.AckFee
+ expectedRelayerBalance = packetFee.Fee.AckFee
},
true,
},
@@ -630,8 +630,7 @@ func (suite *FeeTestSuite) TestOnAcknowledgementPacket() {
// escrow the packet fee
packetID := channeltypes.NewPacketId(packet.GetSourceChannel(), packet.GetSourcePort(), packet.GetSequence())
- identifiedFee = types.NewIdentifiedPacketFee(
- packetID,
+ packetFee = types.NewPacketFee(
types.Fee{
RecvFee: validCoins,
AckFee: validCoins2,
@@ -640,7 +639,7 @@ func (suite *FeeTestSuite) TestOnAcknowledgementPacket() {
suite.chainA.SenderAccount.GetAddress().String(),
[]string{},
)
- err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedFee)
+ err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
relayerAddr := suite.chainB.SenderAccount.GetAddress()
@@ -656,7 +655,7 @@ func (suite *FeeTestSuite) TestOnAcknowledgementPacket() {
originalBalance = sdk.NewCoins(suite.chainA.GetSimApp().BankKeeper.GetBalance(suite.chainA.GetContext(), suite.chainA.SenderAccount.GetAddress(), ibctesting.TestCoin.Denom))
// default to success case
- expectedBalance = originalBalance.Add(identifiedFee.Fee.TimeoutFee[0])
+ expectedBalance = originalBalance.Add(packetFee.Fee.TimeoutFee[0])
// malleate test case
tc.malleate()
@@ -687,7 +686,7 @@ func (suite *FeeTestSuite) TestOnAcknowledgementPacket() {
func (suite *FeeTestSuite) TestOnTimeoutPacket() {
var (
relayerAddr sdk.AccAddress
- identifiedFee types.IdentifiedPacketFee
+ packetFee types.PacketFee
originalBalance sdk.Coins
expectedBalance sdk.Coins
)
@@ -727,8 +726,8 @@ func (suite *FeeTestSuite) TestOnTimeoutPacket() {
relayerAddr = suite.chainA.GetSimApp().AccountKeeper.GetModuleAccount(suite.chainA.GetContext(), transfertypes.ModuleName).GetAddress()
expectedBalance = originalBalance.
- Add(identifiedFee.Fee.RecvFee[0]).
- Add(identifiedFee.Fee.AckFee[0])
+ Add(packetFee.Fee.RecvFee[0]).
+ Add(packetFee.Fee.AckFee[0])
},
false,
},
@@ -753,8 +752,7 @@ func (suite *FeeTestSuite) TestOnTimeoutPacket() {
// must be explicitly changed
relayerAddr = suite.chainB.SenderAccount.GetAddress()
- identifiedFee = types.NewIdentifiedPacketFee(
- packetID,
+ packetFee = types.NewPacketFee(
types.Fee{
RecvFee: validCoins,
AckFee: validCoins2,
@@ -764,7 +762,7 @@ func (suite *FeeTestSuite) TestOnTimeoutPacket() {
[]string{},
)
- err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedFee)
+ err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
// log original sender balance
@@ -773,8 +771,8 @@ func (suite *FeeTestSuite) TestOnTimeoutPacket() {
// default to success case
expectedBalance = originalBalance.
- Add(identifiedFee.Fee.RecvFee[0]).
- Add(identifiedFee.Fee.AckFee[0])
+ Add(packetFee.Fee.RecvFee[0]).
+ Add(packetFee.Fee.AckFee[0])
// malleate test case
tc.malleate()
@@ -793,7 +791,7 @@ func (suite *FeeTestSuite) TestOnTimeoutPacket() {
found := suite.chainA.GetSimApp().IBCFeeKeeper.HasFeesInEscrow(suite.chainA.GetContext(), packetID)
suite.Require().False(found)
- suite.Require().Equal(identifiedFee.Fee.TimeoutFee, relayerBalance)
+ suite.Require().Equal(packetFee.Fee.TimeoutFee, relayerBalance)
} else {
suite.Require().Empty(relayerBalance)
}
diff --git a/modules/apps/29-fee/keeper/escrow.go b/modules/apps/29-fee/keeper/escrow.go
index ec62156855b..d3e96bad312 100644
--- a/modules/apps/29-fee/keeper/escrow.go
+++ b/modules/apps/29-fee/keeper/escrow.go
@@ -11,13 +11,13 @@ import (
)
// EscrowPacketFee sends the packet fee to the 29-fee module account to hold in escrow
-func (k Keeper) EscrowPacketFee(ctx sdk.Context, packetID channeltypes.PacketId, identifiedFee types.IdentifiedPacketFee) error {
+func (k Keeper) EscrowPacketFee(ctx sdk.Context, packetID channeltypes.PacketId, packetFee types.PacketFee) error {
if !k.IsFeeEnabled(ctx, packetID.PortId, packetID.ChannelId) {
// users may not escrow fees on this channel. Must send packets without a fee message
return sdkerrors.Wrap(types.ErrFeeNotEnabled, "cannot escrow fee for packet")
}
// check if the refund account exists
- refundAcc, err := sdk.AccAddressFromBech32(identifiedFee.RefundAddress)
+ refundAcc, err := sdk.AccAddressFromBech32(packetFee.RefundAddress)
if err != nil {
return err
}
@@ -27,26 +27,26 @@ func (k Keeper) EscrowPacketFee(ctx sdk.Context, packetID channeltypes.PacketId,
return sdkerrors.Wrapf(types.ErrRefundAccNotFound, "account with address: %s not found", refundAcc)
}
- coins := identifiedFee.Fee.Total()
+ coins := packetFee.Fee.Total()
if err := k.bankKeeper.SendCoinsFromAccountToModule(ctx, refundAcc, types.ModuleName, coins); err != nil {
return err
}
- packetFees := []types.IdentifiedPacketFee{identifiedFee}
+ fees := []types.PacketFee{packetFee}
if feesInEscrow, found := k.GetFeesInEscrow(ctx, packetID); found {
- packetFees = append(packetFees, feesInEscrow.PacketFees...)
+ fees = append(fees, feesInEscrow.PacketFees...)
}
- identifiedFees := types.NewIdentifiedPacketFees(packetFees)
- k.SetFeesInEscrow(ctx, packetID, identifiedFees)
+ packetFees := types.NewPacketFees(fees)
+ k.SetFeesInEscrow(ctx, packetID, packetFees)
- EmitIncentivizedPacket(ctx, identifiedFee)
+ EmitIncentivizedPacket(ctx, packetID, packetFee)
return nil
}
// DistributePacketFees pays the acknowledgement fee & receive fee for a given packetId while refunding the timeout fee to the refund account associated with the Fee.
-func (k Keeper) DistributePacketFees(ctx sdk.Context, forwardRelayer string, reverseRelayer sdk.AccAddress, feesInEscrow []types.IdentifiedPacketFee) {
+func (k Keeper) DistributePacketFees(ctx sdk.Context, forwardRelayer string, reverseRelayer sdk.AccAddress, feesInEscrow []types.PacketFee) {
forwardAddr, _ := sdk.AccAddressFromBech32(forwardRelayer)
for _, packetFee := range feesInEscrow {
@@ -73,7 +73,7 @@ func (k Keeper) DistributePacketFees(ctx sdk.Context, forwardRelayer string, rev
}
// DistributePacketsFeesTimeout pays the timeout fee for a given packetId while refunding the acknowledgement fee & receive fee to the refund account associated with the Fee
-func (k Keeper) DistributePacketFeesOnTimeout(ctx sdk.Context, timeoutRelayer sdk.AccAddress, feesInEscrow []types.IdentifiedPacketFee) {
+func (k Keeper) DistributePacketFeesOnTimeout(ctx sdk.Context, timeoutRelayer sdk.AccAddress, feesInEscrow []types.PacketFee) {
for _, feeInEscrow := range feesInEscrow {
// check if refundAcc address works
refundAddr, err := sdk.AccAddressFromBech32(feeInEscrow.RefundAddress)
@@ -113,8 +113,8 @@ func (k Keeper) RefundFeesOnChannel(ctx sdk.Context, portID, channelID string) e
var refundErr error
- k.IterateIdentifiedChannelFeesInEscrow(ctx, portID, channelID, func(identifiedFees types.IdentifiedPacketFees) (stop bool) {
- for _, identifiedFee := range identifiedFees.PacketFees {
+ k.IteratePacketFeesInEscrow(ctx, portID, channelID, func(packetFees types.PacketFees) (stop bool) {
+ for _, identifiedFee := range packetFees.PacketFees {
refundAccAddr, err := sdk.AccAddressFromBech32(identifiedFee.RefundAddress)
if err != nil {
refundErr = err
diff --git a/modules/apps/29-fee/keeper/escrow_test.go b/modules/apps/29-fee/keeper/escrow_test.go
index fe582aa4335..81103197aa5 100644
--- a/modules/apps/29-fee/keeper/escrow_test.go
+++ b/modules/apps/29-fee/keeper/escrow_test.go
@@ -35,11 +35,8 @@ func (suite *KeeperTestSuite) TestEscrowPacketFee() {
TimeoutFee: timeoutFee,
}
- identifiedPacketFee := types.NewIdentifiedPacketFee(packetID, fee, refundAcc.String(), []string{})
-
- feesInEscrow := types.IdentifiedPacketFees{
- PacketFees: []types.IdentifiedPacketFee{identifiedPacketFee},
- }
+ packetFee := types.NewPacketFee(fee, refundAcc.String(), []string{})
+ feesInEscrow := types.NewPacketFees([]types.PacketFee{packetFee})
suite.chainA.GetSimApp().IBCFeeKeeper.SetFeesInEscrow(suite.chainA.GetContext(), packetID, feesInEscrow)
}, true,
@@ -92,13 +89,13 @@ func (suite *KeeperTestSuite) TestEscrowPacketFee() {
AckFee: ackFee,
TimeoutFee: timeoutFee,
}
- identifiedPacketFee := types.NewIdentifiedPacketFee(packetID, fee, refundAcc.String(), []string{})
+ packetFee := types.NewPacketFee(fee, refundAcc.String(), []string{})
// refundAcc balance before escrow
originalBal := suite.chainA.GetSimApp().BankKeeper.GetBalance(suite.chainA.GetContext(), refundAcc, sdk.DefaultBondDenom)
// escrow the packet fee
- err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedPacketFee)
+ err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
if tc.expPass {
feesInEscrow, found := suite.chainA.GetSimApp().IBCFeeKeeper.GetFeesInEscrow(suite.chainA.GetContext(), packetID)
@@ -166,12 +163,12 @@ func (suite *KeeperTestSuite) TestDistributeFee() {
}
// escrow the packet fee & store the fee in state
- identifiedPacketFee := types.NewIdentifiedPacketFee(packetID, fee, refundAcc.String(), []string{})
+ packetFee := types.NewPacketFee(fee, refundAcc.String(), []string{})
- err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedPacketFee)
+ err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
// escrow a second packet fee to test with multiple fees distributed
- err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedPacketFee)
+ err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
tc.malleate()
@@ -179,7 +176,7 @@ func (suite *KeeperTestSuite) TestDistributeFee() {
// refundAcc balance after escrow
refundAccBal := suite.chainA.GetSimApp().BankKeeper.GetBalance(suite.chainA.GetContext(), refundAcc, sdk.DefaultBondDenom)
- suite.chainA.GetSimApp().IBCFeeKeeper.DistributePacketFees(suite.chainA.GetContext(), forwardRelayer, reverseRelayer, []types.IdentifiedPacketFee{identifiedPacketFee, identifiedPacketFee})
+ suite.chainA.GetSimApp().IBCFeeKeeper.DistributePacketFees(suite.chainA.GetContext(), forwardRelayer, reverseRelayer, []types.PacketFee{packetFee, packetFee})
if tc.expPass {
// there should no longer be a fee in escrow for this packet
@@ -234,23 +231,18 @@ func (suite *KeeperTestSuite) TestDistributeTimeoutFee() {
}
// escrow the packet fee & store the fee in state
- identifiedPacketFee := types.NewIdentifiedPacketFee(
- packetID,
- fee,
- refundAcc.String(),
- []string{},
- )
+ packetFee := types.NewPacketFee(fee, refundAcc.String(), []string{})
- err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedPacketFee)
+ err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
// escrow a second packet fee to test with multiple fees distributed
- err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedPacketFee)
+ err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
// refundAcc balance after escrow
refundAccBal := suite.chainA.GetSimApp().BankKeeper.GetBalance(suite.chainA.GetContext(), refundAcc, sdk.DefaultBondDenom)
- suite.chainA.GetSimApp().IBCFeeKeeper.DistributePacketFeesOnTimeout(suite.chainA.GetContext(), timeoutRelayer, []types.IdentifiedPacketFee{identifiedPacketFee, identifiedPacketFee})
+ suite.chainA.GetSimApp().IBCFeeKeeper.DistributePacketFeesOnTimeout(suite.chainA.GetContext(), timeoutRelayer, []types.PacketFee{packetFee, packetFee})
// check if the timeoutRelayer has been paid
hasBalance := suite.chainA.GetSimApp().BankKeeper.HasBalance(suite.chainA.GetContext(), timeoutRelayer, fee.TimeoutFee[0])
@@ -284,9 +276,9 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannel() {
TimeoutFee: defaultTimeoutFee,
}
- identifiedPacketFee := types.NewIdentifiedPacketFee(packetID, fee, refundAcc.String(), []string{})
+ packetFee := types.NewPacketFee(fee, refundAcc.String(), []string{})
suite.chainA.GetSimApp().IBCFeeKeeper.SetFeeEnabled(suite.chainA.GetContext(), suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID)
- err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedPacketFee)
+ err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
}
@@ -298,9 +290,9 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannel() {
TimeoutFee: defaultTimeoutFee,
}
- identifiedPacketFee := types.NewIdentifiedPacketFee(packetID, fee, refundAcc.String(), []string{})
+ packetFee := types.NewPacketFee(fee, refundAcc.String(), []string{})
suite.chainA.GetSimApp().IBCFeeKeeper.SetFeeEnabled(suite.chainA.GetContext(), ibctesting.MockFeePort, "channel-1")
- err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedPacketFee)
+ err := suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
// check that refunding all fees on channel-0 refunds all fees except for fee on channel-1
@@ -314,8 +306,8 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannel() {
// create escrow and then change module account balance to cause error on refund
packetID = channeltypes.NewPacketId(suite.path.EndpointA.ChannelID, suite.path.EndpointA.ChannelConfig.PortID, uint64(6))
- identifiedPacketFee = types.NewIdentifiedPacketFee(packetID, fee, refundAcc.String(), []string{})
- err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, identifiedPacketFee)
+ packetFee = types.NewPacketFee(fee, refundAcc.String(), []string{})
+ err = suite.chainA.GetSimApp().IBCFeeKeeper.EscrowPacketFee(suite.chainA.GetContext(), packetID, packetFee)
suite.Require().NoError(err)
suite.chainA.GetSimApp().BankKeeper.SendCoinsFromModuleToAccount(suite.chainA.GetContext(), types.ModuleName, refundAcc, fee.TimeoutFee)
diff --git a/modules/apps/29-fee/keeper/events.go b/modules/apps/29-fee/keeper/events.go
index 64c44a34ea0..9ff6f320ffc 100644
--- a/modules/apps/29-fee/keeper/events.go
+++ b/modules/apps/29-fee/keeper/events.go
@@ -10,16 +10,16 @@ import (
)
// EmitIncentivizedPacket emits an event so that relayers know an incentivized packet is ready to be relayed
-func EmitIncentivizedPacket(ctx sdk.Context, identifiedFee types.IdentifiedPacketFee) {
+func EmitIncentivizedPacket(ctx sdk.Context, packetID channeltypes.PacketId, packetFee types.PacketFee) {
ctx.EventManager().EmitEvent(
sdk.NewEvent(
types.EventTypeIncentivizedPacket,
- sdk.NewAttribute(channeltypes.AttributeKeyPortID, identifiedFee.PacketId.PortId),
- sdk.NewAttribute(channeltypes.AttributeKeyChannelID, identifiedFee.PacketId.ChannelId),
- sdk.NewAttribute(channeltypes.AttributeKeySequence, fmt.Sprint(identifiedFee.PacketId.Sequence)),
- sdk.NewAttribute(types.AttributeKeyRecvFee, identifiedFee.Fee.RecvFee.String()),
- sdk.NewAttribute(types.AttributeKeyAckFee, identifiedFee.Fee.AckFee.String()),
- sdk.NewAttribute(types.AttributeKeyTimeoutFee, identifiedFee.Fee.TimeoutFee.String()),
+ sdk.NewAttribute(channeltypes.AttributeKeyPortID, packetID.PortId),
+ sdk.NewAttribute(channeltypes.AttributeKeyChannelID, packetID.ChannelId),
+ sdk.NewAttribute(channeltypes.AttributeKeySequence, fmt.Sprint(packetID.Sequence)),
+ sdk.NewAttribute(types.AttributeKeyRecvFee, packetFee.Fee.RecvFee.String()),
+ sdk.NewAttribute(types.AttributeKeyAckFee, packetFee.Fee.AckFee.String()),
+ sdk.NewAttribute(types.AttributeKeyTimeoutFee, packetFee.Fee.TimeoutFee.String()),
),
)
}
diff --git a/modules/apps/29-fee/keeper/keeper.go b/modules/apps/29-fee/keeper/keeper.go
index b867d05a2c2..cc7bff64bdb 100644
--- a/modules/apps/29-fee/keeper/keeper.go
+++ b/modules/apps/29-fee/keeper/keeper.go
@@ -249,12 +249,12 @@ func (k Keeper) GetFeeInEscrow(ctx sdk.Context, packetId channeltypes.PacketId)
}
// GetFeesInEscrow returns all escrowed packet fees for a given packetID
-func (k Keeper) GetFeesInEscrow(ctx sdk.Context, packetID channeltypes.PacketId) (types.IdentifiedPacketFees, bool) {
+func (k Keeper) GetFeesInEscrow(ctx sdk.Context, packetID channeltypes.PacketId) (types.PacketFees, bool) {
store := ctx.KVStore(k.storeKey)
key := types.KeyFeesInEscrow(packetID)
bz := store.Get(key)
if bz == nil {
- return types.IdentifiedPacketFees{}, false
+ return types.PacketFees{}, false
}
return k.MustUnmarshalFees(bz), true
@@ -269,7 +269,7 @@ func (k Keeper) HasFeesInEscrow(ctx sdk.Context, packetID channeltypes.PacketId)
}
// SetFeesInEscrow sets the given packet fees in escrow keyed by the packet identifier
-func (k Keeper) SetFeesInEscrow(ctx sdk.Context, packetID channeltypes.PacketId, fees types.IdentifiedPacketFees) {
+func (k Keeper) SetFeesInEscrow(ctx sdk.Context, packetID channeltypes.PacketId, fees types.PacketFees) {
store := ctx.KVStore(k.storeKey)
bz := k.MustMarshalFees(fees)
store.Set(types.KeyFeesInEscrow(packetID), bz)
@@ -282,31 +282,31 @@ func (k Keeper) DeleteFeesInEscrow(ctx sdk.Context, packetID channeltypes.Packet
store.Delete(key)
}
-// IterateChannelFeesInEscrow iterates over all the fees on the given channel currently escrowed and calls the provided callback
+// IteratePacketFeesInEscrow iterates over all the fees on the given channel currently escrowed and calls the provided callback
// if the callback returns true, then iteration is stopped.
-func (k Keeper) IterateChannelFeesInEscrow(ctx sdk.Context, portID, channelID string, cb func(identifiedFee types.IdentifiedPacketFee) (stop bool)) {
+func (k Keeper) IteratePacketFeesInEscrow(ctx sdk.Context, portID, channelID string, cb func(packetFees types.PacketFees) (stop bool)) {
store := ctx.KVStore(k.storeKey)
- iterator := sdk.KVStorePrefixIterator(store, types.KeyFeeInEscrowChannelPrefix(portID, channelID))
+ iterator := sdk.KVStorePrefixIterator(store, types.KeyFeesInEscrowChannelPrefix(portID, channelID))
defer iterator.Close()
for ; iterator.Valid(); iterator.Next() {
- identifiedFee := k.MustUnmarshalFee(iterator.Value())
- if cb(identifiedFee) {
+ packetFees := k.MustUnmarshalFees(iterator.Value())
+ if cb(packetFees) {
break
}
}
}
-// IterateIdentifiedChannelFeesInEscrow iterates over all the fees on the given channel currently escrowed and calls the provided callback
+// IterateChannelFeesInEscrow iterates over all the fees on the given channel currently escrowed and calls the provided callback
// if the callback returns true, then iteration is stopped.
-func (k Keeper) IterateIdentifiedChannelFeesInEscrow(ctx sdk.Context, portID, channelID string, cb func(identifiedFees types.IdentifiedPacketFees) (stop bool)) {
+func (k Keeper) IterateChannelFeesInEscrow(ctx sdk.Context, portID, channelID string, cb func(identifiedFee types.IdentifiedPacketFee) (stop bool)) {
store := ctx.KVStore(k.storeKey)
- iterator := sdk.KVStorePrefixIterator(store, types.KeyFeesInEscrowChannelPrefix(portID, channelID))
+ iterator := sdk.KVStorePrefixIterator(store, types.KeyFeeInEscrowChannelPrefix(portID, channelID))
defer iterator.Close()
for ; iterator.Valid(); iterator.Next() {
- identifiedFees := k.MustUnmarshalFees(iterator.Value())
- if cb(identifiedFees) {
+ identifiedFee := k.MustUnmarshalFee(iterator.Value())
+ if cb(identifiedFee) {
break
}
}
@@ -358,14 +358,14 @@ func (k Keeper) MustUnmarshalFee(bz []byte) types.IdentifiedPacketFee {
// MustMarshalFees attempts to encode a Fee object and returns the
// raw encoded bytes. It panics on error.
-func (k Keeper) MustMarshalFees(fees types.IdentifiedPacketFees) []byte {
+func (k Keeper) MustMarshalFees(fees types.PacketFees) []byte {
return k.cdc.MustMarshal(&fees)
}
// MustUnmarshalFees attempts to decode and return a Fee object from
// raw encoded bytes. It panics on error.
-func (k Keeper) MustUnmarshalFees(bz []byte) types.IdentifiedPacketFees {
- var fees types.IdentifiedPacketFees
+func (k Keeper) MustUnmarshalFees(bz []byte) types.PacketFees {
+ var fees types.PacketFees
k.cdc.MustUnmarshal(bz, &fees)
return fees
}
diff --git a/modules/apps/29-fee/keeper/msg_server.go b/modules/apps/29-fee/keeper/msg_server.go
index ef918905c8b..2f0004be150 100644
--- a/modules/apps/29-fee/keeper/msg_server.go
+++ b/modules/apps/29-fee/keeper/msg_server.go
@@ -43,8 +43,8 @@ func (k Keeper) PayPacketFee(goCtx context.Context, msg *types.MsgPayPacketFee)
sequence,
)
- identifiedPacket := types.NewIdentifiedPacketFee(packetID, msg.Fee, msg.Signer, msg.Relayers)
- if err := k.EscrowPacketFee(ctx, packetID, identifiedPacket); err != nil {
+ packetFee := types.NewPacketFee(msg.Fee, msg.Signer, msg.Relayers)
+ if err := k.EscrowPacketFee(ctx, packetID, packetFee); err != nil {
return nil, err
}
@@ -57,7 +57,9 @@ func (k Keeper) PayPacketFee(goCtx context.Context, msg *types.MsgPayPacketFee)
func (k Keeper) PayPacketFeeAsync(goCtx context.Context, msg *types.MsgPayPacketFeeAsync) (*types.MsgPayPacketFeeAsyncResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)
- if err := k.EscrowPacketFee(ctx, msg.IdentifiedPacketFee.PacketId, msg.IdentifiedPacketFee); err != nil {
+ // TODO: Update MsgPayPacketFeeAsync to include PacketFee in favour of IdentifiedPacketFee
+ packetFee := types.NewPacketFee(msg.IdentifiedPacketFee.Fee, msg.IdentifiedPacketFee.RefundAddress, msg.IdentifiedPacketFee.Relayers)
+ if err := k.EscrowPacketFee(ctx, msg.IdentifiedPacketFee.PacketId, packetFee); err != nil {
return nil, err
}
diff --git a/modules/apps/29-fee/types/fee.go b/modules/apps/29-fee/types/fee.go
index 7453c88e50e..54dd9ee1435 100644
--- a/modules/apps/29-fee/types/fee.go
+++ b/modules/apps/29-fee/types/fee.go
@@ -7,13 +7,31 @@ import (
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)
-// NewIdentifiedPacketFees creates and returns a new IdentifiedPacketFees struct
-func NewIdentifiedPacketFees(packetFees []IdentifiedPacketFee) IdentifiedPacketFees {
- return IdentifiedPacketFees{
+// NewPacketFee creates and returns a new PacketFee struct including the incentivization fees, refund addres and relayers
+func NewPacketFee(fee Fee, refundAddr string, relayers []string) PacketFee {
+ return PacketFee{
+ Fee: fee,
+ RefundAddress: refundAddr,
+ Relayers: relayers,
+ }
+}
+
+// NewPacketFees creates and returns a new PacketFees struct including a list of type PacketFee
+func NewPacketFees(packetFees []PacketFee) PacketFees {
+ return PacketFees{
PacketFees: packetFees,
}
}
+// NewFee creates and returns a new Fee struct encapsulating the receive, acknowledgement and timeout fees as sdk.Coins
+func NewFee(recvFee, ackFee, timeoutFee sdk.Coins) Fee {
+ return Fee{
+ RecvFee: recvFee,
+ AckFee: ackFee,
+ TimeoutFee: timeoutFee,
+ }
+}
+
// Total returns the total amount for a given Fee
func (f Fee) Total() sdk.Coins {
return f.RecvFee.Add(f.AckFee...).Add(f.TimeoutFee...)
diff --git a/modules/apps/29-fee/types/fee.pb.go b/modules/apps/29-fee/types/fee.pb.go
index 8be56939659..ad74e0b2d86 100644
--- a/modules/apps/29-fee/types/fee.pb.go
+++ b/modules/apps/29-fee/types/fee.pb.go
@@ -161,16 +161,124 @@ func (m *IdentifiedPacketFee) GetRelayers() []string {
return nil
}
-// IdentifiedPacketFees contains a list of packet fees
+// PacketFee contains the relayer fee, refund address and an optional list of relayers that are permitted to receive the
+// fee
+type PacketFee struct {
+ Fee Fee `protobuf:"bytes,1,opt,name=fee,proto3" json:"fee"`
+ RefundAddress string `protobuf:"bytes,2,opt,name=refund_address,json=refundAddress,proto3" json:"refund_address,omitempty" yaml:"refund_address"`
+ Relayers []string `protobuf:"bytes,3,rep,name=relayers,proto3" json:"relayers,omitempty"`
+}
+
+func (m *PacketFee) Reset() { *m = PacketFee{} }
+func (m *PacketFee) String() string { return proto.CompactTextString(m) }
+func (*PacketFee) ProtoMessage() {}
+func (*PacketFee) Descriptor() ([]byte, []int) {
+ return fileDescriptor_cb3319f1af2a53e5, []int{2}
+}
+func (m *PacketFee) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *PacketFee) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_PacketFee.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *PacketFee) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PacketFee.Merge(m, src)
+}
+func (m *PacketFee) XXX_Size() int {
+ return m.Size()
+}
+func (m *PacketFee) XXX_DiscardUnknown() {
+ xxx_messageInfo_PacketFee.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PacketFee proto.InternalMessageInfo
+
+func (m *PacketFee) GetFee() Fee {
+ if m != nil {
+ return m.Fee
+ }
+ return Fee{}
+}
+
+func (m *PacketFee) GetRefundAddress() string {
+ if m != nil {
+ return m.RefundAddress
+ }
+ return ""
+}
+
+func (m *PacketFee) GetRelayers() []string {
+ if m != nil {
+ return m.Relayers
+ }
+ return nil
+}
+
+// PacketFees contains a list of type PacketFee
+type PacketFees struct {
+ PacketFees []PacketFee `protobuf:"bytes,1,rep,name=packet_fees,json=packetFees,proto3" json:"packet_fees" yaml:"packet_fees"`
+}
+
+func (m *PacketFees) Reset() { *m = PacketFees{} }
+func (m *PacketFees) String() string { return proto.CompactTextString(m) }
+func (*PacketFees) ProtoMessage() {}
+func (*PacketFees) Descriptor() ([]byte, []int) {
+ return fileDescriptor_cb3319f1af2a53e5, []int{3}
+}
+func (m *PacketFees) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *PacketFees) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_PacketFees.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *PacketFees) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PacketFees.Merge(m, src)
+}
+func (m *PacketFees) XXX_Size() int {
+ return m.Size()
+}
+func (m *PacketFees) XXX_DiscardUnknown() {
+ xxx_messageInfo_PacketFees.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PacketFees proto.InternalMessageInfo
+
+func (m *PacketFees) GetPacketFees() []PacketFee {
+ if m != nil {
+ return m.PacketFees
+ }
+ return nil
+}
+
+// IdentifiedPacketFees contains a list of type PacketFee and associated PacketId
type IdentifiedPacketFees struct {
- PacketFees []IdentifiedPacketFee `protobuf:"bytes,1,rep,name=packet_fees,json=packetFees,proto3" json:"packet_fees" yaml:"packet_fees"`
+ PacketId types1.PacketId `protobuf:"bytes,1,opt,name=packet_id,json=packetId,proto3" json:"packet_id" yaml:"packet_id"`
+ PacketFees []PacketFee `protobuf:"bytes,2,rep,name=packet_fees,json=packetFees,proto3" json:"packet_fees" yaml:"packet_fees"`
}
func (m *IdentifiedPacketFees) Reset() { *m = IdentifiedPacketFees{} }
func (m *IdentifiedPacketFees) String() string { return proto.CompactTextString(m) }
func (*IdentifiedPacketFees) ProtoMessage() {}
func (*IdentifiedPacketFees) Descriptor() ([]byte, []int) {
- return fileDescriptor_cb3319f1af2a53e5, []int{2}
+ return fileDescriptor_cb3319f1af2a53e5, []int{4}
}
func (m *IdentifiedPacketFees) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -199,7 +307,14 @@ func (m *IdentifiedPacketFees) XXX_DiscardUnknown() {
var xxx_messageInfo_IdentifiedPacketFees proto.InternalMessageInfo
-func (m *IdentifiedPacketFees) GetPacketFees() []IdentifiedPacketFee {
+func (m *IdentifiedPacketFees) GetPacketId() types1.PacketId {
+ if m != nil {
+ return m.PacketId
+ }
+ return types1.PacketId{}
+}
+
+func (m *IdentifiedPacketFees) GetPacketFees() []PacketFee {
if m != nil {
return m.PacketFees
}
@@ -209,46 +324,50 @@ func (m *IdentifiedPacketFees) GetPacketFees() []IdentifiedPacketFee {
func init() {
proto.RegisterType((*Fee)(nil), "ibc.applications.fee.v1.Fee")
proto.RegisterType((*IdentifiedPacketFee)(nil), "ibc.applications.fee.v1.IdentifiedPacketFee")
+ proto.RegisterType((*PacketFee)(nil), "ibc.applications.fee.v1.PacketFee")
+ proto.RegisterType((*PacketFees)(nil), "ibc.applications.fee.v1.PacketFees")
proto.RegisterType((*IdentifiedPacketFees)(nil), "ibc.applications.fee.v1.IdentifiedPacketFees")
}
func init() { proto.RegisterFile("ibc/applications/fee/v1/fee.proto", fileDescriptor_cb3319f1af2a53e5) }
var fileDescriptor_cb3319f1af2a53e5 = []byte{
- // 523 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0x41, 0x6f, 0xd3, 0x30,
- 0x14, 0xc7, 0x6b, 0x32, 0x6d, 0xab, 0x2b, 0x26, 0x14, 0x86, 0xe8, 0x2a, 0x48, 0x4b, 0x4e, 0x3d,
- 0x50, 0x5b, 0xed, 0xe0, 0x00, 0x27, 0x08, 0x52, 0xa5, 0x9d, 0x40, 0x11, 0x27, 0x2e, 0x95, 0xe3,
- 0xbc, 0x76, 0x56, 0x9b, 0x38, 0x8a, 0xd3, 0x48, 0x95, 0x38, 0x00, 0x9f, 0x80, 0xcf, 0xc1, 0x27,
- 0xd9, 0x71, 0x47, 0x4e, 0x05, 0xb5, 0xdf, 0x60, 0x5f, 0x00, 0xe4, 0xd8, 0xab, 0x8a, 0xd8, 0x34,
- 0xf5, 0x64, 0xfb, 0xf9, 0xfd, 0xdf, 0xef, 0xd9, 0xef, 0x3d, 0xfc, 0x4c, 0x44, 0x9c, 0xb2, 0x2c,
- 0x9b, 0x09, 0xce, 0x0a, 0x21, 0x53, 0x45, 0xc7, 0x00, 0xb4, 0xec, 0xeb, 0x85, 0x64, 0xb9, 0x2c,
- 0xa4, 0xfb, 0x58, 0x44, 0x9c, 0x6c, 0xbb, 0x10, 0x7d, 0x57, 0xf6, 0x5b, 0x1e, 0x97, 0x2a, 0x91,
- 0x8a, 0x46, 0x4c, 0x69, 0x49, 0x04, 0x05, 0xeb, 0x53, 0x2e, 0x45, 0x6a, 0x84, 0xad, 0xe3, 0x89,
- 0x9c, 0xc8, 0x6a, 0x4b, 0xf5, 0xce, 0x5a, 0x2b, 0x22, 0x97, 0x39, 0x50, 0x7e, 0xce, 0xd2, 0x14,
- 0x66, 0x9a, 0x66, 0xb7, 0xc6, 0xc5, 0xff, 0xe2, 0x60, 0x67, 0x08, 0xe0, 0x7e, 0xc6, 0x87, 0x39,
- 0xf0, 0x72, 0x34, 0x06, 0x68, 0xa2, 0x8e, 0xd3, 0x6d, 0x0c, 0x4e, 0x88, 0x61, 0x12, 0xcd, 0x24,
- 0x96, 0x49, 0xde, 0x49, 0x91, 0x06, 0xc3, 0x8b, 0x65, 0xbb, 0x76, 0xb5, 0x6c, 0xbb, 0x0b, 0x96,
- 0xcc, 0x5e, 0xfb, 0x39, 0x70, 0x10, 0x25, 0x68, 0xad, 0xff, 0xe3, 0x57, 0xbb, 0x3b, 0x11, 0xc5,
- 0xf9, 0x3c, 0x22, 0x5c, 0x26, 0xd4, 0xa6, 0x6d, 0x96, 0x9e, 0x8a, 0xa7, 0xb4, 0x58, 0x64, 0xa0,
- 0xaa, 0x30, 0x2a, 0x3c, 0xd0, 0x48, 0x4d, 0x2f, 0xf1, 0x01, 0xe3, 0xd3, 0x0a, 0x7e, 0xef, 0x2e,
- 0x78, 0x60, 0xe1, 0x47, 0x06, 0x6e, 0x75, 0xbb, 0x81, 0xf7, 0x19, 0x9f, 0x6a, 0xee, 0x37, 0x84,
- 0x1b, 0x85, 0x48, 0x40, 0xce, 0x8b, 0x0a, 0xee, 0xec, 0xf8, 0xf2, 0x2d, 0xed, 0x6e, 0x09, 0x60,
- 0xab, 0x1c, 0x02, 0xf8, 0x7f, 0x10, 0x7e, 0x78, 0x16, 0x43, 0x5a, 0x88, 0xb1, 0x80, 0xf8, 0x03,
- 0xe3, 0x53, 0xd0, 0x76, 0xf7, 0x23, 0xae, 0x67, 0xd5, 0x61, 0x24, 0xe2, 0x26, 0xea, 0xa0, 0x6e,
- 0x63, 0xf0, 0x94, 0xe8, 0x06, 0xd1, 0x15, 0x25, 0xd7, 0x65, 0x2c, 0xfb, 0xc4, 0x48, 0xce, 0xe2,
- 0xa0, 0x69, 0xb3, 0x7b, 0x60, 0xb2, 0xdb, 0xa8, 0xfd, 0xf0, 0x30, 0xb3, 0x3e, 0xee, 0x0b, 0xec,
- 0x98, 0x6f, 0xd6, 0xf1, 0x9e, 0x90, 0x5b, 0x1a, 0x8e, 0x0c, 0x01, 0x82, 0x3d, 0x1d, 0x2e, 0xd4,
- 0xee, 0xee, 0x1b, 0x7c, 0x94, 0xc3, 0x78, 0x9e, 0xc6, 0x23, 0x16, 0xc7, 0x39, 0x28, 0xd5, 0x74,
- 0x3a, 0xa8, 0x5b, 0x0f, 0x4e, 0xae, 0x96, 0xed, 0x47, 0xd7, 0x5d, 0xb0, 0x7d, 0xef, 0x87, 0xf7,
- 0x8d, 0xe1, 0xad, 0x39, 0xbb, 0x2d, 0xdd, 0x60, 0x33, 0xb6, 0x80, 0x5c, 0x35, 0xf7, 0x3a, 0x4e,
- 0xb7, 0x1e, 0x6e, 0xce, 0xfe, 0x57, 0x84, 0x8f, 0x6f, 0xf8, 0x01, 0xe5, 0x0a, 0xdc, 0xb0, 0x8f,
- 0x18, 0x03, 0x28, 0xdb, 0x98, 0xcf, 0x6f, 0x4d, 0xfa, 0x86, 0x18, 0x41, 0xeb, 0xdf, 0x8a, 0x6d,
- 0x85, 0xf3, 0x43, 0x9c, 0x6d, 0x50, 0xc1, 0xfb, 0x8b, 0x95, 0x87, 0x2e, 0x57, 0x1e, 0xfa, 0xbd,
- 0xf2, 0xd0, 0xf7, 0xb5, 0x57, 0xbb, 0x5c, 0x7b, 0xb5, 0x9f, 0x6b, 0xaf, 0xf6, 0xe9, 0xe5, 0xff,
- 0x55, 0x15, 0x11, 0xef, 0x4d, 0x24, 0x2d, 0x4f, 0x69, 0x22, 0xe3, 0xf9, 0x0c, 0x94, 0x9e, 0x6b,
- 0x45, 0x07, 0xaf, 0x7a, 0x7a, 0xa4, 0xab, 0x42, 0x47, 0xfb, 0xd5, 0x80, 0x9d, 0xfe, 0x0d, 0x00,
- 0x00, 0xff, 0xff, 0x0e, 0xeb, 0xd3, 0x29, 0xf7, 0x03, 0x00, 0x00,
+ // 560 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x94, 0xc1, 0x6e, 0xd3, 0x30,
+ 0x18, 0xc7, 0xeb, 0x66, 0xda, 0x56, 0x57, 0x4c, 0x28, 0x0c, 0xd1, 0x55, 0x90, 0x96, 0x9c, 0x7a,
+ 0xa9, 0xad, 0x76, 0x70, 0x80, 0x13, 0x04, 0xa9, 0xd2, 0x4e, 0xa0, 0x88, 0x13, 0x97, 0xca, 0x71,
+ 0xbe, 0x76, 0x56, 0x9b, 0x38, 0x8a, 0xd3, 0x48, 0x95, 0x38, 0x20, 0x9e, 0x80, 0x37, 0xe0, 0xce,
+ 0x93, 0xec, 0x82, 0xb4, 0x23, 0xa7, 0x82, 0xda, 0x37, 0xd8, 0x0b, 0x80, 0x9c, 0x78, 0xa5, 0x0c,
+ 0x26, 0x54, 0x0d, 0x4e, 0xb1, 0x9d, 0xef, 0xff, 0xfd, 0xfe, 0x9f, 0xfd, 0xd9, 0xf8, 0xa1, 0x08,
+ 0x38, 0x65, 0x49, 0x32, 0x15, 0x9c, 0x65, 0x42, 0xc6, 0x8a, 0x8e, 0x00, 0x68, 0xde, 0xd3, 0x1f,
+ 0x92, 0xa4, 0x32, 0x93, 0xf6, 0x3d, 0x11, 0x70, 0xb2, 0x19, 0x42, 0xf4, 0xbf, 0xbc, 0xd7, 0x74,
+ 0xb8, 0x54, 0x91, 0x54, 0x34, 0x60, 0x4a, 0x4b, 0x02, 0xc8, 0x58, 0x8f, 0x72, 0x29, 0xe2, 0x52,
+ 0xd8, 0x3c, 0x1c, 0xcb, 0xb1, 0x2c, 0x86, 0x54, 0x8f, 0xcc, 0x6a, 0x41, 0xe4, 0x32, 0x05, 0xca,
+ 0x4f, 0x59, 0x1c, 0xc3, 0x54, 0xd3, 0xcc, 0xb0, 0x0c, 0x71, 0xdf, 0x59, 0xd8, 0x1a, 0x00, 0xd8,
+ 0x6f, 0xf1, 0x7e, 0x0a, 0x3c, 0x1f, 0x8e, 0x00, 0x1a, 0xa8, 0x6d, 0x75, 0xea, 0xfd, 0x23, 0x52,
+ 0x32, 0x89, 0x66, 0x12, 0xc3, 0x24, 0x2f, 0xa4, 0x88, 0xbd, 0xc1, 0xd9, 0xa2, 0x55, 0xb9, 0x58,
+ 0xb4, 0xec, 0x39, 0x8b, 0xa6, 0x4f, 0xdd, 0x14, 0x38, 0x88, 0x1c, 0xb4, 0xd6, 0xfd, 0xf4, 0xb5,
+ 0xd5, 0x19, 0x8b, 0xec, 0x74, 0x16, 0x10, 0x2e, 0x23, 0x6a, 0x6c, 0x97, 0x9f, 0xae, 0x0a, 0x27,
+ 0x34, 0x9b, 0x27, 0xa0, 0x8a, 0x34, 0xca, 0xdf, 0xd3, 0x48, 0x4d, 0xcf, 0xf1, 0x1e, 0xe3, 0x93,
+ 0x02, 0x5e, 0xfd, 0x1b, 0xdc, 0x33, 0xf0, 0x83, 0x12, 0x6e, 0x74, 0xdb, 0x81, 0x77, 0x19, 0x9f,
+ 0x68, 0xee, 0x7b, 0x84, 0xeb, 0x99, 0x88, 0x40, 0xce, 0xb2, 0x02, 0x6e, 0x6d, 0x59, 0xf9, 0x86,
+ 0x76, 0x3b, 0x03, 0xd8, 0x28, 0x07, 0x00, 0xee, 0x77, 0x84, 0xef, 0x9c, 0x84, 0x10, 0x67, 0x62,
+ 0x24, 0x20, 0x7c, 0xc5, 0xf8, 0x04, 0xf4, 0xba, 0xfd, 0x1a, 0xd7, 0x92, 0x62, 0x32, 0x14, 0x61,
+ 0x03, 0xb5, 0x51, 0xa7, 0xde, 0x7f, 0x40, 0x74, 0x83, 0xe8, 0x13, 0x25, 0x97, 0xc7, 0x98, 0xf7,
+ 0x48, 0x29, 0x39, 0x09, 0xbd, 0x86, 0x71, 0x77, 0xbb, 0x74, 0xb7, 0x56, 0xbb, 0xfe, 0x7e, 0x62,
+ 0x62, 0xec, 0x47, 0xd8, 0x2a, 0xb7, 0x59, 0xe7, 0xbb, 0x4f, 0xae, 0x69, 0x38, 0x32, 0x00, 0xf0,
+ 0x76, 0x74, 0x3a, 0x5f, 0x87, 0xdb, 0xcf, 0xf0, 0x41, 0x0a, 0xa3, 0x59, 0x1c, 0x0e, 0x59, 0x18,
+ 0xa6, 0xa0, 0x54, 0xc3, 0x6a, 0xa3, 0x4e, 0xcd, 0x3b, 0xba, 0x58, 0xb4, 0xee, 0x5e, 0x76, 0xc1,
+ 0xe6, 0x7f, 0xd7, 0xbf, 0x55, 0x2e, 0x3c, 0x2f, 0xe7, 0x76, 0x53, 0x37, 0xd8, 0x94, 0xcd, 0x21,
+ 0x55, 0x8d, 0x9d, 0xb6, 0xd5, 0xa9, 0xf9, 0xeb, 0xb9, 0xfb, 0x11, 0xe1, 0xda, 0xcf, 0xba, 0x8d,
+ 0x43, 0x74, 0x53, 0x87, 0xd5, 0x1b, 0x38, 0xb4, 0xae, 0x38, 0x8c, 0x30, 0x5e, 0x1b, 0x54, 0xf6,
+ 0x10, 0xd7, 0xcd, 0xde, 0x8e, 0x00, 0x94, 0xb9, 0x2f, 0xee, 0xb5, 0x4e, 0xd7, 0x4a, 0xaf, 0xf9,
+ 0x6b, 0xfb, 0x6c, 0x24, 0x71, 0x7d, 0x9c, 0xac, 0x01, 0xee, 0x67, 0x84, 0x0f, 0xff, 0xd0, 0x12,
+ 0xea, 0x3f, 0xf5, 0xc4, 0x95, 0x7a, 0xaa, 0xff, 0xba, 0x1e, 0xef, 0xe5, 0xd9, 0xd2, 0x41, 0xe7,
+ 0x4b, 0x07, 0x7d, 0x5b, 0x3a, 0xe8, 0xc3, 0xca, 0xa9, 0x9c, 0xaf, 0x9c, 0xca, 0x97, 0x95, 0x53,
+ 0x79, 0xf3, 0xf8, 0xf7, 0x2b, 0x23, 0x02, 0xde, 0x1d, 0x4b, 0x9a, 0x1f, 0xd3, 0x48, 0x86, 0xb3,
+ 0x29, 0x28, 0xfd, 0x68, 0x2a, 0xda, 0x7f, 0xd2, 0xd5, 0xef, 0x65, 0x71, 0x8b, 0x82, 0xdd, 0xe2,
+ 0xf5, 0x3a, 0xfe, 0x11, 0x00, 0x00, 0xff, 0xff, 0x6b, 0xd4, 0x49, 0x04, 0x54, 0x05, 0x00, 0x00,
}
func (m *Fee) Marshal() (dAtA []byte, err error) {
@@ -375,6 +494,92 @@ func (m *IdentifiedPacketFee) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *PacketFee) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PacketFee) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *PacketFee) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Relayers) > 0 {
+ for iNdEx := len(m.Relayers) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.Relayers[iNdEx])
+ copy(dAtA[i:], m.Relayers[iNdEx])
+ i = encodeVarintFee(dAtA, i, uint64(len(m.Relayers[iNdEx])))
+ i--
+ dAtA[i] = 0x1a
+ }
+ }
+ if len(m.RefundAddress) > 0 {
+ i -= len(m.RefundAddress)
+ copy(dAtA[i:], m.RefundAddress)
+ i = encodeVarintFee(dAtA, i, uint64(len(m.RefundAddress)))
+ i--
+ dAtA[i] = 0x12
+ }
+ {
+ size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintFee(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
+func (m *PacketFees) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PacketFees) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *PacketFees) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.PacketFees) > 0 {
+ for iNdEx := len(m.PacketFees) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.PacketFees[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintFee(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *IdentifiedPacketFees) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -406,9 +611,19 @@ func (m *IdentifiedPacketFees) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i = encodeVarintFee(dAtA, i, uint64(size))
}
i--
- dAtA[i] = 0xa
+ dAtA[i] = 0x12
+ }
+ }
+ {
+ size, err := m.PacketId.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
}
+ i -= size
+ i = encodeVarintFee(dAtA, i, uint64(size))
}
+ i--
+ dAtA[i] = 0xa
return len(dAtA) - i, nil
}
@@ -473,12 +688,50 @@ func (m *IdentifiedPacketFee) Size() (n int) {
return n
}
+func (m *PacketFee) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = m.Fee.Size()
+ n += 1 + l + sovFee(uint64(l))
+ l = len(m.RefundAddress)
+ if l > 0 {
+ n += 1 + l + sovFee(uint64(l))
+ }
+ if len(m.Relayers) > 0 {
+ for _, s := range m.Relayers {
+ l = len(s)
+ n += 1 + l + sovFee(uint64(l))
+ }
+ }
+ return n
+}
+
+func (m *PacketFees) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.PacketFees) > 0 {
+ for _, e := range m.PacketFees {
+ l = e.Size()
+ n += 1 + l + sovFee(uint64(l))
+ }
+ }
+ return n
+}
+
func (m *IdentifiedPacketFees) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
+ l = m.PacketId.Size()
+ n += 1 + l + sovFee(uint64(l))
if len(m.PacketFees) > 0 {
for _, e := range m.PacketFees {
l = e.Size()
@@ -826,6 +1079,237 @@ func (m *IdentifiedPacketFee) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *PacketFee) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowFee
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PacketFee: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PacketFee: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowFee
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthFee
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthFee
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RefundAddress", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowFee
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthFee
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFee
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.RefundAddress = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Relayers", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowFee
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthFee
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFee
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Relayers = append(m.Relayers, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipFee(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthFee
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PacketFees) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowFee
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PacketFees: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PacketFees: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PacketFees", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowFee
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthFee
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthFee
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PacketFees = append(m.PacketFees, PacketFee{})
+ if err := m.PacketFees[len(m.PacketFees)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipFee(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthFee
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *IdentifiedPacketFees) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -856,6 +1340,39 @@ func (m *IdentifiedPacketFees) Unmarshal(dAtA []byte) error {
}
switch fieldNum {
case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PacketId", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowFee
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthFee
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthFee
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.PacketId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field PacketFees", wireType)
}
@@ -884,7 +1401,7 @@ func (m *IdentifiedPacketFees) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.PacketFees = append(m.PacketFees, IdentifiedPacketFee{})
+ m.PacketFees = append(m.PacketFees, PacketFee{})
if err := m.PacketFees[len(m.PacketFees)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
diff --git a/proto/ibc/applications/fee/v1/fee.proto b/proto/ibc/applications/fee/v1/fee.proto
index 3a58f093e06..4d39ad3786c 100644
--- a/proto/ibc/applications/fee/v1/fee.proto
+++ b/proto/ibc/applications/fee/v1/fee.proto
@@ -41,8 +41,22 @@ message IdentifiedPacketFee {
repeated string relayers = 4;
}
-// IdentifiedPacketFees contains a list of packet fees
+// PacketFee contains the relayer fee, refund address and an optional list of relayers that are permitted to receive the
+// fee
+message PacketFee {
+ Fee fee = 1 [(gogoproto.nullable) = false];
+ string refund_address = 2 [(gogoproto.moretags) = "yaml:\"refund_address\""];
+ repeated string relayers = 3;
+}
+
+// PacketFees contains a list of type PacketFee
+message PacketFees {
+ repeated PacketFee packet_fees = 1 [(gogoproto.moretags) = "yaml:\"packet_fees\"", (gogoproto.nullable) = false];
+}
+
+// IdentifiedPacketFees contains a list of type PacketFee and associated PacketId
message IdentifiedPacketFees {
- repeated IdentifiedPacketFee packet_fees = 1
- [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"packet_fees\""];
-}
\ No newline at end of file
+ ibc.core.channel.v1.PacketId packet_id = 1
+ [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"packet_id\""];
+ repeated PacketFee packet_fees = 2 [(gogoproto.moretags) = "yaml:\"packet_fees\"", (gogoproto.nullable) = false];
+}
diff --git a/proto/ibc/applications/fee/v1/genesis.proto b/proto/ibc/applications/fee/v1/genesis.proto
index 134a16be850..b832a4bcd4a 100644
--- a/proto/ibc/applications/fee/v1/genesis.proto
+++ b/proto/ibc/applications/fee/v1/genesis.proto
@@ -12,9 +12,12 @@ import "ibc/core/channel/v1/channel.proto";
message GenesisState {
repeated IdentifiedPacketFee identified_fees = 1
[(gogoproto.moretags) = "yaml:\"identified_fees\"", (gogoproto.nullable) = false];
- repeated FeeEnabledChannel fee_enabled_channels = 2 [(gogoproto.moretags) = "yaml:\"fee_enabled_channels\"", (gogoproto.nullable) = false];
- repeated RegisteredRelayerAddress registered_relayers = 3 [(gogoproto.moretags) = "yaml:\"registered_relayers\"", (gogoproto.nullable) = false];
- repeated ForwardRelayerAddress forward_relayers = 4 [(gogoproto.moretags) = "yaml:\"forward_relayers\"", (gogoproto.nullable) = false];
+ repeated FeeEnabledChannel fee_enabled_channels = 2
+ [(gogoproto.moretags) = "yaml:\"fee_enabled_channels\"", (gogoproto.nullable) = false];
+ repeated RegisteredRelayerAddress registered_relayers = 3
+ [(gogoproto.moretags) = "yaml:\"registered_relayers\"", (gogoproto.nullable) = false];
+ repeated ForwardRelayerAddress forward_relayers = 4
+ [(gogoproto.moretags) = "yaml:\"forward_relayers\"", (gogoproto.nullable) = false];
}
// FeeEnabledChannel contains the PortID & ChannelID for a fee enabled channel