From 8ea3a02a2905f479a0f26975da4d6507dfa69eff Mon Sep 17 00:00:00 2001 From: 4tochka Date: Fri, 3 May 2019 16:30:31 +0400 Subject: [PATCH] connector --- pybtc/connector.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/pybtc/connector.py b/pybtc/connector.py index 8518d8a..1e17204 100644 --- a/pybtc/connector.py +++ b/pybtc/connector.py @@ -751,11 +751,16 @@ class UTXO(): c = len(self.cached) - self._cache_size if block_height > 0 and not self.save_process and c > 0: try: + lb = 0 + for key in iter(self.cached): + i = self.cached[key] + if (c>0 or lb == i[0] >> 42) and (i[0] >> 42) < block_height: + c -= 1 + continue + break self.save_process = True - k = [] - for key in iter(self.destroyed): - if key < block_height: - k.append(key) + for key in self.destroyed: + if key < lb: n = set() for outpoint in self.destroyed[key]: try: @@ -770,10 +775,11 @@ class UTXO(): self.destroyed[key] = n self.log.critical(str(key)) - ln, rs, lb = set(), set(), 0 + + ln, rs = set(), set() for key in iter(self.cached): i = self.cached[key] - if (c>0 or lb == i[0] >> 42) and (i[0] >> 42) < block_height: + if i[0] >> 42 <= lb: rs.add((key,b"".join((int_to_c_int(i[0]), int_to_c_int(i[1]), i[2])))) @@ -814,8 +820,9 @@ class UTXO(): self.cached.pop(key) except: pass - - [self.destroyed.pop(key) for key in db] + for key in self.destroyed: + if not self.destroyed[key]: + self.destroyed.pop(key) if lb: self.last_saved_block = lb finally: