von_anchor/anchor/issuer.py
async def _send_rev_reg_def(self, rr_id: str) -> None:
        """
        Move tails file from hopper; deserialize revocation registry definition and initial entry;
        send to ledger and cache revocation registry definition.

        Operation serializes to subdirectory within tails hopper directory; symbolic
        link presence signals completion.

        Raise AbsentRevReg if revocation registry is not ready in hopper, or AbsentTails if
        tails file is not yet linked by its revocation registry identifier.

        :param rr_id: revocation registry identifier
        """

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

        cd_id = rev_reg_id2cred_def_id(rr_id)
        dir_tails = self.dir_tails_top(rr_id)
        dir_target = self.dir_tails_target(rr_id)

        if not Tails.linked(dir_tails, rr_id):
            LOGGER.debug(
                'Issuer._send_rev_reg_def <!< Tails file for rev reg %s not ready in dir %s',
                rr_id,
                dir_target)
            raise AbsentRevReg('Tails file for rev reg {} not ready in dir {}'.format(rr_id, dir_target))

        file_rr_def = join(dir_target, 'rr_def.json')
        if not isfile(file_rr_def):
            LOGGER.debug('Issuer._send_rev_reg_def <!< Rev reg def file %s not present', file_rr_def)
            raise AbsentRevReg('Rev reg def file {} not present'.format(file_rr_def))
        with open(file_rr_def, 'r') as fh_rr_def:
            rr_def_json = fh_rr_def.read()

        file_rr_ent = join(dir_target, 'rr_ent.json')
        if not isfile(file_rr_ent):
            LOGGER.debug('Issuer._send_rev_reg_def <!< Rev reg entry file %s not present', file_rr_ent)
            raise AbsentRevReg('Rev reg entry file {} not present'.format(file_rr_ent))
        with open(file_rr_ent, 'r') as fh_rr_ent:
            rr_ent_json = fh_rr_ent.read()

        file_tails = Tails.linked(dir_tails, rr_id)
        if not file_tails:
            LOGGER.debug('Issuer._send_rev_reg_def <!< Tails link %s not present in dir %s', rr_id, dir_target)
            raise AbsentTails('Tails link {} not present in dir {}'.format(rr_id, dir_target))

        if self._rrbx:
            dir_cd_id = join(self._dir_tails, cd_id)
            makedirs(dir_cd_id, exist_ok=True)
            rename(file_tails, join(dir_cd_id, basename(file_tails)))

        with REVO_CACHE.lock:
            rr_def_req_json = await ledger.build_revoc_reg_def_request(self.did, rr_def_json)
            await self._sign_submit(rr_def_req_json)
            await self.get_rev_reg_def(rr_id)  # add to cache en passant

        rr_ent_req_json = await ledger.build_revoc_reg_entry_request(self.did, rr_id, 'CL_ACCUM', rr_ent_json)
        await self._sign_submit(rr_ent_req_json)

        if self._rrbx:
            Tails.associate(self._dir_tails, rr_id, basename(file_tails))
            rmtree(dir_tails)
        else:
            remove(file_rr_def)
            remove(file_rr_ent)

        LOGGER.debug('Issuer._send_rev_reg_def <<<')

        Move tails file from hopper; deserialize revocation registry definition and initial entry;
        send to ledger and cache revocation registry definition.

        Operation serializes to subdirectory within tails hopper directory; symbolic
        link presence signals completion.

        Raise AbsentRevReg if revocation registry is not ready in hopper, or AbsentTails if
        tails file is not yet linked by its revocation registry identifier.

        :param rr_id: revocation registry identifier
        
Move tails file from hopper; deserialize revocation registry definition and initial entry;
send to ledger and cache revocation registry definition.

Operation serializes to subdirectory within tails hopper directory; symbolic
link presence signals completion.

