From 1f507d5875c592d80d2cddbcf44da0c2de382f3c Mon Sep 17 00:00:00 2001 From: Sergei Tikhomirov Date: Thu, 18 Jun 2026 19:35:47 +0200 Subject: [PATCH] feat(store): allow eligibilityProofHex in store query JSON Parse optional proof bytes from the query object and skip the outbound provider hook when proof is already attached (E2E and integrators). --- library/store_eligibility/eligibility_api.nim | 2 +- library/store_eligibility/store_query_json.nim | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/library/store_eligibility/eligibility_api.nim b/library/store_eligibility/eligibility_api.nim index dae14ce87..accdb584c 100644 --- a/library/store_eligibility/eligibility_api.nim +++ b/library/store_eligibility/eligibility_api.nim @@ -133,7 +133,7 @@ proc logosdelivery_store_query( let peer = peers.parsePeerInfo(($providerAddr).split(",")).valueOr: return err("StoreRequest failed to parse peer addr: " & $error) - if not providerCb.isNil: + if storeQueryRequest.eligibilityProof.isNone and not providerCb.isNil: let canonicalHex = storeEligibilityCanonicalHex(storeQueryRequest) var outProof = newString(EligibilityOutProofHexMinLen) outProof.setLen(EligibilityOutProofHexMinLen) diff --git a/library/store_eligibility/store_query_json.nim b/library/store_eligibility/store_query_json.nim index d8281f9c7..7f1df01ae 100644 --- a/library/store_eligibility/store_query_json.nim +++ b/library/store_eligibility/store_query_json.nim @@ -46,6 +46,14 @@ func storeQueryRequestFromJson*( else: none(uint64) + var eligibilityProof = none(seq[byte]) + if jsonContent.contains("eligibilityProofHex"): + let proofHex = jsonContent["eligibilityProofHex"].getStr() + eligibilityProof = try: + some(proofHex.hexToSeqByte()) + except ValueError: + return err("Failed converting eligibilityProofHex to bytes") + let startTime = ?jsonContent.getProtoInt64("timeStart") let endTime = ?jsonContent.getProtoInt64("timeEnd") @@ -61,5 +69,6 @@ func storeQueryRequestFromJson*( paginationCursor: paginationCursor, paginationForward: paginationForward, paginationLimit: paginationLimit, + eligibilityProof: eligibilityProof, ) )