meshtensor-cli 9.18.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- meshtensor_cli/__init__.py +22 -0
- meshtensor_cli/cli.py +10742 -0
- meshtensor_cli/doc_generation_helper.py +4 -0
- meshtensor_cli/src/__init__.py +1085 -0
- meshtensor_cli/src/commands/__init__.py +0 -0
- meshtensor_cli/src/commands/axon/__init__.py +0 -0
- meshtensor_cli/src/commands/axon/axon.py +132 -0
- meshtensor_cli/src/commands/crowd/__init__.py +0 -0
- meshtensor_cli/src/commands/crowd/contribute.py +621 -0
- meshtensor_cli/src/commands/crowd/contributors.py +200 -0
- meshtensor_cli/src/commands/crowd/create.py +783 -0
- meshtensor_cli/src/commands/crowd/dissolve.py +219 -0
- meshtensor_cli/src/commands/crowd/refund.py +233 -0
- meshtensor_cli/src/commands/crowd/update.py +418 -0
- meshtensor_cli/src/commands/crowd/utils.py +124 -0
- meshtensor_cli/src/commands/crowd/view.py +991 -0
- meshtensor_cli/src/commands/governance/__init__.py +0 -0
- meshtensor_cli/src/commands/governance/governance.py +794 -0
- meshtensor_cli/src/commands/liquidity/__init__.py +0 -0
- meshtensor_cli/src/commands/liquidity/liquidity.py +699 -0
- meshtensor_cli/src/commands/liquidity/utils.py +202 -0
- meshtensor_cli/src/commands/proxy.py +700 -0
- meshtensor_cli/src/commands/stake/__init__.py +0 -0
- meshtensor_cli/src/commands/stake/add.py +799 -0
- meshtensor_cli/src/commands/stake/auto_staking.py +306 -0
- meshtensor_cli/src/commands/stake/children_hotkeys.py +865 -0
- meshtensor_cli/src/commands/stake/claim.py +770 -0
- meshtensor_cli/src/commands/stake/list.py +738 -0
- meshtensor_cli/src/commands/stake/move.py +1211 -0
- meshtensor_cli/src/commands/stake/remove.py +1466 -0
- meshtensor_cli/src/commands/stake/wizard.py +323 -0
- meshtensor_cli/src/commands/subnets/__init__.py +0 -0
- meshtensor_cli/src/commands/subnets/mechanisms.py +515 -0
- meshtensor_cli/src/commands/subnets/price.py +733 -0
- meshtensor_cli/src/commands/subnets/subnets.py +2908 -0
- meshtensor_cli/src/commands/sudo.py +1294 -0
- meshtensor_cli/src/commands/tc/__init__.py +0 -0
- meshtensor_cli/src/commands/tc/tc.py +190 -0
- meshtensor_cli/src/commands/treasury/__init__.py +0 -0
- meshtensor_cli/src/commands/treasury/treasury.py +194 -0
- meshtensor_cli/src/commands/view.py +354 -0
- meshtensor_cli/src/commands/wallets.py +2311 -0
- meshtensor_cli/src/commands/weights.py +467 -0
- meshtensor_cli/src/meshtensor/__init__.py +0 -0
- meshtensor_cli/src/meshtensor/balances.py +313 -0
- meshtensor_cli/src/meshtensor/chain_data.py +1263 -0
- meshtensor_cli/src/meshtensor/extrinsics/__init__.py +0 -0
- meshtensor_cli/src/meshtensor/extrinsics/mev_shield.py +174 -0
- meshtensor_cli/src/meshtensor/extrinsics/registration.py +1861 -0
- meshtensor_cli/src/meshtensor/extrinsics/root.py +550 -0
- meshtensor_cli/src/meshtensor/extrinsics/serving.py +255 -0
- meshtensor_cli/src/meshtensor/extrinsics/transfer.py +239 -0
- meshtensor_cli/src/meshtensor/meshtensor_interface.py +2598 -0
- meshtensor_cli/src/meshtensor/minigraph.py +254 -0
- meshtensor_cli/src/meshtensor/networking.py +12 -0
- meshtensor_cli/src/meshtensor/templates/main-filters.j2 +24 -0
- meshtensor_cli/src/meshtensor/templates/main-header.j2 +36 -0
- meshtensor_cli/src/meshtensor/templates/neuron-details.j2 +111 -0
- meshtensor_cli/src/meshtensor/templates/price-multi.j2 +113 -0
- meshtensor_cli/src/meshtensor/templates/price-single.j2 +99 -0
- meshtensor_cli/src/meshtensor/templates/subnet-details-header.j2 +49 -0
- meshtensor_cli/src/meshtensor/templates/subnet-details.j2 +32 -0
- meshtensor_cli/src/meshtensor/templates/subnet-metrics.j2 +57 -0
- meshtensor_cli/src/meshtensor/templates/subnets-table.j2 +28 -0
- meshtensor_cli/src/meshtensor/templates/table.j2 +267 -0
- meshtensor_cli/src/meshtensor/templates/view.css +1058 -0
- meshtensor_cli/src/meshtensor/templates/view.j2 +43 -0
- meshtensor_cli/src/meshtensor/templates/view.js +1053 -0
- meshtensor_cli/src/meshtensor/utils.py +2007 -0
- meshtensor_cli/version.py +23 -0
- meshtensor_cli-9.18.1.dist-info/METADATA +261 -0
- meshtensor_cli-9.18.1.dist-info/RECORD +74 -0
- meshtensor_cli-9.18.1.dist-info/WHEEL +4 -0
- meshtensor_cli-9.18.1.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,1085 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Constants:
|
|
7
|
+
networks = [
|
|
8
|
+
"local",
|
|
9
|
+
"finney",
|
|
10
|
+
"test",
|
|
11
|
+
"archive",
|
|
12
|
+
"meshlet",
|
|
13
|
+
"dev",
|
|
14
|
+
"latent-lite",
|
|
15
|
+
]
|
|
16
|
+
finney_entrypoint = "wss://entrypoint-finney.opentensor.ai:443"
|
|
17
|
+
finney_test_entrypoint = "wss://test.finney.opentensor.ai:443"
|
|
18
|
+
archive_entrypoint = "wss://archive.chain.opentensor.ai:443"
|
|
19
|
+
local_entrypoint = "ws://127.0.0.1:9944"
|
|
20
|
+
meshlet_entrypoint = "wss://meshlet.chain.opentensor.ai:443"
|
|
21
|
+
dev_entrypoint = "wss://dev.chain.opentensor.ai:443"
|
|
22
|
+
latent_lite_entrypoint = "wss://lite.sub.latent.to:443"
|
|
23
|
+
lite_nodes = [finney_entrypoint, latent_lite_entrypoint]
|
|
24
|
+
network_map = {
|
|
25
|
+
"finney": finney_entrypoint,
|
|
26
|
+
"test": finney_test_entrypoint,
|
|
27
|
+
"archive": archive_entrypoint,
|
|
28
|
+
"local": local_entrypoint,
|
|
29
|
+
"dev": dev_entrypoint,
|
|
30
|
+
"meshlet": meshlet_entrypoint,
|
|
31
|
+
"latent-lite": latent_lite_entrypoint,
|
|
32
|
+
}
|
|
33
|
+
genesis_block_hash_map = {
|
|
34
|
+
"finney": "0x2f0555cc76fc2840a25a6ea3b9637146806f1f44b090c175ffde2a7e5ab36c03",
|
|
35
|
+
"test": "0x8f9cf856bf558a14440e75569c9e58594757048d7b3a84b5d25f6bd978263105",
|
|
36
|
+
}
|
|
37
|
+
delegates_detail_url = "https://raw.githubusercontent.com/opentensor/meshtensor-delegates/main/public/delegates.json"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@dataclass
|
|
41
|
+
class DelegatesDetails:
|
|
42
|
+
display: str
|
|
43
|
+
additional: list[tuple[str, str]]
|
|
44
|
+
web: str
|
|
45
|
+
legal: Optional[str] = None
|
|
46
|
+
riot: Optional[str] = None
|
|
47
|
+
email: Optional[str] = None
|
|
48
|
+
pgp_fingerprint: Optional[str] = None
|
|
49
|
+
image: Optional[str] = None
|
|
50
|
+
twitter: Optional[str] = None
|
|
51
|
+
|
|
52
|
+
@classmethod
|
|
53
|
+
def from_chain_data(cls, data: dict[str, Any]) -> "DelegatesDetails":
|
|
54
|
+
def decode(key: str, default=""):
|
|
55
|
+
try:
|
|
56
|
+
if isinstance(data.get(key), dict):
|
|
57
|
+
value = next(data.get(key).values())
|
|
58
|
+
return bytes(value[0]).decode("utf-8")
|
|
59
|
+
elif isinstance(data.get(key), int):
|
|
60
|
+
return data.get(key)
|
|
61
|
+
elif isinstance(data.get(key), tuple):
|
|
62
|
+
return bytes(data.get(key)[0]).decode("utf-8")
|
|
63
|
+
else:
|
|
64
|
+
return default
|
|
65
|
+
except (UnicodeDecodeError, TypeError):
|
|
66
|
+
return default
|
|
67
|
+
|
|
68
|
+
return cls(
|
|
69
|
+
display=decode("display"),
|
|
70
|
+
additional=decode("additional", []),
|
|
71
|
+
web=decode("web"),
|
|
72
|
+
legal=decode("legal"),
|
|
73
|
+
riot=decode("riot"),
|
|
74
|
+
email=decode("email"),
|
|
75
|
+
pgp_fingerprint=decode("pgp_fingerprint", None),
|
|
76
|
+
image=decode("image"),
|
|
77
|
+
twitter=decode("twitter"),
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class Defaults:
|
|
82
|
+
netuid = 1
|
|
83
|
+
rate_tolerance = 0.005
|
|
84
|
+
|
|
85
|
+
class config:
|
|
86
|
+
base_path = "~/.meshtensor"
|
|
87
|
+
path = "~/.meshtensor/config.yml"
|
|
88
|
+
debug_file_path = "~/.meshtensor/debug.txt"
|
|
89
|
+
dictionary = {
|
|
90
|
+
"network": None,
|
|
91
|
+
"wallet_path": None,
|
|
92
|
+
"wallet_name": None,
|
|
93
|
+
"wallet_hotkey": None,
|
|
94
|
+
"use_cache": True,
|
|
95
|
+
"disk_cache": False,
|
|
96
|
+
"metagraph_cols": {
|
|
97
|
+
"UID": True,
|
|
98
|
+
"GLOBAL_STAKE": True,
|
|
99
|
+
"LOCAL_STAKE": True,
|
|
100
|
+
"STAKE_WEIGHT": True,
|
|
101
|
+
"RANK": True,
|
|
102
|
+
"TRUST": True,
|
|
103
|
+
"CONSENSUS": True,
|
|
104
|
+
"INCENTIVE": True,
|
|
105
|
+
"DIVIDENDS": True,
|
|
106
|
+
"EMISSION": True,
|
|
107
|
+
"VTRUST": True,
|
|
108
|
+
"VAL": True,
|
|
109
|
+
"UPDATED": True,
|
|
110
|
+
"ACTIVE": True,
|
|
111
|
+
"AXON": True,
|
|
112
|
+
"HOTKEY": True,
|
|
113
|
+
"COLDKEY": True,
|
|
114
|
+
},
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
class proxies:
|
|
118
|
+
base_path = "~/.meshtensor"
|
|
119
|
+
path = "~/.meshtensor/meshtensor.db"
|
|
120
|
+
dictionary = {}
|
|
121
|
+
|
|
122
|
+
class meshtensor:
|
|
123
|
+
network = "finney"
|
|
124
|
+
chain_endpoint = None
|
|
125
|
+
_mock = False
|
|
126
|
+
|
|
127
|
+
class pow_register:
|
|
128
|
+
num_processes = None
|
|
129
|
+
update_interval = 50_000
|
|
130
|
+
output_in_place = True
|
|
131
|
+
verbose = False
|
|
132
|
+
|
|
133
|
+
class cuda:
|
|
134
|
+
dev_id = 0
|
|
135
|
+
use_cuda = False
|
|
136
|
+
tpb = 256
|
|
137
|
+
|
|
138
|
+
class wallet:
|
|
139
|
+
name = "default"
|
|
140
|
+
hotkey = "default"
|
|
141
|
+
path = "~/.meshtensor/wallets/"
|
|
142
|
+
|
|
143
|
+
class logging:
|
|
144
|
+
debug = False
|
|
145
|
+
trace = False
|
|
146
|
+
record_log = False
|
|
147
|
+
logging_dir = "~/.meshtensor/miners"
|
|
148
|
+
|
|
149
|
+
class dashboard:
|
|
150
|
+
path = "~/.meshtensor/dashboard/"
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
defaults = Defaults
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class WalletOptions(Enum):
|
|
157
|
+
PATH: str = "path"
|
|
158
|
+
NAME: str = "name"
|
|
159
|
+
HOTKEY: str = "hotkey"
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
class WalletValidationTypes(Enum):
|
|
163
|
+
NONE = None
|
|
164
|
+
WALLET = "wallet"
|
|
165
|
+
WALLET_AND_HOTKEY = "wallet_and_hotkey"
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
TYPE_REGISTRY = {
|
|
169
|
+
"types": {
|
|
170
|
+
"Balance": "u64", # Need to override default u128
|
|
171
|
+
},
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
UNITS = [
|
|
175
|
+
b"\xce\xa4".decode(), # Τ (Upper case Tau, 0)
|
|
176
|
+
b"\xce\xb1".decode(), # α (Alpha, 1)
|
|
177
|
+
b"\xce\xb2".decode(), # β (Beta, 2)
|
|
178
|
+
b"\xce\xb3".decode(), # γ (Gamma, 3)
|
|
179
|
+
b"\xce\xb4".decode(), # δ (Delta, 4)
|
|
180
|
+
b"\xce\xb5".decode(), # ε (Epsilon, 5)
|
|
181
|
+
b"\xce\xb6".decode(), # ζ (Zeta, 6)
|
|
182
|
+
b"\xce\xb7".decode(), # η (Eta, 7)
|
|
183
|
+
b"\xce\xb8".decode(), # θ (Theta, 8)
|
|
184
|
+
b"\xce\xb9".decode(), # ι (Iota, 9)
|
|
185
|
+
b"\xce\xba".decode(), # κ (Kappa, 10)
|
|
186
|
+
b"\xce\xbb".decode(), # λ (Lambda, 11)
|
|
187
|
+
b"\xce\xbc".decode(), # μ (Mu, 12)
|
|
188
|
+
b"\xce\xbd".decode(), # ν (Nu, 13)
|
|
189
|
+
b"\xce\xbe".decode(), # ξ (Xi, 14)
|
|
190
|
+
b"\xce\xbf".decode(), # ο (Omicron, 15)
|
|
191
|
+
b"\xcf\x80".decode(), # π (Pi, 16)
|
|
192
|
+
b"\xcf\x81".decode(), # ρ (Rho, 17)
|
|
193
|
+
b"\xcf\x83".decode(), # σ (Sigma, 18)
|
|
194
|
+
"t", # t (Tau, 19)
|
|
195
|
+
b"\xcf\x85".decode(), # υ (Upsilon, 20)
|
|
196
|
+
b"\xcf\x86".decode(), # φ (Phi, 21)
|
|
197
|
+
b"\xcf\x87".decode(), # χ (Chi, 22)
|
|
198
|
+
b"\xcf\x88".decode(), # ψ (Psi, 23)
|
|
199
|
+
b"\xcf\x89".decode(), # ω (Omega, 24)
|
|
200
|
+
b"\xd7\x90".decode(), # א (Aleph, 25)
|
|
201
|
+
b"\xd7\x91".decode(), # ב (Bet, 26)
|
|
202
|
+
b"\xd7\x92".decode(), # ג (Gimel, 27)
|
|
203
|
+
b"\xd7\x93".decode(), # ד (Dalet, 28)
|
|
204
|
+
b"\xd7\x94".decode(), # ה (He, 29)
|
|
205
|
+
b"\xd7\x95".decode(), # ו (Vav, 30)
|
|
206
|
+
b"\xd7\x96".decode(), # ז (Zayin, 31)
|
|
207
|
+
b"\xd7\x97".decode(), # ח (Het, 32)
|
|
208
|
+
b"\xd7\x98".decode(), # ט (Tet, 33)
|
|
209
|
+
b"\xd7\x99".decode(), # י (Yod, 34)
|
|
210
|
+
b"\xd7\x9a".decode(), # ך (Final Kaf, 35)
|
|
211
|
+
b"\xd7\x9b".decode(), # כ (Kaf, 36)
|
|
212
|
+
b"\xd7\x9c".decode(), # ל (Lamed, 37)
|
|
213
|
+
b"\xd7\x9d".decode(), # ם (Final Mem, 38)
|
|
214
|
+
b"\xd7\x9e".decode(), # מ (Mem, 39)
|
|
215
|
+
b"\xd7\x9f".decode(), # ן (Final Nun, 40)
|
|
216
|
+
b"\xd7\xa0".decode(), # נ (Nun, 41)
|
|
217
|
+
b"\xd7\xa1".decode(), # ס (Samekh, 42)
|
|
218
|
+
b"\xd7\xa2".decode(), # ע (Ayin, 43)
|
|
219
|
+
b"\xd7\xa3".decode(), # ף (Final Pe, 44)
|
|
220
|
+
b"\xd7\xa4".decode(), # פ (Pe, 45)
|
|
221
|
+
b"\xd7\xa5".decode(), # ץ (Final Tsadi, 46)
|
|
222
|
+
b"\xd7\xa6".decode(), # צ (Tsadi, 47)
|
|
223
|
+
b"\xd7\xa7".decode(), # ק (Qof, 48)
|
|
224
|
+
b"\xd7\xa8".decode(), # ר (Resh, 49)
|
|
225
|
+
b"\xd7\xa9".decode(), # ש (Shin, 50)
|
|
226
|
+
b"\xd7\xaa".decode(), # ת (Tav, 51)
|
|
227
|
+
b"\xd8\xa7".decode(), # ا (Alif, 52)
|
|
228
|
+
b"\xd8\xa8".decode(), # ب (Ba, 53)
|
|
229
|
+
b"\xd8\xaa".decode(), # ت (Ta, 54)
|
|
230
|
+
b"\xd8\xab".decode(), # ث (Tha, 55)
|
|
231
|
+
b"\xd8\xac".decode(), # ج (Jim, 56)
|
|
232
|
+
b"\xd8\xad".decode(), # ح (Ha, 57)
|
|
233
|
+
b"\xd8\xae".decode(), # خ (Kha, 58)
|
|
234
|
+
b"\xd8\xaf".decode(), # د (Dal, 59)
|
|
235
|
+
b"\xd8\xb0".decode(), # ذ (Dhal, 60)
|
|
236
|
+
b"\xd8\xb1".decode(), # ر (Ra, 61)
|
|
237
|
+
b"\xd8\xb2".decode(), # ز (Zay, 62)
|
|
238
|
+
b"\xd8\xb3".decode(), # س (Sin, 63)
|
|
239
|
+
b"\xd8\xb4".decode(), # ش (Shin, 64)
|
|
240
|
+
b"\xd8\xb5".decode(), # ص (Sad, 65)
|
|
241
|
+
b"\xd8\xb6".decode(), # ض (Dad, 66)
|
|
242
|
+
b"\xd8\xb7".decode(), # ط (Ta, 67)
|
|
243
|
+
b"\xd8\xb8".decode(), # ظ (Dha, 68)
|
|
244
|
+
b"\xd8\xb9".decode(), # ع (Ain, 69)
|
|
245
|
+
b"\xd8\xba".decode(), # غ (Ghayn, 70)
|
|
246
|
+
b"\xd9\x81".decode(), # ف (Fa, 71)
|
|
247
|
+
b"\xd9\x82".decode(), # ق (Qaf, 72)
|
|
248
|
+
b"\xd9\x83".decode(), # ك (Kaf, 73)
|
|
249
|
+
b"\xd9\x84".decode(), # ل (Lam, 74)
|
|
250
|
+
b"\xd9\x85".decode(), # م (Mim, 75)
|
|
251
|
+
b"\xd9\x86".decode(), # ن (Nun, 76)
|
|
252
|
+
b"\xd9\x87".decode(), # ه (Ha, 77)
|
|
253
|
+
b"\xd9\x88".decode(), # و (Waw, 78)
|
|
254
|
+
b"\xd9\x8a".decode(), # ي (Ya, 79)
|
|
255
|
+
b"\xd9\x89".decode(), # ى (Alef Maksura, 80)
|
|
256
|
+
b"\xe1\x9a\xa0".decode(), # ᚠ (Fehu, wealth, 81)
|
|
257
|
+
b"\xe1\x9a\xa2".decode(), # ᚢ (Uruz, strength, 82)
|
|
258
|
+
b"\xe1\x9a\xa6".decode(), # ᚦ (Thurisaz, giant, 83)
|
|
259
|
+
b"\xe1\x9a\xa8".decode(), # ᚨ (Ansuz, god, 84)
|
|
260
|
+
b"\xe1\x9a\xb1".decode(), # ᚱ (Raidho, ride, 85)
|
|
261
|
+
b"\xe1\x9a\xb3".decode(), # ᚲ (Kaunan, ulcer, 86)
|
|
262
|
+
b"\xd0\xab".decode(), # Ы (Cyrillic Yeru, 87)
|
|
263
|
+
b"\xe1\x9b\x89".decode(), # ᛉ (Algiz, protection, 88)
|
|
264
|
+
b"\xe1\x9b\x92".decode(), # ᛒ (Berkanan, birch, 89)
|
|
265
|
+
b"\xe1\x9a\x80".decode(), # (Space, 90)
|
|
266
|
+
b"\xe1\x9a\x81".decode(), # ᚁ (Beith, birch, 91)
|
|
267
|
+
b"\xe1\x9a\x82".decode(), # ᚂ (Luis, rowan, 92)
|
|
268
|
+
b"\xe1\x9a\x83".decode(), # ᚃ (Fearn, alder, 93)
|
|
269
|
+
b"\xe1\x9a\x84".decode(), # ᚄ (Sail, willow, 94)
|
|
270
|
+
b"\xe1\x9a\x85".decode(), # ᚅ (Nion, ash, 95)
|
|
271
|
+
b"\xe1\x9a\x9b".decode(), # ᚛ (Forfeda, 96)
|
|
272
|
+
b"\xe1\x83\x90".decode(), # ა (Ani, 97)
|
|
273
|
+
b"\xe1\x83\x91".decode(), # ბ (Bani, 98)
|
|
274
|
+
b"\xe1\x83\x92".decode(), # გ (Gani, 99)
|
|
275
|
+
b"\xe1\x83\x93".decode(), # დ (Doni, 100)
|
|
276
|
+
b"\xe1\x83\x94".decode(), # ე (Eni, 101)
|
|
277
|
+
b"\xe1\x83\x95".decode(), # ვ (Vini, 102)
|
|
278
|
+
b"\xd4\xb1".decode(), # Ա (Ayp, 103)
|
|
279
|
+
b"\xd4\xb2".decode(), # Բ (Ben, 104)
|
|
280
|
+
b"\xd4\xb3".decode(), # Գ (Gim, 105)
|
|
281
|
+
b"\xd4\xb4".decode(), # Դ (Da, 106)
|
|
282
|
+
b"\xd4\xb5".decode(), # Ե (Ech, 107)
|
|
283
|
+
b"\xd4\xb6".decode(), # Զ (Za, 108)
|
|
284
|
+
b"\xd5\x9e".decode(), # ՞ (Question mark, 109)
|
|
285
|
+
b"\xd0\x80".decode(), # Ѐ (Ie with grave, 110)
|
|
286
|
+
b"\xd0\x81".decode(), # Ё (Io, 111)
|
|
287
|
+
b"\xd0\x82".decode(), # Ђ (Dje, 112)
|
|
288
|
+
b"\xd0\x83".decode(), # Ѓ (Gje, 113)
|
|
289
|
+
b"\xd0\x84".decode(), # Є (Ukrainian Ie, 114)
|
|
290
|
+
b"\xd0\x85".decode(), # Ѕ (Dze, 115)
|
|
291
|
+
b"\xd1\x8a".decode(), # Ъ (Hard sign, 116)
|
|
292
|
+
b"\xe2\xb2\x80".decode(), # Ⲁ (Alfa, 117)
|
|
293
|
+
b"\xe2\xb2\x81".decode(), # ⲁ (Small Alfa, 118)
|
|
294
|
+
b"\xe2\xb2\x82".decode(), # Ⲃ (Vida, 119)
|
|
295
|
+
b"\xe2\xb2\x83".decode(), # ⲃ (Small Vida, 120)
|
|
296
|
+
b"\xe2\xb2\x84".decode(), # Ⲅ (Gamma, 121)
|
|
297
|
+
b"\xe2\xb2\x85".decode(), # ⲅ (Small Gamma, 122)
|
|
298
|
+
b"\xf0\x91\x80\x80".decode(), # 𑀀 (A, 123)
|
|
299
|
+
b"\xf0\x91\x80\x81".decode(), # 𑀁 (Aa, 124)
|
|
300
|
+
b"\xf0\x91\x80\x82".decode(), # 𑀂 (I, 125)
|
|
301
|
+
b"\xf0\x91\x80\x83".decode(), # 𑀃 (Ii, 126)
|
|
302
|
+
b"\xf0\x91\x80\x85".decode(), # 𑀅 (U, 127)
|
|
303
|
+
b"\xe0\xb6\xb1".decode(), # (La, 128)
|
|
304
|
+
b"\xe0\xb6\xb2".decode(), # ඳ (Va, 129)
|
|
305
|
+
b"\xe0\xb6\xb3".decode(), # ප (Sha, 130)
|
|
306
|
+
b"\xe0\xb6\xb4".decode(), # ඵ (Ssa, 131)
|
|
307
|
+
b"\xe0\xb6\xb5".decode(), # බ (Sa, 132)
|
|
308
|
+
b"\xe0\xb6\xb6".decode(), # භ (Ha, 133)
|
|
309
|
+
b"\xe2\xb0\x80".decode(), # Ⰰ (Az, 134)
|
|
310
|
+
b"\xe2\xb0\x81".decode(), # Ⰱ (Buky, 135)
|
|
311
|
+
b"\xe2\xb0\x82".decode(), # Ⰲ (Vede, 136)
|
|
312
|
+
b"\xe2\xb0\x83".decode(), # Ⰳ (Glagoli, 137)
|
|
313
|
+
b"\xe2\xb0\x84".decode(), # Ⰴ (Dobro, 138)
|
|
314
|
+
b"\xe2\xb0\x85".decode(), # Ⰵ (Yest, 139)
|
|
315
|
+
b"\xe2\xb0\x86".decode(), # Ⰶ (Zhivete, 140)
|
|
316
|
+
b"\xe2\xb0\x87".decode(), # Ⰷ (Zemlja, 141)
|
|
317
|
+
b"\xe2\xb0\x88".decode(), # Ⰸ (Izhe, 142)
|
|
318
|
+
b"\xe2\xb0\x89".decode(), # Ⰹ (Initial Izhe, 143)
|
|
319
|
+
b"\xe2\xb0\x8a".decode(), # Ⰺ (I, 144)
|
|
320
|
+
b"\xe2\xb0\x8b".decode(), # Ⰻ (Djerv, 145)
|
|
321
|
+
b"\xe2\xb0\x8c".decode(), # Ⰼ (Kako, 146)
|
|
322
|
+
b"\xe2\xb0\x8d".decode(), # Ⰽ (Ljudije, 147)
|
|
323
|
+
b"\xe2\xb0\x8e".decode(), # Ⰾ (Myse, 148)
|
|
324
|
+
b"\xe2\xb0\x8f".decode(), # Ⰿ (Nash, 149)
|
|
325
|
+
b"\xe2\xb0\x90".decode(), # Ⱀ (On, 150)
|
|
326
|
+
b"\xe2\xb0\x91".decode(), # Ⱁ (Pokoj, 151)
|
|
327
|
+
b"\xe2\xb0\x92".decode(), # Ⱂ (Rtsy, 152)
|
|
328
|
+
b"\xe2\xb0\x93".decode(), # Ⱃ (Slovo, 153)
|
|
329
|
+
b"\xe2\xb0\x94".decode(), # Ⱄ (Tvrido, 154)
|
|
330
|
+
b"\xe2\xb0\x95".decode(), # Ⱅ (Uku, 155)
|
|
331
|
+
b"\xe2\xb0\x96".decode(), # Ⱆ (Fert, 156)
|
|
332
|
+
b"\xe2\xb0\x97".decode(), # Ⱇ (Xrivi, 157)
|
|
333
|
+
b"\xe2\xb0\x98".decode(), # Ⱈ (Ot, 158)
|
|
334
|
+
b"\xe2\xb0\x99".decode(), # Ⱉ (Cy, 159)
|
|
335
|
+
b"\xe2\xb0\x9a".decode(), # Ⱊ (Shcha, 160)
|
|
336
|
+
b"\xe2\xb0\x9b".decode(), # Ⱋ (Er, 161)
|
|
337
|
+
b"\xe2\xb0\x9c".decode(), # Ⱌ (Yeru, 162)
|
|
338
|
+
b"\xe2\xb0\x9d".decode(), # Ⱍ (Small Yer, 163)
|
|
339
|
+
b"\xe2\xb0\x9e".decode(), # Ⱎ (Yo, 164)
|
|
340
|
+
b"\xe2\xb0\x9f".decode(), # Ⱏ (Yu, 165)
|
|
341
|
+
b"\xe2\xb0\xa0".decode(), # Ⱐ (Ja, 166)
|
|
342
|
+
b"\xe0\xb8\x81".decode(), # ก (Ko Kai, 167)
|
|
343
|
+
b"\xe0\xb8\x82".decode(), # ข (Kho Khai, 168)
|
|
344
|
+
b"\xe0\xb8\x83".decode(), # ฃ (Kho Khuat, 169)
|
|
345
|
+
b"\xe0\xb8\x84".decode(), # ค (Kho Khon, 170)
|
|
346
|
+
b"\xe0\xb8\x85".decode(), # ฅ (Kho Rakhang, 171)
|
|
347
|
+
b"\xe0\xb8\x86".decode(), # ฆ (Kho Khwai, 172)
|
|
348
|
+
b"\xe0\xb8\x87".decode(), # ง (Ngo Ngu, 173)
|
|
349
|
+
b"\xe0\xb8\x88".decode(), # จ (Cho Chan, 174)
|
|
350
|
+
b"\xe0\xb8\x89".decode(), # ฉ (Cho Ching, 175)
|
|
351
|
+
b"\xe0\xb8\x8a".decode(), # ช (Cho Chang, 176)
|
|
352
|
+
b"\xe0\xb8\x8b".decode(), # ซ (So So, 177)
|
|
353
|
+
b"\xe0\xb8\x8c".decode(), # ฌ (Cho Choe, 178)
|
|
354
|
+
b"\xe0\xb8\x8d".decode(), # ญ (Yo Ying, 179)
|
|
355
|
+
b"\xe0\xb8\x8e".decode(), # ฎ (Do Chada, 180)
|
|
356
|
+
b"\xe0\xb8\x8f".decode(), # ฏ (To Patak, 181)
|
|
357
|
+
b"\xe0\xb8\x90".decode(), # ฐ (Tho Than, 182)
|
|
358
|
+
b"\xe0\xb8\x91".decode(), # ฑ (Tho Nangmontho, 183)
|
|
359
|
+
b"\xe0\xb8\x92".decode(), # ฒ (Tho Phuthao, 184)
|
|
360
|
+
b"\xe0\xb8\x93".decode(), # ณ (No Nen, 185)
|
|
361
|
+
b"\xe0\xb8\x94".decode(), # ด (Do Dek, 186)
|
|
362
|
+
b"\xe0\xb8\x95".decode(), # ต (To Tao, 187)
|
|
363
|
+
b"\xe0\xb8\x96".decode(), # ถ (Tho Thung, 188)
|
|
364
|
+
b"\xe0\xb8\x97".decode(), # ท (Tho Thahan, 189)
|
|
365
|
+
b"\xe0\xb8\x98".decode(), # ธ (Tho Thong, 190)
|
|
366
|
+
b"\xe0\xb8\x99".decode(), # น (No Nu, 191)
|
|
367
|
+
b"\xe0\xb8\x9a".decode(), # บ (Bo Baimai, 192)
|
|
368
|
+
b"\xe0\xb8\x9b".decode(), # ป (Po Pla, 193)
|
|
369
|
+
b"\xe0\xb8\x9c".decode(), # ผ (Pho Phung, 194)
|
|
370
|
+
b"\xe0\xb8\x9d".decode(), # ฝ (Fo Fa, 195)
|
|
371
|
+
b"\xe0\xb8\x9e".decode(), # พ (Pho Phan, 196)
|
|
372
|
+
b"\xe0\xb8\x9f".decode(), # ฟ (Fo Fan, 197)
|
|
373
|
+
b"\xe0\xb8\xa0".decode(), # ภ (Pho Samphao, 198)
|
|
374
|
+
b"\xe0\xb8\xa1".decode(), # ม (Mo Ma, 199)
|
|
375
|
+
b"\xe0\xb8\xa2".decode(), # ย (Yo Yak, 200)
|
|
376
|
+
b"\xe0\xb8\xa3".decode(), # ร (Ro Rua, 201)
|
|
377
|
+
b"\xe0\xb8\xa5".decode(), # ล (Lo Ling, 202)
|
|
378
|
+
b"\xe0\xb8\xa7".decode(), # ว (Wo Waen, 203)
|
|
379
|
+
b"\xe0\xb8\xa8".decode(), # ศ (So Sala, 204)
|
|
380
|
+
b"\xe0\xb8\xa9".decode(), # ษ (So Rusi, 205)
|
|
381
|
+
b"\xe0\xb8\xaa".decode(), # ส (So Sua, 206)
|
|
382
|
+
b"\xe0\xb8\xab".decode(), # ห (Ho Hip, 207)
|
|
383
|
+
b"\xe0\xb8\xac".decode(), # ฬ (Lo Chula, 208)
|
|
384
|
+
b"\xe0\xb8\xad".decode(), # อ (O Ang, 209)
|
|
385
|
+
b"\xe0\xb8\xae".decode(), # ฮ (Ho Nokhuk, 210)
|
|
386
|
+
b"\xe1\x84\x80".decode(), # ㄱ (Giyeok, 211)
|
|
387
|
+
b"\xe1\x84\x81".decode(), # ㄴ (Nieun, 212)
|
|
388
|
+
b"\xe1\x84\x82".decode(), # ㄷ (Digeut, 213)
|
|
389
|
+
b"\xe1\x84\x83".decode(), # ㄹ (Rieul, 214)
|
|
390
|
+
b"\xe1\x84\x84".decode(), # ㅁ (Mieum, 215)
|
|
391
|
+
b"\xe1\x84\x85".decode(), # ㅂ (Bieup, 216)
|
|
392
|
+
b"\xe1\x84\x86".decode(), # ㅅ (Siot, 217)
|
|
393
|
+
b"\xe1\x84\x87".decode(), # ㅇ (Ieung, 218)
|
|
394
|
+
b"\xe1\x84\x88".decode(), # ㅈ (Jieut, 219)
|
|
395
|
+
b"\xe1\x84\x89".decode(), # ㅊ (Chieut, 220)
|
|
396
|
+
b"\xe1\x84\x8a".decode(), # ㅋ (Kieuk, 221)
|
|
397
|
+
b"\xe1\x84\x8b".decode(), # ㅌ (Tieut, 222)
|
|
398
|
+
b"\xe1\x84\x8c".decode(), # ㅍ (Pieup, 223)
|
|
399
|
+
b"\xe1\x84\x8d".decode(), # ㅎ (Hieut, 224)
|
|
400
|
+
b"\xe1\x85\xa1".decode(), # ㅏ (A, 225)
|
|
401
|
+
b"\xe1\x85\xa2".decode(), # ㅐ (Ae, 226)
|
|
402
|
+
b"\xe1\x85\xa3".decode(), # ㅑ (Ya, 227)
|
|
403
|
+
b"\xe1\x85\xa4".decode(), # ㅒ (Yae, 228)
|
|
404
|
+
b"\xe1\x85\xa5".decode(), # ㅓ (Eo, 229)
|
|
405
|
+
b"\xe1\x85\xa6".decode(), # ㅔ (E, 230)
|
|
406
|
+
b"\xe1\x85\xa7".decode(), # ㅕ (Yeo, 231)
|
|
407
|
+
b"\xe1\x85\xa8".decode(), # ㅖ (Ye, 232)
|
|
408
|
+
b"\xe1\x85\xa9".decode(), # ㅗ (O, 233)
|
|
409
|
+
b"\xe1\x85\xaa".decode(), # ㅘ (Wa, 234)
|
|
410
|
+
b"\xe1\x85\xab".decode(), # ㅙ (Wae, 235)
|
|
411
|
+
b"\xe1\x85\xac".decode(), # ㅚ (Oe, 236)
|
|
412
|
+
b"\xe1\x85\xad".decode(), # ㅛ (Yo, 237)
|
|
413
|
+
b"\xe1\x85\xae".decode(), # ㅜ (U, 238)
|
|
414
|
+
b"\xe1\x85\xaf".decode(), # ㅝ (Weo, 239)
|
|
415
|
+
b"\xe1\x85\xb0".decode(), # ㅞ (We, 240)
|
|
416
|
+
b"\xe1\x85\xb1".decode(), # ㅟ (Wi, 241)
|
|
417
|
+
b"\xe1\x85\xb2".decode(), # ㅠ (Yu, 242)
|
|
418
|
+
b"\xe1\x85\xb3".decode(), # ㅡ (Eu, 243)
|
|
419
|
+
b"\xe1\x85\xb4".decode(), # ㅢ (Ui, 244)
|
|
420
|
+
b"\xe1\x85\xb5".decode(), # ㅣ (I, 245)
|
|
421
|
+
b"\xe1\x8a\xa0".decode(), # አ (Glottal A, 246)
|
|
422
|
+
b"\xe1\x8a\xa1".decode(), # ኡ (Glottal U, 247)
|
|
423
|
+
b"\xe1\x8a\xa2".decode(), # ኢ (Glottal I, 248)
|
|
424
|
+
b"\xe1\x8a\xa3".decode(), # ኣ (Glottal Aa, 249)
|
|
425
|
+
b"\xe1\x8a\xa4".decode(), # ኤ (Glottal E, 250)
|
|
426
|
+
b"\xe1\x8a\xa5".decode(), # እ (Glottal Ie, 251)
|
|
427
|
+
b"\xe1\x8a\xa6".decode(), # ኦ (Glottal O, 252)
|
|
428
|
+
b"\xe1\x8a\xa7".decode(), # ኧ (Glottal Wa, 253)
|
|
429
|
+
b"\xe1\x8b\x88".decode(), # ወ (Wa, 254)
|
|
430
|
+
b"\xe1\x8b\x89".decode(), # ዉ (Wu, 255)
|
|
431
|
+
b"\xe1\x8b\x8a".decode(), # ዊ (Wi, 256)
|
|
432
|
+
b"\xe1\x8b\x8b".decode(), # ዋ (Waa, 257)
|
|
433
|
+
b"\xe1\x8b\x8c".decode(), # ዌ (We, 258)
|
|
434
|
+
b"\xe1\x8b\x8d".decode(), # ው (Wye, 259)
|
|
435
|
+
b"\xe1\x8b\x8e".decode(), # ዎ (Wo, 260)
|
|
436
|
+
b"\xe1\x8a\xb0".decode(), # ኰ (Ko, 261)
|
|
437
|
+
b"\xe1\x8a\xb1".decode(), # (Ku, 262)
|
|
438
|
+
b"\xe1\x8a\xb2".decode(), # ኲ (Ki, 263)
|
|
439
|
+
b"\xe1\x8a\xb3".decode(), # ኳ (Kua, 264)
|
|
440
|
+
b"\xe1\x8a\xb4".decode(), # ኴ (Ke, 265)
|
|
441
|
+
b"\xe1\x8a\xb5".decode(), # ኵ (Kwe, 266)
|
|
442
|
+
b"\xe1\x8a\xb6".decode(), # (Ko, 267)
|
|
443
|
+
b"\xe1\x8a\x90".decode(), # ጐ (Go, 268)
|
|
444
|
+
b"\xe1\x8a\x91".decode(), # (Gu, 269)
|
|
445
|
+
b"\xe1\x8a\x92".decode(), # ጒ (Gi, 270)
|
|
446
|
+
b"\xe1\x8a\x93".decode(), # መ (Gua, 271)
|
|
447
|
+
b"\xe1\x8a\x94".decode(), # ጔ (Ge, 272)
|
|
448
|
+
b"\xe1\x8a\x95".decode(), # ጕ (Gwe, 273)
|
|
449
|
+
b"\xe1\x8a\x96".decode(), # (Go, 274)
|
|
450
|
+
b"\xe0\xa4\x85".decode(), # अ (A, 275)
|
|
451
|
+
b"\xe0\xa4\x86".decode(), # आ (Aa, 276)
|
|
452
|
+
b"\xe0\xa4\x87".decode(), # इ (I, 277)
|
|
453
|
+
b"\xe0\xa4\x88".decode(), # ई (Ii, 278)
|
|
454
|
+
b"\xe0\xa4\x89".decode(), # उ (U, 279)
|
|
455
|
+
b"\xe0\xa4\x8a".decode(), # ऊ (Uu, 280)
|
|
456
|
+
b"\xe0\xa4\x8b".decode(), # ऋ (R, 281)
|
|
457
|
+
b"\xe0\xa4\x8f".decode(), # ए (E, 282)
|
|
458
|
+
b"\xe0\xa4\x90".decode(), # ऐ (Ai, 283)
|
|
459
|
+
b"\xe0\xa4\x93".decode(), # ओ (O, 284)
|
|
460
|
+
b"\xe0\xa4\x94".decode(), # औ (Au, 285)
|
|
461
|
+
b"\xe0\xa4\x95".decode(), # क (Ka, 286)
|
|
462
|
+
b"\xe0\xa4\x96".decode(), # ख (Kha, 287)
|
|
463
|
+
b"\xe0\xa4\x97".decode(), # ग (Ga, 288)
|
|
464
|
+
b"\xe0\xa4\x98".decode(), # घ (Gha, 289)
|
|
465
|
+
b"\xe0\xa4\x99".decode(), # ङ (Nga, 290)
|
|
466
|
+
b"\xe0\xa4\x9a".decode(), # च (Cha, 291)
|
|
467
|
+
b"\xe0\xa4\x9b".decode(), # छ (Chha, 292)
|
|
468
|
+
b"\xe0\xa4\x9c".decode(), # ज (Ja, 293)
|
|
469
|
+
b"\xe0\xa4\x9d".decode(), # झ (Jha, 294)
|
|
470
|
+
b"\xe0\xa4\x9e".decode(), # ञ (Nya, 295)
|
|
471
|
+
b"\xe0\xa4\x9f".decode(), # ट (Ta, 296)
|
|
472
|
+
b"\xe0\xa4\xa0".decode(), # ठ (Tha, 297)
|
|
473
|
+
b"\xe0\xa4\xa1".decode(), # ड (Da, 298)
|
|
474
|
+
b"\xe0\xa4\xa2".decode(), # ढ (Dha, 299)
|
|
475
|
+
b"\xe0\xa4\xa3".decode(), # ण (Na, 300)
|
|
476
|
+
b"\xe0\xa4\xa4".decode(), # त (Ta, 301)
|
|
477
|
+
b"\xe0\xa4\xa5".decode(), # थ (Tha, 302)
|
|
478
|
+
b"\xe0\xa4\xa6".decode(), # द (Da, 303)
|
|
479
|
+
b"\xe0\xa4\xa7".decode(), # ध (Dha, 304)
|
|
480
|
+
b"\xe0\xa4\xa8".decode(), # न (Na, 305)
|
|
481
|
+
b"\xe0\xa4\xaa".decode(), # प (Pa, 306)
|
|
482
|
+
b"\xe0\xa4\xab".decode(), # फ (Pha, 307)
|
|
483
|
+
b"\xe0\xa4\xac".decode(), # ब (Ba, 308)
|
|
484
|
+
b"\xe0\xa4\xad".decode(), # भ (Bha, 309)
|
|
485
|
+
b"\xe0\xa4\xae".decode(), # म (Ma, 310)
|
|
486
|
+
b"\xe0\xa4\xaf".decode(), # य (Ya, 311)
|
|
487
|
+
b"\xe0\xa4\xb0".decode(), # र (Ra, 312)
|
|
488
|
+
b"\xe0\xa4\xb2".decode(), # ल (La, 313)
|
|
489
|
+
b"\xe0\xa4\xb5".decode(), # व (Va, 314)
|
|
490
|
+
b"\xe0\xa4\xb6".decode(), # श (Sha, 315)
|
|
491
|
+
b"\xe0\xa4\xb7".decode(), # ष (Ssa, 316)
|
|
492
|
+
b"\xe0\xa4\xb8".decode(), # स (Sa, 317)
|
|
493
|
+
b"\xe0\xa4\xb9".decode(), # ह (Ha, 318)
|
|
494
|
+
b"\xe3\x82\xa2".decode(), # ア (A, 319)
|
|
495
|
+
b"\xe3\x82\xa4".decode(), # イ (I, 320)
|
|
496
|
+
b"\xe3\x82\xa6".decode(), # ウ (U, 321)
|
|
497
|
+
b"\xe3\x82\xa8".decode(), # エ (E, 322)
|
|
498
|
+
b"\xe3\x82\xaa".decode(), # オ (O, 323)
|
|
499
|
+
b"\xe3\x82\xab".decode(), # カ (Ka, 324)
|
|
500
|
+
b"\xe3\x82\xad".decode(), # キ (Ki, 325)
|
|
501
|
+
b"\xe3\x82\xaf".decode(), # ク (Ku, 326)
|
|
502
|
+
b"\xe3\x82\xb1".decode(), # ケ (Ke, 327)
|
|
503
|
+
b"\xe3\x82\xb3".decode(), # コ (Ko, 328)
|
|
504
|
+
b"\xe3\x82\xb5".decode(), # サ (Sa, 329)
|
|
505
|
+
b"\xe3\x82\xb7".decode(), # シ (Shi, 330)
|
|
506
|
+
b"\xe3\x82\xb9".decode(), # ス (Su, 331)
|
|
507
|
+
b"\xe3\x82\xbb".decode(), # セ (Se, 332)
|
|
508
|
+
b"\xe3\x82\xbd".decode(), # ソ (So, 333)
|
|
509
|
+
b"\xe3\x82\xbf".decode(), # タ (Ta, 334)
|
|
510
|
+
b"\xe3\x83\x81".decode(), # チ (Chi, 335)
|
|
511
|
+
b"\xe3\x83\x84".decode(), # ツ (Tsu, 336)
|
|
512
|
+
b"\xe3\x83\x86".decode(), # テ (Te, 337)
|
|
513
|
+
b"\xe3\x83\x88".decode(), # ト (To, 338)
|
|
514
|
+
b"\xe3\x83\x8a".decode(), # ナ (Na, 339)
|
|
515
|
+
b"\xe3\x83\x8b".decode(), # ニ (Ni, 340)
|
|
516
|
+
b"\xe3\x83\x8c".decode(), # ヌ (Nu, 341)
|
|
517
|
+
b"\xe3\x83\x8d".decode(), # ネ (Ne, 342)
|
|
518
|
+
b"\xe3\x83\x8e".decode(), # ノ (No, 343)
|
|
519
|
+
b"\xe3\x83\x8f".decode(), # ハ (Ha, 344)
|
|
520
|
+
b"\xe3\x83\x92".decode(), # ヒ (Hi, 345)
|
|
521
|
+
b"\xe3\x83\x95".decode(), # フ (Fu, 346)
|
|
522
|
+
b"\xe3\x83\x98".decode(), # ヘ (He, 347)
|
|
523
|
+
b"\xe3\x83\x9b".decode(), # ホ (Ho, 348)
|
|
524
|
+
b"\xe3\x83\x9e".decode(), # マ (Ma, 349)
|
|
525
|
+
b"\xe3\x83\x9f".decode(), # ミ (Mi, 350)
|
|
526
|
+
b"\xe3\x83\xa0".decode(), # ム (Mu, 351)
|
|
527
|
+
b"\xe3\x83\xa1".decode(), # メ (Me, 352)
|
|
528
|
+
b"\xe3\x83\xa2".decode(), # モ (Mo, 353)
|
|
529
|
+
b"\xe3\x83\xa4".decode(), # ヤ (Ya, 354)
|
|
530
|
+
b"\xe3\x83\xa6".decode(), # ユ (Yu, 355)
|
|
531
|
+
b"\xe3\x83\xa8".decode(), # ヨ (Yo, 356)
|
|
532
|
+
b"\xe3\x83\xa9".decode(), # ラ (Ra, 357)
|
|
533
|
+
b"\xe3\x83\xaa".decode(), # リ (Ri, 358)
|
|
534
|
+
b"\xe3\x83\xab".decode(), # ル (Ru, 359)
|
|
535
|
+
b"\xe3\x83\xac".decode(), # レ (Re, 360)
|
|
536
|
+
b"\xe3\x83\xad".decode(), # ロ (Ro, 361)
|
|
537
|
+
b"\xe3\x83\xaf".decode(), # ワ (Wa, 362)
|
|
538
|
+
b"\xe3\x83\xb2".decode(), # ヲ (Wo, 363)
|
|
539
|
+
b"\xe3\x83\xb3".decode(), # ン (N, 364)
|
|
540
|
+
b"\xe2\xb4\xb0".decode(), # ⴰ (Ya, 365)
|
|
541
|
+
b"\xe2\xb4\xb1".decode(), # ⴱ (Yab, 366)
|
|
542
|
+
b"\xe2\xb4\xb2".decode(), # ⴲ (Yabh, 367)
|
|
543
|
+
b"\xe2\xb4\xb3".decode(), # ⴳ (Yag, 368)
|
|
544
|
+
b"\xe2\xb4\xb4".decode(), # ⴴ (Yagh, 369)
|
|
545
|
+
b"\xe2\xb4\xb5".decode(), # ⴵ (Yaj, 370)
|
|
546
|
+
b"\xe2\xb4\xb6".decode(), # ⴶ (Yach, 371)
|
|
547
|
+
b"\xe2\xb4\xb7".decode(), # ⴷ (Yad, 372)
|
|
548
|
+
b"\xe2\xb4\xb8".decode(), # ⴸ (Yadh, 373)
|
|
549
|
+
b"\xe2\xb4\xb9".decode(), # ⴹ (Yadh, emphatic, 374)
|
|
550
|
+
b"\xe2\xb4\xba".decode(), # ⴺ (Yaz, 375)
|
|
551
|
+
b"\xe2\xb4\xbb".decode(), # ⴻ (Yazh, 376)
|
|
552
|
+
b"\xe2\xb4\xbc".decode(), # ⴼ (Yaf, 377)
|
|
553
|
+
b"\xe2\xb4\xbd".decode(), # ⴽ (Yak, 378)
|
|
554
|
+
b"\xe2\xb4\xbe".decode(), # ⴾ (Yak, variant, 379)
|
|
555
|
+
b"\xe2\xb4\xbf".decode(), # ⴿ (Yaq, 380)
|
|
556
|
+
b"\xe2\xb5\x80".decode(), # ⵀ (Yah, 381)
|
|
557
|
+
b"\xe2\xb5\x81".decode(), # ⵁ (Yahh, 382)
|
|
558
|
+
b"\xe2\xb5\x82".decode(), # ⵂ (Yahl, 383)
|
|
559
|
+
b"\xe2\xb5\x83".decode(), # ⵃ (Yahm, 384)
|
|
560
|
+
b"\xe2\xb5\x84".decode(), # ⵄ (Yayn, 385)
|
|
561
|
+
b"\xe2\xb5\x85".decode(), # ⵅ (Yakh, 386)
|
|
562
|
+
b"\xe2\xb5\x86".decode(), # ⵆ (Yakl, 387)
|
|
563
|
+
b"\xe2\xb5\x87".decode(), # ⵇ (Yahq, 388)
|
|
564
|
+
b"\xe2\xb5\x88".decode(), # ⵈ (Yash, 389)
|
|
565
|
+
b"\xe2\xb5\x89".decode(), # ⵉ (Yi, 390)
|
|
566
|
+
b"\xe2\xb5\x8a".decode(), # ⵊ (Yij, 391)
|
|
567
|
+
b"\xe2\xb5\x8b".decode(), # ⵋ (Yizh, 392)
|
|
568
|
+
b"\xe2\xb5\x8c".decode(), # ⵌ (Yink, 393)
|
|
569
|
+
b"\xe2\xb5\x8d".decode(), # ⵍ (Yal, 394)
|
|
570
|
+
b"\xe2\xb5\x8e".decode(), # ⵎ (Yam, 395)
|
|
571
|
+
b"\xe2\xb5\x8f".decode(), # ⵏ (Yan, 396)
|
|
572
|
+
b"\xe2\xb5\x90".decode(), # ⵐ (Yang, 397)
|
|
573
|
+
b"\xe2\xb5\x91".decode(), # ⵑ (Yany, 398)
|
|
574
|
+
b"\xe2\xb5\x92".decode(), # ⵒ (Yap, 399)
|
|
575
|
+
b"\xe2\xb5\x93".decode(), # ⵓ (Yu, 400)
|
|
576
|
+
b"\xe0\xb6\x85".decode(), # අ (A, 401)
|
|
577
|
+
b"\xe0\xb6\x86".decode(), # ආ (Aa, 402)
|
|
578
|
+
b"\xe0\xb6\x87".decode(), # ඉ (I, 403)
|
|
579
|
+
b"\xe0\xb6\x88".decode(), # ඊ (Ii, 404)
|
|
580
|
+
b"\xe0\xb6\x89".decode(), # උ (U, 405)
|
|
581
|
+
b"\xe0\xb6\x8a".decode(), # ඌ (Uu, 406)
|
|
582
|
+
b"\xe0\xb6\x8b".decode(), # ඍ (R, 407)
|
|
583
|
+
b"\xe0\xb6\x8c".decode(), # ඎ (Rr, 408)
|
|
584
|
+
b"\xe0\xb6\x8f".decode(), # ඏ (L, 409)
|
|
585
|
+
b"\xe0\xb6\x90".decode(), # ඐ (Ll, 410)
|
|
586
|
+
b"\xe0\xb6\x91".decode(), # එ (E, 411)
|
|
587
|
+
b"\xe0\xb6\x92".decode(), # ඒ (Ee, 412)
|
|
588
|
+
b"\xe0\xb6\x93".decode(), # ඓ (Ai, 413)
|
|
589
|
+
b"\xe0\xb6\x94".decode(), # ඔ (O, 414)
|
|
590
|
+
b"\xe0\xb6\x95".decode(), # ඕ (Oo, 415)
|
|
591
|
+
b"\xe0\xb6\x96".decode(), # ඖ (Au, 416)
|
|
592
|
+
b"\xe0\xb6\x9a".decode(), # ක (Ka, 417)
|
|
593
|
+
b"\xe0\xb6\x9b".decode(), # ඛ (Kha, 418)
|
|
594
|
+
b"\xe0\xb6\x9c".decode(), # ග (Ga, 419)
|
|
595
|
+
b"\xe0\xb6\x9d".decode(), # ඝ (Gha, 420)
|
|
596
|
+
b"\xe0\xb6\x9e".decode(), # ඞ (Nga, 421)
|
|
597
|
+
b"\xe0\xb6\x9f".decode(), # ච (Cha, 422)
|
|
598
|
+
b"\xe0\xb6\xa0".decode(), # ඡ (Chha, 423)
|
|
599
|
+
b"\xe0\xb6\xa1".decode(), # ජ (Ja, 424)
|
|
600
|
+
b"\xe0\xb6\xa2".decode(), # ඣ (Jha, 425)
|
|
601
|
+
b"\xe0\xb6\xa3".decode(), # ඤ (Nya, 426)
|
|
602
|
+
b"\xe0\xb6\xa4".decode(), # ට (Ta, 427)
|
|
603
|
+
b"\xe0\xb6\xa5".decode(), # ඥ (Tha, 428)
|
|
604
|
+
b"\xe0\xb6\xa6".decode(), # ඦ (Da, 429)
|
|
605
|
+
b"\xe0\xb6\xa7".decode(), # ට (Dha, 430)
|
|
606
|
+
b"\xe0\xb6\xa8".decode(), # ඨ (Na, 431)
|
|
607
|
+
b"\xe0\xb6\xaa".decode(), # ඪ (Pa, 432)
|
|
608
|
+
b"\xe0\xb6\xab".decode(), # ණ (Pha, 433)
|
|
609
|
+
b"\xe0\xb6\xac".decode(), # ඬ (Ba, 434)
|
|
610
|
+
b"\xe0\xb6\xad".decode(), # ත (Bha, 435)
|
|
611
|
+
b"\xe0\xb6\xae".decode(), # ථ (Ma, 436)
|
|
612
|
+
b"\xe0\xb6\xaf".decode(), # ද (Ya, 437)
|
|
613
|
+
b"\xe0\xb6\xb0".decode(), # ධ (Ra, 438)
|
|
614
|
+
]
|
|
615
|
+
|
|
616
|
+
NETWORK_EXPLORER_MAP = {
|
|
617
|
+
"opentensor": {
|
|
618
|
+
"local": "https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fentrypoint-finney.opentensor.ai%3A443#/explorer",
|
|
619
|
+
"endpoint": "https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fentrypoint-finney.opentensor.ai%3A443#/explorer",
|
|
620
|
+
"finney": "https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fentrypoint-finney.opentensor.ai%3A443#/explorer",
|
|
621
|
+
},
|
|
622
|
+
"taostats": {
|
|
623
|
+
"local": "https://x.taostats.io",
|
|
624
|
+
"endpoint": "https://x.taostats.io",
|
|
625
|
+
"finney": "https://x.taostats.io",
|
|
626
|
+
},
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
class RootSudoOnly(Enum):
|
|
631
|
+
FALSE = 0
|
|
632
|
+
TRUE = 1
|
|
633
|
+
COMPLICATED = 2
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
HYPERPARAMS = {
|
|
637
|
+
# meshcli name: (meshtensor method, root-only enum)
|
|
638
|
+
"rho": ("sudo_set_rho", RootSudoOnly.FALSE),
|
|
639
|
+
"kappa": ("sudo_set_kappa", RootSudoOnly.TRUE),
|
|
640
|
+
"immunity_period": ("sudo_set_immunity_period", RootSudoOnly.FALSE),
|
|
641
|
+
"min_allowed_weights": ("sudo_set_min_allowed_weights", RootSudoOnly.FALSE),
|
|
642
|
+
"max_weights_limit": ("sudo_set_max_weight_limit", RootSudoOnly.FALSE),
|
|
643
|
+
"tempo": ("sudo_set_tempo", RootSudoOnly.TRUE),
|
|
644
|
+
"min_difficulty": ("sudo_set_min_difficulty", RootSudoOnly.TRUE),
|
|
645
|
+
"max_difficulty": ("sudo_set_max_difficulty", RootSudoOnly.FALSE),
|
|
646
|
+
"weights_version": ("sudo_set_weights_version_key", RootSudoOnly.FALSE),
|
|
647
|
+
"weights_rate_limit": ("sudo_set_weights_set_rate_limit", RootSudoOnly.TRUE),
|
|
648
|
+
"adjustment_interval": ("sudo_set_adjustment_interval", RootSudoOnly.TRUE),
|
|
649
|
+
"activity_cutoff": ("sudo_set_activity_cutoff", RootSudoOnly.FALSE),
|
|
650
|
+
"target_regs_per_interval": (
|
|
651
|
+
"sudo_set_target_registrations_per_interval",
|
|
652
|
+
RootSudoOnly.TRUE,
|
|
653
|
+
),
|
|
654
|
+
"min_burn": ("sudo_set_min_burn", RootSudoOnly.FALSE),
|
|
655
|
+
"max_burn": ("sudo_set_max_burn", RootSudoOnly.TRUE),
|
|
656
|
+
"bonds_moving_avg": ("sudo_set_bonds_moving_average", RootSudoOnly.FALSE),
|
|
657
|
+
"max_regs_per_block": ("sudo_set_max_registrations_per_block", RootSudoOnly.TRUE),
|
|
658
|
+
"serving_rate_limit": ("sudo_set_serving_rate_limit", RootSudoOnly.FALSE),
|
|
659
|
+
"max_validators": ("sudo_set_max_allowed_validators", RootSudoOnly.TRUE),
|
|
660
|
+
"adjustment_alpha": ("sudo_set_adjustment_alpha", RootSudoOnly.FALSE),
|
|
661
|
+
"difficulty": ("sudo_set_difficulty", RootSudoOnly.TRUE),
|
|
662
|
+
"commit_reveal_period": (
|
|
663
|
+
"sudo_set_commit_reveal_weights_interval",
|
|
664
|
+
RootSudoOnly.FALSE,
|
|
665
|
+
),
|
|
666
|
+
"commit_reveal_weights_enabled": (
|
|
667
|
+
"sudo_set_commit_reveal_weights_enabled",
|
|
668
|
+
RootSudoOnly.FALSE,
|
|
669
|
+
),
|
|
670
|
+
"alpha_values": ("sudo_set_alpha_values", RootSudoOnly.FALSE),
|
|
671
|
+
"liquid_alpha_enabled": ("sudo_set_liquid_alpha_enabled", RootSudoOnly.FALSE),
|
|
672
|
+
"registration_allowed": (
|
|
673
|
+
"sudo_set_network_registration_allowed",
|
|
674
|
+
RootSudoOnly.TRUE,
|
|
675
|
+
),
|
|
676
|
+
"network_pow_registration_allowed": (
|
|
677
|
+
"sudo_set_network_pow_registration_allowed",
|
|
678
|
+
RootSudoOnly.FALSE,
|
|
679
|
+
),
|
|
680
|
+
"yuma3_enabled": ("sudo_set_yuma3_enabled", RootSudoOnly.FALSE),
|
|
681
|
+
"alpha_sigmoid_steepness": ("sudo_set_alpha_sigmoid_steepness", RootSudoOnly.TRUE),
|
|
682
|
+
"user_liquidity_enabled": ("toggle_user_liquidity", RootSudoOnly.COMPLICATED),
|
|
683
|
+
"bonds_reset_enabled": ("sudo_set_bonds_reset_enabled", RootSudoOnly.FALSE),
|
|
684
|
+
"transfers_enabled": ("sudo_set_toggle_transfer", RootSudoOnly.FALSE),
|
|
685
|
+
"min_allowed_uids": ("sudo_set_min_allowed_uids", RootSudoOnly.TRUE),
|
|
686
|
+
# Note: These are displayed but not directly settable via HYPERPARAMS
|
|
687
|
+
# They are derived or set via other mechanisms
|
|
688
|
+
"alpha_high": ("", RootSudoOnly.FALSE), # Derived from alpha_values
|
|
689
|
+
"alpha_low": ("", RootSudoOnly.FALSE), # Derived from alpha_values
|
|
690
|
+
"subnet_is_active": ("", RootSudoOnly.FALSE), # Set via meshcli subnets start
|
|
691
|
+
"yuma_version": ("", RootSudoOnly.FALSE), # Related to yuma3_enabled
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
HYPERPARAMS_MODULE = {
|
|
695
|
+
"user_liquidity_enabled": "Swap",
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
# Hyperparameter metadata: descriptions, side-effects, ownership, and documentation links
|
|
699
|
+
HYPERPARAMS_METADATA = {
|
|
700
|
+
"rho": {
|
|
701
|
+
"description": "Rho controls the rate at which weights decay over time.",
|
|
702
|
+
"side_effects": "Changing rho affects how quickly neurons' influence diminishes, impacting consensus dynamics.",
|
|
703
|
+
"owner_settable": True,
|
|
704
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#rho",
|
|
705
|
+
},
|
|
706
|
+
"kappa": {
|
|
707
|
+
"description": "Kappa determines the scaling factor for consensus calculations.",
|
|
708
|
+
"side_effects": "Modifying kappa changes how validator votes are weighted in consensus mechanisms.",
|
|
709
|
+
"owner_settable": True,
|
|
710
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#kappa",
|
|
711
|
+
},
|
|
712
|
+
"immunity_period": {
|
|
713
|
+
"description": "Duration (in blocks) during which newly registered neurons are protected from certain penalties.",
|
|
714
|
+
"side_effects": "Increasing immunity period gives new neurons more time to establish themselves before facing penalties.",
|
|
715
|
+
"owner_settable": True,
|
|
716
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#immunityperiod",
|
|
717
|
+
},
|
|
718
|
+
"min_allowed_weights": {
|
|
719
|
+
"description": "Minimum number of weight connections a neuron must maintain to stay active.",
|
|
720
|
+
"side_effects": "Lower values allow neurons with fewer connections to remain active; higher values enforce stricter connectivity requirements.",
|
|
721
|
+
"owner_settable": True,
|
|
722
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#minallowedweights",
|
|
723
|
+
},
|
|
724
|
+
"max_weights_limit": {
|
|
725
|
+
"description": "Maximum number of weight connections a neuron can have with other neurons.",
|
|
726
|
+
"side_effects": "Limits the maximum out-degree of the network graph, affecting network topology and consensus.",
|
|
727
|
+
"owner_settable": True,
|
|
728
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#maxweightslimit",
|
|
729
|
+
},
|
|
730
|
+
"tempo": {
|
|
731
|
+
"description": "Number of blocks between epoch transitions",
|
|
732
|
+
"side_effects": "Lower tempo means more frequent updates but higher chain load. Higher tempo reduces frequency but may slow responsiveness.",
|
|
733
|
+
"owner_settable": False,
|
|
734
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#tempo",
|
|
735
|
+
},
|
|
736
|
+
"min_difficulty": {
|
|
737
|
+
"description": "Minimum proof-of-work difficulty required for registration",
|
|
738
|
+
"side_effects": "Increasing min_difficulty raises the computational barrier for new neuron registrations.",
|
|
739
|
+
"owner_settable": False,
|
|
740
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#mindifficulty",
|
|
741
|
+
},
|
|
742
|
+
"max_difficulty": {
|
|
743
|
+
"description": "Maximum proof-of-work difficulty cap.",
|
|
744
|
+
"side_effects": "Caps the maximum computational requirement, ensuring registration remains feasible.",
|
|
745
|
+
"owner_settable": True,
|
|
746
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#maxdifficulty",
|
|
747
|
+
},
|
|
748
|
+
"weights_version": {
|
|
749
|
+
"description": "Version key for weight sets.",
|
|
750
|
+
"side_effects": "Changing this invalidates all existing weights, forcing neurons to resubmit weights.",
|
|
751
|
+
"owner_settable": True,
|
|
752
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#weightsversion",
|
|
753
|
+
},
|
|
754
|
+
"weights_rate_limit": {
|
|
755
|
+
"description": "Maximum number of weight updates allowed per epoch.",
|
|
756
|
+
"side_effects": "Lower values reduce chain load but may limit legitimate weight updates. Higher values allow more flexibility.",
|
|
757
|
+
"owner_settable": False,
|
|
758
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#weightsratelimit--commitmentratelimit",
|
|
759
|
+
},
|
|
760
|
+
"adjustment_interval": {
|
|
761
|
+
"description": "Number of blocks between automatic difficulty adjustments.",
|
|
762
|
+
"side_effects": "Shorter intervals make difficulty more responsive but may cause volatility. Longer intervals provide stability.",
|
|
763
|
+
"owner_settable": False,
|
|
764
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#adjustmentinterval",
|
|
765
|
+
},
|
|
766
|
+
"activity_cutoff": {
|
|
767
|
+
"description": "Minimum activity level required for neurons to remain active.",
|
|
768
|
+
"side_effects": "Lower values keep more neurons active; higher values prune inactive neurons more aggressively.",
|
|
769
|
+
"owner_settable": True,
|
|
770
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#activitycutoff",
|
|
771
|
+
},
|
|
772
|
+
"target_regs_per_interval": {
|
|
773
|
+
"description": "Target number of new registrations per adjustment interval.",
|
|
774
|
+
"side_effects": "Affects how the difficulty adjustment algorithm targets registration rates.",
|
|
775
|
+
"owner_settable": False,
|
|
776
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#targetregistrationsperinterval",
|
|
777
|
+
},
|
|
778
|
+
"min_burn": {
|
|
779
|
+
"description": "Minimum MESH burn amount required for subnet registration.",
|
|
780
|
+
"side_effects": "Increasing min_burn raises the barrier to entry, potentially reducing spam but also limiting participation.",
|
|
781
|
+
"owner_settable": True,
|
|
782
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#minburn",
|
|
783
|
+
},
|
|
784
|
+
"max_burn": {
|
|
785
|
+
"description": "Maximum MESH burn amount cap for subnet registration.",
|
|
786
|
+
"side_effects": "Caps registration costs, ensuring registration remains accessible even as difficulty increases.",
|
|
787
|
+
"owner_settable": False,
|
|
788
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#maxburn",
|
|
789
|
+
},
|
|
790
|
+
"bonds_moving_avg": {
|
|
791
|
+
"description": "Moving average window size for bond calculations.",
|
|
792
|
+
"side_effects": "Larger windows provide smoother bond values but slower response to changes. Smaller windows react faster but may be more volatile.",
|
|
793
|
+
"owner_settable": True,
|
|
794
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#bondsmovingaverage",
|
|
795
|
+
},
|
|
796
|
+
"max_regs_per_block": {
|
|
797
|
+
"description": "Maximum number of registrations allowed per block.",
|
|
798
|
+
"side_effects": "Lower values reduce chain load but may create registration bottlenecks. Higher values allow more throughput.",
|
|
799
|
+
"owner_settable": False,
|
|
800
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#maxregistrationsperblock",
|
|
801
|
+
},
|
|
802
|
+
"serving_rate_limit": {
|
|
803
|
+
"description": "Rate limit for serving requests.",
|
|
804
|
+
"side_effects": "Affects network throughput and prevents individual neurons from monopolizing serving capacity.",
|
|
805
|
+
"owner_settable": True,
|
|
806
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#servingratelimit",
|
|
807
|
+
},
|
|
808
|
+
"max_validators": {
|
|
809
|
+
"description": "Maximum number of validators allowed in the subnet.",
|
|
810
|
+
"side_effects": "Lower values reduce consensus overhead but limit decentralization. Higher values increase decentralization but may slow consensus.",
|
|
811
|
+
"owner_settable": False,
|
|
812
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#maxallowedvalidators",
|
|
813
|
+
},
|
|
814
|
+
"adjustment_alpha": {
|
|
815
|
+
"description": "Alpha parameter for difficulty adjustment algorithm.",
|
|
816
|
+
"side_effects": "Higher values make difficulty adjustments more aggressive; lower values provide smoother transitions.",
|
|
817
|
+
"owner_settable": True,
|
|
818
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#adjustmentalpha",
|
|
819
|
+
},
|
|
820
|
+
"difficulty": {
|
|
821
|
+
"description": "Current proof-of-work difficulty for registration.",
|
|
822
|
+
"side_effects": "Directly affects registration cost and time. Higher difficulty makes registration harder and more expensive.",
|
|
823
|
+
"owner_settable": False,
|
|
824
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#difficulty",
|
|
825
|
+
},
|
|
826
|
+
"commit_reveal_period": {
|
|
827
|
+
"description": "Duration (in blocks) for commit-reveal weight submission scheme.",
|
|
828
|
+
"side_effects": "Longer periods provide more time for commits but delay weight revelation. Shorter periods increase frequency.",
|
|
829
|
+
"owner_settable": True,
|
|
830
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#commitrevealperiod",
|
|
831
|
+
},
|
|
832
|
+
"commit_reveal_weights_enabled": {
|
|
833
|
+
"description": "Enable or disable commit-reveal scheme for weight submissions.",
|
|
834
|
+
"side_effects": "Enabling prevents front-running of weight submissions. Disabling allows immediate weight visibility.",
|
|
835
|
+
"owner_settable": True,
|
|
836
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#commitrevealweightsenabled",
|
|
837
|
+
},
|
|
838
|
+
"alpha_values": {
|
|
839
|
+
"description": "Alpha range [low, high] for stake calculations.",
|
|
840
|
+
"side_effects": "Affects how stake is converted and calculated. Changing these values impacts staking economics.",
|
|
841
|
+
"owner_settable": True,
|
|
842
|
+
"docs_link": "",
|
|
843
|
+
},
|
|
844
|
+
"liquid_alpha_enabled": {
|
|
845
|
+
"description": "Enable or disable liquid alpha staking mechanism.",
|
|
846
|
+
"side_effects": "Enabling provides more staking flexibility. Disabling uses traditional staking mechanisms.",
|
|
847
|
+
"owner_settable": True,
|
|
848
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#liquidalphaenabled",
|
|
849
|
+
},
|
|
850
|
+
"registration_allowed": {
|
|
851
|
+
"description": "Enable or disable new registrations to the subnet.",
|
|
852
|
+
"side_effects": "Disabling registration closes the subnet to new participants. Enabling allows open registration.",
|
|
853
|
+
"owner_settable": False,
|
|
854
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#networkregistrationallowed",
|
|
855
|
+
},
|
|
856
|
+
"network_pow_registration_allowed": {
|
|
857
|
+
"description": "Enable or disable proof-of-work based registration.",
|
|
858
|
+
"side_effects": "Disabling removes PoW requirement, potentially allowing easier registration. Enabling enforces computational proof.",
|
|
859
|
+
"owner_settable": True,
|
|
860
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#networkpowregistrationallowed",
|
|
861
|
+
},
|
|
862
|
+
"yuma3_enabled": {
|
|
863
|
+
"description": "Enable or disable Yuma3 consensus mechanism.",
|
|
864
|
+
"side_effects": "Enabling Yuma3 activates advanced consensus features. Disabling uses standard consensus mechanisms.",
|
|
865
|
+
"owner_settable": True,
|
|
866
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#yumaversion",
|
|
867
|
+
},
|
|
868
|
+
"alpha_sigmoid_steepness": {
|
|
869
|
+
"description": "Steepness parameter for alpha sigmoid function.",
|
|
870
|
+
"side_effects": "Affects how alpha values are transformed in staking calculations. Higher values create steeper curves.",
|
|
871
|
+
"owner_settable": False,
|
|
872
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#alphasigmoidsteepness",
|
|
873
|
+
},
|
|
874
|
+
"user_liquidity_enabled": {
|
|
875
|
+
"description": "Enable or disable user liquidity features.",
|
|
876
|
+
"side_effects": "Enabling allows liquidity provision and swaps. Disabling restricts liquidity operations.",
|
|
877
|
+
"owner_settable": True, # COMPLICATED - can be set by owner or sudo
|
|
878
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#userliquidityenabled",
|
|
879
|
+
},
|
|
880
|
+
"bonds_reset_enabled": {
|
|
881
|
+
"description": "Enable or disable periodic bond resets.",
|
|
882
|
+
"side_effects": "Enabling provides periodic bond resets, preventing bond accumulation. Disabling allows bonds to accumulate.",
|
|
883
|
+
"owner_settable": True,
|
|
884
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#bondsresetenabled",
|
|
885
|
+
},
|
|
886
|
+
"transfers_enabled": {
|
|
887
|
+
"description": "Enable or disable MESH transfers within the subnet.",
|
|
888
|
+
"side_effects": "Enabling allows MESH transfers between neurons. Disabling prevents all transfer operations.",
|
|
889
|
+
"owner_settable": True,
|
|
890
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#toggletransfer",
|
|
891
|
+
},
|
|
892
|
+
"min_allowed_uids": {
|
|
893
|
+
"description": "Minimum number of UIDs (neurons) required for the subnet to remain active.",
|
|
894
|
+
"side_effects": "If subnet falls below this threshold, it may be deactivated. Higher values enforce stricter minimums.",
|
|
895
|
+
"owner_settable": False,
|
|
896
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#minalloweduids",
|
|
897
|
+
},
|
|
898
|
+
# Additional hyperparameters that appear in chain data but aren't directly settable via HYPERPARAMS
|
|
899
|
+
"alpha_high": {
|
|
900
|
+
"description": "High bound of the alpha range for stake calculations.",
|
|
901
|
+
"side_effects": "Affects the upper bound of alpha conversion in staking mechanisms. Set via alpha_values parameter.",
|
|
902
|
+
"owner_settable": True,
|
|
903
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#alphasigmoidsteepness",
|
|
904
|
+
},
|
|
905
|
+
"alpha_low": {
|
|
906
|
+
"description": "Low bound of the alpha range for stake calculations.",
|
|
907
|
+
"side_effects": "Affects the lower bound of alpha conversion in staking mechanisms. Set via alpha_values parameter.",
|
|
908
|
+
"owner_settable": True,
|
|
909
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#alphasigmoidsteepness",
|
|
910
|
+
},
|
|
911
|
+
"subnet_is_active": {
|
|
912
|
+
"description": "Whether the subnet is currently active and operational.",
|
|
913
|
+
"side_effects": "When inactive, the subnet cannot process requests or participate in network operations. Set via 'meshcli subnets start' command.",
|
|
914
|
+
"owner_settable": True,
|
|
915
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#subnetisactive",
|
|
916
|
+
},
|
|
917
|
+
"yuma_version": {
|
|
918
|
+
"description": "Version of the Yuma consensus mechanism.",
|
|
919
|
+
"side_effects": "Changing the version affects which Yuma consensus features are active. Use yuma3_enabled to toggle Yuma3.",
|
|
920
|
+
"owner_settable": True,
|
|
921
|
+
"docs_link": "docs.learnmeshtensor.org/subnets/subnet-hyperparameters#yuma3",
|
|
922
|
+
},
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
# Help Panels for cli help
|
|
926
|
+
HELP_PANELS = {
|
|
927
|
+
"WALLET": {
|
|
928
|
+
"MANAGEMENT": "Wallet Management",
|
|
929
|
+
"TRANSACTIONS": "Wallet Transactions",
|
|
930
|
+
"IDENTITY": "Identity Management",
|
|
931
|
+
"INFORMATION": "Wallet Information",
|
|
932
|
+
"OPERATIONS": "Wallet Operations",
|
|
933
|
+
"SECURITY": "Security & Recovery",
|
|
934
|
+
},
|
|
935
|
+
"ROOT": {
|
|
936
|
+
"NETWORK": "Network Information",
|
|
937
|
+
"WEIGHT_MGMT": "Weights Management",
|
|
938
|
+
"GOVERNANCE": "Governance",
|
|
939
|
+
"REGISTRATION": "Registration",
|
|
940
|
+
"DELEGATION": "Delegation",
|
|
941
|
+
},
|
|
942
|
+
"STAKE": {
|
|
943
|
+
"STAKE_MGMT": "Stake Management",
|
|
944
|
+
"CHILD": "Child Hotkeys",
|
|
945
|
+
"MOVEMENT": "Stake Movement",
|
|
946
|
+
"CLAIM": "Root Claim Management",
|
|
947
|
+
},
|
|
948
|
+
"SUDO": {
|
|
949
|
+
"CONFIG": "Subnet Configuration",
|
|
950
|
+
"GOVERNANCE": "Governance",
|
|
951
|
+
"TAKE": "Delegate take configuration",
|
|
952
|
+
},
|
|
953
|
+
"MECHANISMS": {
|
|
954
|
+
"CONFIG": "Mechanism Configuration",
|
|
955
|
+
"EMISSION": "Mechanism Emission",
|
|
956
|
+
},
|
|
957
|
+
"SUBNETS": {
|
|
958
|
+
"INFO": "Subnet Information",
|
|
959
|
+
"CREATION": "Subnet Creation & Management",
|
|
960
|
+
"REGISTER": "Neuron Registration",
|
|
961
|
+
"IDENTITY": "Subnet Identity Management",
|
|
962
|
+
},
|
|
963
|
+
"WEIGHTS": {"COMMIT_REVEAL": "Commit / Reveal"},
|
|
964
|
+
"VIEW": {
|
|
965
|
+
"DASHBOARD": "Network Dashboard",
|
|
966
|
+
},
|
|
967
|
+
"LIQUIDITY": {
|
|
968
|
+
"LIQUIDITY_MGMT": "Liquidity Management",
|
|
969
|
+
},
|
|
970
|
+
"CROWD": {
|
|
971
|
+
"INITIATOR": "Crowdloan Creation & Management",
|
|
972
|
+
"PARTICIPANT": "Crowdloan Participation",
|
|
973
|
+
"INFO": "Crowdloan Information",
|
|
974
|
+
},
|
|
975
|
+
"PROXY": {
|
|
976
|
+
"MGMT": "Proxy Account Management",
|
|
977
|
+
},
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
class Gettable:
|
|
982
|
+
def __getitem__(self, item):
|
|
983
|
+
return getattr(self, item)
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
class ColorPalette(Gettable):
|
|
987
|
+
def __init__(self):
|
|
988
|
+
self.GENERAL = self.General()
|
|
989
|
+
self.STAKE = self.Stake()
|
|
990
|
+
self.POOLS = self.Pools()
|
|
991
|
+
self.GREY = self.Grey()
|
|
992
|
+
self.SUDO = self.Sudo()
|
|
993
|
+
# aliases
|
|
994
|
+
self.G = self.GENERAL
|
|
995
|
+
self.S = self.STAKE
|
|
996
|
+
self.P = self.POOLS
|
|
997
|
+
self.GR = self.GREY
|
|
998
|
+
self.SU = self.SUDO
|
|
999
|
+
|
|
1000
|
+
class General(Gettable):
|
|
1001
|
+
HEADER = "#4196D6" # Light Blue
|
|
1002
|
+
LINKS = "#8CB9E9" # Sky Blue
|
|
1003
|
+
HINT = "#A2E5B8" # Mint Green
|
|
1004
|
+
COLDKEY = "#9EF5E4" # Aqua
|
|
1005
|
+
HOTKEY = "#ECC39D" # Light Orange/Peach
|
|
1006
|
+
SUBHEADING_MAIN = "#7ECFEC" # Light Cyan
|
|
1007
|
+
SUBHEADING = "#AFEFFF" # Pale Blue
|
|
1008
|
+
SUBHEADING_EXTRA_1 = "#96A3C5" # Grayish Blue
|
|
1009
|
+
SUBHEADING_EXTRA_2 = "#6D7BAF" # Slate Blue
|
|
1010
|
+
CONFIRMATION_Y_N_Q = "#EE8DF8" # Light Purple/Pink
|
|
1011
|
+
SYMBOL = "#E7CC51" # Gold
|
|
1012
|
+
BALANCE = "#4F91C6" # Medium Blue
|
|
1013
|
+
COST = "#53B5A0" # Teal
|
|
1014
|
+
SUCCESS = "#53B5A0" # Teal
|
|
1015
|
+
NETUID = "#CBA880" # Tan
|
|
1016
|
+
NETUID_EXTRA = "#DDD5A9" # Light Khaki
|
|
1017
|
+
TEMPO = "#67A3A5" # Grayish Teal
|
|
1018
|
+
ARG = "dark_orange"
|
|
1019
|
+
# aliases
|
|
1020
|
+
CK = COLDKEY
|
|
1021
|
+
HK = HOTKEY
|
|
1022
|
+
SUBHEAD_MAIN = SUBHEADING_MAIN
|
|
1023
|
+
SUBHEAD = SUBHEADING
|
|
1024
|
+
SUBHEAD_EX_1 = SUBHEADING_EXTRA_1
|
|
1025
|
+
SUBHEAD_EX_2 = SUBHEADING_EXTRA_2
|
|
1026
|
+
SYM = SYMBOL
|
|
1027
|
+
BAL = BALANCE
|
|
1028
|
+
|
|
1029
|
+
class Stake(Gettable):
|
|
1030
|
+
STAKE_AMOUNT = "#53B5A0" # Teal
|
|
1031
|
+
STAKE_ALPHA = "#53B5A0" # Teal
|
|
1032
|
+
STAKE_SWAP = "#67A3A5" # Grayish Teal
|
|
1033
|
+
MESH = "#4F91C6" # Medium Blue
|
|
1034
|
+
SLIPPAGE_TEXT = "#C25E7C" # Rose
|
|
1035
|
+
SLIPPAGE_PERCENT = "#E7B195" # Light Coral
|
|
1036
|
+
NOT_REGISTERED = "#EB6A6C" # Salmon Red
|
|
1037
|
+
EXTRA_1 = "#D781BB" # Pink
|
|
1038
|
+
# aliases
|
|
1039
|
+
AMOUNT = STAKE_AMOUNT
|
|
1040
|
+
ALPHA = STAKE_ALPHA
|
|
1041
|
+
SWAP = STAKE_SWAP
|
|
1042
|
+
|
|
1043
|
+
class Pools(Gettable):
|
|
1044
|
+
MESH = "#4F91C6" # Medium Blue
|
|
1045
|
+
ALPHA_IN = "#D09FE9" # Light Purple
|
|
1046
|
+
ALPHA_OUT = "#AB7CC8" # Medium Purple
|
|
1047
|
+
RATE = "#F8D384" # Light Orange
|
|
1048
|
+
MESH_EQUIV = "#8CB9E9" # Sky Blue
|
|
1049
|
+
EMISSION = "#F8D384" # Light Orange
|
|
1050
|
+
EXTRA_1 = "#CAA8FB" # Lavender
|
|
1051
|
+
EXTRA_2 = "#806DAF" # Dark Purple
|
|
1052
|
+
|
|
1053
|
+
class Grey(Gettable):
|
|
1054
|
+
GREY_100 = "#F8F9FA" # Almost White
|
|
1055
|
+
GREY_200 = "#F1F3F4" # Very Light Grey
|
|
1056
|
+
GREY_300 = "#DBDDE1" # Light Grey
|
|
1057
|
+
GREY_400 = "#BDC1C6" # Medium Light Grey
|
|
1058
|
+
GREY_500 = "#5F6368" # Medium Grey
|
|
1059
|
+
GREY_600 = "#2E3134" # Medium Dark Grey
|
|
1060
|
+
GREY_700 = "#282A2D" # Dark Grey
|
|
1061
|
+
GREY_800 = "#17181B" # Very Dark Grey
|
|
1062
|
+
GREY_900 = "#0E1013" # Almost Black
|
|
1063
|
+
BLACK = "#000000" # Pure Black
|
|
1064
|
+
# aliases
|
|
1065
|
+
G_100 = GREY_100
|
|
1066
|
+
G_200 = GREY_200
|
|
1067
|
+
G_300 = GREY_300
|
|
1068
|
+
G_400 = GREY_400
|
|
1069
|
+
G_500 = GREY_500
|
|
1070
|
+
G_600 = GREY_600
|
|
1071
|
+
G_700 = GREY_700
|
|
1072
|
+
G_800 = GREY_800
|
|
1073
|
+
G_900 = GREY_900
|
|
1074
|
+
|
|
1075
|
+
class Sudo(Gettable):
|
|
1076
|
+
HYPERPARAMETER = "#4F91C6" # Medium Blue
|
|
1077
|
+
VALUE = "#D09FE9" # Light Purple
|
|
1078
|
+
NORMALIZED = "#AB7CC8" # Medium Purple
|
|
1079
|
+
# aliases
|
|
1080
|
+
HYPERPARAM = HYPERPARAMETER
|
|
1081
|
+
NORMAL = NORMALIZED
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
COLOR_PALETTE = ColorPalette()
|
|
1085
|
+
COLORS = COLOR_PALETTE
|