diff --git a/src/cutecoin/core/registry/identities.py b/src/cutecoin/core/registry/identities.py index ba8857acd5c1c11a2f4b822eac68ea1e5cc8d316..409c498359c597a8afba8a88658bbe71cbd56551 100644 --- a/src/cutecoin/core/registry/identities.py +++ b/src/cutecoin/core/registry/identities.py @@ -49,7 +49,7 @@ class IdentitiesRegistry: def lookup(): nonlocal identity lookup_tries = 0 - while lookup_tries < 3: + while lookup_tries < 3 and identity.local_state == LocalState.NOT_FOUND: try: data = yield from community.bma_access.simple_request(bma.wot.Lookup, req_args={'search': pubkey}) @@ -81,13 +81,12 @@ class IdentitiesRegistry: identity = Identity.empty(pubkey) self._instances[pubkey] = identity tries = 0 - while tries < 3: + while tries < 3 and identity.local_state == LocalState.NOT_FOUND: try: data = yield from community.bma_access.simple_request(bma.wot.CertifiersOf, req_args={'search': pubkey}) identity.uid = data['uid'] identity.local_state = LocalState.PARTIAL identity.blockchain_state = BlockchainState.VALIDATED - return identity except ValueError as e: if '404' in str(e) or '400' in str(e): yield from lookup()