URI: 
       tlnpeer.htlc_switch: (bugfix) don't fulfill htlc until add is irrevocable - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 2b0f156ce84a991f76f5b00d9d8d708122071623
   DIR parent e8a2fa5596a496c172fe8a428651c04c51afd4f7
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Thu, 28 Jan 2021 20:03:30 +0100
       
       lnpeer.htlc_switch: (bugfix) don't fulfill htlc until add is irrevocable
       
       This makes the test added in prev commit pass.
       
       Diffstat:
         M electrum/lnchannel.py               |       1 +
         M electrum/lnpeer.py                  |       5 +----
       
       2 files changed, 2 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/electrum/lnchannel.py b/electrum/lnchannel.py
       t@@ -858,6 +858,7 @@ class Channel(AbstractChannel):
                    local_ctn = self.get_latest_ctn(LOCAL)
                    remote_ctn = self.get_latest_ctn(REMOTE)
                    if onion_packet:
       +                # TODO neither local_ctn nor remote_ctn are used anymore... no point storing them.
                        self.hm.log['unfulfilled_htlcs'][htlc.htlc_id] = local_ctn, remote_ctn, onion_packet.hex(), False
        
                self.logger.info("receive_htlc")
   DIR diff --git a/electrum/lnpeer.py b/electrum/lnpeer.py
       t@@ -1666,10 +1666,7 @@ class Peer(Logger):
                        done = set()
                        unfulfilled = chan.hm.log.get('unfulfilled_htlcs', {})
                        for htlc_id, (local_ctn, remote_ctn, onion_packet_hex, forwarding_info) in unfulfilled.items():
       -                    # FIXME this test is not sufficient:
       -                    if chan.get_oldest_unrevoked_ctn(LOCAL) <= local_ctn:
       -                        continue
       -                    if chan.get_oldest_unrevoked_ctn(REMOTE) <= remote_ctn:
       +                    if not chan.hm.is_add_htlc_irrevocably_committed_yet(htlc_proposer=REMOTE, htlc_id=htlc_id):
                                continue
                            chan.logger.info(f'found unfulfilled htlc: {htlc_id}')
                            htlc = chan.hm.get_htlc_by_id(REMOTE, htlc_id)