diff --git a/lib/plugins.py b/lib/plugins.py index 78787f11f..761820d64 100644 --- a/lib/plugins.py +++ b/lib/plugins.py @@ -70,7 +70,7 @@ def init_plugins(config, is_local, gui_name): def register_wallet_type(name, x): import wallet - x += (lambda storage: plugin_loader(config, name).constructor(storage),) + x += (lambda: plugin_loader(config, name),) wallet.wallet_types.append(x) descriptions = electrum_plugins.descriptions diff --git a/lib/wallet.py b/lib/wallet.py index f2110a7c1..3a4f9eccc 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -1927,7 +1927,10 @@ class Wallet(object): if wallet_type: for cat, t, name, loader in wallet_types: if t == wallet_type: - WalletClass = loader + if cat in ['hardware', 'twofactor']: + WalletClass = lambda storage: apply(loader().constructor, (storage,)) + else: + WalletClass = loader break else: if re.match('(\d+)of(\d+)', wallet_type):