commit d6b4268fdeabd9c8c004e1a226a1ed2118375a00
parent 02c39a950f5f547ed9b294f81e3f064d4cd7f319
Author: ThomasV <thomasv@electrum.org>
Date: Thu, 18 Oct 2018 13:46:01 +0200
Qt gui: show messages about payment outcome
Diffstat:
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py
@@ -223,7 +223,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
interests = ['wallet_updated', 'network_updated', 'blockchain_updated',
'new_transaction', 'status',
'banner', 'verified', 'fee', 'fee_histogram', 'on_quotes',
- 'on_history', 'channel', 'channels', 'ln_status']
+ 'on_history', 'channel', 'channels', 'ln_status', 'ln_message']
# To avoid leaking references to "self" that prevent the
# window from being GC-ed when closed, callbacks should be
# methods of this class only, and specifically not be
@@ -360,7 +360,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
wallet, tx = args
if wallet == self.wallet:
self.tx_notification_queue.put(tx)
- elif event in ['status', 'banner', 'verified', 'fee', 'fee_histogram']:
+ elif event in ['status', 'banner', 'verified', 'fee', 'fee_histogram', 'ln_message']:
# Handle in GUI thread
self.network_signal.emit(event, args)
elif event == 'on_quotes':
@@ -395,6 +395,10 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
self.fee_slider.update()
self.require_fee_update = True
self.history_model.on_fee_histogram()
+ elif event == 'ln_message':
+ lnworker, message = args
+ if lnworker == self.wallet.lnworker:
+ self.show_message(message)
else:
self.logger.info(f"unexpected network_qt signal: {event} {args}")
diff --git a/electrum/lnbase.py b/electrum/lnbase.py
@@ -870,6 +870,7 @@ class Peer(PrintError):
self.send_commitment(chan) # htlc will be removed
await self.receive_revoke(chan)
self.lnworker.save_channel(chan)
+ self.network.trigger_callback('ln_message', self.lnworker, 'Payment failed')
async def _handle_error_code_from_failed_htlc(self, error_reason, route: List[RouteEdge], channel_id, htlc_id):
chan = self.channels[channel_id]
@@ -985,6 +986,7 @@ class Peer(PrintError):
self.send_commitment(chan) # htlc will be removed
await self.receive_revoke(chan)
self.lnworker.save_channel(chan)
+ self.network.trigger_callback('ln_message', self.lnworker, 'Payment sent')
# used in lightning-integration
self.payment_preimages[sha256(preimage)].put_nowait(preimage)
@@ -1018,6 +1020,7 @@ class Peer(PrintError):
chan.settle_htlc(preimage, htlc_id)
await self.update_channel(chan, "update_fulfill_htlc", channel_id=channel_id, id=htlc_id, payment_preimage=preimage)
self.lnworker.save_channel(chan)
+ self.network.trigger_callback('ln_message', self.lnworker, 'Payment received')
def on_revoke_and_ack(self, payload):
print("got revoke_and_ack")