From cf042dd9dd71dfd45207a847c41ce987d521b6d2 Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Sun, 3 Feb 2019 14:20:20 +0800 Subject: [PATCH] Revert "Remove residual electrum-header cruft" This reverts commit a78abe8b90f3d73056957e1f2c31d109d53df8cd. --- electrumx/server/session.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/electrumx/server/session.py b/electrumx/server/session.py index a114116..cef8ec3 100644 --- a/electrumx/server/session.py +++ b/electrumx/server/session.py @@ -342,7 +342,7 @@ class SessionManager(object): # Paranoia: a reorg could race and leave db_height lower height = min(height, self.db.db_height) raw = await self.raw_header(height) - self.hsub_results = {'hex': raw.hex(), 'height': height} + self.hsub_results = (electrum, {'hex': raw.hex(), 'height': height}) self.notified_height = height # --- LocalRPC command handlers @@ -697,6 +697,7 @@ class ElectrumX(SessionBase): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.subscribe_headers = False + self.subscribe_headers_raw = False self.connection.max_response_size = self.env.max_send self.max_subs = self.env.max_session_subs self.hashX_subs = {} @@ -779,13 +780,18 @@ class ElectrumX(SessionBase): async def subscribe_headers_result(self): '''The result of a header subscription or notification.''' - return self.session_mgr.hsub_results + return self.session_mgr.hsub_results[self.subscribe_headers_raw] - async def headers_subscribe(self): - '''Subscribe to get raw headers of new blocks.''' + async def _headers_subscribe(self, raw): + '''Subscribe to get headers of new blocks.''' + self.subscribe_headers_raw = assert_boolean(raw) self.subscribe_headers = True return await self.subscribe_headers_result() + async def headers_subscribe(self): + '''Subscribe to get raw headers of new blocks.''' + return await self._headers_subscribe(True) + async def add_peer(self, features): '''Add a peer (but only if the peer resolves to the source).''' return await self.peer_mgr.on_add_peer(features, self.peer_address())