commit 5248613e9d7b8b8ec85a1cee897d1901d747f5b4
parent b491a30dd9f550ab2f335ae88889c910125d4559
Author: SomberNight <somber.night@protonmail.com>
Date: Fri, 21 Dec 2018 20:44:38 +0100
gui: prepend broadcast_transaction errors with explanatory message
Diffstat:
5 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py
@@ -937,8 +937,11 @@ class ElectrumWindow(App):
self.wallet.invoices.save()
self.update_tab('invoices')
else:
- msg = msg[:500] if msg else _('There was an error broadcasting the transaction.')
- self.show_error(msg)
+ display_msg = _('The server returned an error when broadcasting the transaction.')
+ if msg:
+ display_msg += '\n' + msg
+ display_msg = display_msg[:500]
+ self.show_error(display_msg)
if self.network and self.network.is_connected():
self.show_info(_('Sending'))
diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py
@@ -1690,7 +1690,10 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
self.invoice_list.update()
self.do_clear()
else:
- parent.show_error(msg)
+ display_msg = _('The server returned an error when broadcasting the transaction.')
+ if msg:
+ display_msg += '\n' + msg
+ parent.show_error(display_msg)
WaitingDialog(self, _('Broadcasting transaction...'),
broadcast_thread, broadcast_done, self.on_error)
diff --git a/electrum/gui/stdio.py b/electrum/gui/stdio.py
@@ -206,7 +206,9 @@ class ElectrumGui:
try:
self.network.run_from_another_thread(self.network.broadcast_transaction(tx))
except Exception as e:
- print(repr(e))
+ display_msg = _('The server returned an error when broadcasting the transaction.')
+ display_msg += '\n' + repr(e)
+ print(display_msg)
else:
print(_('Payment sent.'))
#self.do_clear()
diff --git a/electrum/gui/text.py b/electrum/gui/text.py
@@ -15,7 +15,7 @@ from electrum.storage import WalletStorage
from electrum.network import NetworkParameters
from electrum.interface import deserialize_server
-_ = lambda x:x
+_ = lambda x:x # i18n
class ElectrumGui:
@@ -370,7 +370,9 @@ class ElectrumGui:
try:
self.network.run_from_another_thread(self.network.broadcast_transaction(tx))
except Exception as e:
- self.show_message(repr(e))
+ display_msg = _('The server returned an error when broadcasting the transaction.')
+ display_msg += '\n' + repr(e)
+ self.show_message(display_msg)
else:
self.show_message(_('Payment sent.'))
self.do_clear()
diff --git a/electrum/network.py b/electrum/network.py
@@ -737,6 +737,7 @@ class Network(PrintError):
timeout = self.get_network_timeout_seconds(NetworkTimeout.Urgent)
out = await self.interface.session.send_request('blockchain.transaction.broadcast', [str(tx)], timeout=timeout)
if out != tx.txid():
+ # note: this is untrusted input from the server
raise Exception(out)
return out # txid