diff --git a/electrum/address_synchronizer.py b/electrum/address_synchronizer.py index 2d6a70ccb..b1de5ab6f 100644 --- a/electrum/address_synchronizer.py +++ b/electrum/address_synchronizer.py @@ -319,6 +319,14 @@ class AddressSynchronizer(PrintError): self.txi.pop(tx_hash, None) self.txo.pop(tx_hash, None) + def get_depending_transactions(self, tx_hash): + """Returns all (grand-)children of tx_hash in this wallet.""" + children = set() + for other_hash in self.spent_outpoints[tx_hash].values(): + children.add(other_hash) + children |= self.get_depending_transactions(other_hash) + return children + def receive_tx_callback(self, tx_hash, tx, tx_height): self.add_unverified_tx(tx_hash, tx_height) self.add_transaction(tx_hash, tx, allow_unrelated=True) diff --git a/electrum/wallet.py b/electrum/wallet.py index 70aac4be9..0277e6aae 100644 --- a/electrum/wallet.py +++ b/electrum/wallet.py @@ -1068,17 +1068,6 @@ class Abstract_Wallet(AddressSynchronizer): index = self.get_address_index(addr) return self.keystore.decrypt_message(index, message, password) - def get_depending_transactions(self, tx_hash): - """Returns all (grand-)children of tx_hash in this wallet.""" - children = set() - # TODO rewrite this to use self.spent_outpoints - for other_hash, tx in self.transactions.items(): - for input in (tx.inputs()): - if input["prevout_hash"] == tx_hash: - children.add(other_hash) - children |= self.get_depending_transactions(other_hash) - return children - def txin_value(self, txin): txid = txin['prevout_hash'] prev_n = txin['prevout_n']