1
0

lightning GUI: use existing receive and send tabs with lightning invoices

This commit is contained in:
ThomasV
2018-05-31 12:38:02 +02:00
parent 7d2a6d83d5
commit 12d3877873
6 changed files with 144 additions and 88 deletions

View File

@@ -79,12 +79,19 @@ class RequestList(MyTreeView):
amount = req['amount']
message = req['memo']
self.parent.receive_address_e.setText(addr)
self.parent.receive_message_e.setText(message)
self.parent.receive_amount_e.setAmount(amount)
self.parent.expires_combo.hide()
self.parent.expires_label.show()
self.parent.expires_label.setText(expires)
self.parent.new_request_button.setEnabled(True)
#req = self.wallet.receive_requests.get(addr)
#if req is None:
# self.update()
# return
#expires = age(req['time'] + req['exp']) if req.get('exp') else _('Never')
#amount = req['amount']
#message = self.wallet.labels.get(addr, '')
#self.parent.receive_message_e.setText(message)
#self.parent.receive_amount_e.setAmount(amount)
#self.parent.expires_combo.hide()
#self.parent.expires_label.show()
#self.parent.expires_label.setText(expires)
#self.parent.new_request_button.setEnabled(True)
def update(self):
self.wallet = self.parent.wallet
@@ -98,7 +105,7 @@ class RequestList(MyTreeView):
self.parent.expires_combo.show()
# update the receive address if necessary
current_address = self.parent.receive_address_e.text()
#current_address = self.parent.receive_address_e.text()
domain = self.wallet.get_receiving_addresses()
try:
addr = self.wallet.get_unused_address()
@@ -126,7 +133,8 @@ class RequestList(MyTreeView):
signature = req.get('sig')
requestor = req.get('name', '')
amount_str = self.parent.format_amount(amount) if amount else ""
labels = [date, address, '', message, amount_str, pr_tooltips.get(status,'')]
URI = self.parent.get_request_URI(address)
labels = [date, URI, '', message, amount_str, pr_tooltips.get(status,'')]
items = [QStandardItem(e) for e in labels]
self.set_editability(items)
if signature is not None:
@@ -137,6 +145,22 @@ class RequestList(MyTreeView):
items[self.Columns.DESCRIPTION].setData(address, Qt.UserRole)
self.model().insertRow(self.model().rowCount(), items)
self.filter()
# lightning
for k, r in self.wallet.lnworker.invoices.items():
from electrum.lightning_payencode.lnaddr import lndecode
import electrum.constants as constants
lnaddr = lndecode(r, expected_hrp=constants.net.SEGWIT_HRP)
amount_str = self.parent.format_amount(lnaddr.amount*100000000)
for k,v in lnaddr.tags:
if k == 'd':
description = v
break
else:
description = ''
labels = [date, r, '', description, amount_str, '']
items = [QStandardItem(e) for e in labels]
items.setIcon(2, QIcon(":icons/lightning.png"))
self.model().insertRow(self.model().rowCount(), items)
def create_menu(self, position):
idx = self.indexAt(position)