ThomasV 3 years ago
parent
commit
4fa192d9e7
  1. 2
      electrum/gui/qt/paytoedit.py
  2. 10
      electrum/gui/qt/send_tab.py
  3. 3
      electrum/invoices.py

2
electrum/gui/qt/paytoedit.py

@ -364,7 +364,7 @@ class PayToEdit(Logger, GenericInputHandler):
if is_max: if is_max:
amount = '!' amount = '!'
else: else:
amount = self.amount_edit.get_amount() or 0 amount = self.send_tab.get_amount()
self.outputs = [PartialTxOutput(scriptpubkey=self.payto_scriptpubkey, value=amount)] self.outputs = [PartialTxOutput(scriptpubkey=self.payto_scriptpubkey, value=amount)]
return self.outputs[:] return self.outputs[:]

10
electrum/gui/qt/send_tab.py

@ -497,7 +497,7 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
return return
invoice = Invoice.from_bech32(invoice_str) invoice = Invoice.from_bech32(invoice_str)
if invoice.amount_msat is None: if invoice.amount_msat is None:
amount_sat = self.amount_e.get_amount() amount_sat = self.get_amount()
if amount_sat: if amount_sat:
invoice.amount_msat = int(amount_sat * 1000) invoice.amount_msat = int(amount_sat * 1000)
if not self.wallet.has_lightning() and not invoice.can_be_paid_onchain(): if not self.wallet.has_lightning() and not invoice.can_be_paid_onchain():
@ -531,9 +531,13 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
self.invoice_list.update() self.invoice_list.update()
self.pending_invoice = None self.pending_invoice = None
def get_amount(self) -> int:
# must not be None
return self.amount_e.get_amount() or 0
def _lnurl_get_invoice(self) -> None: def _lnurl_get_invoice(self) -> None:
assert self._lnurl_data assert self._lnurl_data
amount = self.amount_e.get_amount() amount = self.get_amount()
if not (self._lnurl_data.min_sendable_sat <= amount <= self._lnurl_data.max_sendable_sat): if not (self._lnurl_data.min_sendable_sat <= amount <= self._lnurl_data.max_sendable_sat):
self.show_error(f'Amount must be between {self._lnurl_data.min_sendable_sat} and {self._lnurl_data.max_sendable_sat} sat.') self.show_error(f'Amount must be between {self._lnurl_data.min_sendable_sat} and {self._lnurl_data.max_sendable_sat} sat.')
return return
@ -542,7 +546,7 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
try: try:
invoice_data = await callback_lnurl( invoice_data = await callback_lnurl(
self._lnurl_data.callback_url, self._lnurl_data.callback_url,
params={'amount': self.amount_e.get_amount() * 1000}, params={'amount': self.get_amount() * 1000},
) )
except LNURLError as e: except LNURLError as e:
self.show_error_signal.emit(f"LNURL request encountered error: {e}") self.show_error_signal.emit(f"LNURL request encountered error: {e}")

3
electrum/invoices.py

@ -161,8 +161,7 @@ class BaseInvoice(StoredObject):
Returns an integer satoshi amount, or '!' or None. Returns an integer satoshi amount, or '!' or None.
Callers who need msat precision should call get_amount_msat() Callers who need msat precision should call get_amount_msat()
""" """
# return strictly positive value or None amount_msat = self.amount_msat
amount_msat = self.amount_msat or None
if amount_msat in [None, "!"]: if amount_msat in [None, "!"]:
return amount_msat return amount_msat
return int(amount_msat // 1000) return int(amount_msat // 1000)

Loading…
Cancel
Save