diff --git a/src/cutecoin/core/registry/identities.py b/src/cutecoin/core/registry/identities.py index 64a928549d4b8f3106753f2b79fedecc956d1361..51a567961ddf5adcbc78cfbccc3db5f0f51e9fa7 100644 --- a/src/cutecoin/core/registry/identities.py +++ b/src/cutecoin/core/registry/identities.py @@ -83,7 +83,6 @@ class IdentitiesRegistry: identity.blockchain_state = BlockchainState.BUFFERED identity.local_state = LocalState.PARTIAL return identity - logging.debug("Lookup : found {0}".format(identity)) except ValueError as e: lookup_tries += 1 except asyncio.TimeoutError: diff --git a/src/cutecoin/core/registry/identity.py b/src/cutecoin/core/registry/identity.py index c77d3d9bde9ebd4c55851fa2517e98dfb97b4c00..2d1816114f962b05742e3048872f981b66d3d6ae 100644 --- a/src/cutecoin/core/registry/identity.py +++ b/src/cutecoin/core/registry/identity.py @@ -244,6 +244,7 @@ class Identity(QObject): :param cutecoin.core.registry.identities.IdentitiesRegistry identities_registry: The identities registry :param cutecoin.core.community.Community community: The community target to request the join date :return: The list of the certifiers of this community + :rtype: list """ certifiers = list() try: @@ -269,6 +270,7 @@ class Identity(QObject): data = yield from community.bma_access.future_request(bma.wot.Lookup, {'search': self.pubkey}) for result in data['results']: if result["pubkey"] == self.pubkey: + self._refresh_uid(result['uids']) for uid_data in result['uids']: for certifier_data in uid_data['others']: for uid in certifier_data['uids']: @@ -322,6 +324,7 @@ class Identity(QObject): :param cutecoin.core.community.Community community: The community target to request the join date :return: The list of the certified persons of this community in BMA json format + :rtype: list """ certified_list = list() try: @@ -345,6 +348,7 @@ class Identity(QObject): data = yield from community.bma_access.future_request(bma.wot.Lookup, {'search': self.pubkey}) for result in data['results']: if result["pubkey"] == self.pubkey: + self._refresh_uid(result['uids']) for certified_data in result['signed']: certified = {} certified['identity'] = identities_registry.from_handled_data(certified_data['uid'], @@ -394,6 +398,20 @@ class Identity(QObject): current_time = time.time() return expiration_date - current_time + def _refresh_uid(self, uids): + """ + Refresh UID from uids list, got from a successful lookup request + :param list uids: UIDs got from a lookup request + """ + if self.local_state == LocalState.NOT_FOUND: + for uid_data in uids: + if uid_data["meta"]["timestamp"] > timestamp: + timestamp = uid_data["meta"]["timestamp"] + identity_uid = uid_data["uid"] + self.uid = identity_uid + self.blockchain_state = BlockchainState.BUFFERED + self.local_state = LocalState.PARTIAL + def jsonify(self): """ Get the community as dict in json format.