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 {}