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.
This commit is contained in:
Sergei Tikhomirov 2026-06-19 12:04:31 +02:00
parent a40fd258da
commit 32fa7dbefd
No known key found for this signature in database
GPG Key ID: 6A1F8ED9D6538027

View File

@ -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)