von_anchor/anchor/issuer.py
async def revoke_cred(self, rr_id: str, cr_id) -> int:
        """
        Revoke credential that input revocation registry identifier and
        credential revocation identifier specify.

        Return (epoch seconds) time of revocation.

        Raise AbsentTails if no tails file is available for input revocation registry identifier.
        Raise WalletState for closed wallet.
        Raise BadRevocation if issuer cannot revoke specified credential for any other reason
        (e.g., did not issue it, already revoked it).

        :param rr_id: revocation registry identifier
        :param cr_id: credential revocation identifier
        :return: time of revocation, in epoch seconds
        """

        LOGGER.debug('Issuer.revoke_cred >>> rr_id: %s, cr_id: %s', rr_id, cr_id)

        if not self.wallet.handle:
            LOGGER.debug('Issuer.revoke_cred <!< Wallet %s is closed', self.wallet.name)
            raise WalletState('Wallet {} is closed'.format(self.wallet.name))

        if not ok_rev_reg_id(rr_id):
            LOGGER.debug('Issuer.revoke_cred <!< Bad rev reg id %s', rr_id)
            raise BadIdentifier('Bad rev reg id {}'.format(rr_id))

        tails_reader_handle = (await Tails(
            self._dir_tails,
            *rev_reg_id2cred_def_id_tag(rr_id)).open()).reader_handle
        try:
            rrdelta_json = await anoncreds.issuer_revoke_credential(
                self.wallet.handle,
                tails_reader_handle,
                rr_id,
                cr_id)
        except IndyError as x_indy:
            LOGGER.debug(
                'Issuer.revoke_cred <!< Could not revoke revoc reg id %s, cred rev id %s: indy error code %s',
                rr_id,
                cr_id,
                x_indy.error_code)
            raise BadRevocation(
                'Could not revoke revoc reg id {}, cred rev id {}: indy error code {}'.format(
                    rr_id,
                    cr_id,
                    x_indy.error_code))

        rr_ent_req_json = await ledger.build_revoc_reg_entry_request(self.did, rr_id, 'CL_ACCUM', rrdelta_json)
        resp_json = await self._sign_submit(rr_ent_req_json)  # raises AbsentPool or ClosedPool if applicable
        resp = json.loads(resp_json)

        rv = self.pool.protocol.txn2epoch(resp)
        LOGGER.debug('Issuer.revoke_cred <<< %s', rv)
        return rv

        Revoke credential that input revocation registry identifier and
        credential revocation identifier specify.

        Return (epoch seconds) time of revocation.

        Raise AbsentTails if no tails file is available for input revocation registry identifier.
        Raise WalletState for closed wallet.
        Raise BadRevocation if issuer cannot revoke specified credential for any other reason
        (e.g., did not issue it, already revoked it).

        :param rr_id: revocation registry identifier
        :param cr_id: credential revocation identifier
        :return: time of revocation, in epoch seconds
        
Revoke credential that input revocation registry identifier and
credential revocation identifier specify.

Return (epoch seconds) time of revocation.

