From 8183ce5de23cc7895a3f3422c47b304959e760e7 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Sun, 26 Apr 2015 01:16:00 +0200 Subject: [PATCH] Fixing critical bug in community cache - Wrong values indexed - Circular reference --- src/cutecoin/core/community.py | 4 ++-- src/cutecoin/core/person.py | 17 +++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/cutecoin/core/community.py b/src/cutecoin/core/community.py index 77809aa8..da9fd989 100644 --- a/src/cutecoin/core/community.py +++ b/src/cutecoin/core/community.py @@ -80,9 +80,9 @@ class Cache(): ''' cache_key = (str(request), str(tuple(frozenset(sorted(req_args.keys())))), - str(tuple(frozenset(sorted(req_args.items())))), + str(tuple(frozenset(sorted(req_args.values())))), str(tuple(frozenset(sorted(get_args.keys())))), - str(tuple(frozenset(sorted(get_args.items()))))) + str(tuple(frozenset(sorted(get_args.values()))))) if cache_key not in self.data.keys(): result = self.community.request(request, req_args, get_args, diff --git a/src/cutecoin/core/person.py b/src/cutecoin/core/person.py index 310b24c7..60ce2d8f 100644 --- a/src/cutecoin/core/person.py +++ b/src/cutecoin/core/person.py @@ -117,12 +117,13 @@ class Person(object): for result in data['results']: if result["pubkey"] == pubkey: uids = result['uids'] - for uid in uids: - if uid["meta"]["timestamp"] > timestamp: - timestamp = uid["meta"]["timestamp"] - uid = uid["uid"] + person_uid = "" + for uid_data in uids: + if uid_data["meta"]["timestamp"] > timestamp: + timestamp = uid_data["meta"]["timestamp"] + person_uid = uid_data["uid"] - person = cls(uid, pubkey, {}) + person = cls(person_uid, pubkey, {}) Person._instances[pubkey] = person logging.debug("{0}".format(Person._instances.keys())) return person @@ -299,10 +300,10 @@ class Person(object): for result in data['results']: if result["pubkey"] == self.pubkey: - for uid in result['uids']: - for certifier in uid['others']: + for uid_data in result['uids']: + for certifier in uid_data['others']: # add a certifier - certifier['uid'] = uid + certifier['uid'] = uid_data['uid'] certifier['cert_time'] = dict() certifier['cert_time']['medianTime'] = community.get_block(certifier['meta']['block_number']).mediantime certifiers.append(certifier) -- GitLab