forked from initia-labs/initia-registry
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ibc_data.schema.json
114 lines (114 loc) · 3.59 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
{
"$schema": "http://json-schema.org/draft-04/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
}
}
},
"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."
},
"client_id": {
"type": "string",
"description": "Optional. The client ID on the corresponding chain representing the other chain's light client."
},
"connection_id": {
"type": "string",
"description": "Optional. The connection ID on the corresponding chain representing a connection to the other chain."
}
},
"additionalProperties": false
}
}
}