-
Notifications
You must be signed in to change notification settings - Fork 597
/
fee.proto
56 lines (49 loc) · 2.17 KB
/
fee.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
syntax = "proto3";
package ibc.applications.fee.v1;
option go_package = "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types";
import "cosmos/base/v1beta1/coin.proto";
import "gogoproto/gogo.proto";
import "ibc/core/channel/v1/channel.proto";
// 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:\"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,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
];
}
// PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers
message PacketFee {
// 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];
}