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:
if session.stopped():
continue
if session.contains_subscription(subdesc):
+ if response.get('method') == "blockchain.address.subscribe2":
+ response['method'] = "blockchain.address.subscribe"
session.send_response(response)
def send_response(self, internal_id, response):