diff --git a/bittensor_cli/cli.py b/bittensor_cli/cli.py index 53478d98e..7f5a52b7f 100755 --- a/bittensor_cli/cli.py +++ b/bittensor_cli/cli.py @@ -739,7 +739,7 @@ def __init__(self): def initialize_chain( self, - network: Optional[str] = None, + network: Optional[list[str]] = None, ) -> SubtensorInterface: """ Intelligently initializes a connection to the chain, depending on the supplied (or in config) values. Sets the @@ -750,7 +750,20 @@ def initialize_chain( """ if not self.subtensor: if network: - self.subtensor = SubtensorInterface(network) + for item in network: + if item.startswith("ws"): + network_ = item + break + else: + network_ = item + + not_selected_networks = [net for net in network if net != network_] + if not_selected_networks: + console.print( + f"Networks not selected: [dark_orange]{', '.join(not_selected_networks)}[/dark_orange]" + ) + + self.subtensor = SubtensorInterface(network_) elif self.config["network"]: self.subtensor = SubtensorInterface(self.config["network"]) console.print( @@ -1227,7 +1240,7 @@ def wallet_overview( "If left empty, all hotkeys, except those in the '--include-hotkeys', will be excluded.", ), netuids: str = Options.netuids, - network: str = Options.network, + network: Optional[list[str]] = Options.network, quiet: bool = Options.quiet, verbose: bool = Options.verbose, ): @@ -1354,7 +1367,7 @@ def wallet_transfer( wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey, - network: str = Options.network, + network: Optional[list[str]] = Options.network, prompt: bool = Options.prompt, quiet: bool = Options.quiet, verbose: bool = Options.verbose, @@ -1401,7 +1414,7 @@ def wallet_swap_hotkey( wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, destination_hotkey_name: Optional[str] = typer.Argument( None, help="Destination hotkey name." ), @@ -1463,7 +1476,7 @@ def wallet_inspect( wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey, - network: str = Options.network, + network: Optional[list[str]] = Options.network, netuids: str = Options.netuids, quiet: bool = Options.quiet, verbose: bool = Options.verbose, @@ -1529,7 +1542,7 @@ def wallet_faucet( wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, # TODO add the following to config processors: Optional[int] = typer.Option( defaults.pow_register.num_processes, @@ -1897,7 +1910,7 @@ def wallet_check_ck_swap( wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, quiet: bool = Options.quiet, verbose: bool = Options.verbose, ): @@ -1983,7 +1996,7 @@ def wallet_balance( "-a", help="Whether to display the balances for all the wallets.", ), - network: str = Options.network, + network: Optional[list[str]] = Options.network, quiet: bool = Options.quiet, verbose: bool = Options.verbose, ): @@ -2058,7 +2071,7 @@ def wallet_set_id( wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, display_name: str = typer.Option( "", "--display-name", @@ -2238,7 +2251,7 @@ def wallet_get_id( help="The coldkey or hotkey ss58 address to query.", prompt=True, ), - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, quiet: bool = Options.quiet, verbose: bool = Options.verbose, ): @@ -2317,7 +2330,7 @@ def wallet_sign( def root_list( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, quiet: bool = Options.quiet, verbose: bool = Options.verbose, ): @@ -2341,7 +2354,7 @@ def root_list( def root_set_weights( self, - network: str = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey, @@ -2418,7 +2431,7 @@ def root_set_weights( def root_get_weights( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, limit_min_col: Optional[int] = typer.Option( None, "--limit-min-col", @@ -2469,7 +2482,7 @@ def root_get_weights( def root_boost( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: str = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, @@ -2509,7 +2522,7 @@ def root_boost( def root_slash( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: str = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, @@ -2550,7 +2563,7 @@ def root_slash( def root_senate_vote( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, @@ -2600,7 +2613,7 @@ def root_senate_vote( def root_senate( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, quiet: bool = Options.quiet, verbose: bool = Options.verbose, ): @@ -2618,7 +2631,7 @@ def root_senate( def root_register( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, @@ -2653,7 +2666,7 @@ def root_register( def root_proposals( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, quiet: bool = Options.quiet, verbose: bool = Options.verbose, ): @@ -2671,7 +2684,7 @@ def root_proposals( def root_set_take( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, @@ -2741,7 +2754,7 @@ def root_delegate_stake( wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, prompt: bool = Options.prompt, quiet: bool = Options.quiet, verbose: bool = Options.verbose, @@ -2816,7 +2829,7 @@ def root_undelegate_stake( wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, prompt: bool = Options.prompt, quiet: bool = Options.quiet, verbose: bool = Options.verbose, @@ -2868,7 +2881,7 @@ def root_undelegate_stake( def root_my_delegates( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, @@ -2935,7 +2948,7 @@ def root_my_delegates( def root_list_delegates( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, quiet: bool = Options.quiet, verbose: bool = Options.verbose, ): @@ -3007,7 +3020,7 @@ def root_nominate( wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, prompt: bool = Options.prompt, quiet: bool = Options.quiet, verbose: bool = Options.verbose, @@ -3056,7 +3069,7 @@ def stake_show( "-a", help="When set, the command checks all the coldkey wallets of the user instead of just the specified wallet.", ), - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: Optional[str] = Options.wallet_name, wallet_hotkey: Optional[str] = Options.wallet_hotkey, wallet_path: Optional[str] = Options.wallet_path, @@ -3167,7 +3180,7 @@ def stake_add( wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey, - network: str = Options.network, + network: Optional[list[str]] = Options.network, prompt: bool = Options.prompt, quiet: bool = Options.quiet, verbose: bool = Options.verbose, @@ -3281,7 +3294,7 @@ def stake_add( def stake_remove( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey, @@ -3439,7 +3452,7 @@ def stake_get_children( wallet_name: Optional[str] = Options.wallet_name, wallet_hotkey: Optional[str] = Options.wallet_hotkey, wallet_path: Optional[str] = Options.wallet_path, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, netuid: Optional[int] = typer.Option( None, help="The netuid of the subnet (e.g. 2)", @@ -3500,7 +3513,7 @@ def stake_set_children( wallet_name: str = Options.wallet_name, wallet_hotkey: str = Options.wallet_hotkey, wallet_path: str = Options.wallet_path, - network: str = Options.network, + network: Optional[list[str]] = Options.network, netuid: Optional[int] = typer.Option( None, help="The netuid of the subnet, (e.g. 4)", @@ -3591,7 +3604,7 @@ def stake_revoke_children( wallet_name: Optional[str] = Options.wallet_name, wallet_hotkey: Optional[str] = Options.wallet_hotkey, wallet_path: Optional[str] = Options.wallet_path, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, netuid: Optional[int] = typer.Option( None, help="The netuid of the subnet, (e.g. 8)", @@ -3650,7 +3663,7 @@ def stake_childkey_take( wallet_name: Optional[str] = Options.wallet_name, wallet_hotkey: Optional[str] = Options.wallet_hotkey, wallet_path: Optional[str] = Options.wallet_path, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, hotkey: Optional[str] = None, netuid: Optional[int] = typer.Option( None, @@ -3724,7 +3737,7 @@ def stake_childkey_take( def sudo_set( self, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey, @@ -3789,7 +3802,7 @@ def sudo_set( def sudo_get( self, - network: str = Options.network, + network: Optional[list[str]] = Options.network, netuid: int = Options.netuid, quiet: bool = Options.quiet, verbose: bool = Options.verbose, @@ -3810,7 +3823,7 @@ def sudo_get( def subnets_list( self, - network: str = Options.network, + network: Optional[list[str]] = Options.network, reuse_last: bool = Options.reuse_last, html_output: bool = Options.html_output, quiet: bool = Options.quiet, @@ -3856,7 +3869,7 @@ def subnets_list( def subnets_lock_cost( self, - network: str = Options.network, + network: Optional[list[str]] = Options.network, quiet: bool = Options.quiet, verbose: bool = Options.verbose, ): @@ -3877,7 +3890,7 @@ def subnets_create( wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey, - network: str = Options.network, + network: Optional[list[str]] = Options.network, prompt: bool = Options.prompt, quiet: bool = Options.quiet, verbose: bool = Options.verbose, @@ -3906,7 +3919,7 @@ def subnets_pow_register( wallet_name: Optional[str] = Options.wallet_name, wallet_path: Optional[str] = Options.wallet_path, wallet_hotkey: Optional[str] = Options.wallet_hotkey, - network: Optional[str] = Options.network, + network: Optional[list[str]] = Options.network, netuid: int = Options.netuid, # TODO add the following to config processors: Optional[int] = typer.Option( @@ -3993,7 +4006,7 @@ def subnets_register( wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey, - network: str = Options.network, + network: Optional[list[str]] = Options.network, netuid: int = Options.netuid, prompt: bool = Options.prompt, quiet: bool = Options.quiet, @@ -4034,7 +4047,7 @@ def subnets_metagraph( help="The netuid of the subnet (e.g. 1). This option " "is ignored when used with `--reuse-last`.", ), - network: str = Options.network, + network: Optional[list[str]] = Options.network, reuse_last: bool = Options.reuse_last, html_output: bool = Options.html_output, quiet: bool = Options.quiet, @@ -4124,7 +4137,7 @@ def subnets_metagraph( def weights_reveal( self, - network: str = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey, @@ -4220,7 +4233,7 @@ def weights_reveal( def weights_commit( self, - network: str = Options.network, + network: Optional[list[str]] = Options.network, wallet_name: str = Options.wallet_name, wallet_path: str = Options.wallet_path, wallet_hotkey: str = Options.wallet_hotkey,