/// <summary> /// Creates a new revocation registry for the provided claim definition. /// </summary> /// <remarks> /// The revocation registry is stored in the provided <see cref="Wallet"/> and is identified by /// a unique key which is returned in the revocation registry JSON string returned by the method. /// </remarks> /// <param name="wallet">The wallet to store the revocation registry in.</param> /// <param name="issuerDid">The DID of the issuer that signed the revoc_reg transaction to the ledger.</param> /// <param name="schemaSeqNo">The sequence number of a schema transaction in the ledger.</param> /// <param name="maxClaimNum">The maximum number of claims the new registry can process.</param> /// <returns>An asynchronous <see cref="Task{T}"/> that, when the operation completes, resolves /// to a JSON string containing the revocation registry.</returns> public static Task <string> IssuerCreateAndStoreRevocRegAsync(Wallet wallet, string issuerDid, int schemaSeqNo, int maxClaimNum) { var taskCompletionSource = new TaskCompletionSource <string>(); var commandHandle = PendingCommands.Add(taskCompletionSource); var commandResult = IndyNativeMethods.indy_issuer_create_and_store_revoc_reg( commandHandle, wallet.Handle, issuerDid, schemaSeqNo, maxClaimNum, _issuerCreateAndStoreClaimRevocRegCallback ); CallbackHelper.CheckResult(commandResult); return(taskCompletionSource.Task); }