Browse Source

payment_identifier: fix error path for bip70

master
Sander van Grieken 2 years ago
parent
commit
eeda06e751
  1. 16
      electrum/payment_identifier.py

16
electrum/payment_identifier.py

@ -4,7 +4,7 @@ import urllib
import re
from decimal import Decimal, InvalidOperation
from enum import IntEnum
from typing import NamedTuple, Optional, Callable, List, TYPE_CHECKING
from typing import NamedTuple, Optional, Callable, List, TYPE_CHECKING, Tuple
from . import bitcoin
from .contacts import AliasNotFoundException
@ -204,7 +204,7 @@ class FieldsForGUI(NamedTuple):
description: Optional[str]
validated: Optional[bool]
comment: Optional[int]
amount_range: Optional[tuple[int, int]]
amount_range: Optional[Tuple[int, int]]
class PaymentIdentifier(Logger):
@ -291,7 +291,7 @@ class PaymentIdentifier(Logger):
if self._type == PaymentIdentifierType.BIP21:
return bool(self.bip21.get('amount'))
elif self._type == PaymentIdentifierType.BIP70:
return True # TODO always given?
return not self.need_resolve() # always fixed after resolve?
elif self._type == PaymentIdentifierType.BOLT11:
lnaddr = lndecode(self.bolt11)
return bool(lnaddr.amount)
@ -442,9 +442,13 @@ class PaymentIdentifier(Logger):
self.set_state(PaymentIdentifierState.NOT_FOUND)
elif self.bip70:
from . import paymentrequest
data = await paymentrequest.get_payment_request(self.bip70)
self.bip70_data = data
self.set_state(PaymentIdentifierState.MERCHANT_NOTIFY)
pr = await paymentrequest.get_payment_request(self.bip70)
if not pr.error:
self.bip70_data = pr
self.set_state(PaymentIdentifierState.MERCHANT_NOTIFY)
else:
self.error = pr.error
self.set_state(PaymentIdentifierState.ERROR)
elif self.lnurl:
data = await request_lnurl(self.lnurl)
self.lnurl_data = data

Loading…
Cancel
Save