diff --git a/.changeset/cozy-poets-go.md b/.changeset/cozy-poets-go.md new file mode 100644 index 0000000000..7728c99e1f --- /dev/null +++ b/.changeset/cozy-poets-go.md @@ -0,0 +1,6 @@ +--- +"@human-protocol/sdk": major +"@human-protocol/python-sdk": major +--- + +Updated KV Store utils in sdk to return empty string in case no value in subgraph instead of throwing and error diff --git a/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/kvstore/kvstore_utils.py b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/kvstore/kvstore_utils.py index a1d4f63f9e..d27476c509 100644 --- a/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/kvstore/kvstore_utils.py +++ b/packages/sdk/python/human-protocol-sdk/human_protocol_sdk/kvstore/kvstore_utils.py @@ -125,7 +125,7 @@ def get( address: str, key: str, options: Optional[SubgraphOptions] = None, - ) -> Optional[str]: + ) -> str: """Get the value of a specific key for an address. Queries the subgraph for a specific key-value pair associated with an address. @@ -181,7 +181,7 @@ def get( or "kvstores" not in kvstore_data["data"] or len(kvstore_data["data"]["kvstores"]) == 0 ): - return None + return "" return kvstore_data["data"]["kvstores"][0]["value"] @@ -232,12 +232,12 @@ def get_file_url_and_verify_hash( raise KVStoreClientError(f"Invalid address: {address}") url = KVStoreUtils.get(chain_id, address, key, options=options) - if url is None: + if url == "": raise KVStoreClientError("No URL found for the given address and key") hash = KVStoreUtils.get(chain_id, address, key + "_hash", options=options) - if hash is None: + if hash == "": raise KVStoreClientError("No hash found for the given address and url") content = requests.get(url).text diff --git a/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/kvstore/test_kvstore_utils.py b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/kvstore/test_kvstore_utils.py index 689150a360..f4fa1709cc 100644 --- a/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/kvstore/test_kvstore_utils.py +++ b/packages/sdk/python/human-protocol-sdk/test/human_protocol_sdk/kvstore/test_kvstore_utils.py @@ -149,7 +149,7 @@ def test_get_empty_value(self, mock_function): result = KVStoreUtils.get(ChainId.LOCALHOST, address, key) - self.assertIsNone(result) + self.assertEqual(result, "") mock_function.assert_called_once_with( NETWORKS[ChainId.LOCALHOST],