Merge pull request #3205 from SomberNight/delete_address_proper
proper address deletion for imported wallets
This commit is contained in:
commit
a70970ca20
|
@ -1468,12 +1468,42 @@ class Imported_Wallet(Simple_Wallet):
|
|||
def delete_address(self, address):
|
||||
if address not in self.addresses:
|
||||
return
|
||||
|
||||
transactions_to_remove = set() # only referred to by this address
|
||||
transactions_new = set() # txs that are not only referred to by address
|
||||
with self.lock:
|
||||
for addr, details in self.history.items():
|
||||
if addr == address:
|
||||
for tx_hash, height in details:
|
||||
transactions_to_remove.add(tx_hash)
|
||||
else:
|
||||
for tx_hash, height in details:
|
||||
transactions_new.add(tx_hash)
|
||||
transactions_to_remove -= transactions_new
|
||||
self.history.pop(address, None)
|
||||
|
||||
for tx_hash in transactions_to_remove:
|
||||
self.remove_transaction(tx_hash)
|
||||
self.tx_fees.pop(tx_hash, None)
|
||||
self.verified_tx.pop(tx_hash, None)
|
||||
self.unverified_tx.pop(tx_hash, None)
|
||||
self.transactions.pop(tx_hash, None)
|
||||
# FIXME: what about pruned_txo?
|
||||
|
||||
self.storage.put('verified_tx3', self.verified_tx)
|
||||
self.save_transactions()
|
||||
|
||||
self.set_label(address, None)
|
||||
self.remove_payment_request(address, {})
|
||||
self.set_frozen_state([address], False)
|
||||
|
||||
pubkey = self.get_public_key(address)
|
||||
self.addresses.pop(address)
|
||||
if pubkey:
|
||||
self.keystore.delete_imported_key(pubkey)
|
||||
self.save_keystore()
|
||||
self.storage.put('addresses', self.addresses)
|
||||
|
||||
self.storage.write()
|
||||
|
||||
def get_address_index(self, address):
|
||||
|
|
Loading…
Reference in New Issue