ttry fixing email plugin - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit eb39aa143b8112549a5f8156d8e3ee41034eac6a DIR parent 0b224ba685b7c4e0fb57f69a31f1f330119233a6 HTML Author: SomberNight <somber.night@protonmail.com> Date: Sat, 13 Jun 2020 19:12:22 +0200 ttry fixing email plugin Diffstat: M electrum/plugins/email_requests/qt… | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) --- DIR diff --git a/electrum/plugins/email_requests/qt.py b/electrum/plugins/email_requests/qt.py t@@ -180,21 +180,24 @@ class Plugin(BasePlugin): window = get_parent_main_window(menu) menu.addAction(_("Send via e-mail"), lambda: self.send(window, addr)) - def send(self, window: ElectrumWindow, addr): # FIXME this is broken + def send(self, window: ElectrumWindow, addr): from electrum import paymentrequest - r = window.wallet.receive_requests.get(addr) - message = r.get('memo', '') - if r.get('signature'): - pr = paymentrequest.serialize_request(r) + req = window.wallet.receive_requests.get(addr) + if not isinstance(req, OnchainInvoice): + window.show_error("Only on-chain requests are supported.") + return + message = req.message + if req.bip70: + payload = bytes.fromhex(req.bip70) else: - pr = paymentrequest.make_request(self.config, r) - if not pr: + pr = paymentrequest.make_request(self.config, req) + payload = pr.SerializeToString() + if not payload: return recipient, ok = QInputDialog.getText(window, 'Send request', 'Email invoice to:') if not ok: return recipient = str(recipient) - payload = pr.SerializeToString() self.logger.info(f'sending mail to {recipient}') try: # FIXME this runs in the GUI thread and blocks it...