follow-up b28b3994c7
E | gui.qt.exception_window.Exception_Hook | exception caught by crash reporter
Traceback (most recent call last):
File "...\electrum\electrum\gui\qt\main_window.py", line 670, in new_wallet
self.gui_object.start_new_window(full_path, None)
File "...\electrum\electrum\gui\qt\__init__.py", line 245, in wrapper
return func(self, *args, **kwargs)
File "...\electrum\electrum\gui\qt\__init__.py", line 269, in start_new_window
wallet = self._start_wizard_to_select_or_create_wallet(path)
File "...\electrum\electrum\gui\qt\__init__.py", line 311, in _start_wizard_to_select_or_create_wallet
wizard.run('new')
File "...\electrum\electrum\base_wizard.py", line 115, in run
f(*args, **kwargs)
File "...\electrum\electrum\base_wizard.py", line 153, in new
self.choice_dialog(title=title, message=message, choices=choices, run_next=self.on_wallet_type)
File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
run_next(*out)
File "...\electrum\electrum\base_wizard.py", line 193, in on_wallet_type
self.run(action)
File "...\electrum\electrum\base_wizard.py", line 115, in run
f(*args, **kwargs)
File "...\electrum\electrum\base_wizard.py", line 201, in choose_multisig
self.multisig_dialog(run_next=on_multisig)
File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
run_next(*out)
File "...\electrum\electrum\base_wizard.py", line 200, in on_multisig
self.run('choose_keystore')
File "...\electrum\electrum\base_wizard.py", line 115, in run
f(*args, **kwargs)
File "...\electrum\electrum\base_wizard.py", line 225, in choose_keystore
self.choice_dialog(title=title, message=message, choices=choices, run_next=self.run)
File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
run_next(*out)
File "...\electrum\electrum\base_wizard.py", line 115, in run
f(*args, **kwargs)
File "...\electrum\electrum\base_wizard.py", line 275, in choose_hw_device
self._choose_hw_device(purpose=purpose, storage=storage)
File "...\electrum\electrum\base_wizard.py", line 358, in _choose_hw_device
self.choice_dialog(title=title, message=msg, choices=choices,
File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
run_next(*out)
File "...\electrum\electrum\base_wizard.py", line 359, in <lambda>
run_next=lambda *args: self.on_device(*args, purpose=purpose, storage=storage))
File "...\electrum\electrum\base_wizard.py", line 394, in on_device
self.derivation_and_script_type_dialog(f)
File "...\electrum\electrum\base_wizard.py", line 441, in derivation_and_script_type_dialog
self.derivation_and_script_type_gui_specific_dialog(
File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
run_next(*out)
File "...\electrum\electrum\base_wizard.py", line 393, in f
self.run('on_hw_derivation', name, device_info, derivation, script_type)
File "...\electrum\electrum\base_wizard.py", line 115, in run
f(*args, **kwargs)
File "...\electrum\electrum\base_wizard.py", line 490, in on_hw_derivation
self.on_keystore(k)
File "...\electrum\electrum\base_wizard.py", line 592, in on_keystore
self.run('show_xpub_and_add_cosigners', xpub)
File "...\electrum\electrum\base_wizard.py", line 115, in run
f(*args, **kwargs)
File "...\electrum\electrum\base_wizard.py", line 686, in show_xpub_and_add_cosigners
self.show_xpub_dialog(xpub=xpub, run_next=lambda x: self.run('choose_keystore'))
File "...\electrum\electrum\gui\qt\installwizard.py", line 106, in func_wrapper
out = func(*args, **kwargs)
File "...\electrum\electrum\gui\qt\installwizard.py", line 700, in show_xpub_dialog
layout = SeedLayout(xpub, title=msg, icon=False, for_seed_words=False)
File "...\electrum\electrum\gui\qt\seed_dialog.py", line 108, in __init__
self.seed_e = ShowQRTextEdit(config=self.config)
AttributeError: 'SeedLayout' object has no attribute 'config'
Sometimes we want its "remember path" behaviour but it does not make sense to
parent the dialog from main window. When so, caller code no longer needs to
get a reference to a main window.
Also rm last usages of get_parent_main_window().
If a tx cannot be constructed due to current fee settings, try to
create one with zero miner fees instead and let user to change the
fee later.
fixes#6755
Introduces LNRater, which analyzes the Lightning Network graph for
potential nodes to connect to by taking into account channel capacities,
channel open times and fee policies. A score is constructed to assign a
scalar to each node, which is then used to perform a weighted random
sampling of the nodes.
Instead of single mpk_text widget for each ks and changing the contents
when switching, create an mpk_text widget for each ks and switch between those.
This allows putting the "show xpub on device" button inside mpk_text.
It is ugly that the 'channel' callback takes a wallet I guess,
but with channel backups in one wallet, and active channels in another,
it was causing problems... (when open simultaneously)