URI: 
       tfix: key must be unique (sql) - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 0acd0c23d32f43bb91c29cf7e8d1288d40d8cc74
   DIR parent d30307b29e83ec2b0b08940c511d3681c8d2d0f5
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Sat, 18 May 2019 13:15:42 +0200
       
       fix: key must be unique (sql)
       
       Diffstat:
         M electrum/lnrouter.py                |      14 ++++++++------
       
       1 file changed, 8 insertions(+), 6 deletions(-)
       ---
   DIR diff --git a/electrum/lnrouter.py b/electrum/lnrouter.py
       t@@ -373,7 +373,7 @@ class ChannelDB(SqlDB):
                orphaned = []      # no channel announcement for channel update
                expired = []       # update older than two weeks
                deprecated = []    # update older than database entry
       -        good = []          # good updates
       +        good = {}          # good updates
                to_delete = []     # database entries to delete
                # filter orphaned and expired first
                known = []
       t@@ -398,17 +398,19 @@ class ChannelDB(SqlDB):
                old_policies = self.get_policies_for_updates(known)
                for payload in known:
                    timestamp = int.from_bytes(payload['timestamp'], "big")
       -            start_node = payload['start_node'].hex()
       -            short_channel_id = payload['short_channel_id'].hex()
       -            old_policy = old_policies.get(short_channel_id+start_node)
       +            start_node = payload['start_node']
       +            short_channel_id = payload['short_channel_id']
       +            key = (short_channel_id+start_node).hex()
       +            old_policy = old_policies.get(key)
                    if old_policy:
                        if timestamp <= old_policy.timestamp:
                            deprecated.append(short_channel_id)
                        else:
       -                    good.append(payload)
       +                    good[key] = payload
                            to_delete.append(old_policy)
                    else:
       -                good.append(payload)
       +                good[key] = payload
       +        good = list(good.values())
                return orphaned, expired, deprecated, good, to_delete
        
            def add_channel_update(self, payload):