async def load_cache(self, archive: bool = False) -> int:
LOGGER.debug('<STR_LIT>', archive)<EOL>rv = int(time())<EOL>box_ids = json.loads(await self.get_box_ids_json())<EOL>for s_id in box_ids['<STR_LIT>']:<EOL><INDENT>with SCHEMA_CACHE.lock:<EOL><INDENT>await self.get_schema(s_id)<EOL><DEDENT><DEDENT>for cd_id in box_ids['<STR_LIT>']:<EOL><INDENT>with CRED_DEF_CACHE.lock:<EOL><INDENT>await self.get_cred_def(cd_id)<EOL><DEDENT><DEDENT>for rr_id in box_ids['<STR_LIT>']:<EOL><INDENT>await self._get_rev_reg_def(rr_id)<EOL>with REVO_CACHE.lock:<EOL><INDENT>revo_cache_entry = REVO_CACHE.get(rr_id, None)<EOL>if revo_cache_entry:<EOL><INDENT>try:<EOL><INDENT>await revo_cache_entry.get_delta_json(self._build_rr_delta_json, rv, rv)<EOL><DEDENT>except ClosedPool:<EOL><INDENT>LOGGER.warning(<EOL>'<STR_LIT>',<EOL>self.wallet.name,<EOL>self.pool.name,<EOL>rr_id,<EOL>rv)<EOL><DEDENT><DEDENT><DEDENT><DEDENT>if archive:<EOL><INDENT>Caches.archive(self.dir_cache)<EOL><DEDENT>LOGGER.debug('<STR_LIT>', rv)<EOL>return rv<EOL>
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)