code: async def open_search(type_: str, query: dict, options: dict):
          
          logger = logging.getLogger(__name__)
  
          if not hasattr(Wallet.open_search, "cb"):
              logger.debug("vcx_wallet_open_search: Creating callback")
              Wallet.open_search.cb = create_cb(CFUNCTYPE(None, c_uint32, c_uint32, c_uint32))
  
          c_type_ = c_char_p(type_.encode('utf-8'))
          c_query = c_char_p(json.dumps(query).encode('utf-8'))
          c_options = c_char_p(json.dumps(options).encode('utf-8')) if options else None
  
          data = await do_call('vcx_wallet_open_search',
                               c_type_,
                               c_query,
                               c_options,
                               Wallet.open_search.cb)
  
          logger.debug("vcx_wallet_open_search completed")
          return data
docs: Opens a search handle within the storage wallet.
  
          :param type_: String
          :param query: dictionary
          :param options: dictionary
          Example:
          query_json = {"tagName1": "str1"}
          type_ = 'TestType'
          search_handle = await Wallet.open_search(type_, query_json, None)
          :return: int