From 9d7285263fd21e97a92229c867dbda4aa4a37063 Mon Sep 17 00:00:00 2001 From: 4tochka Date: Thu, 9 May 2019 01:34:03 +0400 Subject: [PATCH] connector --- .../pybtc/connector.py | 11 ++-- pybtc/connector/block_loader.py | 50 +++++++++---------- 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/build/lib.macosx-10.9-x86_64-3.7/pybtc/connector.py b/build/lib.macosx-10.9-x86_64-3.7/pybtc/connector.py index 1152dba..93733ba 100644 --- a/build/lib.macosx-10.9-x86_64-3.7/pybtc/connector.py +++ b/build/lib.macosx-10.9-x86_64-3.7/pybtc/connector.py @@ -595,10 +595,13 @@ class Connector: if self.utxo: stxo, missed = set(), set() for i in tx["vIn"]: - inp = tx["vIn"][i] - outpoint = b"".join((inp["txId"], int_to_bytes(inp["vOut"]))) - r = self.utxo.get(outpoint, block_height) - stxo.add(r) if r else missed.add((outpoint, (block_height << 42) + (block_index << 21) + i)) + try: + stxo.add(tx["vIn"][i]["__coin__"]) + except: + inp = tx["vIn"][i] + outpoint = b"".join((inp["txId"], int_to_bytes(inp["vOut"]))) + r = self.utxo.get(outpoint, block_height) + stxo.add(r) if r else missed.add((outpoint, (block_height << 42) + (block_index << 21) + i)) if missed: await self.utxo.load_utxo() diff --git a/pybtc/connector/block_loader.py b/pybtc/connector/block_loader.py index 57abee5..6a5e310 100644 --- a/pybtc/connector/block_loader.py +++ b/pybtc/connector/block_loader.py @@ -223,33 +223,33 @@ class Worker: for x, y in zip(h, result): if y["result"] is not None: block = decode_block_tx(y["result"]) - for z in block["rawTx"]: - for i in block["rawTx"][z]["vIn"]: - inp = block["rawTx"][z]["vIn"][i] - outpoint = b"".join((inp["txId"], int_to_bytes(inp["vOut"]))) - try: - r = self.coins[outpoint] - block["rawTx"][z]["vIn"][i]["__coin__"] = (outpoint, r[0], r[1], r[2]) - self.destroyed_coins[r[0]] = True - except: - pass - for i in block["rawTx"][z]["vOut"]: - o = b"".join((block["rawTx"][z]["txId"], int_to_bytes(i))) - pointer = (x << 42) + (z << 21) + i - try: - address = block["rawTx"][z]["vOut"][i]["scriptPubKey"] - except: - address = b"".join((bytes([block["rawTx"][z]["vOut"][i]["nType"]]), - block["rawTx"][z]["vOut"][i]["addressHash"])) - self.coins[o] = (pointer, block["rawTx"][z]["vOut"][i], address) + # for z in block["rawTx"]: + # for i in block["rawTx"][z]["vIn"]: + # inp = block["rawTx"][z]["vIn"][i] + # outpoint = b"".join((inp["txId"], int_to_bytes(inp["vOut"]))) + # try: + # r = self.coins[outpoint] + # block["rawTx"][z]["vIn"][i]["__coin__"] = (outpoint, r[0], r[1], r[2]) + # self.destroyed_coins[r[0]] = True + # except: + # pass + # for i in block["rawTx"][z]["vOut"]: + # o = b"".join((block["rawTx"][z]["txId"], int_to_bytes(i))) + # pointer = (x << 42) + (z << 21) + i + # try: + # address = block["rawTx"][z]["vOut"][i]["scriptPubKey"] + # except: + # address = b"".join((bytes([block["rawTx"][z]["vOut"][i]["nType"]]), + # block["rawTx"][z]["vOut"][i]["addressHash"])) + # self.coins[o] = (pointer, block["rawTx"][z]["vOut"][i], address) blocks[x] = block for x in blocks: - for y in blocks[x]["rawTx"]: - for i in blocks[x]["rawTx"][y]["vOut"]: - try: - pointer = (x << 42) + (y << 21) + i - blocks[x]["rawTx"][y]["vOut"][i]["__spent__"] = self.destroyed_coins[pointer] - except: pass + # for y in blocks[x]["rawTx"]: + # for i in blocks[x]["rawTx"][y]["vOut"]: + # try: + # pointer = (x << 42) + (y << 21) + i + # blocks[x]["rawTx"][y]["vOut"][i]["__spent__"] = self.destroyed_coins[pointer] + # except: pass blocks[x] = pickle.dumps(blocks[x]) # self.log.critical(str(len(blocks))) self.pipe_sent_msg(b'result', pickle.dumps(blocks))