URI: 
       tSimplify protocol methods to have an abstraction for replying. - obelisk - Electrum server using libbitcoin as its backend
  HTML git clone https://git.parazyd.org/obelisk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit fc5879b01609e642b883f07e07efd94167e87e71
   DIR parent f707ca4997dfa23685946434974ddb3c9db3552d
  HTML Author: parazyd <parazyd@dyne.org>
       Date:   Wed,  7 Apr 2021 17:44:51 +0200
       
       Simplify protocol methods to have an abstraction for replying.
       
       Diffstat:
         M electrumobelisk/protocol.py         |      23 ++++++++++++-----------
       
       1 file changed, 12 insertions(+), 11 deletions(-)
       ---
   DIR diff --git a/electrumobelisk/protocol.py b/electrumobelisk/protocol.py
       t@@ -88,20 +88,28 @@ class ElectrumProtocol(asyncio.Protocol):
                await writer.drain()
                # writer.close()
        
       +    async def _send_reply(self, writer, resp, query):
       +        """Wrap function for sending replies"""
       +        if "error" in resp:
       +            return await self._send_error(writer, resp["error"], query["id"])
       +        return await self._send_response(writer, resp["result"], query["id"])
       +
            async def blockchain_block_header(self, query):
                self.log.debug("query: %s", query)
       +        if "params" not in query:
       +            return {"error": "malformed query"}
                # TODO: cp_height
                index = query["params"][0]
                cp_height = query["params"][1] if len(query["params"]) == 2 else 0
        
                if not is_non_negative_integer(index):
       -            return {"error": "Invalid block height"}
       +            return {"error": "invalid block height"}
                if not is_non_negative_integer(cp_height):
       -            return {"error": "Invalid cp_height"}
       +            return {"error": "invalid cp_height"}
        
                _ec, data = await self.bx.block_header(index)
                if _ec and _ec != 0:
       -            return {"error": "Request corrupted"}
       +            return {"error": "request corrupted"}
                return {"result": safe_hexlify(data)}
        
            async def handle_query(self, writer, query):  # pylint: disable=R0915,R0912,R0911
       t@@ -118,15 +126,8 @@ class ElectrumProtocol(asyncio.Protocol):
        
                if method == "blockchain.block.header":
                    self.log.debug("blockchain.block.header")
       -            if "params" not in query:
       -                return await self._send_error(writer, "Malformed query",
       -                                              query["id"])
                    resp = await self.blockchain_block_header(query)
       -            if "error" in resp:
       -                return await self._send_error(writer, resp["error"],
       -                                              query["id"])
       -            return await self._send_response(writer, resp["result"],
       -                                             query["id"])
       +            return await self._send_reply(writer, resp, query)
        
                if method == "blockchain.block.headers":
                    self.log.debug("blockchain.block.headers")