@@ -313,6 +313,82 @@ async def indy_present_proof_v2(
313313 return holder_pres_ex , verifier_pres_ex
314314
315315
316+ async def jsonld_present_proof_v2 (
317+ holder : Controller ,
318+ verifier : Controller ,
319+ holder_connection_id : str ,
320+ verifier_connection_id : str ,
321+ * ,
322+ presentation_definition : Mapping [str , Any ],
323+ domain : Optional [str ] = None ,
324+ challenge : Optional [str ] = None ,
325+ comment : Optional [str ] = None ,
326+ ):
327+ """Present a credential using present proof v2 (DIF/JSON-LD)."""
328+ dif_options : Dict [str , Any ] = {"challenge" : challenge or str (uuid4 ())}
329+ if domain :
330+ dif_options ["domain" ] = domain
331+
332+ verifier_pres_ex = await verifier .post (
333+ "/present-proof-2.0/send-request" ,
334+ json = {
335+ "auto_verify" : False ,
336+ "comment" : comment or "Presentation request from minimal" ,
337+ "connection_id" : verifier_connection_id ,
338+ "presentation_request" : {
339+ "dif" : {
340+ "presentation_definition" : dict (presentation_definition ),
341+ "options" : dif_options ,
342+ }
343+ },
344+ "trace" : False ,
345+ },
346+ response = V20PresExRecord ,
347+ )
348+ verifier_pres_ex_id = verifier_pres_ex .pres_ex_id
349+
350+ holder_pres_ex = await holder .event_with_values (
351+ topic = "present_proof_v2_0" ,
352+ event_type = V20PresExRecord ,
353+ connection_id = holder_connection_id ,
354+ state = "request-received" ,
355+ )
356+ holder_pres_ex_id = holder_pres_ex .pres_ex_id
357+
358+ await holder .post (
359+ f"/present-proof-2.0/records/{ holder_pres_ex_id } /send-presentation" ,
360+ json = {"dif" : {}},
361+ response = V20PresExRecord ,
362+ )
363+
364+ await verifier .event_with_values (
365+ topic = "present_proof_v2_0" ,
366+ event_type = V20PresExRecord ,
367+ pres_ex_id = verifier_pres_ex_id ,
368+ state = "presentation-received" ,
369+ )
370+ await verifier .post (
371+ f"/present-proof-2.0/records/{ verifier_pres_ex_id } /verify-presentation" ,
372+ json = {},
373+ response = V20PresExRecord ,
374+ )
375+ verifier_pres_ex = await verifier .event_with_values (
376+ topic = "present_proof_v2_0" ,
377+ event_type = V20PresExRecord ,
378+ pres_ex_id = verifier_pres_ex_id ,
379+ state = "done" ,
380+ )
381+
382+ holder_pres_ex = await holder .event_with_values (
383+ topic = "present_proof_v2_0" ,
384+ event_type = V20PresExRecord ,
385+ pres_ex_id = holder_pres_ex_id ,
386+ state = "done" ,
387+ )
388+
389+ return holder_pres_ex , verifier_pres_ex
390+
391+
316392async def anoncreds_issue_credential_v2 (
317393 issuer : Controller ,
318394 holder : Controller ,
0 commit comments