code: async def store_cred(self, cred_json: str, cred_req_metadata_json) -> str:
          
  
          LOGGER.debug(
              'HolderProver.store_cred >>> cred_json: %s, cred_req_metadata_json: %s',
              cred_json,
              cred_req_metadata_json)
  
          cred = json.loads(cred_json)
          cred_def_json = await self.get_cred_def(cred['cred_def_id'])
          rr_id = cred['rev_reg_id']
          rrdef_json = None
          if rr_id:
              await self._sync_revoc(rr_id)
              rrdef_json = await self._get_rev_reg_def(rr_id)
  
          rv = await anoncreds.prover_store_credential(
              self.wallet.handle,
              None,  # cred_id, let indy-sdk generate random uuid
              cred_req_metadata_json,
              cred_json,
              cred_def_json,
              rrdef_json)
  
          LOGGER.debug('HolderProver.store_cred <<< %s', rv)
          return rv
docs: Store cred in wallet as HolderProver, return its credential identifier as created in wallet.
  
          Raise AbsentTails if tails file not available for revocation registry for input credential.
  
          :param cred_json: credential json as HolderProver created
          :param cred_req_metadata_json: credential request metadata as HolderProver created via create_cred_req()
          :return: credential identifier within wallet