Adds liquidity hints for the sending capabilities of routing channels in the
graph. The channel blacklist is incorporated into liquidity hints.
Liquidity hints are updated when a payment fails with a temporary
channel failure or when it succeeds. Liquidity hints are used to give a
penalty in the _edge_cost heuristics used by the pathfinding algorithm.
The base penalty in (_edge_cost) is removed because it is now part of the
liquidity penalty. We don't return early from get_distances, as we want
to explore all channels.
Note that clicking "x" to close the wizard or pressing ESC also raises
a UserCancelled:
raising ChooseHwDeviceAgain was not letting the wizard close.
E | gui.qt.installwizard.InstallWizard |
Traceback (most recent call last):
File "/home/user/wspace/electrum/electrum/base_wizard.py", line 371, in on_device
client = self.plugin.setup_device(device_info, self, purpose)
File "/home/user/wspace/electrum/electrum/plugins/trezor/trezor.py", line 305, in setup_device
self.initialize_device(device_id, wizard, client.handler)
File "/home/user/wspace/electrum/electrum/plugins/trezor/trezor.py", line 231, in initialize_device
wizard.choice_dialog(title=_('Initialize Device'), message=msg, choices=choices, run_next=f)
File "/home/user/wspace/electrum/electrum/gui/qt/installwizard.py", line 106, in func_wrapper
out = func(*args, **kwargs)
File "/home/user/wspace/electrum/electrum/gui/qt/installwizard.py", line 614, in choice_dialog
self.exec_layout(vbox, title)
File "/home/user/wspace/electrum/electrum/gui/qt/installwizard.py", line 434, in exec_layout
raise UserCancelled()
electrum.util.UserCancelled
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/user/wspace/electrum/electrum/base_wizard.py", line 277, in choose_hw_device
self._choose_hw_device(purpose=purpose, storage=storage)
File "/home/user/wspace/electrum/electrum/base_wizard.py", line 363, in _choose_hw_device
self.choice_dialog(title=title, message=msg, choices=choices,
File "/home/user/wspace/electrum/electrum/gui/qt/installwizard.py", line 120, in func_wrapper
run_next(*out)
File "/home/user/wspace/electrum/electrum/base_wizard.py", line 364, in <lambda>
run_next=lambda *args: self.on_device(*args, purpose=purpose, storage=storage))
File "/home/user/wspace/electrum/electrum/base_wizard.py", line 386, in on_device
raise ChooseHwDeviceAgain()
electrum.base_wizard.ChooseHwDeviceAgain
E | gui.qt.installwizard.InstallWizard | choose_hw_device(). while iter starts.
I | plugin.DeviceMgr | scanning devices...
If you force-show a widget (e.g. `w.setVisible(True)`) before parenting it,
a small window will flash (appear and disappear) for a fraction of second,
which is a bit irritating.
There is gui.stop() already, which does the same thing (which is shared API with kivy).
Also, the _cleanup_before_exit() call was redundant in close(),
aboutToQuit handles that.
related: https://github.com/spesmilo/electrum/issues/6889
This fixes the case where the user quits by pressing Ctrl+C,
and some other minor things.
There is still another issue that sometimes causes a segfault during shutdown...
see #7158
```
$ ./contrib/pull_locale
Found 260 files to translate
Generate template
electrum/gui/qt/installwizard.py:265: warning: Empty msgid. It is reserved by GNU gettext:
gettext("") returns the header entry with
meta information, not the empty string.
electrum/gui/qt/channels_list.py:49: warning: Empty msgid. It is reserved by GNU gettext:
gettext("") returns the header entry with
meta information, not the empty string.
```