cleanup, follow-up f28a2aae73
This commit is contained in:
@@ -580,11 +580,9 @@ class LNWallet(LNWorker):
|
||||
for channel_id, c in random_shuffled_copy(channels.items()):
|
||||
self._channels[bfh(channel_id)] = Channel(c, sweep_address=self.sweep_address, lnworker=self)
|
||||
|
||||
self.pending_payments = defaultdict(asyncio.Future) # type: Dict[bytes, asyncio.Future[HtlcLog]]
|
||||
self.pending_sent_htlcs = defaultdict(asyncio.Queue) # type: Dict[bytes, asyncio.Future[HtlcLog]]
|
||||
|
||||
self.pending_htlcs = defaultdict(set) # type: Dict[bytes, set]
|
||||
self.htlc_routes = defaultdict(list)
|
||||
self.sent_htlcs = defaultdict(asyncio.Queue) # type: Dict[bytes, asyncio.Queue[HtlcLog]]
|
||||
self.received_htlcs = defaultdict(set) # type: Dict[bytes, set]
|
||||
self.htlc_routes = dict()
|
||||
|
||||
self.swap_manager = SwapManager(wallet=self.wallet, lnworker=self)
|
||||
# detect inflight payments
|
||||
@@ -955,19 +953,18 @@ class LNWallet(LNWorker):
|
||||
lnaddr = self._check_invoice(invoice, amount_msat=amount_msat)
|
||||
payment_hash = lnaddr.paymenthash
|
||||
key = payment_hash.hex()
|
||||
amount_msat = lnaddr.get_amount_msat()
|
||||
amount_to_pay = lnaddr.get_amount_msat()
|
||||
status = self.get_payment_status(payment_hash)
|
||||
if status == PR_PAID:
|
||||
raise PaymentFailure(_("This invoice has been paid already"))
|
||||
if status == PR_INFLIGHT:
|
||||
raise PaymentFailure(_("A payment was already initiated for this invoice"))
|
||||
info = PaymentInfo(payment_hash, amount_msat, SENT, PR_UNPAID)
|
||||
info = PaymentInfo(payment_hash, amount_to_pay, SENT, PR_UNPAID)
|
||||
self.save_payment_info(info)
|
||||
self.wallet.set_label(key, lnaddr.get_description())
|
||||
self.logs[key] = log = []
|
||||
success = False
|
||||
reason = ''
|
||||
amount_to_pay = lnaddr.get_amount_msat()
|
||||
amount_inflight = 0 # what we sent in htlcs
|
||||
|
||||
self.set_invoice_status(key, PR_INFLIGHT)
|
||||
@@ -990,7 +987,7 @@ class LNWallet(LNWorker):
|
||||
amount_inflight += amount_msat
|
||||
util.trigger_callback('invoice_status', self.wallet, key)
|
||||
# 3. await a queue
|
||||
htlc_log = await self.pending_sent_htlcs[payment_hash].get()
|
||||
htlc_log = await self.sent_htlcs[payment_hash].get()
|
||||
amount_inflight -= htlc_log.amount_msat
|
||||
log.append(htlc_log)
|
||||
if htlc_log.success:
|
||||
@@ -1318,7 +1315,7 @@ class LNWallet(LNWorker):
|
||||
status = self.get_payment_status(htlc.payment_hash)
|
||||
if status == PR_PAID:
|
||||
return True, None
|
||||
s = self.pending_htlcs[htlc.payment_hash]
|
||||
s = self.received_htlcs[htlc.payment_hash]
|
||||
if (short_channel_id, htlc) not in s:
|
||||
s.add((short_channel_id, htlc))
|
||||
total = sum([htlc.amount_msat for scid, htlc in s])
|
||||
@@ -1370,7 +1367,7 @@ class LNWallet(LNWorker):
|
||||
success=True,
|
||||
route=route,
|
||||
amount_msat=amount_msat)
|
||||
q = self.pending_sent_htlcs[payment_hash]
|
||||
q = self.sent_htlcs[payment_hash]
|
||||
q.put_nowait(htlc_log)
|
||||
util.trigger_callback('htlc_fulfilled', payment_hash, chan.channel_id)
|
||||
|
||||
@@ -1405,7 +1402,7 @@ class LNWallet(LNWorker):
|
||||
failure_msg=failure_message,
|
||||
sender_idx=sender_idx)
|
||||
|
||||
q = self.pending_sent_htlcs[payment_hash]
|
||||
q = self.sent_htlcs[payment_hash]
|
||||
q.put_nowait(htlc_log)
|
||||
util.trigger_callback('htlc_failed', payment_hash, chan.channel_id)
|
||||
|
||||
|
||||
@@ -132,8 +132,8 @@ class MockLNWallet(Logger, NetworkRetryManager[LNPeerAddr]):
|
||||
# used in tests
|
||||
self.enable_htlc_settle = asyncio.Event()
|
||||
self.enable_htlc_settle.set()
|
||||
self.pending_htlcs = defaultdict(set)
|
||||
self.pending_sent_htlcs = defaultdict(asyncio.Queue)
|
||||
self.received_htlcs = defaultdict(set)
|
||||
self.sent_htlcs = defaultdict(asyncio.Queue)
|
||||
self.htlc_routes = defaultdict(list)
|
||||
|
||||
def get_invoice_status(self, key):
|
||||
@@ -518,9 +518,9 @@ class TestPeer(ElectrumTestCase):
|
||||
p1.maybe_send_commitment(alice_channel)
|
||||
p2.maybe_send_commitment(bob_channel)
|
||||
|
||||
htlc_log1 = await w1.pending_sent_htlcs[lnaddr2.paymenthash].get()
|
||||
htlc_log1 = await w1.sent_htlcs[lnaddr2.paymenthash].get()
|
||||
assert htlc_log1.success
|
||||
htlc_log2 = await w2.pending_sent_htlcs[lnaddr1.paymenthash].get()
|
||||
htlc_log2 = await w2.sent_htlcs[lnaddr1.paymenthash].get()
|
||||
assert htlc_log2.success
|
||||
raise PaymentDone()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user