code: async def store_cred(self, cred_json: str, cred_req_metadata_json: str) -> str:
          
  
          LOGGER.debug(
              'HolderProver.store_cred >>> cred_json: %s, cred_req_metadata_json: %s',
              cred_json,
              cred_req_metadata_json)
  
          if not self.wallet.handle:
              LOGGER.debug('HolderProver.store_cred <!< Wallet %s is closed', self.name)
              raise WalletState('Wallet {} is closed'.format(self.name))
  
          cred = json.loads(cred_json)
          cred_def_json = await self.get_cred_def(cred['cred_def_id'])
          rr_id = cred['rev_reg_id']
          rr_def_json = None
          if rr_id:
              await self._sync_revoc_for_proof(rr_id)
              rr_def_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,
              rr_def_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.
          Raise WalletState if wallet is closed.
  
          :param cred_json: credential json as HolderProver created
          :param cred_req_metadata_json: credential request metadata json as HolderProver created via create_cred_req()
          :return: credential identifier within wallet