URI: 
       tfix for notifications - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 0e851a5f62f631cc9b58a19798c8230f4b68f3f5
   DIR parent 8fc042ee224d0153c962e9b4987e3fc51c29d04b
  HTML Author: thomasv <thomasv@gitorious>
       Date:   Thu, 15 Nov 2012 12:14:29 +0100
       
       fix for notifications
       
       Diffstat:
         M lib/wallet.py                       |      30 +++++++++++++++++++++++++++---
         M scripts/watch_address               |      13 ++++++++-----
       
       2 files changed, 35 insertions(+), 8 deletions(-)
       ---
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -446,7 +446,7 @@ class Wallet:
                for addr in domain:
                    h = self.history.get(addr, [])
                    if h == ['*']: continue
       -            for tx_hash, tx_height, in h:
       +            for tx_hash, tx_height in h:
                        tx = self.transactions.get(tx_hash)
                        for output in tx.get('outputs'):
                            if output.get('address') != addr: continue
       t@@ -459,7 +459,8 @@ class Wallet:
        
                for addr in self.prioritized_addresses:
                    h = self.history.get(addr, [])
       -            for tx_hash, tx_height, in h:
       +            if h == ['*']: continue
       +            for tx_hash, tx_height in h:
                        for output in tx.get('outputs'):
                            if output.get('address') != addr: continue
                            key = tx_hash + ":%d" % output.get('index')
       t@@ -571,7 +572,14 @@ class Wallet:
                if hist != ['*']:
                    for tx_hash, tx_height in hist:
                        if tx_height>0:
       +                    # add it in case it was previously unconfirmed
                            self.verifier.add(tx_hash, tx_height)
       +                    # set the height in case it changed
       +                    tx = self.transactions.get(tx_hash)
       +                    if tx:
       +                        if tx.get('height') != tx_height:
       +                            print_error( "changing height for tx", tx_hash )
       +                            tx['height'] = tx_height
        
        
            def get_tx_history(self):
       t@@ -892,7 +900,8 @@ class Wallet:
        
            def set_verifier(self, verifier):
                self.verifier = verifier
       -            
       +
       +        # review transactions (they might not all be in history)
                for tx_hash, tx in self.transactions.items():
                    tx_height = tx.get('height')
                    if tx_height <1:
       t@@ -909,6 +918,20 @@ class Wallet:
                            self.set_tx_timestamp(tx_hash, timestamp)
        
        
       +        # review existing history
       +        for addr, hist in self.history.items():
       +            if hist == ['*']: continue
       +            for tx_hash, tx_height in hist:
       +                if tx_height>0:
       +                    # add it in case it was previously unconfirmed
       +                    self.verifier.add(tx_hash, tx_height)
       +                    # set the height in case it changed
       +                    tx = self.transactions.get(tx_hash)
       +                    if tx:
       +                        if tx.get('height') != tx_height:
       +                            print_error( "changing height for tx", tx_hash )
       +                            tx['height'] = tx_height
       +
        
        
            def set_tx_timestamp(self, tx_hash, timestamp):
       t@@ -1064,6 +1087,7 @@ class WalletSynchronizer(threading.Thread):
        
                    elif method == 'blockchain.address.get_history':
                        addr = params[0]
       +                print_error("receiving history", addr, result)
                        if result == ['*']:
                            assert requested_histories.pop(addr) == '*'
                            self.wallet.receive_history_callback(addr, result)
   DIR diff --git a/scripts/watch_address b/scripts/watch_address
       t@@ -1,6 +1,6 @@
        #!/usr/bin/env python
        
       -import sys
       +import sys, time
        from electrum import Interface
        
        try:
       t@@ -9,15 +9,18 @@ except:
            print "usage: watch_address <bitcoin_address>"
            sys.exit(1)
        
       -i = Interface({'server':'electrum.novit.ro:50001:t'})
       +i = Interface({'server':'ecdsa.org:50001:t'})
        i.start()
       -i.send([('blockchain.address.subscribe',[addr])])
       +i.send([('blockchain.address.subscribe',[addr])] )
       +time.sleep(1)
        
        while True:
       -    r = i.responses.get(True, 100000000000)
       +    r = i.get_response()
            method = r.get('method') 
            if method == 'blockchain.address.subscribe':
       -        i.send([('blockchain.address.get_history',[addr])])
       +        #i.send([('blockchain.address.get_history',[addr])])
       +        print r
       +        
            elif method == 'blockchain.address.get_history':
                confirmed = unconfirmed = 0
                h = r.get('result')