URI: 
       tmove get_status to synchronizer - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 076ecb26809f6eeac45726921e2557ff0bd25199
   DIR parent 63227142227e46c269fd5ffded4d9f0ecf5d4525
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Mon, 30 May 2016 16:11:49 +0200
       
       move get_status to synchronizer
       
       Diffstat:
         M lib/synchronizer.py                 |      13 +++++++++++--
         M lib/wallet.py                       |       8 --------
       
       2 files changed, 11 insertions(+), 10 deletions(-)
       ---
   DIR diff --git a/lib/synchronizer.py b/lib/synchronizer.py
       t@@ -25,6 +25,7 @@
        
        
        from threading import Lock
       +import hashlib
        
        from bitcoin import Hash, hash_encode
        from transaction import Transaction
       t@@ -78,13 +79,21 @@ class Synchronizer(ThreadJob):
                               addresses)
                    self.network.send(msgs, self.addr_subscription_response)
        
       +    def get_status(self, h):
       +        if not h:
       +            return None
       +        status = ''
       +        for tx_hash, height in h:
       +            status += tx_hash + ':%d:' % height
       +        return hashlib.sha256(status).digest().encode('hex')
       +
            def addr_subscription_response(self, response):
                params, result = self.parse_response(response)
                if not params:
                    return
                addr = params[0]
                history = self.wallet.get_address_history(addr)
       -        if self.wallet.get_status(history) != result:
       +        if self.get_status(history) != result:
                    if self.requested_histories.get(addr) is None:
                        self.requested_histories[addr] = result
                        self.network.send([('blockchain.address.get_history', [addr])],
       t@@ -109,7 +118,7 @@ class Synchronizer(ThreadJob):
                if len(hashes) != len(result):
                    self.print_error("error: server history has non-unique txids: %s"% addr)
                # Check that the status corresponds to what was announced
       -        elif self.wallet.get_status(hist) != server_status:
       +        elif self.get_status(hist) != server_status:
                    self.print_error("error: status mismatch: %s" % addr)
                else:
                    # Store received history
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -713,14 +713,6 @@ class Abstract_Wallet(PrintError):
                with self.lock:
                    return self.history.get(address, [])
        
       -    def get_status(self, h):
       -        if not h:
       -            return None
       -        status = ''
       -        for tx_hash, height in h:
       -            status += tx_hash + ':%d:' % height
       -        return hashlib.sha256( status ).digest().encode('hex')
       -
            def find_pay_to_pubkey_address(self, prevout_hash, prevout_n):
                dd = self.txo.get(prevout_hash, {})
                for addr, l in dd.items():