commit d538106cafb89ed1c5d4fca95899ac88e64e4a36
parent a9bf664a5e007b764355fa5071c55df388a49adc
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:
3 files changed, 10 insertions(+), 17 deletions(-)
diff --git a/lib/commands.py b/lib/commands.py
@@ -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')
diff --git a/lib/network.py b/lib/network.py
@@ -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')
@@ -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'''
diff --git a/lib/websockets.py b/lib/websockets.py
@@ -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()