mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-07-26 06:23:14 +00:00
fix(store): retain eligibilityProof on outbound storeQuery
Stop clearing eligibilityProof after JSON parse in logosdelivery_store_query so tag-30 proof bytes reach the remote Store handler (Step 17 paid E2E). Add waku_store test for E2E query JSON / N8 canonical parity.
This commit is contained in:
parent
538d358c95
commit
a40fd258da
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
46
tests/waku_store/test_store_query_json_canonical.nim
Normal file
46
tests/waku_store/test_store_query_json_canonical.nim
Normal file
@ -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)]
|
||||
Loading…
x
Reference in New Issue
Block a user