From 63a284db653587f3740fd448e173c9b4fd8991ff Mon Sep 17 00:00:00 2001 From: 4tochka Date: Fri, 17 May 2019 16:39:01 +0400 Subject: [PATCH] connector --- pybtc/connector/block_loader.py | 21 ++++++++++++--------- pybtc/connector/connector.py | 25 ++++++++++++++++--------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/pybtc/connector/block_loader.py b/pybtc/connector/block_loader.py index d9c7832..0bece04 100644 --- a/pybtc/connector/block_loader.py +++ b/pybtc/connector/block_loader.py @@ -258,7 +258,10 @@ class Worker: outpoint = b"".join((inp["txId"], int_to_bytes(inp["vOut"]))) try: r = self.coins.delete(outpoint) - block["rawTx"][z]["vIn"][i]["_c_"] = r + if r[0] >> 42 >= start_height and r[0] < height: + block["rawTx"][z]["vIn"][i]["_a_"] = r + else: + block["rawTx"][z]["vIn"][i]["_c_"] = r t += 1 self.destroyed_coins[r[0]] = True except: @@ -276,14 +279,14 @@ class Worker: self.a_coins[pointer]=True blocks[x]["rawTx"][y]["vOut"][i]["_s_"] = r except: pass - if not blocks[x]["rawTx"][y]["coinbase"]: - for i in blocks[x]["rawTx"][y]["vOut"]: - try: - r = blocks[x]["rawTx"][y]["vIn"][i]["_c_"] - self.a_coins.delete(r[0]) - blocks[x]["rawTx"][y]["vIn"][i]["_a_"] = True - except: - pass + # if not blocks[x]["rawTx"][y]["coinbase"]: + # for i in blocks[x]["rawTx"][y]["vOut"]: + # try: + # r = blocks[x]["rawTx"][y]["vIn"][i]["_c_"] + # self.a_coins.delete(r[0]) + # blocks[x]["rawTx"][y]["vIn"][i]["_a_"] = True + # except: + # pass blocks[x] = pickle.dumps(blocks[x]) self.pipe_sent_msg(b'result', pickle.dumps(blocks)) diff --git a/pybtc/connector/connector.py b/pybtc/connector/connector.py index 804feae..4b245f9 100644 --- a/pybtc/connector/connector.py +++ b/pybtc/connector/connector.py @@ -617,18 +617,25 @@ class Connector: outpoint = b"".join((inp["txId"], int_to_bytes(inp["vOut"]))) tx["vIn"][i]["outpoint"] = outpoint try: - # inp["_a_"] - tx["vIn"][i]["coin"] = inp["_c_"] + tx["vIn"][i]["coin"] = inp["_a_"] c += 1 - self.yy += 1 - self.utxo.deleted.add(outpoint) + self.aa += 1 except: - r = self.utxo.get(outpoint) - if r: - tx["vIn"][i]["coin"] = r + try: + tx["vIn"][i]["coin"] = inp["_c_"] c += 1 - else: - missed.add((outpoint, (block_height << 42) + (block_index << 21) + i, i)) + self.yy += 1 + try: + self.utxo.get(outpoint) + except: + self.utxo.deleted.add(outpoint) + except: + r = self.utxo.get(outpoint) + if r: + tx["vIn"][i]["coin"] = r + c += 1 + else: + missed.add((outpoint, (block_height << 42) + (block_index << 21) + i, i)) if missed: await self.utxo.load_utxo()