/// <summary> /// Updates and stores the provided claim in the specified wallet. /// </summary> /// <remarks> /// <para> /// This method updates the claim provided in the <paramref name="claimsJson"/> parameter /// with a blinded master secret and stores it in the wallet specified in the /// <paramref name="wallet"/> parameter. /// </para> /// <para> /// The claim JSON is typically structured as follows: /// <code> /// { /// "claim": {attr1:[value, value_as_int]} /// "signature": <signature>, /// "schema_seq_no": string, /// "revoc_reg_seq_no", string /// "issuer_did", string /// } /// </code> /// It contains the information about the <c>schema_seq_no</c>, <c>issuer_did</c> /// and <c>revoc_reg_seq_no</c> - see the <see cref="IssuerCreateClaimAsync(Wallet, string, string, int)"/> /// method for details. /// </para> /// Seq_no is a sequence number of the corresponding transaction in the ledger. /// </remarks> /// <param name="wallet">The target wallet.</param> /// <param name="claimsJson">The claims JSON.</param> /// <returns>An asynchronous <see cref="Task"/> that completes when the operation has completed.</returns> public static Task ProverStoreClaimAsync(Wallet wallet, string claimsJson) { var taskCompletionSource = new TaskCompletionSource <bool>(); var commandHandle = PendingCommands.Add(taskCompletionSource); var commandResult = IndyNativeMethods.indy_prover_store_claim( commandHandle, wallet.Handle, claimsJson, CallbackHelper.TaskCompletingNoValueCallback ); CallbackHelper.CheckResult(commandResult); return(taskCompletionSource.Task); }