bittensor-cli 8.4.2__py3-none-any.whl → 8.4.4__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 +24 -14
- bittensor_cli/src/bittensor/utils.py +29 -0
- bittensor_cli/src/commands/root.py +52 -17
- bittensor_cli/src/commands/stake/children_hotkeys.py +1 -5
- bittensor_cli/src/commands/wallets.py +13 -7
- {bittensor_cli-8.4.2.dist-info → bittensor_cli-8.4.4.dist-info}/METADATA +2 -2
- {bittensor_cli-8.4.2.dist-info → bittensor_cli-8.4.4.dist-info}/RECORD +11 -11
- {bittensor_cli-8.4.2.dist-info → bittensor_cli-8.4.4.dist-info}/WHEEL +0 -0
- {bittensor_cli-8.4.2.dist-info → bittensor_cli-8.4.4.dist-info}/entry_points.txt +0 -0
- {bittensor_cli-8.4.2.dist-info → bittensor_cli-8.4.4.dist-info}/top_level.txt +0 -0
bittensor_cli/__init__.py
CHANGED
bittensor_cli/cli.py
CHANGED
@@ -58,7 +58,7 @@ except ImportError:
|
|
58
58
|
pass
|
59
59
|
|
60
60
|
|
61
|
-
__version__ = "8.4.
|
61
|
+
__version__ = "8.4.4"
|
62
62
|
|
63
63
|
|
64
64
|
_core_version = re.match(r"^\d+\.\d+\.\d+", __version__).group(0)
|
@@ -132,15 +132,10 @@ class Options:
|
|
132
132
|
ss58_address = typer.Option(
|
133
133
|
None, "--ss58", "--ss58-address", help="The SS58 address of the coldkey."
|
134
134
|
)
|
135
|
-
|
135
|
+
overwrite = typer.Option(
|
136
136
|
False,
|
137
|
-
|
138
|
-
|
139
|
-
)
|
140
|
-
overwrite_hotkey = typer.Option(
|
141
|
-
False,
|
142
|
-
help="Overwrite the old hotkey with the newly generated hotkey.",
|
143
|
-
prompt=True,
|
137
|
+
"--overwrite/--no-overwrite",
|
138
|
+
help="Overwrite the existing wallet file with the new one.",
|
144
139
|
)
|
145
140
|
network = typer.Option(
|
146
141
|
None,
|
@@ -1725,6 +1720,7 @@ class CLIManager:
|
|
1725
1720
|
json: Optional[str] = Options.json,
|
1726
1721
|
json_password: Optional[str] = Options.json_password,
|
1727
1722
|
use_password: Optional[bool] = Options.use_password,
|
1723
|
+
overwrite: bool = Options.overwrite,
|
1728
1724
|
quiet: bool = Options.quiet,
|
1729
1725
|
verbose: bool = Options.verbose,
|
1730
1726
|
):
|
@@ -1770,6 +1766,7 @@ class CLIManager:
|
|
1770
1766
|
json,
|
1771
1767
|
json_password,
|
1772
1768
|
use_password,
|
1769
|
+
overwrite,
|
1773
1770
|
)
|
1774
1771
|
)
|
1775
1772
|
|
@@ -1780,6 +1777,7 @@ class CLIManager:
|
|
1780
1777
|
wallet_hotkey: Optional[str] = Options.wallet_hotkey,
|
1781
1778
|
public_key_hex: Optional[str] = Options.public_hex_key,
|
1782
1779
|
ss58_address: Optional[str] = Options.ss58_address,
|
1780
|
+
overwrite: bool = Options.overwrite,
|
1783
1781
|
quiet: bool = Options.quiet,
|
1784
1782
|
verbose: bool = Options.verbose,
|
1785
1783
|
):
|
@@ -1826,7 +1824,7 @@ class CLIManager:
|
|
1826
1824
|
rich.print("[red]Error: Invalid SS58 address or public key![/red]")
|
1827
1825
|
raise typer.Exit()
|
1828
1826
|
return self._run_command(
|
1829
|
-
wallets.regen_coldkey_pub(wallet, ss58_address, public_key_hex)
|
1827
|
+
wallets.regen_coldkey_pub(wallet, ss58_address, public_key_hex, overwrite)
|
1830
1828
|
)
|
1831
1829
|
|
1832
1830
|
def wallet_regen_hotkey(
|
@@ -1842,6 +1840,7 @@ class CLIManager:
|
|
1842
1840
|
False, # Overriden to False
|
1843
1841
|
help="Set to 'True' to protect the generated Bittensor key with a password.",
|
1844
1842
|
),
|
1843
|
+
overwrite: bool = Options.overwrite,
|
1845
1844
|
quiet: bool = Options.quiet,
|
1846
1845
|
verbose: bool = Options.verbose,
|
1847
1846
|
):
|
@@ -1880,6 +1879,7 @@ class CLIManager:
|
|
1880
1879
|
json,
|
1881
1880
|
json_password,
|
1882
1881
|
use_password,
|
1882
|
+
overwrite,
|
1883
1883
|
)
|
1884
1884
|
)
|
1885
1885
|
|
@@ -1898,6 +1898,7 @@ class CLIManager:
|
|
1898
1898
|
False, # Overriden to False
|
1899
1899
|
help="Set to 'True' to protect the generated Bittensor key with a password.",
|
1900
1900
|
),
|
1901
|
+
overwrite: bool = Options.overwrite,
|
1901
1902
|
quiet: bool = Options.quiet,
|
1902
1903
|
verbose: bool = Options.verbose,
|
1903
1904
|
):
|
@@ -1935,7 +1936,9 @@ class CLIManager:
|
|
1935
1936
|
validate=WV.WALLET,
|
1936
1937
|
)
|
1937
1938
|
n_words = get_n_words(n_words)
|
1938
|
-
return self._run_command(
|
1939
|
+
return self._run_command(
|
1940
|
+
wallets.new_hotkey(wallet, n_words, use_password, overwrite)
|
1941
|
+
)
|
1939
1942
|
|
1940
1943
|
def wallet_new_coldkey(
|
1941
1944
|
self,
|
@@ -1949,6 +1952,7 @@ class CLIManager:
|
|
1949
1952
|
help="The number of words used in the mnemonic. Options: [12, 15, 18, 21, 24]",
|
1950
1953
|
),
|
1951
1954
|
use_password: Optional[bool] = Options.use_password,
|
1955
|
+
overwrite: bool = Options.overwrite,
|
1952
1956
|
quiet: bool = Options.quiet,
|
1953
1957
|
verbose: bool = Options.verbose,
|
1954
1958
|
):
|
@@ -1985,7 +1989,9 @@ class CLIManager:
|
|
1985
1989
|
validate=WV.NONE,
|
1986
1990
|
)
|
1987
1991
|
n_words = get_n_words(n_words)
|
1988
|
-
return self._run_command(
|
1992
|
+
return self._run_command(
|
1993
|
+
wallets.new_coldkey(wallet, n_words, use_password, overwrite)
|
1994
|
+
)
|
1989
1995
|
|
1990
1996
|
def wallet_check_ck_swap(
|
1991
1997
|
self,
|
@@ -2019,6 +2025,7 @@ class CLIManager:
|
|
2019
2025
|
wallet_hotkey: Optional[str] = Options.wallet_hotkey,
|
2020
2026
|
n_words: Optional[int] = None,
|
2021
2027
|
use_password: bool = Options.use_password,
|
2028
|
+
overwrite: bool = Options.overwrite,
|
2022
2029
|
quiet: bool = Options.quiet,
|
2023
2030
|
verbose: bool = Options.verbose,
|
2024
2031
|
):
|
@@ -2064,6 +2071,7 @@ class CLIManager:
|
|
2064
2071
|
wallet,
|
2065
2072
|
n_words,
|
2066
2073
|
use_password,
|
2074
|
+
overwrite,
|
2067
2075
|
)
|
2068
2076
|
)
|
2069
2077
|
|
@@ -2345,8 +2353,8 @@ class CLIManager:
|
|
2345
2353
|
twitter_url,
|
2346
2354
|
info_,
|
2347
2355
|
validator_id,
|
2348
|
-
prompt,
|
2349
2356
|
subnet_netuid,
|
2357
|
+
prompt,
|
2350
2358
|
)
|
2351
2359
|
)
|
2352
2360
|
|
@@ -2790,7 +2798,9 @@ class CLIManager:
|
|
2790
2798
|
[green]$[/green] btcli root proposals
|
2791
2799
|
"""
|
2792
2800
|
self.verbosity_handler(quiet, verbose)
|
2793
|
-
return self._run_command(
|
2801
|
+
return self._run_command(
|
2802
|
+
root.proposals(self.initialize_chain(network), verbose)
|
2803
|
+
)
|
2794
2804
|
|
2795
2805
|
def root_set_take(
|
2796
2806
|
self,
|
@@ -1010,3 +1010,32 @@ def hex_to_bytes(hex_str: str) -> bytes:
|
|
1010
1010
|
else:
|
1011
1011
|
bytes_result = bytes.fromhex(hex_str)
|
1012
1012
|
return bytes_result
|
1013
|
+
|
1014
|
+
|
1015
|
+
def blocks_to_duration(blocks: int) -> str:
|
1016
|
+
"""Convert blocks to human readable duration string using two largest units.
|
1017
|
+
|
1018
|
+
Args:
|
1019
|
+
blocks (int): Number of blocks (12s per block)
|
1020
|
+
|
1021
|
+
Returns:
|
1022
|
+
str: Duration string like '2d 5h', '3h 45m', '2m 10s', or '0s'
|
1023
|
+
"""
|
1024
|
+
if blocks <= 0:
|
1025
|
+
return "0s"
|
1026
|
+
|
1027
|
+
seconds = blocks * 12
|
1028
|
+
intervals = [
|
1029
|
+
("d", 86400), # 60 * 60 * 24
|
1030
|
+
("h", 3600), # 60 * 60
|
1031
|
+
("m", 60),
|
1032
|
+
("s", 1),
|
1033
|
+
]
|
1034
|
+
results = []
|
1035
|
+
for unit, seconds_per_unit in intervals:
|
1036
|
+
unit_count = seconds // seconds_per_unit
|
1037
|
+
seconds %= seconds_per_unit
|
1038
|
+
if unit_count > 0:
|
1039
|
+
results.append(f"{unit_count}{unit}")
|
1040
|
+
# Return only the first two non-zero units
|
1041
|
+
return " ".join(results[:2]) or "0s"
|
@@ -42,6 +42,7 @@ from bittensor_cli.src.bittensor.utils import (
|
|
42
42
|
update_metadata_table,
|
43
43
|
group_subnets,
|
44
44
|
unlock_key,
|
45
|
+
blocks_to_duration,
|
45
46
|
)
|
46
47
|
|
47
48
|
if TYPE_CHECKING:
|
@@ -82,14 +83,22 @@ def format_call_data(call_data: dict) -> str:
|
|
82
83
|
call_info = call_details[0]
|
83
84
|
call_function, call_args = next(iter(call_info.items()))
|
84
85
|
|
85
|
-
#
|
86
|
-
formatted_args =
|
87
|
-
|
88
|
-
|
89
|
-
|
86
|
+
# Format arguments, handle nested/large payloads
|
87
|
+
formatted_args = []
|
88
|
+
for arg_name, arg_value in call_args.items():
|
89
|
+
if isinstance(arg_value, (tuple, list, dict)):
|
90
|
+
# For large nested, show abbreviated version
|
91
|
+
content_str = str(arg_value)
|
92
|
+
if len(content_str) > 20:
|
93
|
+
formatted_args.append(f"{arg_name}: ... [{len(content_str)}] ...")
|
94
|
+
else:
|
95
|
+
formatted_args.append(f"{arg_name}: {arg_value}")
|
96
|
+
else:
|
97
|
+
formatted_args.append(f"{arg_name}: {arg_value}")
|
90
98
|
|
91
99
|
# Format the final output string
|
92
|
-
|
100
|
+
args_str = ", ".join(formatted_args)
|
101
|
+
return f"{module}.{call_function}({args_str})"
|
93
102
|
|
94
103
|
|
95
104
|
async def _get_senate_members(
|
@@ -1210,24 +1219,30 @@ async def register(wallet: Wallet, subtensor: SubtensorInterface, prompt: bool):
|
|
1210
1219
|
)
|
1211
1220
|
|
1212
1221
|
|
1213
|
-
async def proposals(subtensor: SubtensorInterface):
|
1222
|
+
async def proposals(subtensor: SubtensorInterface, verbose: bool):
|
1214
1223
|
console.print(
|
1215
1224
|
":satellite: Syncing with chain: [white]{}[/white] ...".format(
|
1216
1225
|
subtensor.network
|
1217
1226
|
)
|
1218
1227
|
)
|
1219
|
-
print_verbose("Fetching senate members & proposals")
|
1220
1228
|
block_hash = await subtensor.substrate.get_chain_head()
|
1221
|
-
senate_members, all_proposals = await asyncio.gather(
|
1229
|
+
senate_members, all_proposals, current_block = await asyncio.gather(
|
1222
1230
|
_get_senate_members(subtensor, block_hash),
|
1223
1231
|
_get_proposals(subtensor, block_hash),
|
1232
|
+
subtensor.substrate.get_block_number(block_hash),
|
1224
1233
|
)
|
1225
1234
|
|
1226
|
-
print_verbose("Fetching member information from Chain")
|
1227
1235
|
registered_delegate_info: dict[
|
1228
1236
|
str, DelegatesDetails
|
1229
1237
|
] = await subtensor.get_delegate_identities()
|
1230
1238
|
|
1239
|
+
title = (
|
1240
|
+
f"[bold #4196D6]Bittensor Governance Proposals[/bold #4196D6]\n"
|
1241
|
+
f"[steel_blue3]Current Block:[/steel_blue3] {current_block}\t"
|
1242
|
+
f"[steel_blue3]Network:[/steel_blue3] {subtensor.network}\n\n"
|
1243
|
+
f"[steel_blue3]Active Proposals:[/steel_blue3] {len(all_proposals)}\t"
|
1244
|
+
f"[steel_blue3]Senate Size:[/steel_blue3] {len(senate_members)}\n"
|
1245
|
+
)
|
1231
1246
|
table = Table(
|
1232
1247
|
Column(
|
1233
1248
|
"[white]HASH",
|
@@ -1242,8 +1257,8 @@ async def proposals(subtensor: SubtensorInterface):
|
|
1242
1257
|
style="rgb(50,163,219)",
|
1243
1258
|
),
|
1244
1259
|
Column("[white]END", style="bright_cyan"),
|
1245
|
-
Column("[white]CALLDATA", style="dark_sea_green"),
|
1246
|
-
title=
|
1260
|
+
Column("[white]CALLDATA", style="dark_sea_green", width=30),
|
1261
|
+
title=title,
|
1247
1262
|
show_footer=True,
|
1248
1263
|
box=box.SIMPLE_HEAVY,
|
1249
1264
|
pad_edge=False,
|
@@ -1251,16 +1266,36 @@ async def proposals(subtensor: SubtensorInterface):
|
|
1251
1266
|
border_style="bright_black",
|
1252
1267
|
)
|
1253
1268
|
for hash_, (call_data, vote_data) in all_proposals.items():
|
1269
|
+
blocks_remaining = vote_data.end - current_block
|
1270
|
+
if blocks_remaining > 0:
|
1271
|
+
duration_str = blocks_to_duration(blocks_remaining)
|
1272
|
+
vote_end_cell = f"{vote_data.end} [dim](in {duration_str})[/dim]"
|
1273
|
+
else:
|
1274
|
+
vote_end_cell = f"{vote_data.end} [red](expired)[/red]"
|
1275
|
+
|
1276
|
+
ayes_threshold = (
|
1277
|
+
(len(vote_data.ayes) / vote_data.threshold * 100)
|
1278
|
+
if vote_data.threshold > 0
|
1279
|
+
else 0
|
1280
|
+
)
|
1281
|
+
nays_threshold = (
|
1282
|
+
(len(vote_data.nays) / vote_data.threshold * 100)
|
1283
|
+
if vote_data.threshold > 0
|
1284
|
+
else 0
|
1285
|
+
)
|
1254
1286
|
table.add_row(
|
1255
|
-
hash_,
|
1287
|
+
hash_ if verbose else f"{hash_[:4]}...{hash_[-4:]}",
|
1256
1288
|
str(vote_data.threshold),
|
1257
|
-
|
1258
|
-
|
1289
|
+
f"{len(vote_data.ayes)} ({ayes_threshold:.2f}%)",
|
1290
|
+
f"{len(vote_data.nays)} ({nays_threshold:.2f}%)",
|
1259
1291
|
display_votes(vote_data, registered_delegate_info),
|
1260
|
-
|
1292
|
+
vote_end_cell,
|
1261
1293
|
format_call_data(call_data),
|
1262
1294
|
)
|
1263
|
-
|
1295
|
+
console.print(table)
|
1296
|
+
console.print(
|
1297
|
+
"\n[dim]* Both Ayes and Nays percentages are calculated relative to the proposal's threshold.[/dim]"
|
1298
|
+
)
|
1264
1299
|
|
1265
1300
|
|
1266
1301
|
async def set_take(wallet: Wallet, subtensor: SubtensorInterface, take: float) -> bool:
|
@@ -299,11 +299,7 @@ async def get_children(
|
|
299
299
|
params=[hotkey],
|
300
300
|
reuse_block_hash=True,
|
301
301
|
)
|
302
|
-
stake = (
|
303
|
-
Balance.from_rao(_result)
|
304
|
-
if _result is not None
|
305
|
-
else Balance(0)
|
306
|
-
)
|
302
|
+
stake = Balance.from_rao(_result) if _result is not None else Balance(0)
|
307
303
|
if parent:
|
308
304
|
console.print(
|
309
305
|
f"\nYour Hotkey: [bright_magenta]{hotkey}[/bright_magenta] | Total Stake: [dark_orange]{stake}t[/dark_orange]\n",
|
@@ -69,6 +69,7 @@ async def regen_coldkey(
|
|
69
69
|
json_path: Optional[str] = None,
|
70
70
|
json_password: Optional[str] = "",
|
71
71
|
use_password: Optional[bool] = True,
|
72
|
+
overwrite: Optional[bool] = False,
|
72
73
|
):
|
73
74
|
"""Creates a new coldkey under this wallet"""
|
74
75
|
json_str: Optional[str] = None
|
@@ -83,7 +84,7 @@ async def regen_coldkey(
|
|
83
84
|
seed=seed,
|
84
85
|
json=(json_str, json_password) if all([json_str, json_password]) else None,
|
85
86
|
use_password=use_password,
|
86
|
-
overwrite=
|
87
|
+
overwrite=overwrite,
|
87
88
|
)
|
88
89
|
|
89
90
|
if isinstance(new_wallet, Wallet):
|
@@ -101,13 +102,14 @@ async def regen_coldkey_pub(
|
|
101
102
|
wallet: Wallet,
|
102
103
|
ss58_address: str,
|
103
104
|
public_key_hex: str,
|
105
|
+
overwrite: Optional[bool] = False,
|
104
106
|
):
|
105
107
|
"""Creates a new coldkeypub under this wallet."""
|
106
108
|
try:
|
107
109
|
new_coldkeypub = wallet.regenerate_coldkeypub(
|
108
110
|
ss58_address=ss58_address,
|
109
111
|
public_key=public_key_hex,
|
110
|
-
overwrite=
|
112
|
+
overwrite=overwrite,
|
111
113
|
)
|
112
114
|
if isinstance(new_coldkeypub, Wallet):
|
113
115
|
console.print(
|
@@ -125,6 +127,7 @@ async def regen_hotkey(
|
|
125
127
|
json_path: Optional[str],
|
126
128
|
json_password: Optional[str] = "",
|
127
129
|
use_password: Optional[bool] = False,
|
130
|
+
overwrite: Optional[bool] = False,
|
128
131
|
):
|
129
132
|
"""Creates a new hotkey under this wallet."""
|
130
133
|
json_str: Optional[str] = None
|
@@ -141,7 +144,7 @@ async def regen_hotkey(
|
|
141
144
|
seed=seed,
|
142
145
|
json=(json_str, json_password) if all([json_str, json_password]) else None,
|
143
146
|
use_password=use_password,
|
144
|
-
overwrite=
|
147
|
+
overwrite=overwrite,
|
145
148
|
)
|
146
149
|
if isinstance(new_hotkey, Wallet):
|
147
150
|
console.print(
|
@@ -158,13 +161,14 @@ async def new_hotkey(
|
|
158
161
|
wallet: Wallet,
|
159
162
|
n_words: int,
|
160
163
|
use_password: bool,
|
164
|
+
overwrite: Optional[bool] = False,
|
161
165
|
):
|
162
166
|
"""Creates a new hotkey under this wallet."""
|
163
167
|
try:
|
164
168
|
wallet.create_new_hotkey(
|
165
169
|
n_words=n_words,
|
166
170
|
use_password=use_password,
|
167
|
-
overwrite=
|
171
|
+
overwrite=overwrite,
|
168
172
|
)
|
169
173
|
except KeyFileError:
|
170
174
|
print_error("KeyFileError: File is not writable")
|
@@ -174,13 +178,14 @@ async def new_coldkey(
|
|
174
178
|
wallet: Wallet,
|
175
179
|
n_words: int,
|
176
180
|
use_password: bool,
|
181
|
+
overwrite: Optional[bool] = False,
|
177
182
|
):
|
178
183
|
"""Creates a new coldkey under this wallet."""
|
179
184
|
try:
|
180
185
|
wallet.create_new_coldkey(
|
181
186
|
n_words=n_words,
|
182
187
|
use_password=use_password,
|
183
|
-
overwrite=
|
188
|
+
overwrite=overwrite,
|
184
189
|
)
|
185
190
|
except KeyFileError:
|
186
191
|
print_error("KeyFileError: File is not writable")
|
@@ -190,13 +195,14 @@ async def wallet_create(
|
|
190
195
|
wallet: Wallet,
|
191
196
|
n_words: int = 12,
|
192
197
|
use_password: bool = True,
|
198
|
+
overwrite: Optional[bool] = False,
|
193
199
|
):
|
194
200
|
"""Creates a new wallet."""
|
195
201
|
try:
|
196
202
|
wallet.create_new_coldkey(
|
197
203
|
n_words=n_words,
|
198
204
|
use_password=use_password,
|
199
|
-
overwrite=
|
205
|
+
overwrite=overwrite,
|
200
206
|
)
|
201
207
|
except KeyFileError:
|
202
208
|
print_error("KeyFileError: File is not writable")
|
@@ -205,7 +211,7 @@ async def wallet_create(
|
|
205
211
|
wallet.create_new_hotkey(
|
206
212
|
n_words=n_words,
|
207
213
|
use_password=False,
|
208
|
-
overwrite=
|
214
|
+
overwrite=overwrite,
|
209
215
|
)
|
210
216
|
except KeyFileError:
|
211
217
|
print_error("KeyFileError: File is not writable")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: bittensor-cli
|
3
|
-
Version: 8.4.
|
3
|
+
Version: 8.4.4
|
4
4
|
Summary: Bittensor CLI
|
5
5
|
Home-page: https://github.com/opentensor/btcli
|
6
6
|
Author: bittensor.com
|
@@ -41,7 +41,7 @@ Requires-Dist: scalecodec==1.2.11
|
|
41
41
|
Requires-Dist: substrate-interface~=1.7.9
|
42
42
|
Requires-Dist: typer~=0.12
|
43
43
|
Requires-Dist: websockets>=14.1
|
44
|
-
Requires-Dist: bittensor-wallet>=
|
44
|
+
Requires-Dist: bittensor-wallet>=3.0.0
|
45
45
|
Requires-Dist: bt-decode==0.4.0
|
46
46
|
Provides-Extra: cuda
|
47
47
|
Requires-Dist: cubit>=1.1.0; extra == "cuda"
|
@@ -1,5 +1,5 @@
|
|
1
|
-
bittensor_cli/__init__.py,sha256=
|
2
|
-
bittensor_cli/cli.py,sha256=
|
1
|
+
bittensor_cli/__init__.py,sha256=Lv2RXak408x-iJTQ2h6fQrO4dHaSiy0KNbH9-uNj24k,1217
|
2
|
+
bittensor_cli/cli.py,sha256=3yQEQjMZKqfH4uhf747UWzL4EOHXdJT6AAXufTaMm_4,170451
|
3
3
|
bittensor_cli/doc_generation_helper.py,sha256=GexqjEIKulWg84hpNBEchJ840oOgOi7DWpt447nsdNI,91
|
4
4
|
bittensor_cli/src/__init__.py,sha256=LpTjd5p40H08K4IbyJCNdLJhEcb8NuWXOwl5kSNYwjI,12355
|
5
5
|
bittensor_cli/src/bittensor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -9,23 +9,23 @@ bittensor_cli/src/bittensor/chain_data.py,sha256=IsHWjmhJbTvud2i3IM1sfmBHP82VxNH
|
|
9
9
|
bittensor_cli/src/bittensor/minigraph.py,sha256=17AjEA75MO7ez_NekOJSaAz6ARjPt99QG_7E1RJ_u_k,8891
|
10
10
|
bittensor_cli/src/bittensor/networking.py,sha256=pZLMs8YXpZzDMLXWMBb_Bj6TVkm_q9khyY-lnbwVMuE,462
|
11
11
|
bittensor_cli/src/bittensor/subtensor_interface.py,sha256=JPlA39oHf1k3ltrgDKeiAnBqF51oJnn-s3EO5y1WbAY,42669
|
12
|
-
bittensor_cli/src/bittensor/utils.py,sha256=
|
12
|
+
bittensor_cli/src/bittensor/utils.py,sha256=WiQPe3cSmqQmrxrQ2IE1v2iw9-mNaia7pPunC8RB_PI,35482
|
13
13
|
bittensor_cli/src/bittensor/extrinsics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
14
|
bittensor_cli/src/bittensor/extrinsics/registration.py,sha256=Ieh8Wo9u7km0A_1FhEdKluozcFZB0VCs1sFEQc0faQA,58851
|
15
15
|
bittensor_cli/src/bittensor/extrinsics/root.py,sha256=hajvQOA3GyBsFKu7ifa69096dSP6NwBXmKm8HKLRVzs,19079
|
16
16
|
bittensor_cli/src/bittensor/extrinsics/transfer.py,sha256=I0XXmLI8rTxb4kUqws0J-PPcdg38TeV8AeyIVQT-TOU,8644
|
17
17
|
bittensor_cli/src/bittensor/templates/table.j2,sha256=P2EFiksnO1cQsB8zjK6hVJwUryHTsLslzRE0YtobAV8,10601
|
18
18
|
bittensor_cli/src/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
-
bittensor_cli/src/commands/root.py,sha256=
|
19
|
+
bittensor_cli/src/commands/root.py,sha256=SCniGHwKTHNH1hQgHcXiM34v07KdJjpeB9YCRBrL1tw,63780
|
20
20
|
bittensor_cli/src/commands/subnets.py,sha256=riR41_ajUVWlDoaTUQahPzZswtY2h72pMK0rNuPj2SM,33164
|
21
21
|
bittensor_cli/src/commands/sudo.py,sha256=bP9t0QpXmqHnscEvCFHgJ4a7vETyqG1Kuc2CIVQ5qus,8436
|
22
|
-
bittensor_cli/src/commands/wallets.py,sha256=
|
22
|
+
bittensor_cli/src/commands/wallets.py,sha256=V6Vcnt7Q3tFi02ugeIPIPF8BaraDwiIkHT3oZ-wfF7Q,60940
|
23
23
|
bittensor_cli/src/commands/weights.py,sha256=XHn0MLYUcEUtOkA_soIBJ5rqkpIliUVnyc4nzdPQslw,16276
|
24
24
|
bittensor_cli/src/commands/stake/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
-
bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=
|
25
|
+
bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=hu7ObsUkg6j6_1Bylqe3oBajV9gQmr6QlggXYTWwgjQ,28470
|
26
26
|
bittensor_cli/src/commands/stake/stake.py,sha256=7TyFtL5wnXvGvD-GckNrNTRdcu3RewAfx_JfEekugFU,56147
|
27
|
-
bittensor_cli-8.4.
|
28
|
-
bittensor_cli-8.4.
|
29
|
-
bittensor_cli-8.4.
|
30
|
-
bittensor_cli-8.4.
|
31
|
-
bittensor_cli-8.4.
|
27
|
+
bittensor_cli-8.4.4.dist-info/METADATA,sha256=0Fzbs6Yt2PKxuqo7T1qU3OFHRZVlsiEOx-cJZKpf9jY,6786
|
28
|
+
bittensor_cli-8.4.4.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
29
|
+
bittensor_cli-8.4.4.dist-info/entry_points.txt,sha256=hBTLGLbVxmAKy69XSKaUZvjTCmyEzDGZKq4S8UOto8I,49
|
30
|
+
bittensor_cli-8.4.4.dist-info/top_level.txt,sha256=DvgvXpmTtI_Q1BbDZMlK90LFcGFCreN1daViEPV2iFw,14
|
31
|
+
bittensor_cli-8.4.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|