URI: 
       tMerge pull request #4371 from haarts/remove-explicit-protocol-mentions - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit d538106cafb89ed1c5d4fca95899ac88e64e4a36
   DIR parent a9bf664a5e007b764355fa5071c55df388a49adc
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Fri, 18 May 2018 10:08:36 +0200
       
       Merge pull request #4371 from haarts/remove-explicit-protocol-mentions
       
       Remove explicit protocol mentions
       Diffstat:
         M lib/commands.py                     |       3 +--
         M lib/network.py                      |      20 ++++++++------------
         M lib/websockets.py                   |       4 +---
       
       3 files changed, 10 insertions(+), 17 deletions(-)
       ---
   DIR diff --git a/lib/commands.py b/lib/commands.py
       t@@ -647,8 +647,7 @@ class Commands:
                        util.print_error('Got Response for %s' % address)
                    except BaseException as e:
                        util.print_error(str(e))
       -        h = self.network.addr_to_scripthash(address)
       -        self.network.send([('blockchain.scripthash.subscribe', [h])], callback)
       +        self.network.subscribe_to_addresses([addr], callback)
                return True
        
            @command('wn')
   DIR diff --git a/lib/network.py b/lib/network.py
       t@@ -625,13 +625,7 @@ class Network(util.DaemonThread):
                    # Response is now in canonical form
                    self.process_response(interface, response, callbacks)
        
       -    def addr_to_scripthash(self, addr):
       -        h = bitcoin.address_to_scripthash(addr)
       -        if h not in self.h2addr:
       -            self.h2addr[h] = addr
       -        return h
       -
       -    def overload_cb(self, callback):
       +    def map_scripthash_to_address(self, callback):
                def cb2(x):
                    x2 = x.copy()
                    p = x2.pop('params')
       t@@ -641,13 +635,15 @@ class Network(util.DaemonThread):
                return cb2
        
            def subscribe_to_addresses(self, addresses, callback):
       -        hashes = [self.addr_to_scripthash(addr) for addr in addresses]
       -        msgs = [('blockchain.scripthash.subscribe', [x]) for x in hashes]
       -        self.send(msgs, self.overload_cb(callback))
       +        hash2address = {bitcoin.address_to_scripthash(address): address for address in addresses}
       +        self.h2addr.update(hash2address)
       +        msgs = [('blockchain.scripthash.subscribe', [x]) for x in hash2address.keys()]
       +        self.send(msgs, self.map_scripthash_to_address(callback))
        
            def request_address_history(self, address, callback):
       -        h = self.addr_to_scripthash(address)
       -        self.send([('blockchain.scripthash.get_history', [h])], self.overload_cb(callback))
       +        h = bitcoin.address_to_scripthash(address)
       +        self.h2addr.update({h: address})
       +        self.send([('blockchain.scripthash.get_history', [h])], self.map_scripthash_to_address(callback))
        
            def send(self, messages, callback):
                '''Messages is a list of (method, params) tuples'''
   DIR diff --git a/lib/websockets.py b/lib/websockets.py
       t@@ -84,9 +84,7 @@ class WsClientThread(util.DaemonThread):
                    l = self.subscriptions.get(addr, [])
                    l.append((ws, amount))
                    self.subscriptions[addr] = l
       -            h = self.network.addr_to_scripthash(addr)
       -            self.network.send([('blockchain.scripthash.subscribe', [h])], self.response_queue.put)
       -
       +            self.network.subscribe_to_addresses([addr], self.response_queue.put)
        
            def run(self):
                threading.Thread(target=self.reading_thread).start()