simplify deletions

This commit is contained in:
jackjack-jj 2013-05-28 19:33:57 +02:00
parent fbddb2a65b
commit 35c0c3251d

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
#-*- coding: utf-8 -*- #-*- coding: utf-8 -*-
pywversion="2.0.9" pywversion="2.0.10"
never_update=False never_update=False
# #
@ -1776,37 +1776,36 @@ def delete_from_wallet(db_env, walletfile, typedel, kd):
if not isinstance(kd, list): if not isinstance(kd, list):
kd=[kd] kd=[kd]
for i in range(len(kd)): if typedel=='tx' and kd!=['all']:
keydel=kd[i] for keydel in kd:
for (key, value) in db.items(): db.delete('\x02\x74\x78'+keydel.decode('hex')[::-1])
kds.clear(); kds.write(key) deleted_items+=1
vds.clear(); vds.write(value)
type = kds.read_string()
if typedel == "tx": else:
if type == "tx": for i,keydel in enumerate(kd):
if keydel == "all" or keydel == inversetxid(kds.read_bytes(32).encode('hex_codec')): for (key, value) in db.items():
db.delete(key) kds.clear(); kds.write(key)
deleted_items+=1 vds.clear(); vds.write(value)
if keydel == "all": type = kds.read_string()
continue
else: if typedel == "tx" and type == "tx":
break db.delete(key)
elif typedel == "key": deleted_items+=1
if type == "key" or type == "ckey": elif typedel == "key":
if keydel == public_key_to_bc_address(kds.read_bytes(kds.read_compact_size())): if type == "key" or type == "ckey":
db.delete(key) if keydel == public_key_to_bc_address(kds.read_bytes(kds.read_compact_size())):
deleted_items+=1 db.delete(key)
elif type == "pool": deleted_items+=1
vds.read_int32() elif type == "pool":
vds.read_int64() vds.read_int32()
if keydel == public_key_to_bc_address(vds.read_bytes(vds.read_compact_size())): vds.read_int64()
db.delete(key) if keydel == public_key_to_bc_address(vds.read_bytes(vds.read_compact_size())):
deleted_items+=1 db.delete(key)
elif type == "name": deleted_items+=1
if keydel == kds.read_string(): elif type == "name":
db.delete(key) if keydel == kds.read_string():
deleted_items+=1 db.delete(key)
deleted_items+=1
db.close() db.close()
@ -4531,9 +4530,13 @@ if __name__ == '__main__':
filin.close() filin.close()
typedel=content[0] typedel=content[0]
kd=filter(bool,content[1:]) kd=filter(bool,content[1:])
r=delete_from_wallet(db_env, determine_db_name(), typedel, kd) try:
print '%d element%s deleted'%(r, 's'*(int(r>1))) r=delete_from_wallet(db_env, determine_db_name(), typedel, kd)
exit(0) print '%d element%s deleted'%(r, 's'*(int(r>1)))
exit(0)
except:
print "Error: do not try to delete a non-existing transaction."
exit(1)
read_wallet(json_db, db_env, determine_db_name(), True, True, "", options.dumpbalance is not None) read_wallet(json_db, db_env, determine_db_name(), True, True, "", options.dumpbalance is not None)