1
0

store contacts in a separate file, shared between wallets

This commit is contained in:
ThomasV
2015-04-23 12:16:46 +02:00
parent 065145e557
commit e8189490e9
4 changed files with 71 additions and 73 deletions

View File

@@ -397,3 +397,33 @@ class QueuePipe:
def send_all(self, requests):
for request in requests:
self.send(request)
class StoreDict(dict):
def __init__(self, config, name):
self.config = config
self.path = os.path.join(self.config.path, name)
self.load()
def load(self):
try:
with open(self.path, 'r') as f:
self.update(json.loads(f.read()))
except:
pass
def save(self):
with open(self.path, 'w') as f:
s = json.dumps(self, indent=4, sort_keys=True)
r = f.write(s)
def __setitem__(self, key, value):
dict.__setitem__(self, key, value)
self.save()
def pop(self, key):
if key in self.keys():
dict.pop(self, key)
self.save()

View File

@@ -159,7 +159,6 @@ class Abstract_Wallet(object):
self.seed = storage.get('seed', '') # encrypted
self.labels = storage.get('labels', {})
self.frozen_addresses = storage.get('frozen_addresses',[])
self.addressbook = set(storage.get('contacts', []))
self.history = storage.get('addr_history',{}) # address -> list(txid, height)
self.fee_per_kb = int(storage.get('fee_per_kb', RECOMMENDED_FEE))
@@ -380,28 +379,6 @@ class Abstract_Wallet(object):
def is_found(self):
return self.history.values() != [[]] * len(self.history)
def add_contact(self, address, label=None):
self.addressbook.add(address)
self.storage.put('contacts', list(self.addressbook), True)
if label:
self.set_label(address, label)
def delete_contact(self, addr):
if addr in self.addressbook:
self.addressbook.remove(addr)
self.storage.put('contacts', list(self.addressbook), True)
def get_completions(self):
l = []
for x in self.addressbook:
if bitcoin.is_address(x):
label = self.labels.get(x)
if label:
l.append( label + ' <' + x + '>')
else:
l.append(x)
return l
def get_num_tx(self, address):
""" return number of transactions where address is involved """
return len(self.history.get(address, []))