bittensor-cli 9.9.0__py3-none-any.whl → 9.10.0__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/cli.py +165 -54
- bittensor_cli/src/bittensor/extrinsics/registration.py +29 -25
- bittensor_cli/src/bittensor/extrinsics/root.py +6 -5
- bittensor_cli/src/bittensor/extrinsics/transfer.py +1 -1
- bittensor_cli/src/bittensor/subtensor_interface.py +2 -1
- bittensor_cli/src/bittensor/utils.py +13 -1
- bittensor_cli/src/commands/stake/add.py +4 -3
- bittensor_cli/src/commands/stake/children_hotkeys.py +16 -14
- bittensor_cli/src/commands/stake/move.py +6 -4
- bittensor_cli/src/commands/stake/remove.py +5 -4
- bittensor_cli/src/commands/subnets/price.py +126 -30
- bittensor_cli/src/commands/subnets/subnets.py +3 -2
- bittensor_cli/src/commands/sudo.py +13 -11
- bittensor_cli/src/commands/wallets.py +68 -16
- bittensor_cli/src/commands/weights.py +2 -1
- {bittensor_cli-9.9.0.dist-info → bittensor_cli-9.10.0.dist-info}/METADATA +13 -5
- {bittensor_cli-9.9.0.dist-info → bittensor_cli-9.10.0.dist-info}/RECORD +20 -20
- {bittensor_cli-9.9.0.dist-info → bittensor_cli-9.10.0.dist-info}/WHEEL +0 -0
- {bittensor_cli-9.9.0.dist-info → bittensor_cli-9.10.0.dist-info}/entry_points.txt +0 -0
- {bittensor_cli-9.9.0.dist-info → bittensor_cli-9.10.0.dist-info}/top_level.txt +0 -0
@@ -3,7 +3,7 @@ import itertools
|
|
3
3
|
import json
|
4
4
|
import os
|
5
5
|
from collections import defaultdict
|
6
|
-
from typing import Generator, Optional
|
6
|
+
from typing import Generator, Optional, Union
|
7
7
|
|
8
8
|
import aiohttp
|
9
9
|
from bittensor_wallet import Wallet, Keypair
|
@@ -48,6 +48,7 @@ from bittensor_cli.src.bittensor.utils import (
|
|
48
48
|
WalletLike,
|
49
49
|
blocks_to_duration,
|
50
50
|
decode_account_id,
|
51
|
+
get_hotkey_pub_ss58,
|
51
52
|
)
|
52
53
|
|
53
54
|
|
@@ -159,7 +160,7 @@ async def regen_coldkey(
|
|
159
160
|
"name": new_wallet.name,
|
160
161
|
"path": new_wallet.path,
|
161
162
|
"hotkey": new_wallet.hotkey_str,
|
162
|
-
"hotkey_ss58": new_wallet
|
163
|
+
"hotkey_ss58": get_hotkey_pub_ss58(new_wallet),
|
163
164
|
"coldkey_ss58": new_wallet.coldkeypub.ss58_address,
|
164
165
|
},
|
165
166
|
"error": "",
|
@@ -209,7 +210,7 @@ async def regen_coldkey_pub(
|
|
209
210
|
"name": new_coldkeypub.name,
|
210
211
|
"path": new_coldkeypub.path,
|
211
212
|
"hotkey": new_coldkeypub.hotkey_str,
|
212
|
-
"hotkey_ss58": new_coldkeypub
|
213
|
+
"hotkey_ss58": get_hotkey_pub_ss58(new_coldkeypub),
|
213
214
|
"coldkey_ss58": new_coldkeypub.coldkeypub.ss58_address,
|
214
215
|
},
|
215
216
|
"error": "",
|
@@ -255,7 +256,7 @@ async def regen_hotkey(
|
|
255
256
|
console.print(
|
256
257
|
"\n✅ [dark_sea_green]Regenerated hotkey successfully!\n",
|
257
258
|
f"[dark_sea_green]Wallet name: ({new_hotkey_.name}), path: ({new_hotkey_.path}), "
|
258
|
-
f"hotkey ss58: ({new_hotkey_.
|
259
|
+
f"hotkey ss58: ({new_hotkey_.hotkeypub.ss58_address})",
|
259
260
|
)
|
260
261
|
if json_output:
|
261
262
|
json_console.print(
|
@@ -266,7 +267,7 @@ async def regen_hotkey(
|
|
266
267
|
"name": new_hotkey_.name,
|
267
268
|
"path": new_hotkey_.path,
|
268
269
|
"hotkey": new_hotkey_.hotkey_str,
|
269
|
-
"hotkey_ss58": new_hotkey_.
|
270
|
+
"hotkey_ss58": new_hotkey_.hotkeypub.ss58_address,
|
270
271
|
"coldkey_ss58": new_hotkey_.coldkeypub.ss58_address,
|
271
272
|
},
|
272
273
|
"error": "",
|
@@ -287,6 +288,50 @@ async def regen_hotkey(
|
|
287
288
|
)
|
288
289
|
|
289
290
|
|
291
|
+
async def regen_hotkey_pub(
|
292
|
+
wallet: Wallet,
|
293
|
+
ss58_address: str,
|
294
|
+
public_key_hex: str,
|
295
|
+
overwrite: Optional[bool] = False,
|
296
|
+
json_output: bool = False,
|
297
|
+
):
|
298
|
+
"""Creates a new hotkeypub under this wallet."""
|
299
|
+
try:
|
300
|
+
new_hotkeypub = wallet.regenerate_hotkeypub(
|
301
|
+
ss58_address=ss58_address,
|
302
|
+
public_key=public_key_hex,
|
303
|
+
overwrite=overwrite,
|
304
|
+
)
|
305
|
+
if isinstance(new_hotkeypub, Wallet):
|
306
|
+
console.print(
|
307
|
+
"\n✅ [dark_sea_green]Regenerated coldkeypub successfully!\n",
|
308
|
+
f"[dark_sea_green]Wallet name: ({new_hotkeypub.name}), path: ({new_hotkeypub.path}), "
|
309
|
+
f"coldkey ss58: ({new_hotkeypub.coldkeypub.ss58_address})",
|
310
|
+
)
|
311
|
+
if json_output:
|
312
|
+
json_console.print(
|
313
|
+
json.dumps(
|
314
|
+
{
|
315
|
+
"success": True,
|
316
|
+
"data": {
|
317
|
+
"name": new_hotkeypub.name,
|
318
|
+
"path": new_hotkeypub.path,
|
319
|
+
"hotkey": new_hotkeypub.hotkey_str,
|
320
|
+
"hotkey_ss58": new_hotkeypub.hotkeypub.ss58_address,
|
321
|
+
"coldkey_ss58": new_hotkeypub.coldkeypub.ss58_address,
|
322
|
+
},
|
323
|
+
"error": "",
|
324
|
+
}
|
325
|
+
)
|
326
|
+
)
|
327
|
+
except KeyFileError:
|
328
|
+
print_error("KeyFileError: File is not writable")
|
329
|
+
if json_output:
|
330
|
+
json_console.print(
|
331
|
+
'{"success": false, "error": "Keyfile is not writable", "data": null}'
|
332
|
+
)
|
333
|
+
|
334
|
+
|
290
335
|
async def new_hotkey(
|
291
336
|
wallet: Wallet,
|
292
337
|
n_words: int,
|
@@ -323,7 +368,7 @@ async def new_hotkey(
|
|
323
368
|
"name": wallet.name,
|
324
369
|
"path": wallet.path,
|
325
370
|
"hotkey": wallet.hotkey_str,
|
326
|
-
"hotkey_ss58": wallet
|
371
|
+
"hotkey_ss58": get_hotkey_pub_ss58(wallet),
|
327
372
|
"coldkey_ss58": wallet.coldkeypub.ss58_address,
|
328
373
|
},
|
329
374
|
"error": "",
|
@@ -402,19 +447,24 @@ async def wallet_create(
|
|
402
447
|
json_output: bool = False,
|
403
448
|
):
|
404
449
|
"""Creates a new wallet."""
|
405
|
-
output_dict
|
450
|
+
output_dict: dict[str, Optional[Union[bool, str, dict]]] = {
|
451
|
+
"success": False,
|
452
|
+
"error": "",
|
453
|
+
"data": None,
|
454
|
+
}
|
406
455
|
if uri:
|
407
456
|
try:
|
408
457
|
keypair = Keypair.create_from_uri(uri)
|
409
458
|
wallet.set_coldkey(keypair=keypair, encrypt=False, overwrite=False)
|
410
459
|
wallet.set_coldkeypub(keypair=keypair, encrypt=False, overwrite=False)
|
411
460
|
wallet.set_hotkey(keypair=keypair, encrypt=False, overwrite=False)
|
461
|
+
wallet.set_coldkeypub(keypair=keypair, encrypt=False, overwrite=False)
|
412
462
|
output_dict["success"] = True
|
413
463
|
output_dict["data"] = {
|
414
464
|
"name": wallet.name,
|
415
465
|
"path": wallet.path,
|
416
466
|
"hotkey": wallet.hotkey_str,
|
417
|
-
"hotkey_ss58": wallet.
|
467
|
+
"hotkey_ss58": wallet.hotkeypub.ss58_address,
|
418
468
|
"coldkey_ss58": wallet.coldkeypub.ss58_address,
|
419
469
|
}
|
420
470
|
except Exception as e:
|
@@ -455,7 +505,7 @@ async def wallet_create(
|
|
455
505
|
"name": wallet.name,
|
456
506
|
"path": wallet.path,
|
457
507
|
"hotkey": wallet.hotkey_str,
|
458
|
-
"hotkey_ss58": wallet.
|
508
|
+
"hotkey_ss58": wallet.hotkeypub.ss58_address,
|
459
509
|
}
|
460
510
|
except KeyFileError as error:
|
461
511
|
err = str(error)
|
@@ -794,13 +844,14 @@ async def wallet_list(wallet_path: str, json_output: bool):
|
|
794
844
|
data = f"[bold red]Hotkey[/bold red][green] {hkey}[/green] (?)"
|
795
845
|
hk_data = {"name": hkey.name, "ss58_address": "?"}
|
796
846
|
if hkey:
|
847
|
+
hkey_ss58 = get_hotkey_pub_ss58(hkey)
|
797
848
|
try:
|
798
849
|
data = (
|
799
850
|
f"[bold red]Hotkey[/bold red] [green]{hkey.hotkey_str}[/green] "
|
800
|
-
f"ss58_address [green]{
|
851
|
+
f"ss58_address [green]{hkey_ss58}[/green]\n"
|
801
852
|
)
|
802
853
|
hk_data["name"] = hkey.hotkey_str
|
803
|
-
hk_data["ss58_address"] =
|
854
|
+
hk_data["ss58_address"] = hkey_ss58
|
804
855
|
except UnicodeDecodeError:
|
805
856
|
pass
|
806
857
|
wallet_tree.add(data)
|
@@ -1253,7 +1304,7 @@ def _get_hotkeys(
|
|
1253
1304
|
|
1254
1305
|
def is_hotkey_matched(wallet: Wallet, item: str) -> bool:
|
1255
1306
|
if is_valid_ss58_address(item):
|
1256
|
-
return wallet
|
1307
|
+
return get_hotkey_pub_ss58(wallet) == item
|
1257
1308
|
else:
|
1258
1309
|
return wallet.hotkey_str == item
|
1259
1310
|
|
@@ -1285,9 +1336,10 @@ def _get_key_address(all_hotkeys: list[Wallet]) -> tuple[list[str], dict[str, Wa
|
|
1285
1336
|
hotkey_coldkey_to_hotkey_wallet = {}
|
1286
1337
|
for hotkey_wallet in all_hotkeys:
|
1287
1338
|
if hotkey_wallet.coldkeypub:
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1339
|
+
hotkey_ss58 = get_hotkey_pub_ss58(hotkey_wallet)
|
1340
|
+
if hotkey_ss58 not in hotkey_coldkey_to_hotkey_wallet:
|
1341
|
+
hotkey_coldkey_to_hotkey_wallet[hotkey_ss58] = {}
|
1342
|
+
hotkey_coldkey_to_hotkey_wallet[hotkey_ss58][
|
1291
1343
|
hotkey_wallet.coldkeypub.ss58_address
|
1292
1344
|
] = hotkey_wallet
|
1293
1345
|
else:
|
@@ -1471,7 +1523,7 @@ async def inspect(
|
|
1471
1523
|
if hotkey_names := [
|
1472
1524
|
w.hotkey_str
|
1473
1525
|
for w in hotkeys
|
1474
|
-
if w
|
1526
|
+
if get_hotkey_pub_ss58(w) == n.hotkey
|
1475
1527
|
]:
|
1476
1528
|
hotkey_name = f"{hotkey_names[0]}-"
|
1477
1529
|
yield [""] * 5 + [
|
@@ -15,6 +15,7 @@ from bittensor_cli.src.bittensor.utils import (
|
|
15
15
|
console,
|
16
16
|
format_error_message,
|
17
17
|
json_console,
|
18
|
+
get_hotkey_pub_ss58,
|
18
19
|
)
|
19
20
|
from bittensor_cli.src.bittensor.extrinsics.root import (
|
20
21
|
convert_weights_and_uids_for_emit,
|
@@ -128,7 +129,7 @@ class SetWeightsExtrinsic:
|
|
128
129
|
|
129
130
|
# Generate the hash of the weights
|
130
131
|
commit_hash = generate_weight_hash(
|
131
|
-
address=self.wallet
|
132
|
+
address=get_hotkey_pub_ss58(self.wallet),
|
132
133
|
netuid=self.netuid,
|
133
134
|
uids=uids,
|
134
135
|
values=weights,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: bittensor-cli
|
3
|
-
Version: 9.
|
3
|
+
Version: 9.10.0
|
4
4
|
Summary: Bittensor CLI
|
5
5
|
Author: bittensor.com
|
6
6
|
Project-URL: homepage, https://github.com/opentensor/btcli
|
@@ -11,7 +11,6 @@ Requires-Dist: wheel
|
|
11
11
|
Requires-Dist: async-substrate-interface>=1.4.2
|
12
12
|
Requires-Dist: aiohttp~=3.10.2
|
13
13
|
Requires-Dist: backoff~=2.2.1
|
14
|
-
Requires-Dist: click<8.2.0
|
15
14
|
Requires-Dist: GitPython>=3.0.0
|
16
15
|
Requires-Dist: netaddr~=1.3.0
|
17
16
|
Requires-Dist: numpy<3.0.0,>=2.0.1
|
@@ -20,8 +19,9 @@ Requires-Dist: pycryptodome<4.0.0,>=3.0.0
|
|
20
19
|
Requires-Dist: PyYAML~=6.0.1
|
21
20
|
Requires-Dist: rich<15.0,>=13.7
|
22
21
|
Requires-Dist: scalecodec==1.2.11
|
23
|
-
Requires-Dist: typer
|
24
|
-
Requires-Dist: bittensor-wallet>=
|
22
|
+
Requires-Dist: typer>=0.16
|
23
|
+
Requires-Dist: bittensor-wallet>=4.0.0
|
24
|
+
Requires-Dist: packaging
|
25
25
|
Requires-Dist: plotille>=5.0.0
|
26
26
|
Requires-Dist: plotly>=6.0.0
|
27
27
|
Provides-Extra: cuda
|
@@ -71,7 +71,15 @@ Installation steps are described below. For a full documentation on how to use `
|
|
71
71
|
|
72
72
|
## Install on macOS and Linux
|
73
73
|
|
74
|
-
You can install `btcli` on your local machine directly from source, PyPI, or Homebrew.
|
74
|
+
You can install `btcli` on your local machine directly from source, PyPI, or Homebrew.
|
75
|
+
**Make sure you verify your installation after you install**.
|
76
|
+
|
77
|
+
### For macOS users
|
78
|
+
Note that the macOS preinstalled CPython installation is compiled with LibreSSL instead of OpenSSL. There are a number
|
79
|
+
of issues with LibreSSL, and as such is not fully supported by the libraries used by btcli. Thus we highly recommend, if
|
80
|
+
you are using a Mac, to first install Python from [Homebrew](https://brew.sh/). Additionally, the Rust FFI bindings
|
81
|
+
[if installing from precompiled wheels (default)] require the Homebrew-installed OpenSSL pacakge. If you choose to use
|
82
|
+
the preinstalled Python version from macOS, things may not work completely.
|
75
83
|
|
76
84
|
|
77
85
|
### Install from [PyPI](https://pypi.org/project/bittensor/)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
bittensor_cli/__init__.py,sha256=Lpv4NkbAQgwrfqFOnTMuR_S-fqGdaWCSLhxnFnGTHM0,1232
|
2
|
-
bittensor_cli/cli.py,sha256=
|
2
|
+
bittensor_cli/cli.py,sha256=98G_j7HE6IM3breC6kOsEl6zvVXxrrwDFSEk1pEAxbg,240109
|
3
3
|
bittensor_cli/doc_generation_helper.py,sha256=GexqjEIKulWg84hpNBEchJ840oOgOi7DWpt447nsdNI,91
|
4
4
|
bittensor_cli/version.py,sha256=dU1xsa3mG5FPdhzvqlzDByNcCHmzcFQH3q1pQr4u76g,720
|
5
5
|
bittensor_cli/src/__init__.py,sha256=QCR6kt9rbUiLC4gkvczl47eg725nqSFK4Xr7_mz3e_s,33171
|
@@ -8,12 +8,12 @@ bittensor_cli/src/bittensor/balances.py,sha256=q5KkxF8wmUguWAFddEKstfDKTxPe5ISHp
|
|
8
8
|
bittensor_cli/src/bittensor/chain_data.py,sha256=_GATOCacWMN2jRurzn3hffJiq_l7AznGRkKePTAflwQ,44420
|
9
9
|
bittensor_cli/src/bittensor/minigraph.py,sha256=BIzmSVLfBYiRAeGD_i1LAC8Cw7zxp38a91SIFEPMqYc,10479
|
10
10
|
bittensor_cli/src/bittensor/networking.py,sha256=pZLMs8YXpZzDMLXWMBb_Bj6TVkm_q9khyY-lnbwVMuE,462
|
11
|
-
bittensor_cli/src/bittensor/subtensor_interface.py,sha256=
|
12
|
-
bittensor_cli/src/bittensor/utils.py,sha256=
|
11
|
+
bittensor_cli/src/bittensor/subtensor_interface.py,sha256=9XJ74DTOLHoV5qQNmkhuvbl2kiaar4p1SV7GJeZY5p8,62698
|
12
|
+
bittensor_cli/src/bittensor/utils.py,sha256=DsBVb2WZ6baviYg0t9FfVZp8sn5C-h_Khbm4akxx1gg,48657
|
13
13
|
bittensor_cli/src/bittensor/extrinsics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
-
bittensor_cli/src/bittensor/extrinsics/registration.py,sha256=
|
15
|
-
bittensor_cli/src/bittensor/extrinsics/root.py,sha256=
|
16
|
-
bittensor_cli/src/bittensor/extrinsics/transfer.py,sha256=
|
14
|
+
bittensor_cli/src/bittensor/extrinsics/registration.py,sha256=Q43L-d_Ayp7saWWCPR4hShBDpzjh5bfsqtatiiiM2Zk,66199
|
15
|
+
bittensor_cli/src/bittensor/extrinsics/root.py,sha256=tOG-xSO0ihC--AhPwrhLkm1nduvHbFAObeONGSHUdJw,19218
|
16
|
+
bittensor_cli/src/bittensor/extrinsics/transfer.py,sha256=Dry4DZ5lSlJdrD0Y-W-8B4WMsN1oag0Kzm_GP8Nt9E8,9276
|
17
17
|
bittensor_cli/src/bittensor/templates/main-filters.j2,sha256=ZM0l2exr6FKqw86GRyHHtw-h8Y5Ckgx-SPc-48gZoxI,914
|
18
18
|
bittensor_cli/src/bittensor/templates/main-header.j2,sha256=aZwB9NeEjNr0pM5mPYTYeky_031zAu6yErIMiwTPcwE,1684
|
19
19
|
bittensor_cli/src/bittensor/templates/neuron-details.j2,sha256=O_Mhg2E04BzW_cSGIldObhVTSRX29gDNqnimW4ty9rY,4848
|
@@ -28,24 +28,24 @@ bittensor_cli/src/bittensor/templates/view.css,sha256=OS0V_ixzdTU15FbNzpZW1m7-c6
|
|
28
28
|
bittensor_cli/src/bittensor/templates/view.j2,sha256=4ux3uyqz34v9VVAX17GezuPESk4z9n5kkd9HbnTsF_Y,1101
|
29
29
|
bittensor_cli/src/bittensor/templates/view.js,sha256=QIPnPp9SuYS9wcl7cwL8nFzd8idiDjNzrDjwwxpiVvY,45076
|
30
30
|
bittensor_cli/src/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
31
|
-
bittensor_cli/src/commands/sudo.py,sha256=
|
31
|
+
bittensor_cli/src/commands/sudo.py,sha256=Ut4jD8mSRMT0dF0Xgoqr5_I3eW_1TnmOhFZ2zQNzWwU,33874
|
32
32
|
bittensor_cli/src/commands/view.py,sha256=9lx6vfOkel8KIefUhDNaBS_j5lNR2djcRFRbK4mbnDE,12535
|
33
|
-
bittensor_cli/src/commands/wallets.py,sha256=
|
34
|
-
bittensor_cli/src/commands/weights.py,sha256=
|
33
|
+
bittensor_cli/src/commands/wallets.py,sha256=aQs9XHFeL9_oW3gHwP3tmG6dCx8IiQH0npO5Gggsgc0,76668
|
34
|
+
bittensor_cli/src/commands/weights.py,sha256=iZMiZM3Y_WbglJdbN6QrRHnJ0AtlCOGmSJlXTIcOa3E,16529
|
35
35
|
bittensor_cli/src/commands/liquidity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
36
|
bittensor_cli/src/commands/liquidity/liquidity.py,sha256=AXCjBvQb2gakP8n1z81npYkZ_QF5CQy7r82AMtQwXzk,21692
|
37
37
|
bittensor_cli/src/commands/liquidity/utils.py,sha256=egfZHnvBMc8ydntAHnU6V5Zyi-wLkomjNuucUj73aZQ,6361
|
38
38
|
bittensor_cli/src/commands/stake/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
|
-
bittensor_cli/src/commands/stake/add.py,sha256=
|
40
|
-
bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=
|
39
|
+
bittensor_cli/src/commands/stake/add.py,sha256=9FFC0g2NDKm3Uheh4LFvqNvz17mhXpwWFRG2gyXjc7w,29759
|
40
|
+
bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=1xR1FTljjaWD_-uTopVUkM88jNaz7vWuOwydG202lLQ,31736
|
41
41
|
bittensor_cli/src/commands/stake/list.py,sha256=tzjhiJucXgOGaw7TGt420nGosH85AEjvOimP1XXV3Xs,29038
|
42
|
-
bittensor_cli/src/commands/stake/move.py,sha256=
|
43
|
-
bittensor_cli/src/commands/stake/remove.py,sha256=
|
42
|
+
bittensor_cli/src/commands/stake/move.py,sha256=TqUBqYEhfDu77l8BUdZYNy1MVybcizmtUTaPPFIAvbk,35171
|
43
|
+
bittensor_cli/src/commands/stake/remove.py,sha256=ANrH9VyCJqddnabXU1EbdUxh0bpwZzz3BH58MCvKqA4,51347
|
44
44
|
bittensor_cli/src/commands/subnets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
45
|
-
bittensor_cli/src/commands/subnets/price.py,sha256=
|
46
|
-
bittensor_cli/src/commands/subnets/subnets.py,sha256=
|
47
|
-
bittensor_cli-9.
|
48
|
-
bittensor_cli-9.
|
49
|
-
bittensor_cli-9.
|
50
|
-
bittensor_cli-9.
|
51
|
-
bittensor_cli-9.
|
45
|
+
bittensor_cli/src/commands/subnets/price.py,sha256=RzcFVqFnQV5zBekyZCMrqpydh88yWlMLm5VJNUNfQCU,25814
|
46
|
+
bittensor_cli/src/commands/subnets/subnets.py,sha256=ROtNBTUuoQcinIO5l55ky28JPd1PI4IqybdIc9JTjr0,94628
|
47
|
+
bittensor_cli-9.10.0.dist-info/METADATA,sha256=Ws21m1MXBECp1IEizYL66YoemCnMzNqlNk133RC4_4Q,7169
|
48
|
+
bittensor_cli-9.10.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
49
|
+
bittensor_cli-9.10.0.dist-info/entry_points.txt,sha256=hBTLGLbVxmAKy69XSKaUZvjTCmyEzDGZKq4S8UOto8I,49
|
50
|
+
bittensor_cli-9.10.0.dist-info/top_level.txt,sha256=DvgvXpmTtI_Q1BbDZMlK90LFcGFCreN1daViEPV2iFw,14
|
51
|
+
bittensor_cli-9.10.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|