twallet.py: remove local transactions that we don't have - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 1935d7d1654b7b90f35167e342bcfc0732c69bce DIR parent 7dcefd999f389d6f1bff2b9cf5d0008a4ed26727 HTML Author: SomberNight <somber.night@protonmail.com> Date: Wed, 11 Apr 2018 19:53:33 +0200 wallet.py: remove local transactions that we don't have fixes #4232 closes #4234 Diffstat: M lib/wallet.py | 8 ++++++++ 1 file changed, 8 insertions(+), 0 deletions(-) --- DIR diff --git a/lib/wallet.py b/lib/wallet.py t@@ -219,6 +219,7 @@ class Abstract_Wallet(PrintError): self.load_unverified_transactions() self.load_local_history() self.build_spent_outpoints() + self.remove_local_transactions_we_dont_have() # there is a difference between wallet.up_to_date and interface.is_up_to_date() # interface.is_up_to_date() returns true when all requests have been answered and processed t@@ -267,6 +268,13 @@ class Abstract_Wallet(PrintError): for txid in itertools.chain(self.txi, self.txo): self._add_tx_to_local_history(txid) + def remove_local_transactions_we_dont_have(self): + txid_set = set(self.txi) | set(self.txo) + for txid in txid_set: + tx_height = self.get_tx_height(txid)[0] + if tx_height == TX_HEIGHT_LOCAL and txid not in self.transactions: + self.remove_transaction(txid) + @profiler def save_transactions(self, write=False): with self.transaction_lock: