code: async def load_cache(self, archive: bool = False) -> int:
          
  
          LOGGER.debug('HolderProver.load_cache >>> archive: %s', archive)
  
          rv = int(time())
          box_ids = json.loads(await self.get_box_ids_json())
          for s_id in box_ids['schema_id']:
              with SCHEMA_CACHE.lock:
                  await self.get_schema(s_id)
          for cd_id in box_ids['cred_def_id']:
              with CRED_DEF_CACHE.lock:
                  await self.get_cred_def(cd_id)
          for rr_id in box_ids['rev_reg_id']:
              await self._get_rev_reg_def(rr_id)
              with REVO_CACHE.lock:
                  revo_cache_entry = REVO_CACHE.get(rr_id, None)
                  if revo_cache_entry:
                      try:
                          await revo_cache_entry.get_delta_json(self._build_rr_delta_json, rv, rv)
                      except ClosedPool:
                          LOGGER.warning(
                              'Holder-Prover %s is offline from pool %s, cannot update revo cache reg delta for %s to %s',
                              self.wallet.name,
                              self.pool.name,
                              rr_id,
                              rv)
  
          if archive:
              Caches.archive(self.dir_cache)
          LOGGER.debug('HolderProver.load_cache <<< %s', rv)
          return rv
docs: Load caches and archive enough to go offline and be able to generate proof
          on all credentials in wallet.
  
          Return timestamp (epoch seconds) of cache load event, also used as subdirectory
          for cache archives.
  
          :return: cache load event timestamp (epoch seconds)