Browse Source

kivy: save manually entered amount into lightning invoices, as in Qt (related: #7935)

master
ThomasV 4 years ago
parent
commit
a11dbb1a76
  1. 15
      electrum/gui/kivy/uix/screens.py

15
electrum/gui/kivy/uix/screens.py

@ -331,25 +331,30 @@ class SendScreen(CScreen, Logger):
self.app.show_error(_('Please enter an amount')) self.app.show_error(_('Please enter an amount'))
return return
if self.is_max: if self.is_max:
amount = '!' amount_sat = '!'
else: else:
try: try:
amount = self.app.get_amount(self.amount) amount_sat = self.app.get_amount(self.amount)
except: except:
self.app.show_error(_('Invalid amount') + ':\n' + self.amount) self.app.show_error(_('Invalid amount') + ':\n' + self.amount)
return return
message = self.message message = self.message
try: try:
if self.is_lightning: if self.is_lightning:
return Invoice.from_bech32(address) assert type(amount_sat) is int
else: # on-chain invoice = Invoice.from_bech32(address)
if invoice.amount_msat is None:
invoice.amount_msat = int(amount_sat * 1000)
return invoice
else:
# on-chain
if self.payment_request: if self.payment_request:
outputs = self.payment_request.get_outputs() outputs = self.payment_request.get_outputs()
else: else:
if not bitcoin.is_address(address): if not bitcoin.is_address(address):
self.app.show_error(_('Invalid Bitcoin Address') + ':\n' + address) self.app.show_error(_('Invalid Bitcoin Address') + ':\n' + address)
return return
outputs = [PartialTxOutput.from_address_and_value(address, amount)] outputs = [PartialTxOutput.from_address_and_value(address, amount_sat)]
return self.app.wallet.create_invoice( return self.app.wallet.create_invoice(
outputs=outputs, outputs=outputs,
message=message, message=message,

Loading…
Cancel
Save