diff --git a/library/store_eligibility/eligibility_api.nim b/library/store_eligibility/eligibility_api.nim index accdb584c..95e789aa3 100644 --- a/library/store_eligibility/eligibility_api.nim +++ b/library/store_eligibility/eligibility_api.nim @@ -126,8 +126,6 @@ proc logosdelivery_store_query( var storeQueryRequest = storeQueryRequestFromJson(jsonContentRes.get()).valueOr: return err("StoreRequest invalid query: " & error) - storeQueryRequest.eligibilityProof = none(seq[byte]) - let (providerCb, providerUserData) = snapshotProviderCb(ctx) let peer = peers.parsePeerInfo(($providerAddr).split(",")).valueOr: diff --git a/tests/all_tests_waku.nim b/tests/all_tests_waku.nim index 7cae38ddb..bc13e818b 100644 --- a/tests/all_tests_waku.nim +++ b/tests/all_tests_waku.nim @@ -40,6 +40,7 @@ import ./waku_store/test_rpc_codec, ./waku_store/test_store_eligibility_canonical, ./waku_store/test_store_eligibility_hooks, + ./waku_store/test_store_query_json_canonical, ./waku_store/test_waku_store, ./waku_store/test_wakunode_store diff --git a/tests/waku_store/test_store_query_json_canonical.nim b/tests/waku_store/test_store_query_json_canonical.nim new file mode 100644 index 000000000..ffa7e0fc7 --- /dev/null +++ b/tests/waku_store/test_store_query_json_canonical.nim @@ -0,0 +1,46 @@ +{.used.} + +import std/[json, options], results, testutils/unittests +import logos_delivery/waku/waku_core, logos_delivery/waku/waku_store/[ + common, eligibility_canonical, rpc_codec +] +import ../../library/store_eligibility/store_query_json + +const N8ReferenceWireHex = + "2f4c455a2f76302e312f53746f7265456c69676962696c6974792f0000000000050000007265712d3101010d0000002f77616b752f322f746f70696301000000140000002f6d792d6170702f312f636861742f70726f746f010a000000000000000002000000010101010101010101010101010101010101010101010101010101010101010102020202020202020202020202020202020202020202020202020202020202020001016400000000000000" + +const E2eQueryJson = """ +{ + "requestId": "req-1", + "includeData": true, + "pubsubTopic": "/waku/2/topic", + "contentTopics": ["/my-app/1/chat/proto"], + "timeStart": 10, + "paginationForward": true, + "paginationLimit": 100, + "messageHashes": [ + "0101010101010101010101010101010101010101010101010101010101010101", + "0202020202020202020202020202020202020202020202020202020202020202" + ] +} +""" + +procSuite "Waku Store - store query JSON (N8)": + test "E2E query JSON matches n8_canonical_wire_hex reference": + let parsed = parseJson(E2eQueryJson) + let reqRes = storeQueryRequestFromJson(parsed) + check reqRes.isOk() + let req = reqRes.get() + check storeEligibilityCanonicalHex(req) == N8ReferenceWireHex + + test "E2E query JSON protobuf roundtrip matches N8 reference": + let parsed = parseJson(E2eQueryJson) + let reqRes = storeQueryRequestFromJson(parsed) + check reqRes.isOk() + var req = reqRes.get() + req.eligibilityProof = some(@[byte(0xAB), byte(0xCD)]) + let buf = req.encode().buffer + let decoded = StoreQueryRequest.decode(buf).get() + check storeEligibilityCanonicalHex(decoded) == N8ReferenceWireHex + check decoded.eligibilityProof.isSome() + check decoded.eligibilityProof.get() == @[byte(0xAB), byte(0xCD)]