-
Notifications
You must be signed in to change notification settings - Fork 135
/
ibc_data.schema.json
155 lines (155 loc) · 4.48 KB
/
ibc_data.schema.json
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
{
"$schema": "https://json-schema.org/draft-07/schema",
"type": "object",
"required": ["chain_1", "chain_2", "channels"],
"properties": {
"$schema": {
"type": "string",
"pattern": "^(\\.\\./)+ibc_data\\.schema\\.json$"
},
"chain_1": {
"type": "object",
"$ref": "#/$defs/chain_info"
},
"chain_2": {
"type": "object",
"$ref": "#/$defs/chain_info"
},
"channels": {
"type": "array",
"items": {
"type": "object",
"required": ["chain_1", "chain_2", "ordering", "version"],
"properties": {
"chain_1": {
"type": "object",
"$ref": "#/$defs/channel_info"
},
"chain_2": {
"type": "object",
"$ref": "#/$defs/channel_info"
},
"ordering": {
"enum": ["ordered", "unordered"],
"description": "Determines if packets from a sending module must be 'ordered' or 'unordered'."
},
"version": {
"type": "string",
"description": "IBC Version"
},
"description": {
"type": "string",
"description": "Human readable description of the channel."
},
"tags": {
"type": "object",
"description": "Human readable key:value pairs that help describe and distinguish channels.",
"properties": {
"status": {
"enum": ["live", "upcoming", "killed"]
},
"preferred": {
"type": "boolean"
},
"dex": {
"type": "string"
},
"properties": {
"type": "string",
"description": "String that helps describe non-dex use cases ex: interchain accounts(ICA)."
}
},
"additionalProperties": true
}
},
"additionalProperties": false
}
},
"operators": {
"type": "array",
"items": {
"type": "object",
"required": ["chain_1", "chain_2"],
"properties": {
"chain_1": {
"type": "object",
"$ref": "#/$defs/operator_info"
},
"chain_2": {
"type": "object",
"$ref": "#/$defs/operator_info"
},
"memo": {
"type": "string",
"description": "Relayer memo included in transactions"
},
"name": {
"type": "string",
"description": "Relayer name"
},
"discord": {
"type": "object",
"required": ["handle", "id"],
"properties": {
"handle": {
"type": "string",
"description": "Relayer discord handle"
},
"id": {
"type": "string",
"description": "Relayer discord ID"
}
}
}
}
}
}
},
"additionalProperties": false,
"$defs": {
"chain_info": {
"type": "object",
"description": "Top level IBC data pertaining to the chain. `chain_1` and `chain_2` should be in alphabetical order.",
"required": ["chain_name", "client_id", "connection_id"],
"properties": {
"chain_name": {
"type": "string"
},
"client_id": {
"type": "string",
"description": "The client ID on the corresponding chain representing the other chain's light client."
},
"connection_id": {
"type": "string",
"description": "The connection ID on the corresponding chain representing a connection to the other chain."
}
},
"additionalProperties": false
},
"channel_info": {
"type": "object",
"required": ["channel_id", "port_id"],
"properties": {
"channel_id": {
"type": "string",
"description": "The channel ID on the corresponding chain's connection representing a channel on the other chain."
},
"port_id": {
"type": "string",
"description": "The IBC port ID which a relevant module binds to on the corresponding chain."
}
},
"additionalProperties": false
},
"operator_info": {
"type": "object",
"required": ["address"],
"properties": {
"address": {
"type": "string",
"description": "The signer address of the relayer operator"
}
}
}
}
}