docs: async def build_get_payment_sources_request(wallet_handle: int,
                                              submitter_did: str,
                                              payment_address: str) -> (str, str):
      """
      Builds Indy request for getting sources list for payment address
      according to this payment method.
  
      :param wallet_handle: wallet handle (created by open_wallet).
      :param submitter_did : (Option) DID of request sender
      :param payment_address: target payment address
      :return: get_sources_txn_json: Indy request for getting sources list for payment address
               payment_method: used payment method
      """
  
      logger = logging.getLogger(__name__)
      logger.debug("build_get_payment_sources_request: >>> wallet_handle: %r, submitter_did: %r, payment_address: %r",
                   wallet_handle,
                   submitter_did,
                   payment_address)
  
      if not hasattr(build_get_payment_sources_request, "cb"):
          logger.debug("build_get_payment_sources_request: Creating callback")
          build_get_payment_sources_request.cb = create_cb(CFUNCTYPE(None, c_int32, c_int32, c_char_p, c_char_p))
  
      c_wallet_handle = c_int32(wallet_handle)
      c_submitter_did = c_char_p(submitter_did.encode('utf-8')) if submitter_did is not None else None
      c_payment_address = c_char_p(payment_address.encode('utf-8'))
  
      (get_sources_txn_json, payment_method) = await do_call('indy_build_get_payment_sources_request',
                                                             c_wallet_handle,
                                                             c_submitter_did,
                                                             c_payment_address,
                                                             build_get_payment_sources_request.cb)
      res = (get_sources_txn_json.decode(), payment_method.decode())
  
      logger.debug("build_get_payment_sources_request: <<< res: %r", res)
      return res