raise TypeError("self.shared not set in Processor")
while not self.shared.stopped():
session, request = self.pop_request()
- self.do_dispatch(session, request)
+ try:
+ self.do_dispatch(session, request)
+ except:
+ traceback.print_exc(file=sys.stdout)
+
self.stop()
method = request['method']
params = request.get('params',[])
suffix = method.split('.')[-1]
+
+ try:
+ is_new = float(session.version) >= 1.3
+ except:
+ is_new = False
+
+ if is_new and method == 'blockchain.address.get_history':
+ method = 'blockchain.address.get_history2'
+ request['method'] = method
+
if suffix == 'subscribe':
+ if is_new and method == 'blockchain.address.subscribe':
+ method = 'blockchain.address.subscribe2'
+ request['method'] = method
+
session.subscribe_to_service(method, params)
# store session and id locally
def build_subdesc(method, params):
if method == "blockchain.numblocks.subscribe":
return method,
- elif method == "blockchain.address.subscribe":
+ elif method == "blockchain.headers.subscribe":
+ return method,
+ elif method in ["blockchain.address.subscribe", "blockchain.address.subscribe2"]:
if not params:
return None
else: