bittensor-cli 8.2.0__py3-none-any.whl → 8.3.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/__init__.py +1 -1
- bittensor_cli/cli.py +180 -123
- bittensor_cli/src/__init__.py +4 -2
- bittensor_cli/src/bittensor/async_substrate_interface.py +25 -15
- bittensor_cli/src/bittensor/extrinsics/registration.py +35 -22
- bittensor_cli/src/bittensor/extrinsics/root.py +2 -0
- bittensor_cli/src/bittensor/extrinsics/transfer.py +16 -2
- bittensor_cli/src/bittensor/subtensor_interface.py +11 -11
- bittensor_cli/src/bittensor/utils.py +2 -2
- bittensor_cli/src/commands/root.py +5 -0
- bittensor_cli/src/commands/stake/children_hotkeys.py +7 -5
- bittensor_cli/src/commands/stake/stake.py +6 -0
- bittensor_cli/src/commands/subnets.py +3 -1
- bittensor_cli/src/commands/sudo.py +1 -0
- bittensor_cli/src/commands/wallets.py +63 -62
- bittensor_cli/src/commands/weights.py +4 -2
- {bittensor_cli-8.2.0.dist-info → bittensor_cli-8.3.0.dist-info}/METADATA +1 -1
- bittensor_cli-8.3.0.dist-info/RECORD +31 -0
- bittensor_cli-8.2.0.dist-info/RECORD +0 -31
- {bittensor_cli-8.2.0.dist-info → bittensor_cli-8.3.0.dist-info}/WHEEL +0 -0
- {bittensor_cli-8.2.0.dist-info → bittensor_cli-8.3.0.dist-info}/entry_points.txt +0 -0
- {bittensor_cli-8.2.0.dist-info → bittensor_cli-8.3.0.dist-info}/top_level.txt +0 -0
@@ -4,10 +4,9 @@ import itertools
|
|
4
4
|
import os
|
5
5
|
import sys
|
6
6
|
from collections import defaultdict
|
7
|
-
from concurrent.futures import ProcessPoolExecutor
|
8
7
|
from functools import partial
|
9
8
|
from sys import getsizeof
|
10
|
-
from typing import
|
9
|
+
from typing import Collection, Generator, Optional
|
11
10
|
|
12
11
|
import aiohttp
|
13
12
|
from bittensor_wallet import Wallet
|
@@ -59,6 +58,13 @@ from bittensor_cli.src.bittensor.utils import (
|
|
59
58
|
)
|
60
59
|
|
61
60
|
|
61
|
+
class WalletLike:
|
62
|
+
def __init__(self, name=None, hotkey_ss58=None, hotkey_str=None):
|
63
|
+
self.name = name
|
64
|
+
self.hotkey_ss58 = hotkey_ss58
|
65
|
+
self.hotkey_str = hotkey_str
|
66
|
+
|
67
|
+
|
62
68
|
async def regen_coldkey(
|
63
69
|
wallet: Wallet,
|
64
70
|
mnemonic: Optional[str],
|
@@ -75,13 +81,21 @@ async def regen_coldkey(
|
|
75
81
|
with open(json_path, "r") as f:
|
76
82
|
json_str = f.read()
|
77
83
|
try:
|
78
|
-
wallet.regenerate_coldkey(
|
84
|
+
new_wallet = wallet.regenerate_coldkey(
|
79
85
|
mnemonic=mnemonic,
|
80
86
|
seed=seed,
|
81
87
|
json=(json_str, json_password) if all([json_str, json_password]) else None,
|
82
88
|
use_password=use_password,
|
83
89
|
overwrite=False,
|
84
90
|
)
|
91
|
+
|
92
|
+
if isinstance(new_wallet, Wallet):
|
93
|
+
console.print(
|
94
|
+
"\n✅ [dark_sea_green]Regenerated coldkey successfully!\n",
|
95
|
+
f"[dark_sea_green]Wallet name: ({new_wallet.name}), path: ({new_wallet.path}), coldkey ss58: ({new_wallet.coldkeypub.ss58_address})",
|
96
|
+
)
|
97
|
+
except ValueError:
|
98
|
+
print_error("Mnemonic phrase is invalid")
|
85
99
|
except KeyFileError:
|
86
100
|
print_error("KeyFileError: File is not writable")
|
87
101
|
|
@@ -93,11 +107,16 @@ async def regen_coldkey_pub(
|
|
93
107
|
):
|
94
108
|
"""Creates a new coldkeypub under this wallet."""
|
95
109
|
try:
|
96
|
-
wallet.regenerate_coldkeypub(
|
110
|
+
new_coldkeypub = wallet.regenerate_coldkeypub(
|
97
111
|
ss58_address=ss58_address,
|
98
112
|
public_key=public_key_hex,
|
99
113
|
overwrite=False,
|
100
114
|
)
|
115
|
+
if isinstance(new_coldkeypub, Wallet):
|
116
|
+
console.print(
|
117
|
+
"\n✅ [dark_sea_green]Regenerated coldkeypub successfully!\n",
|
118
|
+
f"[dark_sea_green]Wallet name: ({new_coldkeypub.name}), path: ({new_coldkeypub.path}), coldkey ss58: ({new_coldkeypub.coldkeypub.ss58_address})",
|
119
|
+
)
|
101
120
|
except KeyFileError:
|
102
121
|
print_error("KeyFileError: File is not writable")
|
103
122
|
|
@@ -120,13 +139,20 @@ async def regen_hotkey(
|
|
120
139
|
json_str = f.read()
|
121
140
|
|
122
141
|
try:
|
123
|
-
wallet.regenerate_hotkey(
|
142
|
+
new_hotkey = wallet.regenerate_hotkey(
|
124
143
|
mnemonic=mnemonic,
|
125
144
|
seed=seed,
|
126
145
|
json=(json_str, json_password) if all([json_str, json_password]) else None,
|
127
146
|
use_password=use_password,
|
128
147
|
overwrite=False,
|
129
148
|
)
|
149
|
+
if isinstance(new_hotkey, Wallet):
|
150
|
+
console.print(
|
151
|
+
"\n✅ [dark_sea_green]Regenerated hotkey successfully!\n",
|
152
|
+
f"[dark_sea_green]Wallet name: ({new_hotkey.name}), path: ({new_hotkey.path}), hotkey ss58: ({new_hotkey.hotkey.ss58_address})",
|
153
|
+
)
|
154
|
+
except ValueError:
|
155
|
+
print_error("Mnemonic phrase is invalid")
|
130
156
|
except KeyFileError:
|
131
157
|
print_error("KeyFileError: File is not writable")
|
132
158
|
|
@@ -697,9 +723,11 @@ async def overview(
|
|
697
723
|
de_registered_neurons.append(de_registered_neuron)
|
698
724
|
|
699
725
|
# Add this hotkey to the wallets dict
|
700
|
-
wallet_ =
|
701
|
-
|
702
|
-
|
726
|
+
wallet_ = WalletLike(
|
727
|
+
name=wallet.name,
|
728
|
+
hotkey_ss58=hotkey_addr,
|
729
|
+
hotkey_str=hotkey_addr[:5],
|
730
|
+
)
|
703
731
|
# Indicates a hotkey not on local machine but exists in stake_info obj on-chain
|
704
732
|
if hotkey_coldkey_to_hotkey_wallet.get(hotkey_addr) is None:
|
705
733
|
hotkey_coldkey_to_hotkey_wallet[hotkey_addr] = {}
|
@@ -762,8 +790,7 @@ async def overview(
|
|
762
790
|
if not hotwallet:
|
763
791
|
# Indicates a mismatch between what the chain says the coldkey
|
764
792
|
# is for this hotkey and the local wallet coldkey-hotkey pair
|
765
|
-
hotwallet =
|
766
|
-
hotwallet.hotkey_str = nn.hotkey[:7]
|
793
|
+
hotwallet = WalletLike(name=nn.coldkey[:7], hotkey_str=nn.hotkey[:7])
|
767
794
|
|
768
795
|
nn: NeuronInfoLite
|
769
796
|
uid = nn.uid
|
@@ -1102,7 +1129,7 @@ def _map_hotkey_to_neurons(
|
|
1102
1129
|
|
1103
1130
|
async def _fetch_neuron_for_netuid(
|
1104
1131
|
netuid: int, subtensor: SubtensorInterface
|
1105
|
-
) -> tuple[int,
|
1132
|
+
) -> tuple[int, Optional[str]]:
|
1106
1133
|
"""
|
1107
1134
|
Retrieves all neurons for a specified netuid
|
1108
1135
|
|
@@ -1112,18 +1139,13 @@ async def _fetch_neuron_for_netuid(
|
|
1112
1139
|
:return: the original netuid, and a mapping of the neurons to their NeuronInfoLite objects
|
1113
1140
|
"""
|
1114
1141
|
|
1115
|
-
async def neurons_lite_for_uid(uid: int) ->
|
1116
|
-
call_definition = TYPE_REGISTRY["runtime_api"]["NeuronInfoRuntimeApi"][
|
1117
|
-
"methods"
|
1118
|
-
]["get_neurons_lite"]
|
1119
|
-
data = await subtensor.encode_params(
|
1120
|
-
call_definition=call_definition, params=[uid]
|
1121
|
-
)
|
1142
|
+
async def neurons_lite_for_uid(uid: int) -> Optional[str]:
|
1122
1143
|
block_hash = subtensor.substrate.last_block_hash
|
1123
|
-
hex_bytes_result = await subtensor.
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1144
|
+
hex_bytes_result = await subtensor.query_runtime_api(
|
1145
|
+
runtime_api="NeuronInfoRuntimeApi",
|
1146
|
+
method="get_neurons_lite",
|
1147
|
+
params=[uid],
|
1148
|
+
block_hash=block_hash,
|
1127
1149
|
)
|
1128
1150
|
|
1129
1151
|
return hex_bytes_result
|
@@ -1134,7 +1156,7 @@ async def _fetch_neuron_for_netuid(
|
|
1134
1156
|
|
1135
1157
|
async def _fetch_all_neurons(
|
1136
1158
|
netuids: list[int], subtensor
|
1137
|
-
) -> list[tuple[int,
|
1159
|
+
) -> list[tuple[int, Optional[str]]]:
|
1138
1160
|
"""Retrieves all neurons for each of the specified netuids"""
|
1139
1161
|
return list(
|
1140
1162
|
await asyncio.gather(
|
@@ -1143,50 +1165,21 @@ async def _fetch_all_neurons(
|
|
1143
1165
|
)
|
1144
1166
|
|
1145
1167
|
|
1146
|
-
def _partial_decode(args):
|
1147
|
-
"""
|
1148
|
-
Helper function for passing to ProcessPoolExecutor that decodes scale bytes based on a set return type and
|
1149
|
-
rpc type registry, passing this back to the Executor with its specified netuid for easier mapping
|
1150
|
-
|
1151
|
-
:param args: (return type, scale bytes object, custom rpc type registry, netuid)
|
1152
|
-
|
1153
|
-
:return: (original netuid, decoded object)
|
1154
|
-
"""
|
1155
|
-
return_type, as_scale_bytes, custom_rpc_type_registry_, netuid_ = args
|
1156
|
-
decoded = decode_scale_bytes(return_type, as_scale_bytes, custom_rpc_type_registry_)
|
1157
|
-
if decoded.startswith("0x"):
|
1158
|
-
bytes_result = bytes.fromhex(decoded[2:])
|
1159
|
-
else:
|
1160
|
-
bytes_result = bytes.fromhex(decoded)
|
1161
|
-
|
1162
|
-
return netuid_, NeuronInfoLite.list_from_vec_u8(bytes_result)
|
1163
|
-
|
1164
|
-
|
1165
1168
|
def _process_neurons_for_netuids(
|
1166
|
-
netuids_with_all_neurons_hex_bytes: list[tuple[int,
|
1169
|
+
netuids_with_all_neurons_hex_bytes: list[tuple[int, Optional[str]]],
|
1167
1170
|
) -> list[tuple[int, list[NeuronInfoLite]]]:
|
1168
1171
|
"""
|
1169
|
-
|
1172
|
+
Decode a list of hex-bytes neurons with their respective netuid
|
1170
1173
|
|
1171
1174
|
:param netuids_with_all_neurons_hex_bytes: netuids with hex-bytes neurons
|
1172
1175
|
:return: netuids mapped to decoded neurons
|
1173
1176
|
"""
|
1174
|
-
|
1175
|
-
|
1176
|
-
|
1177
|
-
|
1178
|
-
|
1179
|
-
|
1180
|
-
|
1181
|
-
return_type = TYPE_REGISTRY["runtime_api"]["NeuronInfoRuntimeApi"]["methods"][
|
1182
|
-
"get_neurons_lite"
|
1183
|
-
]["type"]
|
1184
|
-
|
1185
|
-
preprocessed = [make_map(r) for r in netuids_with_all_neurons_hex_bytes]
|
1186
|
-
with ProcessPoolExecutor() as executor:
|
1187
|
-
results = list(executor.map(_partial_decode, preprocessed))
|
1188
|
-
|
1189
|
-
all_results = [(netuid, result) for netuid, result in results]
|
1177
|
+
all_results = [
|
1178
|
+
(netuid, NeuronInfoLite.list_from_vec_u8(bytes.fromhex(result[2:])))
|
1179
|
+
if result
|
1180
|
+
else (netuid, [])
|
1181
|
+
for netuid, result in netuids_with_all_neurons_hex_bytes
|
1182
|
+
]
|
1190
1183
|
return all_results
|
1191
1184
|
|
1192
1185
|
|
@@ -1256,11 +1249,17 @@ async def transfer(
|
|
1256
1249
|
subtensor: SubtensorInterface,
|
1257
1250
|
destination: str,
|
1258
1251
|
amount: float,
|
1252
|
+
transfer_all: bool,
|
1259
1253
|
prompt: bool,
|
1260
1254
|
):
|
1261
1255
|
"""Transfer token of amount to destination."""
|
1262
1256
|
await transfer_extrinsic(
|
1263
|
-
subtensor,
|
1257
|
+
subtensor,
|
1258
|
+
wallet,
|
1259
|
+
destination,
|
1260
|
+
Balance.from_tao(amount),
|
1261
|
+
transfer_all,
|
1262
|
+
prompt=prompt,
|
1264
1263
|
)
|
1265
1264
|
|
1266
1265
|
|
@@ -1414,13 +1413,14 @@ async def faucet(
|
|
1414
1413
|
output_in_place: bool,
|
1415
1414
|
log_verbose: bool,
|
1416
1415
|
max_successes: int = 3,
|
1416
|
+
prompt: bool = True,
|
1417
1417
|
):
|
1418
1418
|
# TODO: - work out prompts to be passed through the cli
|
1419
1419
|
success = await run_faucet_extrinsic(
|
1420
1420
|
subtensor,
|
1421
1421
|
wallet,
|
1422
1422
|
tpb=threads_per_block,
|
1423
|
-
prompt=
|
1423
|
+
prompt=prompt,
|
1424
1424
|
update_interval=update_interval,
|
1425
1425
|
num_processes=processes,
|
1426
1426
|
cuda=use_cuda,
|
@@ -1619,6 +1619,7 @@ async def set_id(
|
|
1619
1619
|
try:
|
1620
1620
|
wallet.unlock_coldkey()
|
1621
1621
|
except KeyFileError:
|
1622
|
+
err_console.print("Error decrypting coldkey (possibly incorrect password)")
|
1622
1623
|
return False
|
1623
1624
|
|
1624
1625
|
with console.status(
|
@@ -378,6 +378,7 @@ async def reveal_weights(
|
|
378
378
|
weights: list[float],
|
379
379
|
salt: list[int],
|
380
380
|
version: int,
|
381
|
+
prompt: bool = True,
|
381
382
|
) -> None:
|
382
383
|
"""Reveal weights for a specific subnet."""
|
383
384
|
uids_ = np.array(
|
@@ -397,7 +398,7 @@ async def reveal_weights(
|
|
397
398
|
)
|
398
399
|
# Call the reveal function in the module set_weights from extrinsics package
|
399
400
|
extrinsic = SetWeightsExtrinsic(
|
400
|
-
subtensor, wallet, netuid, uids_, weights_, list(salt_), version
|
401
|
+
subtensor, wallet, netuid, uids_, weights_, list(salt_), version, prompt=prompt
|
401
402
|
)
|
402
403
|
success, message = await extrinsic.reveal(weight_uids, weight_vals)
|
403
404
|
|
@@ -415,6 +416,7 @@ async def commit_weights(
|
|
415
416
|
weights: list[float],
|
416
417
|
salt: list[int],
|
417
418
|
version: int,
|
419
|
+
prompt: bool = True,
|
418
420
|
):
|
419
421
|
"""Commits weights and then reveals them for a specific subnet"""
|
420
422
|
uids_ = np.array(
|
@@ -430,7 +432,7 @@ async def commit_weights(
|
|
430
432
|
dtype=np.int64,
|
431
433
|
)
|
432
434
|
extrinsic = SetWeightsExtrinsic(
|
433
|
-
subtensor, wallet, netuid, uids_, weights_, list(salt_), version
|
435
|
+
subtensor, wallet, netuid, uids_, weights_, list(salt_), version, prompt=prompt
|
434
436
|
)
|
435
437
|
success, message = await extrinsic.set_weights_extrinsic()
|
436
438
|
if success:
|
@@ -0,0 +1,31 @@
|
|
1
|
+
bittensor_cli/__init__.py,sha256=O5T0sSkvfCnlXbdjLguIp-4w1jd6Bmb-TXgQINZD1uo,1217
|
2
|
+
bittensor_cli/cli.py,sha256=tMJBqFba9L267Ghl8Af228_MIR8h7nHfYrmN1Tz3xR8,169461
|
3
|
+
bittensor_cli/doc_generation_helper.py,sha256=GexqjEIKulWg84hpNBEchJ840oOgOi7DWpt447nsdNI,91
|
4
|
+
bittensor_cli/src/__init__.py,sha256=9hFSqapIynZbrjc9YHl2wARkPdk4pV5P5zLSvn-EbqM,11856
|
5
|
+
bittensor_cli/src/bittensor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
+
bittensor_cli/src/bittensor/async_substrate_interface.py,sha256=EcvAoQcyDa_Sm8Ne-SNtMm8lUkZmkzDto1VUvqG0rlg,103271
|
7
|
+
bittensor_cli/src/bittensor/balances.py,sha256=102mg1iiliLSLx-EocQseWGHiWzRqcBBM-MRoObOdKo,10075
|
8
|
+
bittensor_cli/src/bittensor/chain_data.py,sha256=IsHWjmhJbTvud2i3IM1sfmBHP82VxNHC1iFDAtlLgXc,26490
|
9
|
+
bittensor_cli/src/bittensor/minigraph.py,sha256=17AjEA75MO7ez_NekOJSaAz6ARjPt99QG_7E1RJ_u_k,8891
|
10
|
+
bittensor_cli/src/bittensor/networking.py,sha256=pZLMs8YXpZzDMLXWMBb_Bj6TVkm_q9khyY-lnbwVMuE,462
|
11
|
+
bittensor_cli/src/bittensor/subtensor_interface.py,sha256=cwbRhS5qV0Jmref5Qe7rsuDy8ssrRqdObKHvaeGeoOc,43373
|
12
|
+
bittensor_cli/src/bittensor/utils.py,sha256=cvtej2aKix_EEU5FBeBCd3vIEZSt44R0dCidny7zyoA,33663
|
13
|
+
bittensor_cli/src/bittensor/extrinsics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
+
bittensor_cli/src/bittensor/extrinsics/registration.py,sha256=xrEdN_gbL6fFNh-tZRwgB-Xpb8fUer1nSd3Xr5f7x9g,59202
|
15
|
+
bittensor_cli/src/bittensor/extrinsics/root.py,sha256=RZEQv6QVDAQDjuX_vgjOMsatYvHpA3MW8zueiL6jxlE,19376
|
16
|
+
bittensor_cli/src/bittensor/extrinsics/transfer.py,sha256=ZqbUcaGVENFP0nviLj914lJXcQ_bHpUpyudPlrmSCzw,8830
|
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/root.py,sha256=MiNdEg2SCPYv4Q_8aSgGn_9Giotv-k5JEnwgjrDA09A,62753
|
20
|
+
bittensor_cli/src/commands/subnets.py,sha256=0tf3DhdCmvIQA_64gFTfhk9spOA9PHSn4NUsswjbY0U,33445
|
21
|
+
bittensor_cli/src/commands/sudo.py,sha256=lpmZBT2xoAcERQNjJN__6nBmFUNcbXFTdNvl3S_T5Cg,8310
|
22
|
+
bittensor_cli/src/commands/wallets.py,sha256=lHuChXL9n4esIktENZjffdVnNKaFQaBhtuIHvunqrvs,60286
|
23
|
+
bittensor_cli/src/commands/weights.py,sha256=UHakAMTNqRkg_fkiyebbZAT9T3UEf93MmdbFgPSbqUw,16520
|
24
|
+
bittensor_cli/src/commands/stake/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
+
bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=3FapotpWGbE_i6RELt0Sqlk5Bvao4Sd3tQibLS13nKQ,28667
|
26
|
+
bittensor_cli/src/commands/stake/stake.py,sha256=lGLMWdE3RVmYcr57pMwKljQI8vRX3WFRltmXWHdnKy8,56622
|
27
|
+
bittensor_cli-8.3.0.dist-info/METADATA,sha256=5SilMKuTyLT2Y6r_zi1Gh3kFJWSzWUQvidQQADezkfs,6788
|
28
|
+
bittensor_cli-8.3.0.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
29
|
+
bittensor_cli-8.3.0.dist-info/entry_points.txt,sha256=hBTLGLbVxmAKy69XSKaUZvjTCmyEzDGZKq4S8UOto8I,49
|
30
|
+
bittensor_cli-8.3.0.dist-info/top_level.txt,sha256=DvgvXpmTtI_Q1BbDZMlK90LFcGFCreN1daViEPV2iFw,14
|
31
|
+
bittensor_cli-8.3.0.dist-info/RECORD,,
|
@@ -1,31 +0,0 @@
|
|
1
|
-
bittensor_cli/__init__.py,sha256=WH9TS8uqnwvM-2dRi2r81kALhCvyKsT70HQvQkpUXIk,1217
|
2
|
-
bittensor_cli/cli.py,sha256=jHkl5uLraMOUggbhQLrHZI7yOeMXJ-mnu0TN4bdgZI4,168060
|
3
|
-
bittensor_cli/doc_generation_helper.py,sha256=GexqjEIKulWg84hpNBEchJ840oOgOi7DWpt447nsdNI,91
|
4
|
-
bittensor_cli/src/__init__.py,sha256=6LdZwIvoSr6UomZUH_wNFeo7cNPgxl_dZhtdC5asJgA,11746
|
5
|
-
bittensor_cli/src/bittensor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
bittensor_cli/src/bittensor/async_substrate_interface.py,sha256=oKsN1dx7awdgicGydXPJLbpqnYxwQkBSvdtDu6Pgkmw,102894
|
7
|
-
bittensor_cli/src/bittensor/balances.py,sha256=102mg1iiliLSLx-EocQseWGHiWzRqcBBM-MRoObOdKo,10075
|
8
|
-
bittensor_cli/src/bittensor/chain_data.py,sha256=IsHWjmhJbTvud2i3IM1sfmBHP82VxNHC1iFDAtlLgXc,26490
|
9
|
-
bittensor_cli/src/bittensor/minigraph.py,sha256=17AjEA75MO7ez_NekOJSaAz6ARjPt99QG_7E1RJ_u_k,8891
|
10
|
-
bittensor_cli/src/bittensor/networking.py,sha256=pZLMs8YXpZzDMLXWMBb_Bj6TVkm_q9khyY-lnbwVMuE,462
|
11
|
-
bittensor_cli/src/bittensor/subtensor_interface.py,sha256=65XS6Wy2GqM2v1PIhCZSxtYU_ANvN7svBDVZCTFVVjQ,43378
|
12
|
-
bittensor_cli/src/bittensor/utils.py,sha256=oBZpLnT_o8rMr333xErJHoaEo6wCA8p2vPVs_PuWIy8,33668
|
13
|
-
bittensor_cli/src/bittensor/extrinsics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
-
bittensor_cli/src/bittensor/extrinsics/registration.py,sha256=lUg26xkkx7KBC3UzNZl5bl3T9oKldfQ_cCxY5BxrPjQ,58736
|
15
|
-
bittensor_cli/src/bittensor/extrinsics/root.py,sha256=WTJ5BPVcwb-bO86C6osHsf38V9xGWjxwOrHetYCGT-Y,19208
|
16
|
-
bittensor_cli/src/bittensor/extrinsics/transfer.py,sha256=HcssjHhEob4k1wJPNPw5ZSkeCK5orifLJ3ib-yPMMqM,8302
|
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/root.py,sha256=pjpG8aoU7Nl2_luOmsBQrre68PyAs7ai_8RffTw99JM,62333
|
20
|
-
bittensor_cli/src/commands/subnets.py,sha256=r8ixt5XAhpkBgpRvpmMHYeDr0DcKVMKBBjpZk-qZg6w,33341
|
21
|
-
bittensor_cli/src/commands/sudo.py,sha256=uRimJ2EDrcanajrvtl_qMM16OOO3HuJvU_N50ePiPAY,8226
|
22
|
-
bittensor_cli/src/commands/wallets.py,sha256=SaukCL7FJ_jpHgrAAZywXUjqgF7qJ0qGqN4qqEC2iUM,60324
|
23
|
-
bittensor_cli/src/commands/weights.py,sha256=3BCqVB1-W6BG0U_iOtuUZmFOQ9QngsnXAkBLwCHjK0g,16440
|
24
|
-
bittensor_cli/src/commands/stake/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
-
bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=AlELV1ZiZbDuD8hkTpd5WhBs3P8zEF371vjZBgUkLfk,28610
|
26
|
-
bittensor_cli/src/commands/stake/stake.py,sha256=vql-9f7hlj8DLbFRLAXqEDlx2kxJ9DVo_VInRu2LK1I,56146
|
27
|
-
bittensor_cli-8.2.0.dist-info/METADATA,sha256=BxV3i4OcFYjcXYMivFJyyMXrqmx7EMSUrNwJayZyPxw,6788
|
28
|
-
bittensor_cli-8.2.0.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
29
|
-
bittensor_cli-8.2.0.dist-info/entry_points.txt,sha256=hBTLGLbVxmAKy69XSKaUZvjTCmyEzDGZKq4S8UOto8I,49
|
30
|
-
bittensor_cli-8.2.0.dist-info/top_level.txt,sha256=DvgvXpmTtI_Q1BbDZMlK90LFcGFCreN1daViEPV2iFw,14
|
31
|
-
bittensor_cli-8.2.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|