Browse Source
lnworker.pay(): lightning-integration support
regtest_lnd
Janus
6 years ago
committed by
SomberNight
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
4 changed files with
7 additions and
3 deletions
-
electrum/commands.py
-
electrum/gui/qt/main_window.py
-
electrum/lnbase.py
-
electrum/lnworker.py
|
|
@ -779,7 +779,7 @@ class Commands: |
|
|
|
|
|
|
|
@command('wn') |
|
|
|
def lnpay(self, invoice): |
|
|
|
f = self.wallet.lnworker.pay(invoice) |
|
|
|
addr, peer, f = self.wallet.lnworker.pay(invoice) |
|
|
|
return f.result() |
|
|
|
|
|
|
|
@command('wn') |
|
|
|
|
|
@ -1683,7 +1683,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): |
|
|
|
failure_list = [] |
|
|
|
for i in range(LN_NUM_PAYMENT_ATTEMPTS): |
|
|
|
try: |
|
|
|
future = self.wallet.lnworker.pay(invoice, amount_sat=amount) |
|
|
|
addr, peer, future = self.wallet.lnworker.pay(invoice, amount_sat=amount) |
|
|
|
future.result() |
|
|
|
break |
|
|
|
except PaymentFailure as e: |
|
|
|
|
|
@ -289,6 +289,7 @@ class Peer(PrintError): |
|
|
|
self.commitment_signed = defaultdict(asyncio.Queue) |
|
|
|
self.announcement_signatures = defaultdict(asyncio.Queue) |
|
|
|
self.closing_signed = defaultdict(asyncio.Queue) |
|
|
|
self.payment_preimages = defaultdict(asyncio.Queue) |
|
|
|
self.localfeatures = (0x08 if request_initial_sync else 0) |
|
|
|
self.invoices = lnworker.invoices |
|
|
|
self.attempted_route = {} |
|
|
@ -959,6 +960,9 @@ class Peer(PrintError): |
|
|
|
await self.receive_revoke(chan) |
|
|
|
self.lnworker.save_channel(chan) |
|
|
|
|
|
|
|
# used in lightning-integration |
|
|
|
self.payment_preimages[sha256(preimage)].put_nowait(preimage) |
|
|
|
|
|
|
|
def on_update_fail_malformed_htlc(self, payload): |
|
|
|
self.on_error(payload) |
|
|
|
|
|
|
|
|
|
@ -227,7 +227,7 @@ class LNWorker(PrintError): |
|
|
|
else: |
|
|
|
raise Exception("ChannelDB returned path with short_channel_id {} that is not in channel list".format(bh2u(short_channel_id))) |
|
|
|
coro = peer.pay(path, chan, amount_msat, payment_hash, invoice_pubkey, addr.min_final_cltv_expiry) |
|
|
|
return asyncio.run_coroutine_threadsafe(coro, self.network.asyncio_loop) |
|
|
|
return addr, peer, asyncio.run_coroutine_threadsafe(coro, self.network.asyncio_loop) |
|
|
|
|
|
|
|
def add_invoice(self, amount_sat, message): |
|
|
|
payment_preimage = os.urandom(32) |
|
|
|