From 381f48aadcf5eba7dabd959bd6808e860171e3d5 Mon Sep 17 00:00:00 2001
From: vtexier <vit@free.fr>
Date: Thu, 20 Feb 2020 16:23:52 +0100
Subject: [PATCH] [fix] fix incomplete identity (empty blockstamp) appears as
 duplicate in identities search

---
 src/sakia/data/processors/identities.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/sakia/data/processors/identities.py b/src/sakia/data/processors/identities.py
index 4e32eae9..5967c4c8 100644
--- a/src/sakia/data/processors/identities.py
+++ b/src/sakia/data/processors/identities.py
@@ -106,6 +106,17 @@ class IdentitiesProcessor:
                                 signature=uid_data["self"],
                             )
                             if identity not in identities:
+                                # Search same identity with empty blockstamp (incomplete)
+                                same_with_empty_blockstamp = self._identities_repo.get_one(
+                                    currency=identity.currency,
+                                    uid=identity.uid,
+                                    pubkey=identity.pubkey,
+                                    blockstamp=BlockUID.empty()
+                                )
+                                # Same identity with empty blockstamp (incomplete) should not appears as duplicate
+                                # Beware that identities in block 0 have empty blockstamps !
+                                if same_with_empty_blockstamp in identities:
+                                    identities.remove(same_with_empty_blockstamp)
                                 identities.append(identity)
                 break
             except (errors.DuniterError, asyncio.TimeoutError, ClientError) as e:
-- 
GitLab