return hash_160_to_bc_address(addr)
- def get_address_path(self, addr):
+ def get_proof(self, addr):
key = self.address_to_key(addr)
- p = self.get_path(key)
- p.append(key)
+ i = self.db_utxo.iterator(start=key)
+ k, _ = i.next()
+
+ p = self.get_path(k)
+ p.append(k)
out = []
for item in p:
def get_address(self, txi):
- addr = self.db_addr.get(txi)
- return self.key_to_address(addr) if addr else None
+ return self.db_addr.get(txi)
def get_undo_info(self, height):
self.add_address(key + txo, value, tx_height)
# backlink
- self.db_addr.put(txo, key)
+ self.db_addr.put(txo, addr)
self.db_addr.delete(txo)
+ def get_utxo_value(self, addr, txi):
+ key = self.address_to_key(addr)
+ leaf = key + txi
+ s = self.db_utxo.get(leaf)
+ value = hex_to_int(s[0:8])
+ return value
+
def set_spent(self, addr, txi, txid, index, height, undo):
key = self.address_to_key(addr)
leaf = key + txi
# restore backlink
- self.db_addr.put(txi, key)
+ self.db_addr.put(txi, addr)
v, height = undo.pop(leaf)
self.add_address(leaf, v, height)