obelisk

Electrum server using libbitcoin as its backend
git clone https://git.parazyd.org/obelisk
Log | Files | Refs | README | LICENSE

commit 0c8ef25aea1b5e0bab605b950f77d93279861c9b
parent 4bd137d749e08644979fdbc53726a6cac578ea00
Author: parazyd <parazyd@dyne.org>
Date:   Mon, 19 Apr 2021 16:17:00 +0200

Style cleanups.

Diffstat:
Mobelisk/protocol.py | 19++++++++++---------
Mobelisk/zeromq.py | 6+++---
2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/obelisk/protocol.py b/obelisk/protocol.py @@ -112,11 +112,11 @@ class ElectrumProtocol(asyncio.Protocol): # pylint: disable=R0904,R0902 self.log.debug("ElectrumProtocol.stop()") self.stopped = True if self.bx: - unsub_pool = [] - for i in self.sh_subscriptions: # pragma: no cover - self.log.debug("bx.unsubscribe %s", i) - unsub_pool.append(self.bx.unsubscribe_scripthash(i)) - await asyncio.gather(*unsub_pool, return_exceptions=True) + # unsub_pool = [] + # for i in self.sh_subscriptions: # pragma: no cover + # self.log.debug("bx.unsubscribe %s", i) + # unsub_pool.append(self.bx.unsubscribe_scripthash(i)) + # await asyncio.gather(*unsub_pool, return_exceptions=True) await self.bx.stop() # idxs = [] @@ -470,15 +470,16 @@ class ElectrumProtocol(asyncio.Protocol): # pylint: disable=R0904,R0902 if _ec and _ec != 0: return JsonRPCError.internalerror() - task = asyncio.create_task(self.scripthash_notifier(writer, scripthash)) - self.sh_subscriptions[scripthash] = {"task": task} - if len(history) < 1: return {"result": None} # TODO: Check how history4 acts for mempool/unconfirmed status = ElectrumProtocol.__scripthash_status_from_history(history) - self.sh_subscriptions[scripthash]["status"] = status + self.sh_subscriptions[scripthash] = {"status": status} + + task = asyncio.create_task(self.scripthash_notifier(writer, scripthash)) + self.sh_subscriptions[scripthash]["task"] = task + return {"result": ElectrumProtocol.__scripthash_status_encode(status)} @staticmethod diff --git a/obelisk/zeromq.py b/obelisk/zeromq.py @@ -268,7 +268,7 @@ class Client: async def _subscription_request(self, command, data): request = await self._request(command, data) - request.queue = asyncio.Queue(loop=self._settings._loop) # pylint: disable=W0212 + request.queue = asyncio.Queue() error_code, _ = await self._wait_for_response(request) return error_code, request.queue @@ -353,8 +353,6 @@ class Client: async def unsubscribe_scripthash(self, scripthash): """Unsubscribe scripthash""" - # TODO: This call should ideally also remove the subscription - # request from the RequestCollection. # This call solicits a final call from the server with an # `error::service_stopped` error code. command = b"unsubscribe.key" @@ -390,6 +388,8 @@ class Client: # self.log.debug("history correlated: %s", correlated_points) # BUG: In libbitcoin v4 sometimes transactions mess up and double + # https://github.com/libbitcoin/libbitcoin-server/issues/545 + # # The following is not a very efficient solution correlated = [ i for n, i in enumerate(correlated_points)