Browse Source

wallet.get_relevant_invoice_keys_for_tx: take lock in callee not caller

master
SomberNight 5 years ago
parent
commit
55eb62bb90
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 3
      electrum/wallet.py

3
electrum/wallet.py

@ -766,6 +766,7 @@ class Abstract_Wallet(AddressSynchronizer, ABC):
def _get_relevant_invoice_keys_for_tx(self, tx: Transaction) -> Set[str]:
relevant_invoice_keys = set()
with self.transaction_lock:
for txout in tx.outputs():
for invoice_key in self._invoices_from_scriptpubkey_map.get(txout.scriptpubkey, set()):
# note: the invoice might have been deleted since, so check now:
@ -816,8 +817,8 @@ class Abstract_Wallet(AddressSynchronizer, ABC):
return self._is_onchain_invoice_paid(invoice)[0]
def _maybe_set_tx_label_based_on_invoices(self, tx: Transaction) -> bool:
# note: this is not done in 'get_default_label' as that would require deserializing each tx
tx_hash = tx.txid()
with self.transaction_lock:
labels = []
for invoice in self.get_relevant_invoices_for_tx(tx):
if invoice.message:

Loading…
Cancel
Save