websocket: migrate to scripthashes
This commit is contained in:
parent
58d889e480
commit
5ec3d2888f
|
@ -604,6 +604,9 @@ class Network(util.DaemonThread):
|
|||
elif method == 'blockchain.scripthash.subscribe':
|
||||
response['params'] = [params[0]] # addr
|
||||
response['result'] = params[1]
|
||||
elif method == 'blockchain.address.subscribe':
|
||||
response['params'] = [params[0]]
|
||||
response['result'] = params[1]
|
||||
callbacks = self.subscriptions.get(k, [])
|
||||
|
||||
# update cache if it's a subscription
|
||||
|
|
|
@ -84,7 +84,8 @@ class WsClientThread(util.DaemonThread):
|
|||
l = self.subscriptions.get(addr, [])
|
||||
l.append((ws, amount))
|
||||
self.subscriptions[addr] = l
|
||||
self.network.send([('blockchain.address.subscribe', [addr])], self.response_queue.put)
|
||||
h = self.network.addr_to_scripthash(addr)
|
||||
self.network.send([('blockchain.scripthash.subscribe', [h])], self.response_queue.put)
|
||||
|
||||
|
||||
def run(self):
|
||||
|
@ -100,10 +101,13 @@ class WsClientThread(util.DaemonThread):
|
|||
result = r.get('result')
|
||||
if result is None:
|
||||
continue
|
||||
if method == 'blockchain.address.subscribe':
|
||||
self.network.send([('blockchain.address.get_balance', params)], self.response_queue.put)
|
||||
elif method == 'blockchain.address.get_balance':
|
||||
addr = params[0]
|
||||
if method == 'blockchain.scripthash.subscribe':
|
||||
self.network.send([('blockchain.scripthash.get_balance', params)], self.response_queue.put)
|
||||
elif method == 'blockchain.scripthash.get_balance':
|
||||
h = params[0]
|
||||
addr = self.network.h2addr.get(h, None)
|
||||
if addr is None:
|
||||
util.print_error("can't find address for scripthash: %s" % h)
|
||||
l = self.subscriptions.get(addr, [])
|
||||
for ws, amount in l:
|
||||
if not ws.closed:
|
||||
|
|
Loading…
Reference in New Issue