From 6553f6bd77208ed9e1e60e677a795b86c2a1d696 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Sun, 29 Dec 2024 20:42:41 -0500 Subject: [PATCH] Ensure that result field is present in JSON RPC response before processing. --- nucypher/policy/conditions/json/rpc.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nucypher/policy/conditions/json/rpc.py b/nucypher/policy/conditions/json/rpc.py index e4187c295..c4f690828 100644 --- a/nucypher/policy/conditions/json/rpc.py +++ b/nucypher/policy/conditions/json/rpc.py @@ -64,14 +64,18 @@ class BaseJsonRPCCall(JsonRequestCall, ABC): data = self._fetch(endpoint, **context) # response contains a value for either "result" or "error" - error = data.get("error", None) + error = data.get("error") if error: raise JsonRequestException( f"JSON RPC Request failed with error in response: code={error['code']}, msg={error['message']}" ) # obtain result first then perform query - result = data["result"] + result = data.get("result") + if not result: + raise JsonRequestException( + f"Malformed JSON RPC response, no 'result' field - data={data}" + ) query_result = self._query_response(result, **context) return query_result