From 32fa7dbefd66e8c68e153df882ff362b95330de9 Mon Sep 17 00:00:00 2001 From: Sergei Tikhomirov Date: Fri, 19 Jun 2026 12:04:31 +0200 Subject: [PATCH] Add Step 17 Store query N8 canonical parity tests. Lock Nim canonical bytes and protobuf roundtrip to the lez-payment-streams E2E query shape so provider verification uses the same wire as Rust proof signing. --- .../test_store_query_json_canonical.nim | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tests/waku_store/test_store_query_json_canonical.nim b/tests/waku_store/test_store_query_json_canonical.nim index ffa7e0fc7..18937916e 100644 --- a/tests/waku_store/test_store_query_json_canonical.nim +++ b/tests/waku_store/test_store_query_json_canonical.nim @@ -25,6 +25,22 @@ const E2eQueryJson = """ } """ +const Step17E2eQueryJson = """ +{ + "requestId": "req-1", + "includeData": true, + "pubsubTopic": "/waku/2/rs/0/1", + "contentTopics": ["/lez-payment-streams/1/e2e-eligibility/proto"], + "timeStart": 10, + "paginationForward": true, + "paginationLimit": 100, + "messageHashes": [] +} +""" + +const Step17N8ReferenceWireHex = + "2f4c455a2f76302e312f53746f7265456c69676962696c6974792f0000000000050000007265712d3101010e0000002f77616b752f322f72732f302f31010000002c0000002f6c657a2d7061796d656e742d73747265616d732f312f6532652d656c69676962696c6974792f70726f746f010a0000000000000000000000000001016400000000000000" + procSuite "Waku Store - store query JSON (N8)": test "E2E query JSON matches n8_canonical_wire_hex reference": let parsed = parseJson(E2eQueryJson) @@ -33,6 +49,23 @@ procSuite "Waku Store - store query JSON (N8)": let req = reqRes.get() check storeEligibilityCanonicalHex(req) == N8ReferenceWireHex + test "Step 17 E2E query JSON matches lez-payment-streams n8 wire": + let parsed = parseJson(Step17E2eQueryJson) + let reqRes = storeQueryRequestFromJson(parsed) + check reqRes.isOk() + let req = reqRes.get() + check storeEligibilityCanonicalHex(req) == Step17N8ReferenceWireHex + + test "Step 17 E2E query JSON protobuf roundtrip matches n8 wire": + let parsed = parseJson(Step17E2eQueryJson) + let reqRes = storeQueryRequestFromJson(parsed) + check reqRes.isOk() + var req = reqRes.get() + req.eligibilityProof = some(@[byte(0xAB)]) + let buf = req.encode().buffer + let decoded = StoreQueryRequest.decode(buf).get() + check storeEligibilityCanonicalHex(decoded) == Step17N8ReferenceWireHex + test "E2E query JSON protobuf roundtrip matches N8 reference": let parsed = parseJson(E2eQueryJson) let reqRes = storeQueryRequestFromJson(parsed)