Browse Source

_calc_routing_hints_for_invoice: also incl chans < invoice amount

now that we can receive MPP
patch-4
SomberNight 4 years ago
parent
commit
6f894b9f88
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 5
      electrum/lnworker.py

5
electrum/lnworker.py

@ -1800,17 +1800,12 @@ class LNWallet(LNWorker):
random.shuffle(channels) # not sure this has any benefit but let's not leak channel order random.shuffle(channels) # not sure this has any benefit but let's not leak channel order
scid_to_my_channels = {chan.short_channel_id: chan for chan in channels scid_to_my_channels = {chan.short_channel_id: chan for chan in channels
if chan.short_channel_id is not None} if chan.short_channel_id is not None}
if not amount_msat:
# for no amt invoices, check if channel can receive at least 1 msat
amount_msat = 1
# note: currently we add *all* our channels; but this might be a privacy leak? # note: currently we add *all* our channels; but this might be a privacy leak?
for chan in channels: for chan in channels:
# do minimal filtering of channels. # do minimal filtering of channels.
# we include channels that cannot *right now* receive (e.g. peer disconnected or balance insufficient) # we include channels that cannot *right now* receive (e.g. peer disconnected or balance insufficient)
if not (chan.is_open() and not chan.is_frozen_for_receiving()): if not (chan.is_open() and not chan.is_frozen_for_receiving()):
continue continue
if amount_msat > 1000 * chan.constraints.capacity:
continue
chan_id = chan.short_channel_id chan_id = chan.short_channel_id
assert isinstance(chan_id, bytes), chan_id assert isinstance(chan_id, bytes), chan_id
channel_info = get_mychannel_info(chan_id, scid_to_my_channels) channel_info = get_mychannel_info(chan_id, scid_to_my_channels)

Loading…
Cancel
Save