Browse Source
wallet: move get_depending_transactions to AddressSynchronizer
and resolve TODO
3.2.x
SomberNight
7 years ago
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
2 changed files with
8 additions and
11 deletions
-
electrum/address_synchronizer.py
-
electrum/wallet.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) |
|
|
|
|
|
@ -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'] |
|
|
|