bittensor-cli 9.0.1__py3-none-any.whl → 9.0.3__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.
- bittensor_cli/__init__.py +2 -3
- bittensor_cli/cli.py +79 -33
- bittensor_cli/src/__init__.py +1 -1
- bittensor_cli/src/bittensor/balances.py +1 -1
- bittensor_cli/src/bittensor/chain_data.py +17 -7
- bittensor_cli/src/bittensor/subtensor_interface.py +37 -26
- bittensor_cli/src/commands/stake/add.py +4 -10
- bittensor_cli/src/commands/stake/children_hotkeys.py +3 -1
- bittensor_cli/src/commands/stake/list.py +36 -61
- bittensor_cli/src/commands/stake/move.py +14 -21
- bittensor_cli/src/commands/stake/remove.py +217 -107
- bittensor_cli/src/commands/subnets/subnets.py +9 -12
- bittensor_cli/src/commands/sudo.py +131 -37
- bittensor_cli/src/commands/wallets.py +48 -10
- bittensor_cli/version.py +19 -0
- {bittensor_cli-9.0.1.dist-info → bittensor_cli-9.0.3.dist-info}/METADATA +3 -3
- bittensor_cli-9.0.3.dist-info/RECORD +35 -0
- bittensor_cli-9.0.1.dist-info/RECORD +0 -34
- {bittensor_cli-9.0.1.dist-info → bittensor_cli-9.0.3.dist-info}/WHEEL +0 -0
- {bittensor_cli-9.0.1.dist-info → bittensor_cli-9.0.3.dist-info}/entry_points.txt +0 -0
- {bittensor_cli-9.0.1.dist-info → bittensor_cli-9.0.3.dist-info}/top_level.txt +0 -0
@@ -18,6 +18,8 @@ from bittensor_cli.src.bittensor.utils import (
|
|
18
18
|
normalize_hyperparameters,
|
19
19
|
unlock_key,
|
20
20
|
blocks_to_duration,
|
21
|
+
float_to_u64,
|
22
|
+
float_to_u16,
|
21
23
|
)
|
22
24
|
|
23
25
|
if TYPE_CHECKING:
|
@@ -70,12 +72,76 @@ def allowed_value(
|
|
70
72
|
return True, value
|
71
73
|
|
72
74
|
|
75
|
+
def search_metadata(
|
76
|
+
param_name: str, value: Union[str, bool, float, list[float]], netuid: int, metadata
|
77
|
+
) -> tuple[bool, Optional[dict]]:
|
78
|
+
"""
|
79
|
+
Searches the substrate metadata AdminUtils pallet for a given parameter name. Crafts a response dict to be used
|
80
|
+
as call parameters for setting this hyperparameter.
|
81
|
+
|
82
|
+
Args:
|
83
|
+
param_name: the name of the hyperparameter
|
84
|
+
value: the value to set the hyperparameter
|
85
|
+
netuid: the specified netuid
|
86
|
+
metadata: the subtensor.substrate.metadata
|
87
|
+
|
88
|
+
Returns:
|
89
|
+
(success, dict of call params)
|
90
|
+
|
91
|
+
"""
|
92
|
+
|
93
|
+
def string_to_bool(val) -> bool:
|
94
|
+
try:
|
95
|
+
return {"true": True, "1": True, "0": False, "false": False}[val.lower()]
|
96
|
+
except KeyError:
|
97
|
+
return ValueError
|
98
|
+
|
99
|
+
def type_converter_with_retry(type_, val, arg_name):
|
100
|
+
try:
|
101
|
+
if val is None:
|
102
|
+
val = input(
|
103
|
+
f"Enter a value for field '{arg_name}' with type '{arg_type_output[type_]}': "
|
104
|
+
)
|
105
|
+
return arg_types[type_](val)
|
106
|
+
except ValueError:
|
107
|
+
return type_converter_with_retry(type_, None, arg_name)
|
108
|
+
|
109
|
+
arg_types = {"bool": string_to_bool, "u16": float_to_u16, "u64": float_to_u64}
|
110
|
+
arg_type_output = {"bool": "bool", "u16": "float", "u64": "float"}
|
111
|
+
|
112
|
+
call_crafter = {"netuid": netuid}
|
113
|
+
|
114
|
+
for pallet in metadata.pallets:
|
115
|
+
if pallet.name == "AdminUtils":
|
116
|
+
for call in pallet.calls:
|
117
|
+
if call.name == param_name:
|
118
|
+
if "netuid" not in [x.name for x in call.args]:
|
119
|
+
return False, None
|
120
|
+
call_args = [
|
121
|
+
arg for arg in call.args if arg.value["name"] != "netuid"
|
122
|
+
]
|
123
|
+
if len(call_args) == 1:
|
124
|
+
arg = call_args[0].value
|
125
|
+
call_crafter[arg["name"]] = type_converter_with_retry(
|
126
|
+
arg["typeName"], value, arg["name"]
|
127
|
+
)
|
128
|
+
else:
|
129
|
+
for arg_ in call_args:
|
130
|
+
arg = arg_.value
|
131
|
+
call_crafter[arg["name"]] = type_converter_with_retry(
|
132
|
+
arg["typeName"], None, arg["name"]
|
133
|
+
)
|
134
|
+
return True, call_crafter
|
135
|
+
else:
|
136
|
+
return False, None
|
137
|
+
|
138
|
+
|
73
139
|
async def set_hyperparameter_extrinsic(
|
74
140
|
subtensor: "SubtensorInterface",
|
75
141
|
wallet: "Wallet",
|
76
142
|
netuid: int,
|
77
143
|
parameter: str,
|
78
|
-
value: Union[str, bool, float, list[float]],
|
144
|
+
value: Optional[Union[str, bool, float, list[float]]],
|
79
145
|
wait_for_inclusion: bool = False,
|
80
146
|
wait_for_finalization: bool = True,
|
81
147
|
) -> bool:
|
@@ -110,44 +176,63 @@ async def set_hyperparameter_extrinsic(
|
|
110
176
|
if not unlock_key(wallet).success:
|
111
177
|
return False
|
112
178
|
|
179
|
+
arbitrary_extrinsic = False
|
180
|
+
|
113
181
|
extrinsic, sudo_ = HYPERPARAMS.get(parameter, ("", False))
|
114
|
-
if extrinsic
|
115
|
-
|
116
|
-
|
182
|
+
if not extrinsic:
|
183
|
+
arbitrary_extrinsic, call_params = search_metadata(
|
184
|
+
parameter, value, netuid, subtensor.substrate.metadata
|
185
|
+
)
|
186
|
+
extrinsic = parameter
|
187
|
+
if not arbitrary_extrinsic:
|
188
|
+
err_console.print(
|
189
|
+
":cross_mark: [red]Invalid hyperparameter specified.[/red]"
|
190
|
+
)
|
191
|
+
return False
|
192
|
+
if sudo_:
|
193
|
+
if not Confirm.ask(
|
194
|
+
"This hyperparam is only settable by root sudo users. If you are not, this will fail. Please confirm"
|
195
|
+
):
|
196
|
+
return False
|
117
197
|
|
198
|
+
substrate = subtensor.substrate
|
199
|
+
msg_value = value if not arbitrary_extrinsic else call_params
|
118
200
|
with console.status(
|
119
|
-
f":satellite: Setting hyperparameter [{COLOR_PALETTE['GENERAL']['SUBHEADING']}]{parameter}
|
201
|
+
f":satellite: Setting hyperparameter [{COLOR_PALETTE['GENERAL']['SUBHEADING']}]{parameter}"
|
202
|
+
f"[/{COLOR_PALETTE['GENERAL']['SUBHEADING']}] to [{COLOR_PALETTE['GENERAL']['SUBHEADING']}]{msg_value}"
|
203
|
+
f"[/{COLOR_PALETTE['GENERAL']['SUBHEADING']}] on subnet: [{COLOR_PALETTE['GENERAL']['SUBHEADING']}]"
|
204
|
+
f"{netuid}[/{COLOR_PALETTE['GENERAL']['SUBHEADING']}] ...",
|
120
205
|
spinner="earth",
|
121
206
|
):
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
)
|
126
|
-
call_params: dict[str, Union[str, bool, float]] = {"netuid": netuid}
|
127
|
-
|
128
|
-
# if input value is a list, iterate through the list and assign values
|
129
|
-
if isinstance(value, list):
|
130
|
-
# Ensure that there are enough values for all non-netuid parameters
|
131
|
-
non_netuid_fields = [
|
132
|
-
param["name"]
|
133
|
-
for param in extrinsic_params["fields"]
|
134
|
-
if "netuid" not in param["name"]
|
135
|
-
]
|
136
|
-
|
137
|
-
if len(value) < len(non_netuid_fields):
|
138
|
-
raise ValueError(
|
139
|
-
"Not enough values provided in the list for all parameters"
|
140
|
-
)
|
141
|
-
|
142
|
-
call_params.update(
|
143
|
-
{str(name): val for name, val in zip(non_netuid_fields, value)}
|
207
|
+
if not arbitrary_extrinsic:
|
208
|
+
extrinsic_params = await substrate.get_metadata_call_function(
|
209
|
+
"AdminUtils", extrinsic
|
144
210
|
)
|
211
|
+
call_params = {"netuid": netuid}
|
212
|
+
|
213
|
+
# if input value is a list, iterate through the list and assign values
|
214
|
+
if isinstance(value, list):
|
215
|
+
# Ensure that there are enough values for all non-netuid parameters
|
216
|
+
non_netuid_fields = [
|
217
|
+
param["name"]
|
218
|
+
for param in extrinsic_params["fields"]
|
219
|
+
if "netuid" not in param["name"]
|
220
|
+
]
|
221
|
+
|
222
|
+
if len(value) < len(non_netuid_fields):
|
223
|
+
raise ValueError(
|
224
|
+
"Not enough values provided in the list for all parameters"
|
225
|
+
)
|
145
226
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
227
|
+
call_params.update(
|
228
|
+
{str(name): val for name, val in zip(non_netuid_fields, value)}
|
229
|
+
)
|
230
|
+
|
231
|
+
else:
|
232
|
+
value_argument = extrinsic_params["fields"][
|
233
|
+
len(extrinsic_params["fields"]) - 1
|
234
|
+
]
|
235
|
+
call_params[str(value_argument["name"])] = value
|
151
236
|
|
152
237
|
# create extrinsic call
|
153
238
|
call_ = await substrate.compose_call(
|
@@ -167,11 +252,16 @@ async def set_hyperparameter_extrinsic(
|
|
167
252
|
if not success:
|
168
253
|
err_console.print(f":cross_mark: [red]Failed[/red]: {err_msg}")
|
169
254
|
await asyncio.sleep(0.5)
|
170
|
-
|
255
|
+
elif arbitrary_extrinsic:
|
256
|
+
console.print(
|
257
|
+
f":white_heavy_check_mark: "
|
258
|
+
f"[dark_sea_green3]Hyperparameter {parameter} values changed to {call_params}[/dark_sea_green3]"
|
259
|
+
)
|
171
260
|
# Successful registration, final check for membership
|
172
261
|
else:
|
173
262
|
console.print(
|
174
|
-
f":white_heavy_check_mark:
|
263
|
+
f":white_heavy_check_mark: "
|
264
|
+
f"[dark_sea_green3]Hyperparameter {parameter} changed to {value}[/dark_sea_green3]"
|
175
265
|
)
|
176
266
|
return True
|
177
267
|
|
@@ -470,7 +560,7 @@ async def sudo_set_hyperparameter(
|
|
470
560
|
subtensor: "SubtensorInterface",
|
471
561
|
netuid: int,
|
472
562
|
param_name: str,
|
473
|
-
param_value: str,
|
563
|
+
param_value: Optional[str],
|
474
564
|
):
|
475
565
|
"""Set subnet hyperparameters."""
|
476
566
|
|
@@ -481,7 +571,12 @@ async def sudo_set_hyperparameter(
|
|
481
571
|
"commit_reveal_weights_enabled",
|
482
572
|
"liquid_alpha_enabled",
|
483
573
|
]:
|
484
|
-
normalized_value = param_value.lower() in ["true", "
|
574
|
+
normalized_value = param_value.lower() in ["true", "1"]
|
575
|
+
elif param_value in ("True", "False"):
|
576
|
+
normalized_value = {
|
577
|
+
"True": True,
|
578
|
+
"False": False,
|
579
|
+
}[param_value]
|
485
580
|
else:
|
486
581
|
normalized_value = param_value
|
487
582
|
|
@@ -492,7 +587,6 @@ async def sudo_set_hyperparameter(
|
|
492
587
|
f"Value is {normalized_value} but must be {value}"
|
493
588
|
)
|
494
589
|
return
|
495
|
-
|
496
590
|
success = await set_hyperparameter_extrinsic(
|
497
591
|
subtensor, wallet, netuid, param_name, value
|
498
592
|
)
|
@@ -284,11 +284,7 @@ async def wallet_balance(
|
|
284
284
|
"""Retrieves the current balance of the specified wallet"""
|
285
285
|
if ss58_addresses:
|
286
286
|
coldkeys = ss58_addresses
|
287
|
-
|
288
|
-
wallet_names = [
|
289
|
-
f"{identities.get(coldkey, {'name': f'Provided address {i}'})['name']}"
|
290
|
-
for i, coldkey in enumerate(coldkeys)
|
291
|
-
]
|
287
|
+
wallet_names = [f"Provided Address {i + 1}" for i in range(len(ss58_addresses))]
|
292
288
|
|
293
289
|
elif not all_balances:
|
294
290
|
if not wallet.coldkeypub_file.exists_on_device():
|
@@ -307,19 +303,29 @@ async def wallet_balance(
|
|
307
303
|
wallet_names = [wallet.name]
|
308
304
|
|
309
305
|
block_hash = await subtensor.substrate.get_chain_head()
|
310
|
-
free_balances = await
|
306
|
+
free_balances, staked_balances = await asyncio.gather(
|
307
|
+
subtensor.get_balances(*coldkeys, block_hash=block_hash),
|
308
|
+
subtensor.get_total_stake_for_coldkey(*coldkeys, block_hash=block_hash),
|
309
|
+
)
|
311
310
|
|
312
311
|
total_free_balance = sum(free_balances.values())
|
312
|
+
total_staked_balance = sum(stake[0] for stake in staked_balances.values())
|
313
|
+
total_staked_with_slippage = sum(stake[1] for stake in staked_balances.values())
|
313
314
|
|
314
315
|
balances = {
|
315
|
-
name: (
|
316
|
+
name: (
|
317
|
+
coldkey,
|
318
|
+
free_balances[coldkey],
|
319
|
+
staked_balances[coldkey][0],
|
320
|
+
staked_balances[coldkey][1],
|
321
|
+
)
|
316
322
|
for (name, coldkey) in zip(wallet_names, coldkeys)
|
317
323
|
}
|
318
324
|
|
319
325
|
table = Table(
|
320
326
|
Column(
|
321
327
|
"[white]Wallet Name",
|
322
|
-
style="
|
328
|
+
style=COLOR_PALETTE["GENERAL"]["SUBHEADING_MAIN"],
|
323
329
|
no_wrap=True,
|
324
330
|
),
|
325
331
|
Column(
|
@@ -333,7 +339,31 @@ async def wallet_balance(
|
|
333
339
|
style=COLOR_PALETTE["GENERAL"]["BALANCE"],
|
334
340
|
no_wrap=True,
|
335
341
|
),
|
336
|
-
|
342
|
+
Column(
|
343
|
+
"[white]Staked Value",
|
344
|
+
justify="right",
|
345
|
+
style=COLOR_PALETTE["STAKE"]["STAKE_ALPHA"],
|
346
|
+
no_wrap=True,
|
347
|
+
),
|
348
|
+
Column(
|
349
|
+
"[white]Staked (w/slippage)",
|
350
|
+
justify="right",
|
351
|
+
style=COLOR_PALETTE["STAKE"]["STAKE_SWAP"],
|
352
|
+
no_wrap=True,
|
353
|
+
),
|
354
|
+
Column(
|
355
|
+
"[white]Total Balance",
|
356
|
+
justify="right",
|
357
|
+
style=COLOR_PALETTE["GENERAL"]["BALANCE"],
|
358
|
+
no_wrap=True,
|
359
|
+
),
|
360
|
+
Column(
|
361
|
+
"[white]Total (w/slippage)",
|
362
|
+
justify="right",
|
363
|
+
style=COLOR_PALETTE["GENERAL"]["BALANCE"],
|
364
|
+
no_wrap=True,
|
365
|
+
),
|
366
|
+
title=f"\n[{COLOR_PALETTE['GENERAL']['HEADER']}]Wallet Coldkey Balance[/{COLOR_PALETTE['GENERAL']['HEADER']}]\n[{COLOR_PALETTE['GENERAL']['HEADER']}]Network: {subtensor.network}\n",
|
337
367
|
show_footer=True,
|
338
368
|
show_edge=False,
|
339
369
|
border_style="bright_black",
|
@@ -343,17 +373,25 @@ async def wallet_balance(
|
|
343
373
|
leading=True,
|
344
374
|
)
|
345
375
|
|
346
|
-
for name, (coldkey, free) in balances.items():
|
376
|
+
for name, (coldkey, free, staked, staked_slippage) in balances.items():
|
347
377
|
table.add_row(
|
348
378
|
name,
|
349
379
|
coldkey,
|
350
380
|
str(free),
|
381
|
+
str(staked),
|
382
|
+
str(staked_slippage),
|
383
|
+
str(free + staked),
|
384
|
+
str(free + staked_slippage),
|
351
385
|
)
|
352
386
|
table.add_row()
|
353
387
|
table.add_row(
|
354
388
|
"Total Balance",
|
355
389
|
"",
|
356
390
|
str(total_free_balance),
|
391
|
+
str(total_staked_balance),
|
392
|
+
str(total_staked_with_slippage),
|
393
|
+
str(total_free_balance + total_staked_balance),
|
394
|
+
str(total_free_balance + total_staked_with_slippage),
|
357
395
|
)
|
358
396
|
console.print(Padding(table, (0, 0, 0, 4)))
|
359
397
|
await subtensor.substrate.close()
|
bittensor_cli/version.py
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
import re
|
2
|
+
|
3
|
+
|
4
|
+
def version_as_int(version):
|
5
|
+
_core_version = re.match(r"^\d+\.\d+\.\d+", version).group(0)
|
6
|
+
_version_split = _core_version.split(".")
|
7
|
+
__version_info__ = tuple(int(part) for part in _version_split)
|
8
|
+
_version_int_base = 1000
|
9
|
+
assert max(__version_info__) < _version_int_base
|
10
|
+
|
11
|
+
__version_as_int__: int = sum(
|
12
|
+
e * (_version_int_base**i) for i, e in enumerate(reversed(__version_info__))
|
13
|
+
)
|
14
|
+
assert __version_as_int__ < 2**31 # fits in int32
|
15
|
+
__new_signature_version__ = 360
|
16
|
+
return __version_as_int__
|
17
|
+
|
18
|
+
__version__ = "9.0.3"
|
19
|
+
__version_as_int__ = version_as_int(__version__)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: bittensor-cli
|
3
|
-
Version: 9.0.
|
3
|
+
Version: 9.0.3
|
4
4
|
Summary: Bittensor CLI
|
5
5
|
Home-page: https://github.com/opentensor/btcli
|
6
6
|
Author: bittensor.com
|
@@ -25,7 +25,7 @@ Requires-Python: >=3.9
|
|
25
25
|
Description-Content-Type: text/markdown
|
26
26
|
Requires-Dist: wheel
|
27
27
|
Requires-Dist: async-property==0.2.2
|
28
|
-
Requires-Dist: async-substrate-interface>=1.0.
|
28
|
+
Requires-Dist: async-substrate-interface>=1.0.3
|
29
29
|
Requires-Dist: aiohttp~=3.10.2
|
30
30
|
Requires-Dist: backoff~=2.2.1
|
31
31
|
Requires-Dist: GitPython>=3.0.0
|
@@ -41,7 +41,7 @@ Requires-Dist: rich~=13.7
|
|
41
41
|
Requires-Dist: scalecodec==1.2.11
|
42
42
|
Requires-Dist: typer~=0.12
|
43
43
|
Requires-Dist: websockets>=14.1
|
44
|
-
Requires-Dist: bittensor-wallet>=3.0.
|
44
|
+
Requires-Dist: bittensor-wallet>=3.0.4
|
45
45
|
Requires-Dist: plotille
|
46
46
|
Requires-Dist: pywry
|
47
47
|
Requires-Dist: plotly
|
@@ -0,0 +1,35 @@
|
|
1
|
+
bittensor_cli/__init__.py,sha256=Lpv4NkbAQgwrfqFOnTMuR_S-fqGdaWCSLhxnFnGTHM0,1232
|
2
|
+
bittensor_cli/cli.py,sha256=i9KKs432ZN9mb7JDIsFrKD6qS_jfQQaBUn6haTwD-F4,194036
|
3
|
+
bittensor_cli/doc_generation_helper.py,sha256=GexqjEIKulWg84hpNBEchJ840oOgOi7DWpt447nsdNI,91
|
4
|
+
bittensor_cli/version.py,sha256=34wkPxh1A8pTDhsf7Fo0mtk1I7GfmHzJTaampx1V_nQ,622
|
5
|
+
bittensor_cli/src/__init__.py,sha256=rTtP85aCliJTLdWv2DYFNgw5Fi0KB2--80Xta5_WsXE,26427
|
6
|
+
bittensor_cli/src/bittensor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
bittensor_cli/src/bittensor/balances.py,sha256=EZI8hX-eCkTfuTZq5GMvRYU6DCdl8V_zyZIQWi05K5g,11084
|
8
|
+
bittensor_cli/src/bittensor/chain_data.py,sha256=WV_zX_05Zam1yp_oMX9VIYxu99cGPUGEnhCyH67vNtE,30856
|
9
|
+
bittensor_cli/src/bittensor/minigraph.py,sha256=BIzmSVLfBYiRAeGD_i1LAC8Cw7zxp38a91SIFEPMqYc,10479
|
10
|
+
bittensor_cli/src/bittensor/networking.py,sha256=pZLMs8YXpZzDMLXWMBb_Bj6TVkm_q9khyY-lnbwVMuE,462
|
11
|
+
bittensor_cli/src/bittensor/subtensor_interface.py,sha256=T9zBmWTR2fhotCrLQ1X0ihdMiy4vymHSkLBRbYy8Fqs,53457
|
12
|
+
bittensor_cli/src/bittensor/utils.py,sha256=E57t4SiASuXCjiXLLU63vK6bK6aKqj9JtIIi9lDOi-k,46238
|
13
|
+
bittensor_cli/src/bittensor/extrinsics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
+
bittensor_cli/src/bittensor/extrinsics/registration.py,sha256=3mJZ3hw_wZEa-8I0R8WVuKjMQi4Y9EV5FjTCvbY37Iw,63780
|
15
|
+
bittensor_cli/src/bittensor/extrinsics/root.py,sha256=N9Fg4VaveRRP1ZN4EZjIWCe04FpTNBKWFqx8USKp9uQ,19062
|
16
|
+
bittensor_cli/src/bittensor/extrinsics/transfer.py,sha256=FyrRo3yk-065toN4f-1Xes23CE5tqP5KU0dBJkKofUc,8476
|
17
|
+
bittensor_cli/src/bittensor/templates/table.j2,sha256=P2EFiksnO1cQsB8zjK6hVJwUryHTsLslzRE0YtobAV8,10601
|
18
|
+
bittensor_cli/src/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
+
bittensor_cli/src/commands/sudo.py,sha256=erQVUDj101iJcmDL1Ej7tGQHNfWRP5BHpx0dXLHQYbE,31487
|
20
|
+
bittensor_cli/src/commands/wallets.py,sha256=hv9gzh-zPS8gXzgJIfENQVR6BFYxh6abjxmHUjqMhsY,51086
|
21
|
+
bittensor_cli/src/commands/weights.py,sha256=uI7aACKD90JOtYt61VdKL76z7Fe_wh4WtdwMXL6ydD4,16269
|
22
|
+
bittensor_cli/src/commands/stake/__init__.py,sha256=uxomMv_QrYt5Qn3_X5UWFFh45ISjB0JmDmCFxVyX8nQ,6495
|
23
|
+
bittensor_cli/src/commands/stake/add.py,sha256=F93eM-RBjrjeoSQAq0iBj6LJwBF9BQJVDd4f9bub1f8,24979
|
24
|
+
bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=STUeMc9PdzJPx_nfFzPLBUkSc4Wf9b40PJZZZEAKHfI,29630
|
25
|
+
bittensor_cli/src/commands/stake/list.py,sha256=AnzBhUjuwckFAXYwgv9Yk1JHUKu2w1h8_m8-hf77g80,28625
|
26
|
+
bittensor_cli/src/commands/stake/move.py,sha256=HiQtuighlAvZr6uhtGikn5L5ZXgEjSHS5DbKhIDuTbU,37155
|
27
|
+
bittensor_cli/src/commands/stake/remove.py,sha256=gaQN7Gck0l0GCmtiYhZMWlD6OudcNy6cEIEkE8OzQRo,46863
|
28
|
+
bittensor_cli/src/commands/subnets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
+
bittensor_cli/src/commands/subnets/price.py,sha256=TWcRXUFeS_Q-pfyv0YIluAL8SE7d2gzTODK-9M2J5pw,29878
|
30
|
+
bittensor_cli/src/commands/subnets/subnets.py,sha256=YuJ0pmd63O2dg9j3WmTwAeZQ7CGweqw6-ORF6ZaaNh0,84041
|
31
|
+
bittensor_cli-9.0.3.dist-info/METADATA,sha256=4_hNxQ1PdM4VNJes38PSeRMZFitO59g0wLPko8xPKpY,6855
|
32
|
+
bittensor_cli-9.0.3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
33
|
+
bittensor_cli-9.0.3.dist-info/entry_points.txt,sha256=hBTLGLbVxmAKy69XSKaUZvjTCmyEzDGZKq4S8UOto8I,49
|
34
|
+
bittensor_cli-9.0.3.dist-info/top_level.txt,sha256=DvgvXpmTtI_Q1BbDZMlK90LFcGFCreN1daViEPV2iFw,14
|
35
|
+
bittensor_cli-9.0.3.dist-info/RECORD,,
|
@@ -1,34 +0,0 @@
|
|
1
|
-
bittensor_cli/__init__.py,sha256=HHo0y7efQaZzbchvJjGXxKK-WcZqNIcpa0jk4g24xJw,1217
|
2
|
-
bittensor_cli/cli.py,sha256=YnPDhy4K02HIdFrxX2CPUZtTHn5RK_IuljiiJsBZ9Yc,191835
|
3
|
-
bittensor_cli/doc_generation_helper.py,sha256=GexqjEIKulWg84hpNBEchJ840oOgOi7DWpt447nsdNI,91
|
4
|
-
bittensor_cli/src/__init__.py,sha256=8tkruEnZA11TuELuJptD1d97jKzropC_onhyanCpnoI,26435
|
5
|
-
bittensor_cli/src/bittensor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
bittensor_cli/src/bittensor/balances.py,sha256=E-niENvR7lAaoS5ZyCmwl_9M-nspnkcuIxf_dHiJIDg,11078
|
7
|
-
bittensor_cli/src/bittensor/chain_data.py,sha256=L8j3vOL3RhOKzyJM053w74Diil2UX_vR5IPedyLco3Q,30663
|
8
|
-
bittensor_cli/src/bittensor/minigraph.py,sha256=BIzmSVLfBYiRAeGD_i1LAC8Cw7zxp38a91SIFEPMqYc,10479
|
9
|
-
bittensor_cli/src/bittensor/networking.py,sha256=pZLMs8YXpZzDMLXWMBb_Bj6TVkm_q9khyY-lnbwVMuE,462
|
10
|
-
bittensor_cli/src/bittensor/subtensor_interface.py,sha256=LqWrZBScOobW7CyEMNrtgvH1YOAvMOC8cns2BLEdPIg,52966
|
11
|
-
bittensor_cli/src/bittensor/utils.py,sha256=E57t4SiASuXCjiXLLU63vK6bK6aKqj9JtIIi9lDOi-k,46238
|
12
|
-
bittensor_cli/src/bittensor/extrinsics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
|
-
bittensor_cli/src/bittensor/extrinsics/registration.py,sha256=3mJZ3hw_wZEa-8I0R8WVuKjMQi4Y9EV5FjTCvbY37Iw,63780
|
14
|
-
bittensor_cli/src/bittensor/extrinsics/root.py,sha256=N9Fg4VaveRRP1ZN4EZjIWCe04FpTNBKWFqx8USKp9uQ,19062
|
15
|
-
bittensor_cli/src/bittensor/extrinsics/transfer.py,sha256=FyrRo3yk-065toN4f-1Xes23CE5tqP5KU0dBJkKofUc,8476
|
16
|
-
bittensor_cli/src/bittensor/templates/table.j2,sha256=P2EFiksnO1cQsB8zjK6hVJwUryHTsLslzRE0YtobAV8,10601
|
17
|
-
bittensor_cli/src/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
18
|
-
bittensor_cli/src/commands/sudo.py,sha256=Hdn0RX1NaZwYlaywbeiK-2fx5XkQuWedw4uVsgQQtLU,27969
|
19
|
-
bittensor_cli/src/commands/wallets.py,sha256=MYj-kJRGuQ00aqwkVot69zdYrzvxhDS94qfM7K0mdAQ,49645
|
20
|
-
bittensor_cli/src/commands/weights.py,sha256=uI7aACKD90JOtYt61VdKL76z7Fe_wh4WtdwMXL6ydD4,16269
|
21
|
-
bittensor_cli/src/commands/stake/__init__.py,sha256=uxomMv_QrYt5Qn3_X5UWFFh45ISjB0JmDmCFxVyX8nQ,6495
|
22
|
-
bittensor_cli/src/commands/stake/add.py,sha256=UhXPh8B8SRSE04MkFpQpDdGs5zSgfSC_DtWLpPeOGxc,25142
|
23
|
-
bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=L1a7T8VHvvrmT29JiRJwfzukmv_WSV3LTzuoQFyycZg,29582
|
24
|
-
bittensor_cli/src/commands/stake/list.py,sha256=EJoUGckyO9HzPkHJqwBi14e5HT-E0jTTKU_mPFEGKhw,29625
|
25
|
-
bittensor_cli/src/commands/stake/move.py,sha256=PHr4u8coXsMd3IGgIkvcmEGauDBtrFpZF9WKHilDmKk,37424
|
26
|
-
bittensor_cli/src/commands/stake/remove.py,sha256=IKUaoMWrjhZoD4Tp_sCeWMNJ9Wk4d8gjj0Lz7ahKhA4,43330
|
27
|
-
bittensor_cli/src/commands/subnets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
|
-
bittensor_cli/src/commands/subnets/price.py,sha256=TWcRXUFeS_Q-pfyv0YIluAL8SE7d2gzTODK-9M2J5pw,29878
|
29
|
-
bittensor_cli/src/commands/subnets/subnets.py,sha256=uIhfvw3Nt0V6HUiXrn1GWmbqVVQJwyY9nxyegeaOUKs,84142
|
30
|
-
bittensor_cli-9.0.1.dist-info/METADATA,sha256=tSXW1ayn3OBwQlD0EoX36ZhO8FkrYw-dsiIgq0xC7RA,6855
|
31
|
-
bittensor_cli-9.0.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
32
|
-
bittensor_cli-9.0.1.dist-info/entry_points.txt,sha256=hBTLGLbVxmAKy69XSKaUZvjTCmyEzDGZKq4S8UOto8I,49
|
33
|
-
bittensor_cli-9.0.1.dist-info/top_level.txt,sha256=DvgvXpmTtI_Q1BbDZMlK90LFcGFCreN1daViEPV2iFw,14
|
34
|
-
bittensor_cli-9.0.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|