various fixes
[electrum-server.git] / backends / bitcoind / blockchain_processor.py
index c5ed9c5..219ffdc 100644 (file)
@@ -829,7 +829,12 @@ class BlockchainProcessor(Processor):
                 try:
                     addr = self.db.Get(txi)
                 except:
-                    continue
+                    tx_prev = self.get_mempool_transaction(x.get('prevout_hash'))
+                    try:
+                        addr = tx_prev['outputs'][x.get('prevout_n')]['address']
+                        if not addr: continue
+                    except:
+                        continue
                 l = self.mempool_addresses.get(tx_hash, [])
                 if addr not in l:
                     l.append(addr)
@@ -889,6 +894,7 @@ class BlockchainProcessor(Processor):
                 self.history_cache.pop(address)
 
         if address in self.watched_addresses:
+            # TODO: update cache here. if new value equals cached value, do not send notification
             self.address_queue.put(address)
 
     def main_iteration(self):