Raise AbsentRevReg if revocation registry is not ready in hopper, or AbsentTails if
tails file is not yet linked by its revocation registry identifier.
Move tails file from hopper ; deserialize revocation registry definition and initial entry ; send to ledger and cache revocation registry definition . Operation serializes to subdirectory within tails hopper directory ; symbolic link presence signals completion . Raise AbsentRevReg if revocation registry is not ready in hopper or AbsentTails if tails file is not yet linked by its revocation registry identifier .
async def _send_rev_reg_def(self, rr_id: str) -> None:
        LOGGER.debug('Issuer._send_rev_reg_def >>> rr_id: %s', rr_id)
        cd_id = rev_reg_id2cred_def_id(rr_id)
        dir_tails = self.dir_tails_top(rr_id)
        dir_target = self.dir_tails_target(rr_id)
        if not Tails.linked(dir_tails, rr_id):
            LOGGER.debug(
                'Issuer._send_rev_reg_def <!< Tails file for rev reg %s not ready in dir %s',
                rr_id,
                dir_target)
            raise AbsentRevReg('Tails file for rev reg {} not ready in dir {}'.format(rr_id, dir_target))
        file_rr_def = join(dir_target, 'rr_def.json')
        if not isfile(file_rr_def):
            LOGGER.debug('Issuer._send_rev_reg_def <!< Rev reg def file %s not present', file_rr_def)
            raise AbsentRevReg('Rev reg def file {} not present'.format(file_rr_def))
        with open(file_rr_def, 'r') as fh_rr_def:
            rr_def_json = fh_rr_def.read()
        file_rr_ent = join(dir_target, 'rr_ent.json')
        if not isfile(file_rr_ent):
            LOGGER.debug('Issuer._send_rev_reg_def <!< Rev reg entry file %s not present', file_rr_ent)
            raise AbsentRevReg('Rev reg entry file {} not present'.format(file_rr_ent))
        with open(file_rr_ent, 'r') as fh_rr_ent:
            rr_ent_json = fh_rr_ent.read()
        file_tails = Tails.linked(dir_tails, rr_id)
        if not file_tails:
            LOGGER.debug('Issuer._send_rev_reg_def <!< Tails link %s not present in dir %s', rr_id, dir_target)
            raise AbsentTails('Tails link {} not present in dir {}'.format(rr_id, dir_target))
        if self._rrbx:
            dir_cd_id = join(self._dir_tails, cd_id)
            makedirs(dir_cd_id, exist_ok=True)
            rename(file_tails, join(dir_cd_id, basename(file_tails)))
        with REVO_CACHE.lock:
            rr_def_req_json = await ledger.build_revoc_reg_def_request(self.did, rr_def_json)
            await self._sign_submit(rr_def_req_json)
            await self.get_rev_reg_def(rr_id)  
        rr_ent_req_json = await ledger.build_revoc_reg_entry_request(self.did, rr_id, 'CL_ACCUM', rr_ent_json)
        await self._sign_submit(rr_ent_req_json)
        if self._rrbx:
            Tails.associate(self._dir_tails, rr_id, basename(file_tails))
            rmtree(dir_tails)
        else:
            remove(file_rr_def)
            remove(file_rr_ent)
        LOGGER.debug('Issuer._send_rev_reg_def <<<')
async def _send_rev_reg_def ( self , rr_id : str ) -> None : LOGGER . debug ( 'Issuer._send_rev_reg_def >>> rr_id: %s' , rr_id ) cd_id = rev_reg_id2cred_def_id ( rr_id ) dir_tails = self . dir_tails_top ( rr_id ) dir_target = self . dir_tails_target ( rr_id ) if not Tails . linked ( dir_tails , rr_id ) : LOGGER . debug ( 'Issuer._send_rev_reg_def <!< Tails file for rev reg %s not ready in dir %s' , rr_id , dir_target ) raise AbsentRevReg ( 'Tails file for rev reg {} not ready in dir {}' . format ( rr_id , dir_target ) ) file_rr_def = join ( dir_target , 'rr_def.json' ) if not isfile ( file_rr_def ) : LOGGER . debug ( 'Issuer._send_rev_reg_def <!< Rev reg def file %s not present' , file_rr_def ) raise AbsentRevReg ( 'Rev reg def file {} not present' . format ( file_rr_def ) ) with open ( file_rr_def , 'r' ) as fh_rr_def : rr_def_json = fh_rr_def . read ( ) file_rr_ent = join ( dir_target , 'rr_ent.json' ) if not isfile ( file_rr_ent ) : LOGGER . debug ( 'Issuer._send_rev_reg_def <!< Rev reg entry file %s not present' , file_rr_ent ) raise AbsentRevReg ( 'Rev reg entry file {} not present' . format ( file_rr_ent ) ) with open ( file_rr_ent , 'r' ) as fh_rr_ent : rr_ent_json = fh_rr_ent . read ( ) file_tails = Tails . linked ( dir_tails , rr_id ) if not file_tails : LOGGER . debug ( 'Issuer._send_rev_reg_def <!< Tails link %s not present in dir %s' , rr_id , dir_target ) raise AbsentTails ( 'Tails link {} not present in dir {}' . format ( rr_id , dir_target ) ) if self . _rrbx : dir_cd_id = join ( self . _dir_tails , cd_id ) makedirs ( dir_cd_id , exist_ok = True ) rename ( file_tails , join ( dir_cd_id , basename ( file_tails ) ) ) with REVO_CACHE . lock : rr_def_req_json = await ledger . build_revoc_reg_def_request ( self . did , rr_def_json ) await self . _sign_submit ( rr_def_req_json ) await self . get_rev_reg_def ( rr_id ) rr_ent_req_json = await ledger . build_revoc_reg_entry_request ( self . did , rr_id , 'CL_ACCUM' , rr_ent_json ) await self . _sign_submit ( rr_ent_req_json ) if self . _rrbx : Tails . associate ( self . _dir_tails , rr_id , basename ( file_tails ) ) rmtree ( dir_tails ) else : remove ( file_rr_def ) remove ( file_rr_ent ) LOGGER . debug ( 'Issuer._send_rev_reg_def <<<' )
Move tails file from hopper; deserialize revocation registry definition and initial entry;
send to ledger and cache revocation registry definition.
Move tails file from hopper ; deserialize revocation registry definition and initial entry ; send to ledger and cache revocation registry definition .
"""
        Move tails file from hopper; deserialize revocation registry definition and initial entry;
        send to ledger and cache revocation registry definition.

        Operation serializes to subdirectory within tails hopper directory; symbolic
        link presence signals completion.

        Raise AbsentRevReg if revocation registry is not ready in hopper, or AbsentTails if
        tails file is not yet linked by its revocation registry identifier.

        :param rr_id: revocation registry identifier
        """ # add to cache en passant
self
rr_id
str
revocation registry identifier
revocation registry identifier