from utils import *
-class AbeStore(Datastore.Datastore):
+class AbeStore(DataStore.DataStore):
def __init__(self, config):
conf = DataStore.CONFIG_DEFAULTS
print_log(' addrtype = 48')
self.addrtype = 48
- Datastore.Datastore.__init__(self, args)
+ DataStore.DataStore.__init__(self, args)
# Use 1 (Bitcoin) if chain_id is not sent
self.chain_id = self.datadirs[0]["chain_id"] or 1
"index": int(pos),
"value": int(value),
})
- known_tx.append(self.hashout_hex(tx_hash))
+ known_tx.append(tx_hash)
# todo: sort them really...
txpoints = sorted(txpoints, key=operator.itemgetter("timestamp"))
print_log("get_chunk", index, len(msg))
return msg
- def get_raw_tx(self, tx_hash, height):
- postdata = dumps({"method": 'getrawtransaction', 'params': [tx_hash, 0, height], 'id': 'jsonrpc'})
+ def get_raw_tx(self, tx_hash):
+ postdata = dumps({"method": 'getrawtransaction', 'params': [tx_hash, 0], 'id': 'jsonrpc'})
respdata = urllib.urlopen(self.bitcoind_url, postdata).read()
r = loads(respdata)
if r['error'] is not None:
# find subset.
# TODO: do not compute this on client request, better store the hash tree of each block in a database...
- merkle = map(decode, merkle)
- target_hash = decode(tx_hash)
+ merkle = map(hash_decode, merkle)
+ target_hash = hash_decode(tx_hash)
s = []
while len(merkle) != 1:
while merkle:
new_hash = Hash(merkle[0] + merkle[1])
if merkle[0] == target_hash:
- s.append(encode(merkle[1]))
+ s.append(hash_encode(merkle[1]))
target_hash = new_hash
elif merkle[1] == target_hash:
- s.append(encode(merkle[0]))
+ s.append(hash_encode(merkle[0]))
target_hash = new_hash
n.append(new_hash)
merkle = merkle[2:]
try:
tx_hash = params[0]
height = params[1]
- result = self.store.get_raw_tx(tx_hash, height)
+ result = self.store.get_raw_tx(tx_hash)
except Exception, e:
error = str(e) + ': ' + tx_hash
print_log("error:", error)