invoice.get_amount_sat: handle None in more places
I believe lightning requests created before https://github.com/spesmilo/electrum/pull/7730 can have an amount of None - ones created after have amount 0 instead. We could do a wallet db upgrade potentially. Regardless, the type hint is `get_amount_sat(self) -> Union[int, str, None]`, so None should be handled. (well, arguably "!" should be handled too...) ``` E | gui.qt.exception_window.Exception_Hook | exception caught by crash reporter Traceback (most recent call last): File "...\electrum\electrum\gui\qt\request_list.py", line 101, in item_changed self.parent.show_receive_request(req) File "...\electrum\electrum\gui\qt\main_window.py", line 1279, in show_receive_request URI = req.get_bip21_URI(lightning=bip21_lightning) File "...\electrum\electrum\invoices.py", line 164, in get_bip21_URI amount = int(self.get_amount_sat()) TypeError: int() argument must be a string, a bytes-like object or a real number, not 'NoneType' ``` ``` E | gui.qt.exception_window.Exception_Hook | exception caught by crash reporter Traceback (most recent call last): File "...\electrum\electrum\gui\qt\request_list.py", line 101, in item_changed self.parent.show_receive_request(req) File "...\electrum\electrum\gui\qt\main_window.py", line 1281, in show_receive_request can_receive_lightning = self.wallet.lnworker and req.get_amount_sat() <= self.wallet.lnworker.num_sats_can_receive() TypeError: '<=' not supported between instances of 'NoneType' and 'decimal.Decimal' ```
This commit is contained in:
@@ -419,7 +419,7 @@ class SwapManager(Logger):
|
||||
raise Exception("rswap check failed: locktime too close")
|
||||
# verify invoice preimage_hash
|
||||
lnaddr = self.lnworker._check_invoice(invoice)
|
||||
invoice_amount = lnaddr.get_amount_sat()
|
||||
invoice_amount = int(lnaddr.get_amount_sat())
|
||||
if lnaddr.paymenthash != preimage_hash:
|
||||
raise Exception("rswap check failed: inconsistent RHASH and invoice")
|
||||
# check that the lightning amount is what we requested
|
||||
|
||||
Reference in New Issue
Block a user