Skip to content

Commit b82e935

Browse files
authored
Merge pull request #675 from opentensor/fix/thewhaleking/small-bug-fixes
Edge case bug fixes
2 parents 1d08eb8 + 332aca0 commit b82e935

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

bittensor_cli/cli.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,6 +1302,7 @@ def _run_command(self, cmd: Coroutine, exit_early: bool = True):
13021302

13031303
async def _run():
13041304
initiated = False
1305+
exception_occurred = False
13051306
try:
13061307
if self.subtensor:
13071308
await self.subtensor.substrate.initialize()
@@ -1311,6 +1312,7 @@ async def _run():
13111312
except (ConnectionRefusedError, ssl.SSLError, InvalidHandshake):
13121313
err_console.print(f"Unable to connect to the chain: {self.subtensor}")
13131314
verbose_console.print(traceback.format_exc())
1315+
exception_occurred = True
13141316
except (
13151317
ConnectionClosed,
13161318
SubstrateRequestException,
@@ -1322,22 +1324,25 @@ async def _run():
13221324
elif isinstance(e, RuntimeError):
13231325
pass # Temporarily to handle loop bound issues
13241326
verbose_console.print(traceback.format_exc())
1327+
exception_occurred = True
13251328
except Exception as e:
13261329
err_console.print(f"An unknown error has occurred: {e}")
13271330
verbose_console.print(traceback.format_exc())
1331+
exception_occurred = True
13281332
finally:
13291333
if initiated is False:
13301334
asyncio.create_task(cmd).cancel()
13311335
if (
13321336
exit_early is True
13331337
): # temporarily to handle multiple run commands in one session
1334-
try:
1335-
if self.subtensor:
1338+
if self.subtensor:
1339+
try:
13361340
await self.subtensor.substrate.close()
1341+
except Exception as e: # ensures we always exit cleanly
1342+
if not isinstance(e, (typer.Exit, RuntimeError)):
1343+
err_console.print(f"An unknown error has occurred: {e}")
1344+
if exception_occurred:
13371345
raise typer.Exit()
1338-
except Exception as e: # ensures we always exit cleanly
1339-
if not isinstance(e, (typer.Exit, RuntimeError)):
1340-
err_console.print(f"An unknown error has occurred: {e}")
13411346

13421347
return self.event_loop.run_until_complete(_run())
13431348

bittensor_cli/src/bittensor/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1496,7 +1496,7 @@ async def print_extrinsic_id(
14961496
Args:
14971497
extrinsic_receipt: AsyncExtrinsicReceipt object from a successful extrinsic submission.
14981498
"""
1499-
if extrinsic_receipt is None:
1499+
if extrinsic_receipt is None or not (await extrinsic_receipt.is_success):
15001500
return
15011501
substrate = extrinsic_receipt.substrate
15021502
ext_id = await extrinsic_receipt.get_extrinsic_identifier()

bittensor_cli/src/commands/stake/move.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,6 @@ async def move_stake(
566566
response = await subtensor.substrate.submit_extrinsic(
567567
extrinsic, wait_for_inclusion=True, wait_for_finalization=False
568568
)
569-
await print_extrinsic_id(response)
570569
ext_id = await response.get_extrinsic_identifier()
571570

572571
if not prompt:
@@ -580,6 +579,7 @@ async def move_stake(
580579
)
581580
return False, ""
582581
else:
582+
await print_extrinsic_id(response)
583583
console.print(
584584
":white_heavy_check_mark: [dark_sea_green3]Stake moved.[/dark_sea_green3]"
585585
)
@@ -755,7 +755,6 @@ async def transfer_stake(
755755
extrinsic, wait_for_inclusion=True, wait_for_finalization=False
756756
)
757757
ext_id = await response.get_extrinsic_identifier()
758-
await print_extrinsic_id(extrinsic)
759758

760759
if not prompt:
761760
console.print(":white_heavy_check_mark: [green]Sent[/green]")
@@ -767,7 +766,7 @@ async def transfer_stake(
767766
f"{format_error_message(await response.error_message)}"
768767
)
769768
return False, ""
770-
769+
await print_extrinsic_id(extrinsic)
771770
# Get and display new stake balances
772771
new_stake, new_dest_stake = await asyncio.gather(
773772
subtensor.get_stake(
@@ -933,7 +932,6 @@ async def swap_stake(
933932
wait_for_finalization=wait_for_finalization,
934933
)
935934
ext_id = await response.get_extrinsic_identifier()
936-
await print_extrinsic_id(response)
937935

938936
if not prompt:
939937
console.print(":white_heavy_check_mark: [green]Sent[/green]")
@@ -945,7 +943,7 @@ async def swap_stake(
945943
f"{format_error_message(await response.error_message)}"
946944
)
947945
return False, ""
948-
946+
await print_extrinsic_id(response)
949947
# Get and display new stake balances
950948
new_stake, new_dest_stake = await asyncio.gather(
951949
subtensor.get_stake(

0 commit comments

Comments
 (0)