/// <summary> /// Revokes a user identified by a revoc_id in a given revoc-registry. /// </summary> /// <remarks> /// <para> /// The corresponding claim definition and revocation registry must be already /// have been created and stored in the wallet. /// </para> /// </remarks> /// <param name="wallet">The target wallet.</param> /// <param name="issuerDid">The DID of the issuer.</param> /// <param name="schemaSequenceNumber">The sequence number of the schema.</param> /// <param name="userRevocIndex">index of the user in the revocation registry</param> /// <returns>An asynchronous <see cref="Task{T}"/> that, when the operation completes, resolves /// to a revocation registry update JSON with a revoked claim.</returns> public static Task <string> IssuerRevokeClaimAsync(Wallet wallet, string issuerDid, int schemaSequenceNumber, int userRevocIndex) { var taskCompletionSource = new TaskCompletionSource <string>(); var commandHandle = PendingCommands.Add(taskCompletionSource); var commandResult = IndyNativeMethods.indy_issuer_revoke_claim( commandHandle, wallet.Handle, issuerDid, schemaSequenceNumber, userRevocIndex, IssuerRevokeClaimCallback ); CallbackHelper.CheckResult(commandResult); return(taskCompletionSource.Task); }