URI: 
       tMerge pull request #2669 from neocogent/contacts-validate - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit f956363d889d49d65fc19dd560692487498aa2b5
   DIR parent 3d34fd9294ea5178002fe29e540c95a928223449
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Tue,  1 Aug 2017 15:07:51 +0200
       
       Merge pull request #2669 from neocogent/contacts-validate
       
       Validate and extract contacts on import
       Diffstat:
         M lib/contacts.py                     |      14 +++++++++++++-
       
       1 file changed, 13 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/lib/contacts.py b/lib/contacts.py
       t@@ -55,7 +55,7 @@ class Contacts(dict):
            def import_file(self, path):
                try:
                    with open(path, 'r') as f:
       -                d = json.loads(f.read())
       +                d = self._validate(json.loads(f.read()))
                except:
                    return
                self.update(d)
       t@@ -116,4 +116,16 @@ class Contacts(dict):
                    return regex.search(haystack).groups()[0]
                except AttributeError:
                    return None
       +            
       +    def _validate(self, data):
       +        for k,v in data.items():
       +            if k == 'contacts':
       +                return self._validate(v)
       +            if not bitcoin.is_address(k):
       +                data.pop(k)
       +            else:
       +                _type,_ = v
       +                if _type != 'address':
       +                    data.pop(k)
       +        return data