opentensor / bittensor

Internet-scale Neural Networks
https://www.bittensor.com/
MIT License
934 stars 323 forks source link

Bittensor CLI has a bug to check wallet #2402

Closed TeddLi closed 1 week ago

TeddLi commented 3 weeks ago

Describe the bug

When I use commend btcli wallet overview It has below error

_RemoteTraceback: 
"""
Traceback (most recent call last):
  File "/usr/lib/python3.10/concurrent/futures/process.py", line 246, in _process_worker
    r = call_item.fn(*call_item.args, **call_item.kwargs)
  File "/usr/lib/python3.10/concurrent/futures/process.py", line 205, in _process_chunk
    return [fn(*args) for args in chunk]
  File "/usr/lib/python3.10/concurrent/futures/process.py", line 205, in <listcomp>
    return [fn(*args) for args in chunk]
  File "/usr/local/lib/python3.10/dist-packages/bittensor_cli/src/commands/wallets.py", line 1157, in _partial_decode
    if decoded.startswith("0x"):
AttributeError: 'NoneType' object has no attribute 'startswith'
"""

The above exception was the direct cause of the following exception:

╭──────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────────────────────╮
│ /usr/local/lib/python3.10/dist-packages/bittensor_cli/cli.py:1380 in wallet_overview                                                                                                       │
│                                                                                                                                                                                            │
│   1377 │   │   │   │   "Hotkeys names must be a comma-separated list, e.g., `--exclude-hotkeys                                                                                             │
│   1378 │   │   │   )                                                                                                                                                                       │
│   1379 │   │                                                                                                                                                                               │
│ ❱ 1380 │   │   return self._run_command(                                                                                                                                                   │
│   1381 │   │   │   wallets.overview(                                                                                                                                                       │
│   1382 │   │   │   │   wallet,                                                                                                                                                             │
│   1383 │   │   │   │   self.initialize_chain(network),                                                                                                                                     │
│                                                                                                                                                                                            │
│ ╭───────────────────────────────────────── locals ─────────────────────────────────────────╮                                                                                               │
│ │     all_wallets = False                                                                  │                                                                                               │
│ │         ask_for = [<WalletOptions.NAME: 'name'>, <WalletOptions.PATH: 'path'>]           │                                                                                               │
│ │ exclude_hotkeys = ''                                                                     │                                                                                               │
│ │ include_hotkeys = ''                                                                     │                                                                                               │
│ │         netuids = None                                                                   │                                                                                               │
│ │         network = None                                                                   │                                                                                               │
│ │           quiet = False                                                                  │                                                                                               │
│ │            self = <bittensor_cli.cli.CLIManager object at 0x7f1f4f55b820>                │                                                                                               │
│ │         sort_by = None                                                                   │                                                                                               │
│ │      sort_order = None                                                                   │                                                                                               │
│ │        validate = <WalletValidationTypes.WALLET: 'wallet'>                               │                                                                                               │
│ │         verbose = False                                                                  │                                                                                               │
│ │          wallet = name: 'miner5', hotkey: 'default', path: '~//root/.bittensor/wallets/' │                                                                                               │
│ │   wallet_hotkey = None                                                                   │                                                                                               │
│ │     wallet_name = None                                                                   │                                                                                               │
│ │     wallet_path = None                                                                   │                                                                                               │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────╯                                                                                               │
│                                                                                                                                                                                            │
│ /usr/local/lib/python3.10/dist-packages/bittensor_cli/cli.py:849 in _run_command                                                                                                           │
│                                                                                                                                                                                            │
│    846 │   │   │   return asyncio.get_event_loop().run_until_complete(_run())                   ╭───────────────────────────────── locals ──────────────────────────────────╮              │
│    847 │   │   else:                                                                            │ _run = <function CLIManager._run_command.<locals>._run at 0x7f1ed13675b0> │              │
│    848 │   │   │   # For Python 3.10 or higher                                                  │  cmd = <coroutine object overview at 0x7f1ed13c4200>                      │              │
│ ❱  849 │   │   │   return asyncio.run(_run())                                                   │ self = <bittensor_cli.cli.CLIManager object at 0x7f1f4f55b820>            │              │
│    850 │                                                                                        ╰───────────────────────────────────────────────────────────────────────────╯              │
│    851 │   def main_callback(                                                                                                                                                              │
│    852 │   │   self,                                                                                                                                                                       │
│                                                                                                                                                                                            │
│ /usr/lib/python3.10/asyncio/runners.py:44 in run                                                                                                                                           │
│                                                                                                                                                                                            │
│   41 │   │   events.set_event_loop(loop)                                                      ╭────────────────────────────────────── locals ──────────────────────────────────────╮       │
│   42 │   │   if debug is not None:                                                            │ debug = None                                                                       │       │
│   43 │   │   │   loop.set_debug(debug)                                                        │  loop = <_UnixSelectorEventLoop running=False closed=True debug=False>             │       │
│ ❱ 44 │   │   return loop.run_until_complete(main)                                             │  main = <coroutine object CLIManager._run_command.<locals>._run at 0x7f1ed13c4350> │       │
│   45 │   finally:                                                                             ╰────────────────────────────────────────────────────────────────────────────────────╯       │
│   46 │   │   try:                                                                                                                                                                          │
│   47 │   │   │   _cancel_all_tasks(loop)                                                                                                                                                   │
│                                                                                                                                                                                            │
│ /usr/lib/python3.10/asyncio/base_events.py:649 in run_until_complete                                                                                                                       │
│                                                                                                                                                                                            │
│    646 │   │   if not future.done():                                                                                                                                                       │
│    647 │   │   │   raise RuntimeError('Event loop stopped before Future completed.')                                                                                                       │
│    648 │   │                                                                                                                                                                               │
│ ❱  649 │   │   return future.result()                                                                                                                                                      │
│    650 │                                                                                                                                                                                   │
│    651 │   def stop(self):                                                                                                                                                                 │
│    652 │   │   """Stop running the event loop.                                                                                                                                             │
│                                                                                                                                                                                            │
│ ╭──────────────────────────────────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │   future = <Task finished name='Task-1' coro=<CLIManager._run_command.<locals>._run() done, defined at /usr/local/lib/python3.10/dist-packages/bittensor_cli/cli.py:824>               │ │
│ │            exception=AttributeError("'NoneType' object has no attribute 'startswith'")>                                                                                                │ │
│ │ new_task = True                                                                                                                                                                        │ │
│ │     self = <_UnixSelectorEventLoop running=False closed=True debug=False>                                                                                                              │ │
│ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                                                                                                            │
│ /usr/local/lib/python3.10/dist-packages/bittensor_cli/cli.py:828 in _run                                                                                                                   │
│                                                                                                                                                                                            │
│    825 │   │   │   try:                                                                         ╭──────────────────────────── locals ────────────────────────────╮                         │
│    826 │   │   │   │   if self.subtensor:                                                       │  cmd = <coroutine object overview at 0x7f1ed13c4200>           │                         │
│    827 │   │   │   │   │   async with self.subtensor:                                           │ self = <bittensor_cli.cli.CLIManager object at 0x7f1f4f55b820> │                         │
│ ❱  828 │   │   │   │   │   │   result = await cmd                                               ╰────────────────────────────────────────────────────────────────╯                         │
│    829 │   │   │   │   else:                                                                                                                                                               │
│    830 │   │   │   │   │   result = await cmd                                                                                                                                              │
│    831 │   │   │   │   return result                                                                                                                                                       │
│                                                                                                                                                                                            │
│ /usr/local/lib/python3.10/dist-packages/bittensor_cli/src/commands/wallets.py:628 in overview                                                                                              │
│                                                                                                                                                                                            │
│    625 │   │   )                                                                                                                                                                           │
│    626 │   │                                                                                                                                                                               │
│    627 │   │   print_verbose("Pulling and processing neuron information for all keys", status)                                                                                             │
│ ❱  628 │   │   results = await _get_neurons_for_netuids(                                                                                                                                   │
│    629 │   │   │   subtensor, netuids, all_hotkey_addresses                                                                                                                                │
│    630 │   │   )                                                                                                                                                                           │
│    631 │   │   neurons = _process_neuron_results(results, neurons, netuids)                                                                                                                │
│                                                                                                                                                                                            │
│ ╭───────────────────────────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────────────────────────╮                      │
│ │                               _ = []

To Reproduce

btcli wallet overview

Expected behavior

It shows error when I try to check my wallet locally

Screenshots

image

Environment

Linux

Additional context

No response

thewhaleking commented 3 weeks ago

Can you give your bittensor-cli version?

btcli --version
thewhaleking commented 1 week ago

This was resolved