Browse Source

lnworker: fix path_finder access

patch-4
bitromortac 4 years ago
parent
commit
4cb0b99996
No known key found for this signature in database GPG Key ID: 1965063FC13BEBE2
  1. 2
      electrum/commands.py
  2. 6
      electrum/lnworker.py
  3. 2
      electrum/network.py

2
electrum/commands.py

@ -1092,10 +1092,12 @@ class Commands:
@command('n')
async def clear_ln_blacklist(self):
if self.network.path_finder:
self.network.path_finder.liquidity_hints.clear_blacklist()
@command('n')
async def reset_liquidity_hints(self):
if self.network.path_finder:
self.network.path_finder.liquidity_hints.reset_liquidity_hints()
@command('w')

6
electrum/lnworker.py

@ -1214,6 +1214,7 @@ class LNWallet(LNWorker):
# even in the case of success, we report channels of the
# route as being able to send the same amount in the future,
# as we assume to not know the capacity
if self.network.path_finder:
self.network.path_finder.update_liquidity_hints(htlc_log.route, htlc_log.amount_msat)
return
# htlc failed
@ -1309,8 +1310,6 @@ class LNWallet(LNWorker):
raise PaymentFailure(failure_msg.code_name())
try:
fallback_channel = route[sender_idx + 1].short_channel_id
node_from = route[sender_idx].start_node
node_to = route[sender_idx].end_node
except IndexError:
raise PaymentFailure(f'payment destination reported error: {failure_msg.code_name()}') from None
@ -1325,7 +1324,7 @@ class LNWallet(LNWorker):
if payload is None:
self.logger.info(f'could not decode channel_update for failed htlc: '
f'{channel_update_as_received.hex()}')
self.network.path_finder.channel_blacklist.add(fallback_channel)
self.network.path_finder.liquidity_hints.add_to_blacklist(fallback_channel)
else:
# apply the channel update or get blacklisted
blacklist, update = self._handle_chanupd_from_failed_htlc(
@ -1345,7 +1344,6 @@ class LNWallet(LNWorker):
# if we can't decide on some action, we are stuck
if not (blacklist or update):
raise PaymentFailure(failure_msg.code_name())
# for errors that do not include a channel update
else:
self.network.path_finder.liquidity_hints.add_to_blacklist(fallback_channel)

2
electrum/network.py

@ -65,6 +65,7 @@ from .logging import get_logger, Logger
if TYPE_CHECKING:
from .channel_db import ChannelDB
from .lnrouter import LNPathFinder
from .lnworker import LNGossip
from .lnwatcher import WatchTower
from .daemon import Daemon
@ -256,6 +257,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]):
channel_db: Optional['ChannelDB'] = None
lngossip: Optional['LNGossip'] = None
local_watchtower: Optional['WatchTower'] = None
path_finder: Optional['LNPathFinder'] = None
def __init__(self, config: SimpleConfig, *, daemon: 'Daemon' = None):
global _INSTANCE

Loading…
Cancel
Save