method = request['method']
params = request.get('params',[])
suffix = method.split('.')[-1]
+
+ is_new = session.protocol_version >= 0.5
+
+ 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
if method in ['server.version']:
session.version = params[0]
+ try:
+ session.protocol_version = float(params[1])
+ except:
+ pass
def get_sessions(self):
with self.lock:
self.address = ''
self.name = ''
self.version = 'unknown'
+ self.protocol_version = 0.
self.time = time.time()
threading.Timer(2, self.info).start()
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:
method = response.get('method')
params = response.get('params')
+ if method == "blockchain.address.subscribe2":
+ method = "blockchain.address.subscribe"
+
# A notification
if internal_id is None: # and method is not None and params is not None:
self.notification(method, params, response)