<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def import_wallet(self, indy_config: dict, path: str, access: str = None) -> None: """ Import a VON anchor wallet. Raise BadAccess on bad access credential value. :param indy_config: indy wallet configuration to use, with: - 'id' - 'storage_type' (optional) - 'storage_config' (optional) :param path: path from which to import wallet file :param access: indy access credentials value (default value from wallet manager) """


        LOGGER.debug('WalletManager.import_wallet >>> indy_config %s, path: %s', indy_config, path)

        try:
            await wallet.import_wallet(
                json.dumps(indy_config),
                json.dumps({'key': access or self.default_access}),
                json.dumps({'path': path, 'key': access or self.default_access}))
        except IndyError as x_indy:
            if x_indy.error_code == ErrorCode.CommonInvalidStructure:  # indy-sdk raises on bad access
                LOGGER.debug(
                    'WalletManager.import_wallet <!< bad access credential value for wallet %s',
                    indy_config.get('id', '(no id)'))
                raise BadAccess('Bad access credential value for wallet {}'.format(indy_config.get('id', '(no id)')))
            LOGGER.debug(
                'WalletManager.import_wallet <!< indy error code %s on wallet %s import',
                x_indy.error_code,
                indy_config.get('id', '(no id)'))
            raise

        LOGGER.debug('WalletManager.import_wallet <<<')