Example #1
0
        /// <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);
        }