electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

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:
Mlib/commands.py | 3+--
Mlib/network.py | 20++++++++------------
Mlib/websockets.py | 4+---
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()