From 98f41f7c052f9f6adf46b21dbeac1341bb6bbf8f Mon Sep 17 00:00:00 2001 From: undeath Date: Tue, 7 Aug 2018 15:37:51 +0200 Subject: [PATCH] make SimpleLruCache an actual LRU cache --- jmclient/jmclient/cryptoengine.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/jmclient/jmclient/cryptoengine.py b/jmclient/jmclient/cryptoengine.py index 88de28e..693dd5f 100644 --- a/jmclient/jmclient/cryptoengine.py +++ b/jmclient/jmclient/cryptoengine.py @@ -75,6 +75,12 @@ class SimpleLruCache(OrderedDict): OrderedDict.__setitem__(self, key, value) self._adjust_size() + def __getitem__(self, item): + e = OrderedDict.__getitem__(self, item) + del self[item] + OrderedDict.__setitem__(self, item, e) + return e + def _adjust_size(self): while len(self) > self.max_size: self.popitem(last=False) @@ -156,8 +162,7 @@ class BTCEngine(object): def _walk_bip32_path(cls, master_key, path): key = master_key for lvl in path[1:]: - assert lvl >= 0 - assert lvl < 2**32 + assert 0 <= lvl < 2**32 if (key, lvl) in cls.__LRU_KEY_CACHE: key = cls.__LRU_KEY_CACHE[(key, lvl)] else: