tqt main_window: fix threading for run_coroutine_from_thread - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit a74552f3dd21317133cf4802aa255f80a636b870 (DIR) parent a98fd14f8d9b9c1d17fd6c25d58cc4b72a6fd8b4 (HTM) Author: SomberNight <somber.night@protonmail.com> Date: Thu, 18 Jun 2020 20:43:34 +0200 qt main_window: fix threading for run_coroutine_from_thread Diffstat: M electrum/gui/qt/main_window.py | 5 ++++- M electrum/submarine_swaps.py | 3 --- 2 files changed, 4 insertions(+), 4 deletions(-) --- (DIR) diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py t@@ -158,6 +158,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): alias_received_signal = pyqtSignal() computing_privkeys_signal = pyqtSignal() show_privkeys_signal = pyqtSignal() + show_error_signal = pyqtSignal(str) def __init__(self, gui_object: 'ElectrumGui', wallet: Abstract_Wallet): QMainWindow.__init__(self) t@@ -250,6 +251,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): self.payment_request_ok_signal.connect(self.payment_request_ok) self.payment_request_error_signal.connect(self.payment_request_error) + self.show_error_signal.connect(self.show_error) self.history_list.setFocus(True) # network callbacks t@@ -307,7 +309,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): if on_result: on_result(r) except Exception as e: - self.show_error(str(e)) + self.logger.exception("exception in coro scheduled via window.wallet") + self.show_error_signal.emit(str(e)) self.wallet.thread.add(task) def on_fx_history(self): (DIR) diff --git a/electrum/submarine_swaps.py b/electrum/submarine_swaps.py t@@ -183,7 +183,6 @@ class SwapManager(Logger): callback = lambda: self._claim_swap(swap) self.lnwatcher.add_callback(swap.lockup_address, callback) - @log_exceptions async def normal_swap(self, lightning_amount: int, expected_onchain_amount: int, password, *, tx: PartialTransaction = None) -> str: """send on-chain BTC, receive on Lightning""" t@@ -264,7 +263,6 @@ class SwapManager(Logger): await self.network.broadcast_transaction(tx) return tx.txid() - @log_exceptions async def reverse_swap(self, amount_sat: int, expected_amount: int) -> bool: """send on Lightning, receive on-chain""" privkey = os.urandom(32) t@@ -354,7 +352,6 @@ class SwapManager(Logger): success, log = await self.lnworker._pay(invoice, attempts=10) return success - @log_exceptions async def get_pairs(self) -> None: response = await self.network._send_http_on_proxy( 'get',