diff --git a/electrum/commands.py b/electrum/commands.py index 00e18d8bb..59a559e26 100644 --- a/electrum/commands.py +++ b/electrum/commands.py @@ -166,11 +166,12 @@ def command(s): if 'wallet_path' in cmd.options and kwargs.get('wallet_path') is None: kwargs['wallet_path'] = daemon.config.get_wallet_path() if cmd.requires_wallet and kwargs.get('wallet') is None: - kwargs['wallet'] = daemon.config.get_wallet_path() + kwargs['wallet_path'] = daemon.config.get_wallet_path() if 'wallet' in cmd.options: - wallet = kwargs.get('wallet', None) - if isinstance(wallet, str): - wallet = daemon.get_wallet(wallet) + wallet_path = kwargs.pop('wallet_path', None) # unit tests may set wallet and not wallet_path + wallet = kwargs.get('wallet', None) # run_offline_command sets both + if wallet is None: + wallet = daemon.get_wallet(wallet_path) if wallet is None: raise UserFacingException('wallet not loaded') kwargs['wallet'] = wallet diff --git a/electrum/daemon.py b/electrum/daemon.py index f053e0a50..28e062bbb 100644 --- a/electrum/daemon.py +++ b/electrum/daemon.py @@ -367,10 +367,7 @@ class CommandsServer(AuthenticatedServer): wallet_path = config_options.get('wallet_path') if len(self.daemon._wallets) > 1 and wallet_path is None: raise UserFacingException("error: wallet not specified") - if 'wallet_path' in cmd.options: - kwargs['wallet_path'] = wallet_path - else: - kwargs['wallet'] = wallet_path + kwargs['wallet_path'] = wallet_path func = getattr(self.cmd_runner, cmd.name) # execute requested command now. note: cmd can raise, the caller (self.handle) will wrap it. result = await func(*args, **kwargs) diff --git a/tests/test_daemon.py b/tests/test_daemon.py index 26d697897..31e06a76d 100644 --- a/tests/test_daemon.py +++ b/tests/test_daemon.py @@ -215,11 +215,8 @@ class TestCommandsWithDaemon(DaemonTestCase): await cmds.load_wallet(wallet_path=wpath, password="123456") wallet = self.daemon.get_wallet(wpath) self.assertIsInstance(wallet, Abstract_Wallet) - - # when using the CLI/RPC to run commands, the "wallet" param is a path: self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver", - await cmds.getseed(wallet=wpath, password="123456")) - # in unit tests or custom code, the "wallet" param is often an Abstract_Wallet: + await cmds.getseed(wallet_path=wpath, password="123456")) self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver", await cmds.getseed(wallet=wallet, password="123456")) @@ -229,10 +226,7 @@ class TestCommandsWithDaemon(DaemonTestCase): await cmds.load_wallet(wallet_path=wpath, password=None) wallet = self.daemon.get_wallet(wpath) self.assertIsInstance(wallet, Abstract_Wallet) - - # when using the CLI/RPC to run commands, the "wallet" param is a path: self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver", - await cmds.getseed(wallet=wpath)) - # in unit tests or custom code, the "wallet" param is often an Abstract_Wallet: + await cmds.getseed(wallet_path=wpath)) self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver", await cmds.getseed(wallet=wallet))