docs: async def set_pairwise_metadata(wallet_handle: int,
                                  their_did: str,
                                  metadata: Optional[str]) -> None:
      """
      Save some data in the Wallet for pairwise associated with Did.
  
      :param wallet_handle: wallet handler (created by open_wallet).
      :param their_did: encoded DID
      :param metadata: some extra information for pairwise
      :return: Error code
      """
  
      logger = logging.getLogger(__name__)
      logger.debug("set_pairwise_metadata: >>> wallet_handle: %r, their_did: %r, metadata: %r",
                   wallet_handle,
                   their_did,
                   metadata)
  
      if not hasattr(set_pairwise_metadata, "cb"):
          logger.debug("set_pairwise_metadata: Creating callback")
          set_pairwise_metadata.cb = create_cb(CFUNCTYPE(None, c_int32, c_int32))
  
      c_wallet_handle = c_int32(wallet_handle)
      c_their_did = c_char_p(their_did.encode('utf-8'))
      c_metadata = c_char_p(metadata.encode('utf-8')) if metadata is not None else None
  
      await do_call('indy_set_pairwise_metadata',
                    c_wallet_handle,
                    c_their_did,
                    c_metadata,
                    set_pairwise_metadata.cb)
  
      logger.debug("set_pairwise_metadata: <<<")