URI: 
       tfollow-up prev - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 0553ab7f3ff31326571a197aa9b2218f4bc97097
   DIR parent d2de8de356213585eccb5d4b963429f9a674ed65
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Wed,  5 Jun 2019 19:05:58 +0200
       
       follow-up prev
       
       PaymentRequest.error is really not intuitive.........
       
       Diffstat:
         M electrum/gui/qt/main_window.py      |       9 +++------
         M electrum/paymentrequest.py          |      11 +++++++----
       
       2 files changed, 10 insertions(+), 10 deletions(-)
       ---
   DIR diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py
       t@@ -37,6 +37,7 @@ import base64
        from functools import partial
        import queue
        import asyncio
       +from typing import Optional
        
        from PyQt5.QtGui import QPixmap, QKeySequence, QIcon, QCursor
        from PyQt5.QtCore import Qt, QRect, QStringListModel, QSize, pyqtSignal
       t@@ -71,6 +72,7 @@ from electrum.network import Network, TxBroadcastError, BestEffortRequestFailed
        from electrum.exchange_rate import FxThread
        from electrum.simple_config import SimpleConfig
        from electrum.logging import Logger
       +from electrum.paymentrequest import PR_PAID
        
        from .exception_window import Exception_Hook
        from .amountedit import AmountEdit, BTCAmountEdit, MyLineEdit, FeerateEdit
       t@@ -109,9 +111,6 @@ class StatusBarButton(QPushButton):
                    self.func()
        
        
       -from electrum.paymentrequest import PR_PAID
       -
       -
        class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
        
            payment_request_ok_signal = pyqtSignal()
       t@@ -141,7 +140,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
                self.tray = gui_object.tray
                self.app = gui_object.app
                self.cleaned_up = False
       -        self.payment_request = None
       +        self.payment_request = None  # type: Optional[paymentrequest.PaymentRequest]
                self.checking_accounts = False
                self.qr_window = None
                self.not_enough_funds = False
       t@@ -1604,8 +1603,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
                """
                pr = self.payment_request
                if pr:
       -            if pr.error:
       -                return True
                    if pr.has_expired():
                        self.show_error(_('Payment request has expired'))
                        return True
   DIR diff --git a/electrum/paymentrequest.py b/electrum/paymentrequest.py
       t@@ -27,6 +27,7 @@ import sys
        import time
        import traceback
        import json
       +from typing import Optional
        
        import certifi
        import urllib.parse
       t@@ -106,15 +107,15 @@ async def get_payment_request(url: str) -> 'PaymentRequest':
            else:
                data = None
                error = f"Unknown scheme for payment request. URL: {url}"
       -    pr = PaymentRequest(data, error)
       +    pr = PaymentRequest(data, error=error)
            return pr
        
        
        class PaymentRequest:
        
       -    def __init__(self, data, error=None):
       +    def __init__(self, data, *, error=None):
                self.raw = data
       -        self.error = error
       +        self.error = error  # FIXME overloaded and also used when 'verify' succeeds
                self.parse(data)
                self.requestor = None # known after verify
                self.tx = None
       t@@ -235,7 +236,9 @@ class PaymentRequest:
                    self.error = "unknown algo"
                    return False
        
       -    def has_expired(self):
       +    def has_expired(self) -> Optional[bool]:
       +        if not hasattr(self, 'details'):
       +            return None
                return self.details.expires and self.details.expires < int(time.time())
        
            def get_expiration_date(self):