@@ -21,12 +21,34 @@ type WriteAcknowledgementMsg struct {
21
21
type CloseChannelMsg struct {
22
22
ChannelID string `json:"channel_id"`
23
23
}
24
+ type PayPacketFeeMsg struct {
25
+ // The channel id on the chain where the packet is sent from (this chain).
26
+ ChannelID string `json:"channel_id"`
27
+ Fee IBCFee `json:"fee"`
28
+ // The port id on the chain where the packet is sent from (this chain).
29
+ PortID string `json:"port_id"`
30
+ // Allowlist of relayer addresses that can receive the fee. This is currently not implemented and *must* be empty.
31
+ Relayers Array [string ] `json:"relayers"`
32
+ }
33
+ type PayPacketFeeAsyncMsg struct {
34
+ // The channel id on the chain where the packet is sent from (this chain).
35
+ ChannelID string `json:"channel_id"`
36
+ Fee IBCFee `json:"fee"`
37
+ // The port id on the chain where the packet is sent from (this chain).
38
+ PortID string `json:"port_id"`
39
+ // Allowlist of relayer addresses that can receive the fee. This is currently not implemented and *must* be empty.
40
+ Relayers Array [string ] `json:"relayers"`
41
+ // The sequence number of the packet that should be incentivized.
42
+ Sequence uint64 `json:"sequence"`
43
+ }
24
44
25
45
type IBCMsg struct {
26
46
Transfer * TransferMsg `json:"transfer,omitempty"`
27
47
SendPacket * SendPacketMsg `json:"send_packet,omitempty"`
28
48
WriteAcknowledgement * WriteAcknowledgementMsg `json:"write_acknowledgement,omitempty"`
29
49
CloseChannel * CloseChannelMsg `json:"close_channel,omitempty"`
50
+ PayPacketFee * PayPacketFeeMsg `json:"pay_packet_fee,omitempty"`
51
+ PayPacketFeeAsync * PayPacketFeeAsyncMsg `json:"pay_packet_fee_async,omitempty"`
30
52
}
31
53
32
54
// Coin is a string representation of the sdk.Coin type (more portable than sdk.Int)
@@ -38,6 +60,11 @@ type Coin struct {
38
60
type IBCAcknowledgement struct {
39
61
Data []byte `json:"data"`
40
62
}
63
+ type IBCFee struct {
64
+ AckFee Array [Coin ] `json:"ack_fee"`
65
+ RecvFee Array [Coin ] `json:"recv_fee"`
66
+ TimeoutFee Array [Coin ] `json:"timeout_fee"`
67
+ }
41
68
42
69
// IBCTimeout is the timeout for an IBC packet. At least one of block and timestamp is required.
43
70
type IBCTimeout struct {
0 commit comments