<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(config: str, credentials: str, import_config_json: str) -> None: """ Creates a new secure wallet with the given unique name and then imports its content according to fields provided in import_config This can be seen as an indy_create_wallet call with additional content import :param config: Wallet configuration json. { "id": string, Identifier of the wallet. Configured storage uses this identifier to lookup exact wallet data placement. "storage_type": optional<string>, Type of the wallet storage. Defaults to 'default'. 'Default' storage type allows to store wallet data in the local file. Custom storage types can be registered with indy_register_wallet_storage call. "storage_config": optional<object>, Storage configuration json. Storage type defines set of supported keys. Can be optional if storage supports default configuration. For 'default' storage type configuration is: { "path": optional<string>, Path to the directory with wallet files. Defaults to $HOME/.indy_client/wallet. Wallet will be stored in the file {path}/{id}/sqlite.db } } :param credentials: Wallet credentials json { "key": string, Key or passphrase used for wallet key derivation. Look to key_derivation_method param for information about supported key derivation methods. "storage_credentials": optional<object> Credentials for wallet storage. Storage type defines set of supported keys. Can be optional if storage supports default configuration. For 'default' storage type should be empty. "key_derivation_method": optional<string> Algorithm to use for wallet key derivation: ARGON2I_MOD - derive secured wallet master key (used by default) ARGON2I_INT - derive secured wallet master key (less secured but faster) RAW - raw wallet key master provided (skip derivation). RAW keys can be generated with generate_wallet_key call } :param import_config_json: JSON containing settings for input operationЖ { "path": path of the file that contains exported wallet content "key": key used for export of the wallet } :return: Error code """


    logger = logging.getLogger(__name__)
    logger.debug("import_wallet: >>> config: %r, credentials: %r, import_config_json: %r",
                 config,
                 credentials,
                 import_config_json)

    if not hasattr(import_wallet, "cb"):
        logger.debug("import_wallet: Creating callback")
        import_wallet.cb = create_cb(CFUNCTYPE(None, c_int32, c_int32))

    c_config = c_char_p(config.encode('utf-8'))
    c_credentials = c_char_p(credentials.encode('utf-8'))
    c_import_config_json = c_char_p(import_config_json.encode('utf-8'))

    await do_call('indy_import_wallet',
                  c_config,
                  c_credentials,
                  c_import_config_json,
                  import_wallet.cb)

    logger.debug("import_wallet: <<<")