kivy: save manually entered amount into lightning invoices, as in Qt (related: #7935)
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user