Raise AbsentTails if no tails file is available for input revocation registry identifier.
Raise WalletState for closed wallet.
Raise BadRevocation if issuer cannot revoke specified credential for any other reason
.
Revoke credential that input revocation registry identifier and credential revocation identifier specify . Return ( epoch seconds ) time of revocation . Raise AbsentTails if no tails file is available for input revocation registry identifier . Raise WalletState for closed wallet . Raise BadRevocation if issuer cannot revoke specified credential for any other reason .
async def revoke_cred(self, rr_id: str, cr_id) -> int:
        LOGGER.debug('Issuer.revoke_cred >>> rr_id: %s, cr_id: %s', rr_id, cr_id)
        if not self.wallet.handle:
            LOGGER.debug('Issuer.revoke_cred <!< Wallet %s is closed', self.wallet.name)
            raise WalletState('Wallet {} is closed'.format(self.wallet.name))
        if not ok_rev_reg_id(rr_id):
            LOGGER.debug('Issuer.revoke_cred <!< Bad rev reg id %s', rr_id)
            raise BadIdentifier('Bad rev reg id {}'.format(rr_id))
        tails_reader_handle = (await Tails(
            self._dir_tails,
            *rev_reg_id2cred_def_id_tag(rr_id)).open()).reader_handle
        try:
            rrdelta_json = await anoncreds.issuer_revoke_credential(
                self.wallet.handle,
                tails_reader_handle,
                rr_id,
                cr_id)
        except IndyError as x_indy:
            LOGGER.debug(
                'Issuer.revoke_cred <!< Could not revoke revoc reg id %s, cred rev id %s: indy error code %s',
                rr_id,
                cr_id,
                x_indy.error_code)
            raise BadRevocation(
                'Could not revoke revoc reg id {}, cred rev id {}: indy error code {}'.format(
                    rr_id,
                    cr_id,
                    x_indy.error_code))
        rr_ent_req_json = await ledger.build_revoc_reg_entry_request(self.did, rr_id, 'CL_ACCUM', rrdelta_json)
        resp_json = await self._sign_submit(rr_ent_req_json)  
        resp = json.loads(resp_json)
        rv = self.pool.protocol.txn2epoch(resp)
        LOGGER.debug('Issuer.revoke_cred <<< %s', rv)
        return rv
async def revoke_cred ( self , rr_id : str , cr_id ) -> int : LOGGER . debug ( 'Issuer.revoke_cred >>> rr_id: %s, cr_id: %s' , rr_id , cr_id ) if not self . wallet . handle : LOGGER . debug ( 'Issuer.revoke_cred <!< Wallet %s is closed' , self . wallet . name ) raise WalletState ( 'Wallet {} is closed' . format ( self . wallet . name ) ) if not ok_rev_reg_id ( rr_id ) : LOGGER . debug ( 'Issuer.revoke_cred <!< Bad rev reg id %s' , rr_id ) raise BadIdentifier ( 'Bad rev reg id {}' . format ( rr_id ) ) tails_reader_handle = ( await Tails ( self . _dir_tails , * rev_reg_id2cred_def_id_tag ( rr_id ) ) . open ( ) ) . reader_handle try : rrdelta_json = await anoncreds . issuer_revoke_credential ( self . wallet . handle , tails_reader_handle , rr_id , cr_id ) except IndyError as x_indy : LOGGER . debug ( 'Issuer.revoke_cred <!< Could not revoke revoc reg id %s, cred rev id %s: indy error code %s' , rr_id , cr_id , x_indy . error_code ) raise BadRevocation ( 'Could not revoke revoc reg id {}, cred rev id {}: indy error code {}' . format ( rr_id , cr_id , x_indy . error_code ) ) rr_ent_req_json = await ledger . build_revoc_reg_entry_request ( self . did , rr_id , 'CL_ACCUM' , rrdelta_json ) resp_json = await self . _sign_submit ( rr_ent_req_json ) resp = json . loads ( resp_json ) rv = self . pool . protocol . txn2epoch ( resp ) LOGGER . debug ( 'Issuer.revoke_cred <<< %s' , rv ) return rv
Revoke credential that input revocation registry identifier and
credential revocation identifier specify.
Revoke credential that input revocation registry identifier and credential revocation identifier specify .
"""
        Revoke credential that input revocation registry identifier and
        credential revocation identifier specify.

        Return (epoch seconds) time of revocation.

        Raise AbsentTails if no tails file is available for input revocation registry identifier.
        Raise WalletState for closed wallet.
        Raise BadRevocation if issuer cannot revoke specified credential for any other reason
        (e.g., did not issue it, already revoked it).

        :param rr_id: revocation registry identifier
        :param cr_id: credential revocation identifier
        :return: time of revocation, in epoch seconds
        """ # raises AbsentPool or ClosedPool if applicable
time of revocation, in epoch seconds
time of revocation in epoch seconds
self
rr_id
str
revocation registry identifier
revocation registry identifier
cr_id
credential revocation identifier
credential revocation identifier