From 9fae8f51538f206678079f2fe70c49f41683f967 Mon Sep 17 00:00:00 2001 From: Lex Berezhny <lex@damoti.com> Date: Sun, 21 Apr 2019 11:06:03 -0400 Subject: [PATCH] added --include_protobuf to add hexlified protobuf to RPC responses --- lbrynet/extras/daemon/Daemon.py | 3 ++- lbrynet/extras/daemon/json_response_encoder.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lbrynet/extras/daemon/Daemon.py b/lbrynet/extras/daemon/Daemon.py index 9ea530a13..55feba7f5 100644 --- a/lbrynet/extras/daemon/Daemon.py +++ b/lbrynet/extras/daemon/Daemon.py @@ -441,13 +441,14 @@ class Daemon(metaclass=JSONRPCServerType): async def handle_old_jsonrpc(self, request): data = await request.json() + include_protobuf = data.get('params', {}).pop('include_protobuf', False) result = await self._process_rpc_call(data) ledger = None if 'wallet' in self.component_manager.get_components_status(): # self.ledger only available if wallet component is not skipped ledger = self.ledger return web.Response( - text=jsonrpc_dumps_pretty(result, ledger=ledger), + text=jsonrpc_dumps_pretty(result, ledger=ledger, include_protobuf=include_protobuf), content_type='application/json' ) diff --git a/lbrynet/extras/daemon/json_response_encoder.py b/lbrynet/extras/daemon/json_response_encoder.py index b2f62ea32..36d89f78f 100644 --- a/lbrynet/extras/daemon/json_response_encoder.py +++ b/lbrynet/extras/daemon/json_response_encoder.py @@ -98,9 +98,10 @@ def encode_file_doc(): class JSONResponseEncoder(JSONEncoder): - def __init__(self, *args, ledger: MainNetLedger, **kwargs): + def __init__(self, *args, ledger: MainNetLedger, include_protobuf=False, **kwargs): super().__init__(*args, **kwargs) self.ledger = ledger + self.include_protobuf = include_protobuf def default(self, obj): # pylint: disable=method-hidden if isinstance(obj, Account): @@ -168,6 +169,8 @@ class JSONResponseEncoder(JSONEncoder): }) if txo.script.is_claim_name or txo.script.is_update_claim: output['value'] = txo.claim + if self.include_protobuf: + output['protobuf'] = hexlify(txo.claim.to_bytes()) output['sub_type'] = txo.claim.claim_type if txo.channel is not None: output['signing_channel'] = {