self.output_loaded = None
self.input_point = None
self.input_loaded = None
+ self.raw_output_script = None
def is_loaded(self):
with self.lock:
else:
statement_line.input_point = inpoint
self.finish_if_done()
- self.load_tx_info(inpoint, statement_line, True)
+ if not ec:
+ self.load_tx_info(inpoint, statement_line, True)
def finish_if_done(self):
with self.lock:
return
result = []
for line in self.statement:
- line.input_loaded["value"] = -line.output_loaded["value"]
- result.append(line.input_loaded)
+ if line.input_point:
+ line.input_loaded["value"] = -line.output_loaded["value"]
+ result.append(line.input_loaded)
+ else:
+ line.output_loaded["raw_output_script"] = \
+ line.raw_output_script
result.append(line.output_loaded)
self.handle_finish(result)
self.stop()
if info["is_in"] == 1:
info["inputs"][info["pos"]] = self.address
else:
- info["value"] = tx.outputs[info["pos"]].value
+ our_output = tx.outputs[info["pos"]]
+ info["value"] = our_output.value
+ with statement_line.lock:
+ statement_line.raw_output_script = \
+ str(bitcoin.save_script(our_output.output_script))
if not [empty_in for empty_in in info["inputs"] if empty_in is None]:
# We have the sole input
assert(info["is_in"] == 1)
if __name__ == "__main__":
def finish(result):
print result
+ def last(ec, depth):
+ print "D:", depth
service = bitcoin.async_service(1)
prefix = "/home/genjix/libbitcoin/database"
chain = bitcoin.bdb_blockchain(service, prefix)
- address = "1LzBzVqEeuQyjD2mRWHes3dgWrT9titxvq"
+ chain.fetch_last_depth(last)
+ address = "1Pbn3DLXfjqF1fFV9YPdvpvyzejZwkHhZE"
print "Looking up", address
payment_history(chain, address, finish)
raw_input()