code: async def create(self, config: dict = None, access: str = None, replace: bool = False) -> Wallet:
          
  
          LOGGER.debug('WalletManager.create >>> config %s, access %s, replace %s', config, access, replace)
  
          assert {'name', 'id'} & {k for k in config}
          wallet_name = config.get('name', config.get('id'))
          if replace:
              von_wallet = self.get(config, access)
              if not await von_wallet.remove():
                  LOGGER.debug('WalletManager.create <!< Failed to remove wallet %s for replacement', wallet_name)
                  raise ExtantWallet('Failed to remove wallet {} for replacement'.format(wallet_name))
  
          indy_config = self._config2indy(config)
          von_config = self._config2von(config, access)
          rv = Wallet(indy_config, von_config)
          await rv.create()
          LOGGER.debug('WalletManager.create <<< %s', rv)
          return rv
docs: Create wallet on input name with given configuration and access credential value.
  
          Raise ExtantWallet if wallet on input name exists already and replace parameter is False.
          Raise BadAccess on replacement for bad access credentials value.
  
          FAIR WARNING: specifying replace=True attempts to remove any matching wallet before proceeding; to
          succeed, the existing wallet must use the same access credentials that the input configuration has.
  
          :param config: configuration data for both indy-sdk and VON anchor wallet:
  
              - 'name' or 'id': wallet name
              - 'storage_type': storage type
              - 'freshness_time': freshness time
              - 'did': (optional) DID to use
              - 'seed': (optional) seed to use
              - 'auto_create': whether to create the wallet on first open (persists past close, can work with auto_remove)
              - 'auto_remove': whether to remove the wallet on next close
              - 'link_secret_label': (optional) link secret label to use to create link secret
  
          :param access: indy wallet access credential ('key') value, if different than default
          :param replace: whether to replace old wallet if it exists
          :return: wallet created