|
|
@ -159,7 +159,7 @@ class Abstract_Wallet(object): |
|
|
|
self.seed = storage.get('seed', '') # encrypted |
|
|
|
self.labels = storage.get('labels', {}) |
|
|
|
self.frozen_addresses = storage.get('frozen_addresses',[]) |
|
|
|
self.addressbook = storage.get('contacts', []) |
|
|
|
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)) |
|
|
@ -381,34 +381,19 @@ class Abstract_Wallet(object): |
|
|
|
return self.history.values() != [[]] * len(self.history) |
|
|
|
|
|
|
|
def add_contact(self, address, label=None): |
|
|
|
self.addressbook.append(address) |
|
|
|
self.storage.put('contacts', self.addressbook, True) |
|
|
|
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('addressbook', self.addressbook, True) |
|
|
|
|
|
|
|
def fill_addressbook(self): |
|
|
|
# todo: optimize this |
|
|
|
for tx_hash, tx in self.transactions.viewitems(): |
|
|
|
_, is_send, _, _ = self.get_tx_value(tx) |
|
|
|
if is_send: |
|
|
|
for addr in tx.get_output_addresses(): |
|
|
|
if not self.is_mine(addr) and addr not in self.addressbook: |
|
|
|
self.addressbook.append(addr) |
|
|
|
# redo labels |
|
|
|
# self.update_tx_labels() |
|
|
|
self.storage.put('contacts', list(self.addressbook), True) |
|
|
|
|
|
|
|
def get_num_tx(self, address): |
|
|
|
""" return number of transactions where address is involved """ |
|
|
|
return len(self.history.get(address, [])) |
|
|
|
#n = 0 |
|
|
|
#for tx in self.transactions.values(): |
|
|
|
# if address in tx.get_output_addresses(): n += 1 |
|
|
|
#return n |
|
|
|
|
|
|
|
def get_tx_delta(self, tx_hash, address): |
|
|
|
"effect of tx on address" |
|
|
@ -1316,10 +1301,6 @@ class Deterministic_Wallet(Abstract_Wallet): |
|
|
|
else: |
|
|
|
self.synchronize() |
|
|
|
|
|
|
|
# disable this because it crashes android |
|
|
|
#self.fill_addressbook() |
|
|
|
|
|
|
|
|
|
|
|
def is_beyond_limit(self, address, account, is_change): |
|
|
|
if type(account) == ImportedAccount: |
|
|
|
return False |
|
|
|