request method

Future<TransactionResponseDoc> request({
  1. required String operator,
  2. required CreateTransfer transferRequest,
  3. String? contextId,
})

Initiates a payment request.

Creates a payment request by invoking the 'm10.Request' action with the specified transfer request. The request is sent from the recipient account to the sender account. A pending status is set for the payment request.

Parameters:

  • operator (required): The platform operator (e.g. "m10").
  • transferRequest (required): The transfer object to be included in the payment request.
  • contextId (optional): An optional context ID for the transaction.

Returns:

  • A TransactionResponseDoc object representing the created payment request transaction.

Throws:

  • An Exception if payment request creation fails.

Implementation

Future<TransactionResponseDoc> request({
  required String operator,
  required CreateTransfer transferRequest,
  String? contextId,
}) async =>
    invokeAction(
      operator: operator,
      name: requestActionName,
      fromAccountId: hex.encode(transferRequest.transferSteps[0].toAccountId),
      targetAccountId:
          hex.encode(transferRequest.transferSteps[0].fromAccountId),
      payload: (PaymentRequest()
            ..transfer = transferRequest
            ..status = PaymentRequest_PaymentRequestStatus.PENDING)
          .writeToBuffer(),
      contextId: contextId ?? randomContextId,
    );