1
0

gui: prepend broadcast_transaction errors with explanatory message

This commit is contained in:
SomberNight
2018-12-21 20:44:38 +01:00
parent b491a30dd9
commit 5248613e9d
5 changed files with 17 additions and 6 deletions

View File

@@ -937,8 +937,11 @@ class ElectrumWindow(App):
self.wallet.invoices.save() self.wallet.invoices.save()
self.update_tab('invoices') self.update_tab('invoices')
else: else:
msg = msg[:500] if msg else _('There was an error broadcasting the transaction.') display_msg = _('The server returned an error when broadcasting the transaction.')
self.show_error(msg) if msg:
display_msg += '\n' + msg
display_msg = display_msg[:500]
self.show_error(display_msg)
if self.network and self.network.is_connected(): if self.network and self.network.is_connected():
self.show_info(_('Sending')) self.show_info(_('Sending'))

View File

@@ -1690,7 +1690,10 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
self.invoice_list.update() self.invoice_list.update()
self.do_clear() self.do_clear()
else: 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...'), WaitingDialog(self, _('Broadcasting transaction...'),
broadcast_thread, broadcast_done, self.on_error) broadcast_thread, broadcast_done, self.on_error)

View File

@@ -206,7 +206,9 @@ class ElectrumGui:
try: try:
self.network.run_from_another_thread(self.network.broadcast_transaction(tx)) self.network.run_from_another_thread(self.network.broadcast_transaction(tx))
except Exception as e: 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: else:
print(_('Payment sent.')) print(_('Payment sent.'))
#self.do_clear() #self.do_clear()

View File

@@ -15,7 +15,7 @@ from electrum.storage import WalletStorage
from electrum.network import NetworkParameters from electrum.network import NetworkParameters
from electrum.interface import deserialize_server from electrum.interface import deserialize_server
_ = lambda x:x _ = lambda x:x # i18n
class ElectrumGui: class ElectrumGui:
@@ -370,7 +370,9 @@ class ElectrumGui:
try: try:
self.network.run_from_another_thread(self.network.broadcast_transaction(tx)) self.network.run_from_another_thread(self.network.broadcast_transaction(tx))
except Exception as e: 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: else:
self.show_message(_('Payment sent.')) self.show_message(_('Payment sent.'))
self.do_clear() self.do_clear()

View File

@@ -737,6 +737,7 @@ class Network(PrintError):
timeout = self.get_network_timeout_seconds(NetworkTimeout.Urgent) timeout = self.get_network_timeout_seconds(NetworkTimeout.Urgent)
out = await self.interface.session.send_request('blockchain.transaction.broadcast', [str(tx)], timeout=timeout) out = await self.interface.session.send_request('blockchain.transaction.broadcast', [str(tx)], timeout=timeout)
if out != tx.txid(): if out != tx.txid():
# note: this is untrusted input from the server
raise Exception(out) raise Exception(out)
return out # txid return out # txid