diff --git a/docs/ibc/proto-docs.md b/docs/ibc/proto-docs.md
index 0d50531b2e0..573ca53088b 100644
--- a/docs/ibc/proto-docs.md
+++ b/docs/ibc/proto-docs.md
@@ -343,14 +343,13 @@
### IncentivizedAcknowledgement
IncentivizedAcknowledgement is the acknowledgement format to be used by applications wrapped in the fee middleware
-It contains the raw acknowledgement bytes, as well as the forward relayer address
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `result` | [bytes](#bytes) | | |
-| `forward_relayer_address` | [string](#string) | | |
-| `underlying_app_success` | [bool](#bool) | | |
+| `result` | [bytes](#bytes) | | the underlying app acknowledgement result bytes |
+| `forward_relayer_address` | [string](#string) | | the relayer address which submits the recv packet message |
+| `underlying_app_success` | [bool](#bool) | | success flag of the base application callback |
@@ -711,16 +710,14 @@ CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED.
### Fee
-Fee implements the ics29 Fee interface
-See Fee Payment Middleware spec:
-https://github.com/cosmos/ibc/tree/master/spec/app/ics-029-fee-payment#fee-middleware-contract
+Fee defines the ICS29 receive, acknowledgement and timeout fees
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `recv_fee` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | |
-| `ack_fee` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | |
-| `timeout_fee` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | |
+| `recv_fee` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | the packet receive fee |
+| `ack_fee` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | the packet acknowledgement fee |
+| `timeout_fee` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | the packet timeout fee |
@@ -735,8 +732,8 @@ IdentifiedPacketFees contains a list of type PacketFee and associated PacketId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `packet_id` | [ibc.core.channel.v1.PacketId](#ibc.core.channel.v1.PacketId) | | |
-| `packet_fees` | [PacketFee](#ibc.applications.fee.v1.PacketFee) | repeated | |
+| `packet_id` | [ibc.core.channel.v1.PacketId](#ibc.core.channel.v1.PacketId) | | unique packet identifier comprised of the channel ID, port ID and sequence |
+| `packet_fees` | [PacketFee](#ibc.applications.fee.v1.PacketFee) | repeated | list of packet fees |
@@ -746,15 +743,14 @@ IdentifiedPacketFees contains a list of type PacketFee and associated PacketId
### PacketFee
-PacketFee contains the relayer fee, refund address and an optional list of relayers that are permitted to receive the
-fee
+PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `fee` | [Fee](#ibc.applications.fee.v1.Fee) | | |
-| `refund_address` | [string](#string) | | |
-| `relayers` | [string](#string) | repeated | |
+| `fee` | [Fee](#ibc.applications.fee.v1.Fee) | | fee encapsulates the recv, ack and timeout fees associated with an IBC packet |
+| `refund_address` | [string](#string) | | the refund address for unspent fees |
+| `relayers` | [string](#string) | repeated | optional list of relayers permitted to receive fees |
@@ -769,7 +765,7 @@ PacketFees contains a list of type PacketFee
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `packet_fees` | [PacketFee](#ibc.applications.fee.v1.PacketFee) | repeated | |
+| `packet_fees` | [PacketFee](#ibc.applications.fee.v1.PacketFee) | repeated | list of packet fees |
@@ -800,8 +796,8 @@ FeeEnabledChannel contains the PortID & ChannelID for a fee enabled channel
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `port_id` | [string](#string) | | |
-| `channel_id` | [string](#string) | | |
+| `port_id` | [string](#string) | | unique port identifier |
+| `channel_id` | [string](#string) | | unique channel identifier |
@@ -811,13 +807,13 @@ FeeEnabledChannel contains the PortID & ChannelID for a fee enabled channel
### ForwardRelayerAddress
-ForwardRelayerAddress contains the forward relayer address and packetId used for async acknowledgements
+ForwardRelayerAddress contains the forward relayer address and PacketId used for async acknowledgements
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `address` | [string](#string) | | |
-| `packet_id` | [ibc.core.channel.v1.PacketId](#ibc.core.channel.v1.PacketId) | | |
+| `address` | [string](#string) | | the forward relayer address |
+| `packet_id` | [ibc.core.channel.v1.PacketId](#ibc.core.channel.v1.PacketId) | | unique packet identifer comprised of the channel ID, port ID and sequence |
@@ -827,15 +823,15 @@ ForwardRelayerAddress contains the forward relayer address and packetId used for
### GenesisState
-GenesisState defines the fee middleware genesis state
+GenesisState defines the ICS29 fee middleware genesis state
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `identified_fees` | [IdentifiedPacketFees](#ibc.applications.fee.v1.IdentifiedPacketFees) | repeated | |
-| `fee_enabled_channels` | [FeeEnabledChannel](#ibc.applications.fee.v1.FeeEnabledChannel) | repeated | |
-| `registered_relayers` | [RegisteredRelayerAddress](#ibc.applications.fee.v1.RegisteredRelayerAddress) | repeated | |
-| `forward_relayers` | [ForwardRelayerAddress](#ibc.applications.fee.v1.ForwardRelayerAddress) | repeated | |
+| `identified_fees` | [IdentifiedPacketFees](#ibc.applications.fee.v1.IdentifiedPacketFees) | repeated | list of identified packet fees |
+| `fee_enabled_channels` | [FeeEnabledChannel](#ibc.applications.fee.v1.FeeEnabledChannel) | repeated | list of fee enabled channels |
+| `registered_relayers` | [RegisteredRelayerAddress](#ibc.applications.fee.v1.RegisteredRelayerAddress) | repeated | list of registered relayer addresses |
+| `forward_relayers` | [ForwardRelayerAddress](#ibc.applications.fee.v1.ForwardRelayerAddress) | repeated | list of forward relayer addresses |
@@ -850,9 +846,9 @@ RegisteredRelayerAddress contains the address and counterparty address for a spe
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `address` | [string](#string) | | |
-| `counterparty_address` | [string](#string) | | |
-| `channel_id` | [string](#string) | | |
+| `address` | [string](#string) | | the relayer address |
+| `counterparty_address` | [string](#string) | | the counterparty relayer address |
+| `channel_id` | [string](#string) | | unique channel identifier |
@@ -911,13 +907,13 @@ See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-
### QueryIncentivizedPacketRequest
-QueryIncentivizedPacketRequest is the request type for querying for all incentivized packets
+QueryIncentivizedPacketRequest defines the request type for the IncentivizedPacket rpc
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `packet_id` | [ibc.core.channel.v1.PacketId](#ibc.core.channel.v1.PacketId) | | PacketID |
-| `query_height` | [uint64](#uint64) | | Height to query at |
+| `packet_id` | [ibc.core.channel.v1.PacketId](#ibc.core.channel.v1.PacketId) | | unique packet identifier comprised of channel ID, port ID and sequence |
+| `query_height` | [uint64](#uint64) | | block height at which to query |
@@ -927,12 +923,12 @@ QueryIncentivizedPacketRequest is the request type for querying for all incentiv
### QueryIncentivizedPacketResponse
-QueryIncentivizedPacketsResponse is the response type for the incentivized packet RPC
+QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPacket rpc
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `incentivized_packet` | [IdentifiedPacketFees](#ibc.applications.fee.v1.IdentifiedPacketFees) | | Incentivized_packet |
+| `incentivized_packet` | [IdentifiedPacketFees](#ibc.applications.fee.v1.IdentifiedPacketFees) | | the identified fees for the incentivized packet |
@@ -942,7 +938,7 @@ QueryIncentivizedPacketsResponse is the response type for the incentivized packe
### QueryIncentivizedPacketsForChannelRequest
-QueryIncentivizedPacketsForChannelRequest is the request type for querying for all incentivized packets
+QueryIncentivizedPacketsForChannelRequest defines the request type for querying for all incentivized packets
for a specific channel
@@ -961,7 +957,7 @@ for a specific channel
### QueryIncentivizedPacketsForChannelResponse
-QueryIncentivizedPacketsResponse is the response type for the incentivized packets RPC
+QueryIncentivizedPacketsResponse defines the response type for the incentivized packets RPC
| Field | Type | Label | Description |
@@ -976,13 +972,13 @@ QueryIncentivizedPacketsResponse is the response type for the incentivized packe
### QueryIncentivizedPacketsRequest
-QueryIncentivizedPacketsRequest is the request type for querying for all incentivized packets
+QueryIncentivizedPacketsRequest defines the request type for the IncentivizedPackets rpc
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. |
-| `query_height` | [uint64](#uint64) | | Height to query at |
+| `query_height` | [uint64](#uint64) | | block height at which to query |
@@ -992,12 +988,12 @@ QueryIncentivizedPacketsRequest is the request type for querying for all incenti
### QueryIncentivizedPacketsResponse
-QueryIncentivizedPacketsResponse is the response type for the incentivized packets RPC
+QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPackets rpc
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `incentivized_packets` | [IdentifiedPacketFees](#ibc.applications.fee.v1.IdentifiedPacketFees) | repeated | Map of all incentivized_packets |
+| `incentivized_packets` | [IdentifiedPacketFees](#ibc.applications.fee.v1.IdentifiedPacketFees) | repeated | list of identified fees for incentivized packets |
@@ -1103,12 +1099,12 @@ QueryTotalTimeoutFeesResponse defines the response type for the TotalTimeoutFees
### Query
-Query provides defines the gRPC querier service.
+Query defines the ICS29 gRPC querier service.
| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint |
| ----------- | ------------ | ------------- | ------------| ------- | -------- |
-| `IncentivizedPackets` | [QueryIncentivizedPacketsRequest](#ibc.applications.fee.v1.QueryIncentivizedPacketsRequest) | [QueryIncentivizedPacketsResponse](#ibc.applications.fee.v1.QueryIncentivizedPacketsResponse) | Gets all incentivized packets | GET|/ibc/apps/fee/v1/incentivized_packets|
-| `IncentivizedPacket` | [QueryIncentivizedPacketRequest](#ibc.applications.fee.v1.QueryIncentivizedPacketRequest) | [QueryIncentivizedPacketResponse](#ibc.applications.fee.v1.QueryIncentivizedPacketResponse) | Gets the fees expected for submitting the ReceivePacket, AcknowledgementPacket, and TimeoutPacket messages for the given packet | GET|/ibc/apps/fee/v1/incentivized_packet/port/{packet_id.port_id}/channel/{packet_id.channel_id}/sequence/{packet_id.sequence}|
+| `IncentivizedPackets` | [QueryIncentivizedPacketsRequest](#ibc.applications.fee.v1.QueryIncentivizedPacketsRequest) | [QueryIncentivizedPacketsResponse](#ibc.applications.fee.v1.QueryIncentivizedPacketsResponse) | IncentivizedPackets returns all incentivized packets and their associated fees | GET|/ibc/apps/fee/v1/incentivized_packets|
+| `IncentivizedPacket` | [QueryIncentivizedPacketRequest](#ibc.applications.fee.v1.QueryIncentivizedPacketRequest) | [QueryIncentivizedPacketResponse](#ibc.applications.fee.v1.QueryIncentivizedPacketResponse) | IncentivizedPacket returns all packet fees for a packet given its identifier | GET|/ibc/apps/fee/v1/incentivized_packet/port/{packet_id.port_id}/channel/{packet_id.channel_id}/sequence/{packet_id.sequence}|
| `IncentivizedPacketsForChannel` | [QueryIncentivizedPacketsForChannelRequest](#ibc.applications.fee.v1.QueryIncentivizedPacketsForChannelRequest) | [QueryIncentivizedPacketsForChannelResponse](#ibc.applications.fee.v1.QueryIncentivizedPacketsForChannelResponse) | Gets all incentivized packets for a specific channel | GET|/ibc/apps/fee/v1/incentivized_packets/{port_id}/{channel_id}|
| `TotalRecvFees` | [QueryTotalRecvFeesRequest](#ibc.applications.fee.v1.QueryTotalRecvFeesRequest) | [QueryTotalRecvFeesResponse](#ibc.applications.fee.v1.QueryTotalRecvFeesResponse) | TotalRecvFees returns the total receive fees for a packet given its identifier | GET|/ibc/apps/fee/v1/total_recv_fees/port/{packet_id.port_id}/channel/{packet_id.channel_id}/sequence/{packet_id.sequence}|
| `TotalAckFees` | [QueryTotalAckFeesRequest](#ibc.applications.fee.v1.QueryTotalAckFeesRequest) | [QueryTotalAckFeesResponse](#ibc.applications.fee.v1.QueryTotalAckFeesResponse) | TotalAckFees returns the total acknowledgement fees for a packet given its identifier | GET|/ibc/apps/fee/v1/total_ack_fees/port/{packet_id.port_id}/channel/{packet_id.channel_id}/sequence/{packet_id.sequence}|
@@ -1128,18 +1124,18 @@ Query provides defines the gRPC querier service.
### MsgPayPacketFee
-MsgPayPacketFee defines the request type PayPacketFee RPC
+MsgPayPacketFee defines the request type for the PayPacketFee rpc
This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be
paid for
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `fee` | [Fee](#ibc.applications.fee.v1.Fee) | | |
-| `source_port_id` | [string](#string) | | source channel port identifier |
-| `source_channel_id` | [string](#string) | | source channel unique identifier |
+| `fee` | [Fee](#ibc.applications.fee.v1.Fee) | | fee encapsulates the recv, ack and timeout fees associated with an IBC packet |
+| `source_port_id` | [string](#string) | | the source port unique identifier |
+| `source_channel_id` | [string](#string) | | the source channel unique identifer |
| `signer` | [string](#string) | | account address to refund fee if necessary |
-| `relayers` | [string](#string) | repeated | |
+| `relayers` | [string](#string) | repeated | optional list of relayers permitted to the receive packet fees |
@@ -1149,14 +1145,14 @@ paid for
### MsgPayPacketFeeAsync
-MsgPayPacketFeeAsync defines the request type PayPacketFeeAsync RPC
+MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc
This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send)
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `packet_id` | [ibc.core.channel.v1.PacketId](#ibc.core.channel.v1.PacketId) | | unique packet identifier |
-| `packet_fee` | [PacketFee](#ibc.applications.fee.v1.PacketFee) | | packet fee for incentivization |
+| `packet_id` | [ibc.core.channel.v1.PacketId](#ibc.core.channel.v1.PacketId) | | unique packet identifier comprised of the channel ID, port ID and sequence |
+| `packet_fee` | [PacketFee](#ibc.applications.fee.v1.PacketFee) | | the packet fee associated with a particular IBC packet |
@@ -1166,7 +1162,7 @@ This Msg can be used to pay for a packet at a specified sequence (instead of the
### MsgPayPacketFeeAsyncResponse
-MsgPayPacketFeeAsyncResponse defines the response type for Msg/PayPacketFeeAsync
+MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc
@@ -1176,7 +1172,7 @@ MsgPayPacketFeeAsyncResponse defines the response type for Msg/PayPacketFeeAsync
### MsgPayPacketFeeResponse
-MsgPayPacketFeeResponse defines the response type for Msg/PayPacketFee
+MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc
@@ -1186,14 +1182,14 @@ MsgPayPacketFeeResponse defines the response type for Msg/PayPacketFee
### MsgRegisterCounterpartyAddress
-MsgRegisterCounterpartyAddress is the request type for registering the counterparty address
+MsgRegisterCounterpartyAddress defines the request type for the RegisterCounterpartyAddress rpc
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| `address` | [string](#string) | | |
-| `counterparty_address` | [string](#string) | | |
-| `channel_id` | [string](#string) | | |
+| `address` | [string](#string) | | the relayer address |
+| `counterparty_address` | [string](#string) | | the counterparty relayer address |
+| `channel_id` | [string](#string) | | unique channel identifier |
@@ -1203,7 +1199,7 @@ MsgRegisterCounterpartyAddress is the request type for registering the counterpa
### MsgRegisterCounterpartyAddressResponse
-MsgRegisterCounterpartyAddressResponse defines the Msg/RegisterCounterypartyAddress response type
+MsgRegisterCounterpartyAddressResponse defines the response type for the RegisterCounterpartyAddress rpc
@@ -1219,13 +1215,13 @@ MsgRegisterCounterpartyAddressResponse defines the Msg/RegisterCounterypartyAddr
### Msg
-Msg defines the ibc/fee Msg service.
+Msg defines the ICS29 Msg service.
| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint |
| ----------- | ------------ | ------------- | ------------| ------- | -------- |
| `RegisterCounterpartyAddress` | [MsgRegisterCounterpartyAddress](#ibc.applications.fee.v1.MsgRegisterCounterpartyAddress) | [MsgRegisterCounterpartyAddressResponse](#ibc.applications.fee.v1.MsgRegisterCounterpartyAddressResponse) | RegisterCounterpartyAddress defines a rpc handler method for MsgRegisterCounterpartyAddress RegisterCounterpartyAddress is called by the relayer on each channelEnd and allows them to specify their counterparty address before relaying. This ensures they will be properly compensated for forward relaying since destination chain must send back relayer's source address (counterparty address) in acknowledgement. This function may be called more than once by a relayer, in which case, latest counterparty address is always used. | |
-| `PayPacketFee` | [MsgPayPacketFee](#ibc.applications.fee.v1.MsgPayPacketFee) | [MsgPayPacketFeeResponse](#ibc.applications.fee.v1.MsgPayPacketFeeResponse) | PayPacketFee defines a rpc handler method for MsgPayPacketFee PayPacketFee is an open callback that may be called by any module/user that wishes to escrow funds in order to incentivize the relaying of the packet at the next sequence | |
-| `PayPacketFeeAsync` | [MsgPayPacketFeeAsync](#ibc.applications.fee.v1.MsgPayPacketFeeAsync) | [MsgPayPacketFeeAsyncResponse](#ibc.applications.fee.v1.MsgPayPacketFeeAsyncResponse) | PayPacketFeeAsync defines a rpc handler method for MsgPayPacketFeeAsync PayPacketFeeAsync is an open callback that may be called by any module/user that wishes to escrow funds in order to incentivize the relaying of a known packet | |
+| `PayPacketFee` | [MsgPayPacketFee](#ibc.applications.fee.v1.MsgPayPacketFee) | [MsgPayPacketFeeResponse](#ibc.applications.fee.v1.MsgPayPacketFeeResponse) | PayPacketFee defines a rpc handler method for MsgPayPacketFee PayPacketFee is an open callback that may be called by any module/user that wishes to escrow funds in order to incentivize the relaying of the packet at the next sequence NOTE: This method is intended to be used within a multi msg transaction, where the subsequent msg that follows initiates the lifecycle of the incentivized packet | |
+| `PayPacketFeeAsync` | [MsgPayPacketFeeAsync](#ibc.applications.fee.v1.MsgPayPacketFeeAsync) | [MsgPayPacketFeeAsyncResponse](#ibc.applications.fee.v1.MsgPayPacketFeeAsyncResponse) | PayPacketFeeAsync defines a rpc handler method for MsgPayPacketFeeAsync PayPacketFeeAsync is an open callback that may be called by any module/user that wishes to escrow funds in order to incentivize the relaying of a known packet (i.e. at a particular sequence) | |
diff --git a/modules/apps/29-fee/types/ack.pb.go b/modules/apps/29-fee/types/ack.pb.go
index dfcc0e1041c..4f6437da224 100644
--- a/modules/apps/29-fee/types/ack.pb.go
+++ b/modules/apps/29-fee/types/ack.pb.go
@@ -24,11 +24,13 @@ var _ = math.Inf
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// IncentivizedAcknowledgement is the acknowledgement format to be used by applications wrapped in the fee middleware
-// It contains the raw acknowledgement bytes, as well as the forward relayer address
type IncentivizedAcknowledgement struct {
- Result []byte `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
+ // the underlying app acknowledgement result bytes
+ Result []byte `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
+ // the relayer address which submits the recv packet message
ForwardRelayerAddress string `protobuf:"bytes,2,opt,name=forward_relayer_address,json=forwardRelayerAddress,proto3" json:"forward_relayer_address,omitempty" yaml:"forward_relayer_address"`
- UnderlyingAppSuccess bool `protobuf:"varint,3,opt,name=underlying_app_success,json=underlyingAppSuccess,proto3" json:"underlying_app_success,omitempty" yaml:"underlying_app_successl"`
+ // success flag of the base application callback
+ UnderlyingAppSuccess bool `protobuf:"varint,3,opt,name=underlying_app_success,json=underlyingAppSuccess,proto3" json:"underlying_app_success,omitempty" yaml:"underlying_app_successl"`
}
func (m *IncentivizedAcknowledgement) Reset() { *m = IncentivizedAcknowledgement{} }
diff --git a/modules/apps/29-fee/types/fee.pb.go b/modules/apps/29-fee/types/fee.pb.go
index 8c95fd11176..1867eb351e5 100644
--- a/modules/apps/29-fee/types/fee.pb.go
+++ b/modules/apps/29-fee/types/fee.pb.go
@@ -26,12 +26,13 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
-// Fee implements the ics29 Fee interface
-// See Fee Payment Middleware spec:
-// https://github.com/cosmos/ibc/tree/master/spec/app/ics-029-fee-payment#fee-middleware-contract
+// Fee defines the ICS29 receive, acknowledgement and timeout fees
type Fee struct {
- RecvFee github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=recv_fee,json=recvFee,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"recv_fee" yaml:"receive_fee"`
- AckFee github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,2,rep,name=ack_fee,json=ackFee,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"ack_fee" yaml:"ack_fee"`
+ // the packet receive fee
+ RecvFee github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=recv_fee,json=recvFee,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"recv_fee" yaml:"recv_fee"`
+ // the packet acknowledgement fee
+ AckFee github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,2,rep,name=ack_fee,json=ackFee,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"ack_fee" yaml:"ack_fee"`
+ // the packet timeout fee
TimeoutFee github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,3,rep,name=timeout_fee,json=timeoutFee,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"timeout_fee" yaml:"timeout_fee"`
}
@@ -89,12 +90,14 @@ func (m *Fee) GetTimeoutFee() github_com_cosmos_cosmos_sdk_types.Coins {
return nil
}
-// PacketFee contains the relayer fee, refund address and an optional list of relayers that are permitted to receive the
-// fee
+// PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers
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"`
+ // fee encapsulates the recv, ack and timeout fees associated with an IBC packet
+ Fee Fee `protobuf:"bytes,1,opt,name=fee,proto3" json:"fee"`
+ // the refund address for unspent fees
+ RefundAddress string `protobuf:"bytes,2,opt,name=refund_address,json=refundAddress,proto3" json:"refund_address,omitempty" yaml:"refund_address"`
+ // optional list of relayers permitted to receive fees
+ Relayers []string `protobuf:"bytes,3,rep,name=relayers,proto3" json:"relayers,omitempty"`
}
func (m *PacketFee) Reset() { *m = PacketFee{} }
@@ -153,6 +156,7 @@ func (m *PacketFee) GetRelayers() []string {
// PacketFees contains a list of type PacketFee
type PacketFees struct {
+ // list of packet fees
PacketFees []PacketFee `protobuf:"bytes,1,rep,name=packet_fees,json=packetFees,proto3" json:"packet_fees" yaml:"packet_fees"`
}
@@ -198,8 +202,10 @@ func (m *PacketFees) GetPacketFees() []PacketFee {
// IdentifiedPacketFees contains a list of type PacketFee and associated PacketId
type IdentifiedPacketFees struct {
- 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"`
+ // unique packet identifier comprised of the channel ID, port ID and sequence
+ PacketId types1.PacketId `protobuf:"bytes,1,opt,name=packet_id,json=packetId,proto3" json:"packet_id" yaml:"packet_id"`
+ // list of packet fees
+ PacketFees []PacketFee `protobuf:"bytes,2,rep,name=packet_fees,json=packetFees,proto3" json:"packet_fees" yaml:"packet_fees"`
}
func (m *IdentifiedPacketFees) Reset() { *m = IdentifiedPacketFees{} }
@@ -259,40 +265,40 @@ func init() {
func init() { proto.RegisterFile("ibc/applications/fee/v1/fee.proto", fileDescriptor_cb3319f1af2a53e5) }
var fileDescriptor_cb3319f1af2a53e5 = []byte{
- // 526 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0xc1, 0x8a, 0x13, 0x31,
- 0x18, 0xc7, 0x3b, 0x5b, 0xd9, 0xdd, 0xa6, 0xb8, 0xc8, 0xb0, 0x62, 0xb7, 0xe8, 0x74, 0xcd, 0xa9,
- 0x97, 0x26, 0xb4, 0xab, 0x07, 0x3d, 0xe9, 0x08, 0x85, 0x3d, 0x29, 0x83, 0x27, 0x2f, 0x25, 0x93,
- 0x7c, 0xed, 0x86, 0x76, 0x26, 0xc3, 0x64, 0x3a, 0x50, 0xf0, 0x20, 0x3e, 0x81, 0x6f, 0xe0, 0xdd,
- 0x27, 0xd9, 0x8b, 0xb0, 0x47, 0x4f, 0x55, 0xda, 0x37, 0xd8, 0x27, 0x90, 0x64, 0xb2, 0xa5, 0xab,
- 0x2c, 0x52, 0xf0, 0x34, 0xf9, 0x92, 0xef, 0x9f, 0xdf, 0xf7, 0x25, 0xff, 0x09, 0x7a, 0x2a, 0x63,
- 0x4e, 0x59, 0x96, 0xcd, 0x24, 0x67, 0x85, 0x54, 0xa9, 0xa6, 0x63, 0x00, 0x5a, 0xf6, 0xcd, 0x87,
- 0x64, 0xb9, 0x2a, 0x94, 0xff, 0x48, 0xc6, 0x9c, 0x6c, 0xa7, 0x10, 0xb3, 0x56, 0xf6, 0xdb, 0x01,
- 0x57, 0x3a, 0x51, 0x9a, 0xc6, 0x4c, 0x1b, 0x49, 0x0c, 0x05, 0xeb, 0x53, 0xae, 0x64, 0x5a, 0x09,
- 0xdb, 0xc7, 0x13, 0x35, 0x51, 0x76, 0x48, 0xcd, 0xc8, 0xcd, 0x5a, 0x22, 0x57, 0x39, 0x50, 0x7e,
- 0xc1, 0xd2, 0x14, 0x66, 0x86, 0xe6, 0x86, 0x55, 0x0a, 0xfe, 0x54, 0x47, 0xf5, 0x21, 0x80, 0xff,
- 0x11, 0x1d, 0xe6, 0xc0, 0xcb, 0xd1, 0x18, 0xa0, 0xe5, 0x9d, 0xd6, 0xbb, 0xcd, 0xc1, 0x09, 0xa9,
- 0x98, 0xc4, 0x30, 0x89, 0x63, 0x92, 0x37, 0x4a, 0xa6, 0xe1, 0xf0, 0x72, 0xd9, 0xa9, 0x5d, 0x2f,
- 0x3b, 0xfe, 0x82, 0x25, 0xb3, 0x97, 0x38, 0x07, 0x0e, 0xb2, 0x04, 0xa3, 0xc5, 0xdf, 0x7e, 0x76,
- 0xba, 0x13, 0x59, 0x5c, 0xcc, 0x63, 0xc2, 0x55, 0x42, 0x5d, 0xd9, 0xd5, 0xa7, 0xa7, 0xc5, 0x94,
- 0x16, 0x8b, 0x0c, 0xb4, 0xdd, 0x46, 0x47, 0x07, 0x06, 0x69, 0xe8, 0x25, 0x3a, 0x60, 0x7c, 0x6a,
- 0xe1, 0x7b, 0xff, 0x82, 0x87, 0x0e, 0x7e, 0x54, 0xc1, 0x9d, 0x6e, 0x37, 0xf0, 0x3e, 0xe3, 0x53,
- 0xc3, 0xfd, 0xec, 0xa1, 0x66, 0x21, 0x13, 0x50, 0xf3, 0xc2, 0xc2, 0xeb, 0x3b, 0x76, 0xbe, 0xa5,
- 0xdd, 0xad, 0x00, 0xe4, 0x94, 0x43, 0x00, 0xfc, 0xd5, 0x43, 0x8d, 0x77, 0x8c, 0x4f, 0xc1, 0x44,
- 0xfe, 0x33, 0x54, 0xaf, 0xee, 0xc0, 0xeb, 0x36, 0x07, 0x8f, 0xc9, 0x1d, 0x86, 0x20, 0x43, 0x80,
- 0xf0, 0x9e, 0x29, 0x26, 0x32, 0xe9, 0xfe, 0x2b, 0x74, 0x94, 0xc3, 0x78, 0x9e, 0x8a, 0x11, 0x13,
- 0x22, 0x07, 0xad, 0x5b, 0x7b, 0xa7, 0x5e, 0xb7, 0x11, 0x9e, 0x5c, 0x2f, 0x3b, 0x0f, 0x6f, 0x6e,
- 0x69, 0x7b, 0x1d, 0x47, 0xf7, 0xab, 0x89, 0xd7, 0x55, 0xec, 0xb7, 0x8d, 0x01, 0x66, 0x6c, 0x01,
- 0xb9, 0xb6, 0xc7, 0xd0, 0x88, 0x36, 0x31, 0x4e, 0x10, 0xda, 0x14, 0xa8, 0xfd, 0x11, 0x6a, 0x66,
- 0x36, 0x32, 0x6d, 0x6b, 0xe7, 0x16, 0x7c, 0x67, 0xa5, 0x1b, 0x65, 0xd8, 0xbe, 0x7d, 0x78, 0x5b,
- 0x9b, 0xe0, 0x08, 0x65, 0x1b, 0x00, 0xfe, 0xee, 0xa1, 0xe3, 0x73, 0x01, 0x69, 0x21, 0xc7, 0x12,
- 0xc4, 0x16, 0xf9, 0x3d, 0x6a, 0x38, 0x91, 0x14, 0xee, 0x84, 0x9e, 0x58, 0xae, 0xf1, 0x38, 0xb9,
- 0x31, 0xf6, 0x86, 0x79, 0x2e, 0xc2, 0x96, 0x43, 0x3e, 0xb8, 0x85, 0x94, 0x02, 0x47, 0x87, 0x99,
- 0xcb, 0xf9, 0xb3, 0x9f, 0xbd, 0xff, 0xdd, 0x4f, 0xf8, 0xf6, 0x72, 0x15, 0x78, 0x57, 0xab, 0xc0,
- 0xfb, 0xb5, 0x0a, 0xbc, 0x2f, 0xeb, 0xa0, 0x76, 0xb5, 0x0e, 0x6a, 0x3f, 0xd6, 0x41, 0xed, 0xc3,
- 0xf3, 0xbf, 0x0d, 0x23, 0x63, 0xde, 0x9b, 0x28, 0x5a, 0x9e, 0xd1, 0x44, 0x89, 0xf9, 0x0c, 0xb4,
- 0x79, 0x32, 0x34, 0x1d, 0xbc, 0xe8, 0x99, 0xd7, 0xc2, 0x7a, 0x28, 0xde, 0xb7, 0xff, 0xee, 0xd9,
- 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x70, 0xf8, 0xe7, 0x52, 0x04, 0x00, 0x00,
+ // 525 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0x31, 0x6f, 0x13, 0x31,
+ 0x14, 0xc7, 0x73, 0x09, 0x6a, 0x1b, 0x47, 0x14, 0x74, 0x2a, 0x22, 0x8d, 0xe0, 0x52, 0x3c, 0x65,
+ 0x89, 0xad, 0xa4, 0x30, 0xc0, 0x04, 0x57, 0x29, 0x52, 0x27, 0xd0, 0x89, 0x89, 0x25, 0xf2, 0xd9,
+ 0x2f, 0xa9, 0x95, 0xdc, 0xf9, 0x74, 0xbe, 0x44, 0xca, 0xca, 0x27, 0xe0, 0x1b, 0xb0, 0xf3, 0x49,
+ 0xba, 0x20, 0x75, 0x64, 0x0a, 0x28, 0xf9, 0x06, 0xdd, 0x91, 0x90, 0x7d, 0x4e, 0x94, 0x82, 0xaa,
+ 0xaa, 0x12, 0xd3, 0xf9, 0xd9, 0xef, 0xef, 0xdf, 0xb3, 0xdf, 0xff, 0x8c, 0x5e, 0xc8, 0x98, 0x53,
+ 0x96, 0x65, 0x53, 0xc9, 0x59, 0x21, 0x55, 0xaa, 0xe9, 0x08, 0x80, 0xce, 0x7b, 0xe6, 0x43, 0xb2,
+ 0x5c, 0x15, 0xca, 0x7f, 0x2a, 0x63, 0x4e, 0x76, 0x53, 0x88, 0x59, 0x9b, 0xf7, 0x5a, 0x01, 0x57,
+ 0x3a, 0x51, 0x9a, 0xc6, 0x4c, 0x1b, 0x49, 0x0c, 0x05, 0xeb, 0x51, 0xae, 0x64, 0x5a, 0x0a, 0x5b,
+ 0x47, 0x63, 0x35, 0x56, 0x76, 0x48, 0xcd, 0xc8, 0xcd, 0x5a, 0x22, 0x57, 0x39, 0x50, 0x7e, 0xc1,
+ 0xd2, 0x14, 0xa6, 0x86, 0xe6, 0x86, 0x65, 0x0a, 0xfe, 0x5d, 0x45, 0xb5, 0x01, 0x80, 0xbf, 0x40,
+ 0x07, 0x39, 0xf0, 0xf9, 0x70, 0x04, 0xd0, 0xf4, 0x4e, 0x6a, 0x9d, 0x46, 0xff, 0x98, 0x94, 0x4c,
+ 0x62, 0x98, 0xc4, 0x31, 0xc9, 0x99, 0x92, 0x69, 0x78, 0x76, 0xb9, 0x6c, 0x57, 0xae, 0x97, 0xed,
+ 0x47, 0x0b, 0x96, 0x4c, 0xdf, 0xe0, 0x8d, 0x10, 0x7f, 0xfb, 0xd9, 0xee, 0x8c, 0x65, 0x71, 0x31,
+ 0x8b, 0x09, 0x57, 0x09, 0x75, 0x35, 0x97, 0x9f, 0xae, 0x16, 0x13, 0x5a, 0x2c, 0x32, 0xd0, 0x76,
+ 0x0f, 0x1d, 0xed, 0x1b, 0x99, 0x41, 0xcf, 0xd1, 0x3e, 0xe3, 0x13, 0x4b, 0xae, 0xde, 0x45, 0x0e,
+ 0x1d, 0xf9, 0xb0, 0x24, 0x3b, 0xdd, 0xfd, 0xc0, 0x7b, 0x8c, 0x4f, 0x0c, 0xf7, 0xb3, 0x87, 0x1a,
+ 0x85, 0x4c, 0x40, 0xcd, 0x0a, 0x0b, 0xaf, 0xdd, 0x05, 0x1f, 0x38, 0xb8, 0x5f, 0xc2, 0x77, 0xb4,
+ 0xf7, 0x2b, 0x00, 0x39, 0xe5, 0x00, 0x00, 0x7f, 0xf5, 0x50, 0xfd, 0x03, 0xe3, 0x13, 0x30, 0x91,
+ 0xff, 0x12, 0xd5, 0xca, 0x06, 0x78, 0x9d, 0x46, 0xff, 0x19, 0xb9, 0xc5, 0x0d, 0x64, 0x00, 0x10,
+ 0x3e, 0x30, 0xc5, 0x44, 0x26, 0xdd, 0x7f, 0x8b, 0x0e, 0x73, 0x18, 0xcd, 0x52, 0x31, 0x64, 0x42,
+ 0xe4, 0xa0, 0x75, 0xb3, 0x7a, 0xe2, 0x75, 0xea, 0xe1, 0xf1, 0xf5, 0xb2, 0xfd, 0x64, 0xd3, 0xa2,
+ 0xdd, 0x75, 0x1c, 0x3d, 0x2c, 0x27, 0xde, 0x95, 0xb1, 0xdf, 0x32, 0xdd, 0x9f, 0xb2, 0x05, 0xe4,
+ 0xda, 0x5e, 0x43, 0x3d, 0xda, 0xc6, 0x38, 0x41, 0x68, 0x5b, 0xa0, 0xf6, 0x87, 0xa8, 0x91, 0xd9,
+ 0xc8, 0x1c, 0x5b, 0x3b, 0xab, 0xe0, 0x5b, 0x2b, 0xdd, 0x2a, 0xc3, 0xd6, 0xcd, 0xcb, 0xdb, 0xd9,
+ 0x04, 0x47, 0x28, 0xdb, 0x02, 0xf0, 0x77, 0x0f, 0x1d, 0x9d, 0x0b, 0x48, 0x0b, 0x39, 0x92, 0x20,
+ 0x76, 0xc8, 0x1f, 0x51, 0xdd, 0x89, 0xa4, 0x70, 0x37, 0xf4, 0xdc, 0x72, 0x8d, 0xc1, 0xc9, 0xc6,
+ 0xd5, 0x5b, 0xe6, 0xb9, 0x08, 0x9b, 0x0e, 0xf9, 0xf8, 0x06, 0x52, 0x0a, 0x1c, 0x1d, 0x64, 0x2e,
+ 0xe7, 0xef, 0xf3, 0x54, 0xff, 0xf7, 0x79, 0xc2, 0xf7, 0x97, 0xab, 0xc0, 0xbb, 0x5a, 0x05, 0xde,
+ 0xaf, 0x55, 0xe0, 0x7d, 0x59, 0x07, 0x95, 0xab, 0x75, 0x50, 0xf9, 0xb1, 0x0e, 0x2a, 0x9f, 0x5e,
+ 0xfd, 0x6b, 0x18, 0x19, 0xf3, 0xee, 0x58, 0xd1, 0xf9, 0x29, 0x4d, 0x94, 0x98, 0x4d, 0x41, 0x9b,
+ 0xf7, 0x42, 0xd3, 0xfe, 0xeb, 0xae, 0x79, 0x2a, 0xac, 0x87, 0xe2, 0x3d, 0xfb, 0xe3, 0x9e, 0xfe,
+ 0x09, 0x00, 0x00, 0xff, 0xff, 0xc1, 0x6c, 0xa2, 0x41, 0x4f, 0x04, 0x00, 0x00,
}
func (m *Fee) Marshal() (dAtA []byte, err error) {
diff --git a/modules/apps/29-fee/types/genesis.pb.go b/modules/apps/29-fee/types/genesis.pb.go
index 84a946a6d43..af78add463e 100644
--- a/modules/apps/29-fee/types/genesis.pb.go
+++ b/modules/apps/29-fee/types/genesis.pb.go
@@ -24,12 +24,16 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
-// GenesisState defines the fee middleware genesis state
+// GenesisState defines the ICS29 fee middleware genesis state
type GenesisState struct {
- IdentifiedFees []IdentifiedPacketFees `protobuf:"bytes,1,rep,name=identified_fees,json=identifiedFees,proto3" json:"identified_fees" yaml:"identified_fees"`
- FeeEnabledChannels []FeeEnabledChannel `protobuf:"bytes,2,rep,name=fee_enabled_channels,json=feeEnabledChannels,proto3" json:"fee_enabled_channels" yaml:"fee_enabled_channels"`
+ // list of identified packet fees
+ IdentifiedFees []IdentifiedPacketFees `protobuf:"bytes,1,rep,name=identified_fees,json=identifiedFees,proto3" json:"identified_fees" yaml:"identified_fees"`
+ // list of fee enabled channels
+ FeeEnabledChannels []FeeEnabledChannel `protobuf:"bytes,2,rep,name=fee_enabled_channels,json=feeEnabledChannels,proto3" json:"fee_enabled_channels" yaml:"fee_enabled_channels"`
+ // list of registered relayer addresses
RegisteredRelayers []RegisteredRelayerAddress `protobuf:"bytes,3,rep,name=registered_relayers,json=registeredRelayers,proto3" json:"registered_relayers" yaml:"registered_relayers"`
- ForwardRelayers []ForwardRelayerAddress `protobuf:"bytes,4,rep,name=forward_relayers,json=forwardRelayers,proto3" json:"forward_relayers" yaml:"forward_relayers"`
+ // list of forward relayer addresses
+ ForwardRelayers []ForwardRelayerAddress `protobuf:"bytes,4,rep,name=forward_relayers,json=forwardRelayers,proto3" json:"forward_relayers" yaml:"forward_relayers"`
}
func (m *GenesisState) Reset() { *m = GenesisState{} }
@@ -95,7 +99,9 @@ func (m *GenesisState) GetForwardRelayers() []ForwardRelayerAddress {
// FeeEnabledChannel contains the PortID & ChannelID for a fee enabled channel
type FeeEnabledChannel struct {
- PortId string `protobuf:"bytes,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty" yaml:"port_id"`
+ // unique port identifier
+ PortId string `protobuf:"bytes,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty" yaml:"port_id"`
+ // unique channel identifier
ChannelId string `protobuf:"bytes,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty" yaml:"channel_id"`
}
@@ -148,9 +154,12 @@ func (m *FeeEnabledChannel) GetChannelId() string {
// RegisteredRelayerAddress contains the address and counterparty address for a specific relayer (for distributing fees)
type RegisteredRelayerAddress struct {
- Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
+ // the relayer address
+ Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
+ // the counterparty relayer address
CounterpartyAddress string `protobuf:"bytes,2,opt,name=counterparty_address,json=counterpartyAddress,proto3" json:"counterparty_address,omitempty" yaml:"counterparty_address"`
- ChannelId string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty" yaml:"channel_id"`
+ // unique channel identifier
+ ChannelId string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty" yaml:"channel_id"`
}
func (m *RegisteredRelayerAddress) Reset() { *m = RegisteredRelayerAddress{} }
@@ -207,9 +216,11 @@ func (m *RegisteredRelayerAddress) GetChannelId() string {
return ""
}
-// ForwardRelayerAddress contains the forward relayer address and packetId used for async acknowledgements
+// ForwardRelayerAddress contains the forward relayer address and PacketId used for async acknowledgements
type ForwardRelayerAddress struct {
- Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
+ // the forward relayer address
+ Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
+ // unique packet identifer comprised of the channel ID, port ID and sequence
PacketId types.PacketId `protobuf:"bytes,2,opt,name=packet_id,json=packetId,proto3" json:"packet_id" yaml:"packet_id"`
}
diff --git a/modules/apps/29-fee/types/query.pb.go b/modules/apps/29-fee/types/query.pb.go
index 5421eda2fff..dd130bcc3fd 100644
--- a/modules/apps/29-fee/types/query.pb.go
+++ b/modules/apps/29-fee/types/query.pb.go
@@ -33,11 +33,11 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
-// QueryIncentivizedPacketsRequest is the request type for querying for all incentivized packets
+// QueryIncentivizedPacketsRequest defines the request type for the IncentivizedPackets rpc
type QueryIncentivizedPacketsRequest struct {
// pagination defines an optional pagination for the request.
Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"`
- // Height to query at
+ // block height at which to query
QueryHeight uint64 `protobuf:"varint,2,opt,name=query_height,json=queryHeight,proto3" json:"query_height,omitempty"`
}
@@ -88,9 +88,9 @@ func (m *QueryIncentivizedPacketsRequest) GetQueryHeight() uint64 {
return 0
}
-// QueryIncentivizedPacketsResponse is the response type for the incentivized packets RPC
+// QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPackets rpc
type QueryIncentivizedPacketsResponse struct {
- // Map of all incentivized_packets
+ // list of identified fees for incentivized packets
IncentivizedPackets []IdentifiedPacketFees `protobuf:"bytes,1,rep,name=incentivized_packets,json=incentivizedPackets,proto3" json:"incentivized_packets"`
}
@@ -134,11 +134,11 @@ func (m *QueryIncentivizedPacketsResponse) GetIncentivizedPackets() []Identified
return nil
}
-// QueryIncentivizedPacketRequest is the request type for querying for all incentivized packets
+// QueryIncentivizedPacketRequest defines the request type for the IncentivizedPacket rpc
type QueryIncentivizedPacketRequest struct {
- // PacketID
+ // unique packet identifier comprised of channel ID, port ID and sequence
PacketId types.PacketId `protobuf:"bytes,1,opt,name=packet_id,json=packetId,proto3" json:"packet_id"`
- // Height to query at
+ // block height at which to query
QueryHeight uint64 `protobuf:"varint,2,opt,name=query_height,json=queryHeight,proto3" json:"query_height,omitempty"`
}
@@ -189,9 +189,9 @@ func (m *QueryIncentivizedPacketRequest) GetQueryHeight() uint64 {
return 0
}
-// QueryIncentivizedPacketsResponse is the response type for the incentivized packet RPC
+// QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPacket rpc
type QueryIncentivizedPacketResponse struct {
- // Incentivized_packet
+ // the identified fees for the incentivized packet
IncentivizedPacket IdentifiedPacketFees `protobuf:"bytes,1,opt,name=incentivized_packet,json=incentivizedPacket,proto3" json:"incentivized_packet"`
}
@@ -235,7 +235,7 @@ func (m *QueryIncentivizedPacketResponse) GetIncentivizedPacket() IdentifiedPack
return IdentifiedPacketFees{}
}
-// QueryIncentivizedPacketsForChannelRequest is the request type for querying for all incentivized packets
+// QueryIncentivizedPacketsForChannelRequest defines the request type for querying for all incentivized packets
// for a specific channel
type QueryIncentivizedPacketsForChannelRequest struct {
// pagination defines an optional pagination for the request.
@@ -311,7 +311,7 @@ func (m *QueryIncentivizedPacketsForChannelRequest) GetQueryHeight() uint64 {
return 0
}
-// QueryIncentivizedPacketsResponse is the response type for the incentivized packets RPC
+// QueryIncentivizedPacketsResponse defines the response type for the incentivized packets RPC
type QueryIncentivizedPacketsForChannelResponse struct {
// Map of all incentivized_packets
IncentivizedPackets []*IdentifiedPacketFees `protobuf:"bytes,1,rep,name=incentivized_packets,json=incentivizedPackets,proto3" json:"incentivized_packets,omitempty"`
@@ -732,10 +732,9 @@ const _ = grpc.SupportPackageIsVersion4
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type QueryClient interface {
- // Gets all incentivized packets
+ // IncentivizedPackets returns all incentivized packets and their associated fees
IncentivizedPackets(ctx context.Context, in *QueryIncentivizedPacketsRequest, opts ...grpc.CallOption) (*QueryIncentivizedPacketsResponse, error)
- // Gets the fees expected for submitting the ReceivePacket, AcknowledgementPacket, and TimeoutPacket messages for the
- // given packet
+ // IncentivizedPacket returns all packet fees for a packet given its identifier
IncentivizedPacket(ctx context.Context, in *QueryIncentivizedPacketRequest, opts ...grpc.CallOption) (*QueryIncentivizedPacketResponse, error)
// Gets all incentivized packets for a specific channel
IncentivizedPacketsForChannel(ctx context.Context, in *QueryIncentivizedPacketsForChannelRequest, opts ...grpc.CallOption) (*QueryIncentivizedPacketsForChannelResponse, error)
@@ -811,10 +810,9 @@ func (c *queryClient) TotalTimeoutFees(ctx context.Context, in *QueryTotalTimeou
// QueryServer is the server API for Query service.
type QueryServer interface {
- // Gets all incentivized packets
+ // IncentivizedPackets returns all incentivized packets and their associated fees
IncentivizedPackets(context.Context, *QueryIncentivizedPacketsRequest) (*QueryIncentivizedPacketsResponse, error)
- // Gets the fees expected for submitting the ReceivePacket, AcknowledgementPacket, and TimeoutPacket messages for the
- // given packet
+ // IncentivizedPacket returns all packet fees for a packet given its identifier
IncentivizedPacket(context.Context, *QueryIncentivizedPacketRequest) (*QueryIncentivizedPacketResponse, error)
// Gets all incentivized packets for a specific channel
IncentivizedPacketsForChannel(context.Context, *QueryIncentivizedPacketsForChannelRequest) (*QueryIncentivizedPacketsForChannelResponse, error)
diff --git a/modules/apps/29-fee/types/tx.pb.go b/modules/apps/29-fee/types/tx.pb.go
index c30331992dd..1cecc607dc9 100644
--- a/modules/apps/29-fee/types/tx.pb.go
+++ b/modules/apps/29-fee/types/tx.pb.go
@@ -29,11 +29,14 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
-// MsgRegisterCounterpartyAddress is the request type for registering the counterparty address
+// MsgRegisterCounterpartyAddress defines the request type for the RegisterCounterpartyAddress rpc
type MsgRegisterCounterpartyAddress struct {
- Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
+ // the relayer address
+ Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
+ // the counterparty relayer address
CounterpartyAddress string `protobuf:"bytes,2,opt,name=counterparty_address,json=counterpartyAddress,proto3" json:"counterparty_address,omitempty" yaml:"counterparty_address"`
- ChannelId string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty" yaml:"channel_id"`
+ // unique channel identifier
+ ChannelId string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty" yaml:"channel_id"`
}
func (m *MsgRegisterCounterpartyAddress) Reset() { *m = MsgRegisterCounterpartyAddress{} }
@@ -69,7 +72,7 @@ func (m *MsgRegisterCounterpartyAddress) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgRegisterCounterpartyAddress proto.InternalMessageInfo
-// MsgRegisterCounterpartyAddressResponse defines the Msg/RegisterCounterypartyAddress response type
+// MsgRegisterCounterpartyAddressResponse defines the response type for the RegisterCounterpartyAddress rpc
type MsgRegisterCounterpartyAddressResponse struct {
}
@@ -108,17 +111,19 @@ func (m *MsgRegisterCounterpartyAddressResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgRegisterCounterpartyAddressResponse proto.InternalMessageInfo
-// MsgPayPacketFee defines the request type PayPacketFee RPC
+// MsgPayPacketFee defines the request type for the PayPacketFee rpc
// This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be
// paid for
type MsgPayPacketFee struct {
+ // fee encapsulates the recv, ack and timeout fees associated with an IBC packet
Fee Fee `protobuf:"bytes,1,opt,name=fee,proto3" json:"fee"`
- // source channel port identifier
+ // the source port unique identifier
SourcePortId string `protobuf:"bytes,2,opt,name=source_port_id,json=sourcePortId,proto3" json:"source_port_id,omitempty" yaml:"source_port_id"`
- // source channel unique identifier
+ // the source channel unique identifer
SourceChannelId string `protobuf:"bytes,3,opt,name=source_channel_id,json=sourceChannelId,proto3" json:"source_channel_id,omitempty" yaml:"source_channel_id"`
// account address to refund fee if necessary
- Signer string `protobuf:"bytes,4,opt,name=signer,proto3" json:"signer,omitempty"`
+ Signer string `protobuf:"bytes,4,opt,name=signer,proto3" json:"signer,omitempty"`
+ // optional list of relayers permitted to the receive packet fees
Relayers []string `protobuf:"bytes,5,rep,name=relayers,proto3" json:"relayers,omitempty"`
}
@@ -155,7 +160,7 @@ func (m *MsgPayPacketFee) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgPayPacketFee proto.InternalMessageInfo
-// MsgPayPacketFeeResponse defines the response type for Msg/PayPacketFee
+// MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc
type MsgPayPacketFeeResponse struct {
}
@@ -192,12 +197,12 @@ func (m *MsgPayPacketFeeResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgPayPacketFeeResponse proto.InternalMessageInfo
-// MsgPayPacketFeeAsync defines the request type PayPacketFeeAsync RPC
+// MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc
// This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send)
type MsgPayPacketFeeAsync struct {
- // unique packet identifier
+ // unique packet identifier comprised of the channel ID, port ID and sequence
PacketId types.PacketId `protobuf:"bytes,1,opt,name=packet_id,json=packetId,proto3" json:"packet_id" yaml:"packet_id"`
- // packet fee for incentivization
+ // the packet fee associated with a particular IBC packet
PacketFee PacketFee `protobuf:"bytes,2,opt,name=packet_fee,json=packetFee,proto3" json:"packet_fee" yaml:"packet_fee"`
}
@@ -234,7 +239,7 @@ func (m *MsgPayPacketFeeAsync) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgPayPacketFeeAsync proto.InternalMessageInfo
-// MsgPayPacketFeeAsyncResponse defines the response type for Msg/PayPacketFeeAsync
+// MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc
type MsgPayPacketFeeAsyncResponse struct {
}
@@ -347,10 +352,12 @@ type MsgClient interface {
// PayPacketFee defines a rpc handler method for MsgPayPacketFee
// PayPacketFee is an open callback that may be called by any module/user that wishes to escrow funds in order to
// incentivize the relaying of the packet at the next sequence
+ // NOTE: This method is intended to be used within a multi msg transaction, where the subsequent msg that follows
+ // initiates the lifecycle of the incentivized packet
PayPacketFee(ctx context.Context, in *MsgPayPacketFee, opts ...grpc.CallOption) (*MsgPayPacketFeeResponse, error)
// PayPacketFeeAsync defines a rpc handler method for MsgPayPacketFeeAsync
// PayPacketFeeAsync is an open callback that may be called by any module/user that wishes to escrow funds in order to
- // incentivize the relaying of a known packet
+ // incentivize the relaying of a known packet (i.e. at a particular sequence)
PayPacketFeeAsync(ctx context.Context, in *MsgPayPacketFeeAsync, opts ...grpc.CallOption) (*MsgPayPacketFeeAsyncResponse, error)
}
@@ -400,10 +407,12 @@ type MsgServer interface {
// PayPacketFee defines a rpc handler method for MsgPayPacketFee
// PayPacketFee is an open callback that may be called by any module/user that wishes to escrow funds in order to
// incentivize the relaying of the packet at the next sequence
+ // NOTE: This method is intended to be used within a multi msg transaction, where the subsequent msg that follows
+ // initiates the lifecycle of the incentivized packet
PayPacketFee(context.Context, *MsgPayPacketFee) (*MsgPayPacketFeeResponse, error)
// PayPacketFeeAsync defines a rpc handler method for MsgPayPacketFeeAsync
// PayPacketFeeAsync is an open callback that may be called by any module/user that wishes to escrow funds in order to
- // incentivize the relaying of a known packet
+ // incentivize the relaying of a known packet (i.e. at a particular sequence)
PayPacketFeeAsync(context.Context, *MsgPayPacketFeeAsync) (*MsgPayPacketFeeAsyncResponse, error)
}
diff --git a/proto/ibc/applications/fee/v1/ack.proto b/proto/ibc/applications/fee/v1/ack.proto
index 6a77e4fce45..728c7536c6b 100644
--- a/proto/ibc/applications/fee/v1/ack.proto
+++ b/proto/ibc/applications/fee/v1/ack.proto
@@ -7,9 +7,11 @@ option go_package = "github.com/cosmos/ibc-go/v3/modules/apps/29-fee/types";
import "gogoproto/gogo.proto";
// IncentivizedAcknowledgement is the acknowledgement format to be used by applications wrapped in the fee middleware
-// It contains the raw acknowledgement bytes, as well as the forward relayer address
message IncentivizedAcknowledgement {
- bytes result = 1;
+ // the underlying app acknowledgement result bytes
+ bytes result = 1;
+ // the relayer address which submits the recv packet message
string forward_relayer_address = 2 [(gogoproto.moretags) = "yaml:\"forward_relayer_address\""];
- bool underlying_app_success = 3 [(gogoproto.moretags) = "yaml:\"underlying_app_successl\""];
+ // success flag of the base application callback
+ bool underlying_app_success = 3 [(gogoproto.moretags) = "yaml:\"underlying_app_successl\""];
}
diff --git a/proto/ibc/applications/fee/v1/fee.proto b/proto/ibc/applications/fee/v1/fee.proto
index b1ebd7008ad..e7a1fa438df 100644
--- a/proto/ibc/applications/fee/v1/fee.proto
+++ b/proto/ibc/applications/fee/v1/fee.proto
@@ -8,20 +8,21 @@ import "cosmos/base/v1beta1/coin.proto";
import "gogoproto/gogo.proto";
import "ibc/core/channel/v1/channel.proto";
-// Fee implements the ics29 Fee interface
-// See Fee Payment Middleware spec:
-// https://github.com/cosmos/ibc/tree/master/spec/app/ics-029-fee-payment#fee-middleware-contract
+// Fee defines the ICS29 receive, acknowledgement and timeout fees
message Fee {
+ // the packet receive fee
repeated cosmos.base.v1beta1.Coin recv_fee = 1 [
- (gogoproto.moretags) = "yaml:\"receive_fee\"",
+ (gogoproto.moretags) = "yaml:\"recv_fee\"",
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
];
+ // the packet acknowledgement fee
repeated cosmos.base.v1beta1.Coin ack_fee = 2 [
(gogoproto.moretags) = "yaml:\"ack_fee\"",
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
];
+ // the packet timeout fee
repeated cosmos.base.v1beta1.Coin timeout_fee = 3 [
(gogoproto.moretags) = "yaml:\"timeout_fee\"",
(gogoproto.nullable) = false,
@@ -29,22 +30,27 @@ message Fee {
];
}
-// PacketFee contains the relayer fee, refund address and an optional list of relayers that are permitted to receive the
-// fee
+// PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers
message PacketFee {
- Fee fee = 1 [(gogoproto.nullable) = false];
- string refund_address = 2 [(gogoproto.moretags) = "yaml:\"refund_address\""];
- repeated string relayers = 3;
+ // fee encapsulates the recv, ack and timeout fees associated with an IBC packet
+ Fee fee = 1 [(gogoproto.nullable) = false];
+ // the refund address for unspent fees
+ string refund_address = 2 [(gogoproto.moretags) = "yaml:\"refund_address\""];
+ // optional list of relayers permitted to receive fees
+ repeated string relayers = 3;
}
// PacketFees contains a list of type PacketFee
message PacketFees {
+ // list of packet fees
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 {
+ // unique packet identifier comprised of the channel ID, port ID and sequence
ibc.core.channel.v1.PacketId packet_id = 1
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"packet_id\""];
+ // list of packet fees
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 0e76fa3a168..cae132239d6 100644
--- a/proto/ibc/applications/fee/v1/genesis.proto
+++ b/proto/ibc/applications/fee/v1/genesis.proto
@@ -8,34 +8,45 @@ import "gogoproto/gogo.proto";
import "ibc/applications/fee/v1/fee.proto";
import "ibc/core/channel/v1/channel.proto";
-// GenesisState defines the fee middleware genesis state
+// GenesisState defines the ICS29 fee middleware genesis state
message GenesisState {
+ // list of identified packet fees
repeated IdentifiedPacketFees identified_fees = 1
[(gogoproto.moretags) = "yaml:\"identified_fees\"", (gogoproto.nullable) = false];
+ // list of fee enabled channels
repeated FeeEnabledChannel fee_enabled_channels = 2
[(gogoproto.moretags) = "yaml:\"fee_enabled_channels\"", (gogoproto.nullable) = false];
+ // list of registered relayer addresses
repeated RegisteredRelayerAddress registered_relayers = 3
[(gogoproto.moretags) = "yaml:\"registered_relayers\"", (gogoproto.nullable) = false];
+ // list of forward relayer addresses
repeated ForwardRelayerAddress forward_relayers = 4
[(gogoproto.moretags) = "yaml:\"forward_relayers\"", (gogoproto.nullable) = false];
}
// FeeEnabledChannel contains the PortID & ChannelID for a fee enabled channel
message FeeEnabledChannel {
- string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""];
+ // unique port identifier
+ string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""];
+ // unique channel identifier
string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""];
}
// RegisteredRelayerAddress contains the address and counterparty address for a specific relayer (for distributing fees)
message RegisteredRelayerAddress {
- string address = 1;
+ // the relayer address
+ string address = 1;
+ // the counterparty relayer address
string counterparty_address = 2 [(gogoproto.moretags) = "yaml:\"counterparty_address\""];
- string channel_id = 3 [(gogoproto.moretags) = "yaml:\"channel_id\""];
+ // unique channel identifier
+ string channel_id = 3 [(gogoproto.moretags) = "yaml:\"channel_id\""];
}
-// ForwardRelayerAddress contains the forward relayer address and packetId used for async acknowledgements
+// ForwardRelayerAddress contains the forward relayer address and PacketId used for async acknowledgements
message ForwardRelayerAddress {
- string address = 1;
+ // the forward relayer address
+ string address = 1;
+ // unique packet identifer comprised of the channel ID, port ID and sequence
ibc.core.channel.v1.PacketId packet_id = 2
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"packet_id\""];
}
diff --git a/proto/ibc/applications/fee/v1/query.proto b/proto/ibc/applications/fee/v1/query.proto
index 8f2f7188839..3e5d6b8740d 100644
--- a/proto/ibc/applications/fee/v1/query.proto
+++ b/proto/ibc/applications/fee/v1/query.proto
@@ -11,15 +11,14 @@ import "cosmos/base/query/v1beta1/pagination.proto";
import "ibc/applications/fee/v1/fee.proto";
import "ibc/core/channel/v1/channel.proto";
-// Query provides defines the gRPC querier service.
+// Query defines the ICS29 gRPC querier service.
service Query {
- // Gets all incentivized packets
+ // IncentivizedPackets returns all incentivized packets and their associated fees
rpc IncentivizedPackets(QueryIncentivizedPacketsRequest) returns (QueryIncentivizedPacketsResponse) {
option (google.api.http).get = "/ibc/apps/fee/v1/incentivized_packets";
}
- // Gets the fees expected for submitting the ReceivePacket, AcknowledgementPacket, and TimeoutPacket messages for the
- // given packet
+ // IncentivizedPacket returns all packet fees for a packet given its identifier
rpc IncentivizedPacket(QueryIncentivizedPacketRequest) returns (QueryIncentivizedPacketResponse) {
option (google.api.http).get =
"/ibc/apps/fee/v1/incentivized_packet/port/{packet_id.port_id}/channel/{packet_id.channel_id}/sequence/"
@@ -51,35 +50,35 @@ service Query {
}
}
-// QueryIncentivizedPacketsRequest is the request type for querying for all incentivized packets
+// QueryIncentivizedPacketsRequest defines the request type for the IncentivizedPackets rpc
message QueryIncentivizedPacketsRequest {
// pagination defines an optional pagination for the request.
cosmos.base.query.v1beta1.PageRequest pagination = 1;
- // Height to query at
+ // block height at which to query
uint64 query_height = 2;
}
-// QueryIncentivizedPacketsResponse is the response type for the incentivized packets RPC
+// QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPackets rpc
message QueryIncentivizedPacketsResponse {
- // Map of all incentivized_packets
+ // list of identified fees for incentivized packets
repeated ibc.applications.fee.v1.IdentifiedPacketFees incentivized_packets = 1 [(gogoproto.nullable) = false];
}
-// QueryIncentivizedPacketRequest is the request type for querying for all incentivized packets
+// QueryIncentivizedPacketRequest defines the request type for the IncentivizedPacket rpc
message QueryIncentivizedPacketRequest {
- // PacketID
+ // unique packet identifier comprised of channel ID, port ID and sequence
ibc.core.channel.v1.PacketId packet_id = 1 [(gogoproto.nullable) = false];
- // Height to query at
+ // block height at which to query
uint64 query_height = 2;
}
-// QueryIncentivizedPacketsResponse is the response type for the incentivized packet RPC
+// QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPacket rpc
message QueryIncentivizedPacketResponse {
- // Incentivized_packet
+ // the identified fees for the incentivized packet
ibc.applications.fee.v1.IdentifiedPacketFees incentivized_packet = 1 [(gogoproto.nullable) = false];
}
-// QueryIncentivizedPacketsForChannelRequest is the request type for querying for all incentivized packets
+// QueryIncentivizedPacketsForChannelRequest defines the request type for querying for all incentivized packets
// for a specific channel
message QueryIncentivizedPacketsForChannelRequest {
// pagination defines an optional pagination for the request.
@@ -90,7 +89,7 @@ message QueryIncentivizedPacketsForChannelRequest {
uint64 query_height = 4;
}
-// QueryIncentivizedPacketsResponse is the response type for the incentivized packets RPC
+// QueryIncentivizedPacketsResponse defines the response type for the incentivized packets RPC
message QueryIncentivizedPacketsForChannelResponse {
// Map of all incentivized_packets
repeated ibc.applications.fee.v1.IdentifiedPacketFees incentivized_packets = 1;
diff --git a/proto/ibc/applications/fee/v1/tx.proto b/proto/ibc/applications/fee/v1/tx.proto
index ec2f2cc4f38..7a0044cd363 100644
--- a/proto/ibc/applications/fee/v1/tx.proto
+++ b/proto/ibc/applications/fee/v1/tx.proto
@@ -8,7 +8,7 @@ import "gogoproto/gogo.proto";
import "ibc/applications/fee/v1/fee.proto";
import "ibc/core/channel/v1/channel.proto";
-// Msg defines the ibc/fee Msg service.
+// Msg defines the ICS29 Msg service.
service Msg {
// RegisterCounterpartyAddress defines a rpc handler method for MsgRegisterCounterpartyAddress
// RegisterCounterpartyAddress is called by the relayer on each channelEnd and allows them to specify their
@@ -16,61 +16,70 @@ service Msg {
// destination chain must send back relayer's source address (counterparty address) in acknowledgement. This function
// may be called more than once by a relayer, in which case, latest counterparty address is always used.
rpc RegisterCounterpartyAddress(MsgRegisterCounterpartyAddress) returns (MsgRegisterCounterpartyAddressResponse);
+
// PayPacketFee defines a rpc handler method for MsgPayPacketFee
// PayPacketFee is an open callback that may be called by any module/user that wishes to escrow funds in order to
// incentivize the relaying of the packet at the next sequence
+ // NOTE: This method is intended to be used within a multi msg transaction, where the subsequent msg that follows
+ // initiates the lifecycle of the incentivized packet
rpc PayPacketFee(MsgPayPacketFee) returns (MsgPayPacketFeeResponse);
+
// PayPacketFeeAsync defines a rpc handler method for MsgPayPacketFeeAsync
// PayPacketFeeAsync is an open callback that may be called by any module/user that wishes to escrow funds in order to
- // incentivize the relaying of a known packet
+ // incentivize the relaying of a known packet (i.e. at a particular sequence)
rpc PayPacketFeeAsync(MsgPayPacketFeeAsync) returns (MsgPayPacketFeeAsyncResponse);
}
-// MsgRegisterCounterpartyAddress is the request type for registering the counterparty address
+// MsgRegisterCounterpartyAddress defines the request type for the RegisterCounterpartyAddress rpc
message MsgRegisterCounterpartyAddress {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
- string address = 1;
+ // the relayer address
+ string address = 1;
+ // the counterparty relayer address
string counterparty_address = 2 [(gogoproto.moretags) = "yaml:\"counterparty_address\""];
- string channel_id = 3 [(gogoproto.moretags) = "yaml:\"channel_id\""];
+ // unique channel identifier
+ string channel_id = 3 [(gogoproto.moretags) = "yaml:\"channel_id\""];
}
-// MsgRegisterCounterpartyAddressResponse defines the Msg/RegisterCounterypartyAddress response type
+// MsgRegisterCounterpartyAddressResponse defines the response type for the RegisterCounterpartyAddress rpc
message MsgRegisterCounterpartyAddressResponse {}
-// MsgPayPacketFee defines the request type PayPacketFee RPC
+// MsgPayPacketFee defines the request type for the PayPacketFee rpc
// This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be
// paid for
message MsgPayPacketFee {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
+ // fee encapsulates the recv, ack and timeout fees associated with an IBC packet
ibc.applications.fee.v1.Fee fee = 1 [(gogoproto.nullable) = false];
- // source channel port identifier
+ // the source port unique identifier
string source_port_id = 2 [(gogoproto.moretags) = "yaml:\"source_port_id\""];
- // source channel unique identifier
+ // the source channel unique identifer
string source_channel_id = 3 [(gogoproto.moretags) = "yaml:\"source_channel_id\""];
// account address to refund fee if necessary
- string signer = 4;
+ string signer = 4;
+ // optional list of relayers permitted to the receive packet fees
repeated string relayers = 5;
}
-// MsgPayPacketFeeResponse defines the response type for Msg/PayPacketFee
+// MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc
message MsgPayPacketFeeResponse {}
-// MsgPayPacketFeeAsync defines the request type PayPacketFeeAsync RPC
+// MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc
// This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send)
message MsgPayPacketFeeAsync {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
- // unique packet identifier
+ // unique packet identifier comprised of the channel ID, port ID and sequence
ibc.core.channel.v1.PacketId packet_id = 1
[(gogoproto.moretags) = "yaml:\"packet_id\"", (gogoproto.nullable) = false];
- // packet fee for incentivization
+ // the packet fee associated with a particular IBC packet
PacketFee packet_fee = 2 [(gogoproto.moretags) = "yaml:\"packet_fee\"", (gogoproto.nullable) = false];
}
-// MsgPayPacketFeeAsyncResponse defines the response type for Msg/PayPacketFeeAsync
+// MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc
message MsgPayPacketFeeAsyncResponse {}