/// <summary> /// Builds a ledger request to get a DDO. /// </summary> /// <remarks> /// <para> /// This message builds a request message that is suitable for requesting a DDO from the ledger. /// </para> /// <para> /// The resulting message can be submitted to the ledger using the <see cref="SignAndSubmitRequestAsync(Pool, Wallet, string, string)"/> /// method or can be signed first using the <see cref="SignRequestAsync(Wallet, string, string)"/> /// method then submitted later using the <see cref="SubmitRequestAsync(Pool, string)"/> method. /// </para> /// </remarks> /// <param name="submitterDid">The DID of the party who will submit the request to the ledger.</param> /// <param name="targetDid">The DID of the DDO to get from the ledger.</param> /// <returns>An asynchronous <see cref="Task{T}"/> that resolves to a <see cref="string"/> /// containing the request JSON.</returns> public static Task <string> BuildGetDdoRequestAsync(string submitterDid, string targetDid) { var taskCompletionSource = new TaskCompletionSource <string>(); var commandHandle = PendingCommands.Add(taskCompletionSource); var result = IndyNativeMethods.indy_build_get_ddo_request( commandHandle, submitterDid, targetDid, _buildRequestCallback); CallbackHelper.CheckResult(result); return(taskCompletionSource.Task); }