URI: 
       tmove feerate warning to lnpeer - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 2c617c3b00e961284f5851df34b77b961fc88abe
   DIR parent ee01ca352fb581d45855ab92992d0ea214c7083d
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Fri,  6 Mar 2020 18:14:00 +0100
       
       move feerate warning to lnpeer
       
       Diffstat:
         M electrum/lnpeer.py                  |      15 ++++++++++++---
         M electrum/lnworker.py                |       8 +-------
       
       2 files changed, 13 insertions(+), 10 deletions(-)
       ---
   DIR diff --git a/electrum/lnpeer.py b/electrum/lnpeer.py
       t@@ -1249,16 +1249,25 @@ class Peer(Logger):
                chan = self.channels[channel_id]
                chan.update_fee(feerate, False)
        
       -    async def bitcoin_fee_update(self, chan: Channel):
       +    async def maybe_update_fee(self, chan: Channel):
                """
                called when our fee estimates change
                """
                if not chan.can_send_ctx_updates():
                    return
       +        feerate_per_kw = self.lnworker.current_feerate_per_kw()
                if not chan.constraints.is_initiator:
       -            # TODO force close if initiator does not update_fee enough
       +            if constants.net is not constants.BitcoinRegtest:
       +                chan_feerate = chan.get_latest_feerate(LOCAL)
       +                ratio = chan_feerate / feerate_per_kw
       +                if ratio < 0.5:
       +                    # Note that we trust the Electrum server about fee rates
       +                    # Thus, automated force-closing might not be a good idea
       +                    # Maybe we should display something in the GUI instead
       +                    self.logger.warning(
       +                        f"({chan.get_id_for_log()}) feerate is {chan_feerate} sat/kw, "
       +                        f"current recommended feerate is {feerate_per_kw} sat/kw, consider force closing!")
                    return
       -        feerate_per_kw = self.lnworker.current_feerate_per_kw()
                chan_fee = chan.get_next_feerate(REMOTE)
                if feerate_per_kw < chan_fee / 2:
                    self.logger.info("FEES HAVE FALLEN")
   DIR diff --git a/electrum/lnworker.py b/electrum/lnworker.py
       t@@ -751,7 +751,7 @@ class LNWallet(LNWorker):
                    if peer is None:
                        self.logger.info("peer not found for {}".format(bh2u(chan.node_id)))
                        return
       -            await peer.bitcoin_fee_update(chan)
       +            await peer.maybe_update_fee(chan)
                    conf = self.lnwatcher.get_tx_height(chan.funding_outpoint.txid).conf
                    peer.on_network_update(chan, conf)
        
       t@@ -1362,12 +1362,6 @@ class LNWallet(LNWorker):
                    for chan in channels:
                        if chan.is_closed():
                            continue
       -                if constants.net is not constants.BitcoinRegtest:
       -                    chan_feerate = chan.get_latest_feerate(LOCAL)
       -                    ratio = chan_feerate / self.current_feerate_per_kw()
       -                    if ratio < 0.5:
       -                        self.logger.warning(f"fee level for channel {bh2u(chan.channel_id)} is {chan_feerate} sat/kiloweight, "
       -                                            f"current recommended feerate is {self.current_feerate_per_kw()} sat/kiloweight, consider force closing!")
                        # reestablish
                        if not chan.should_try_to_reestablish_peer():
                            continue