respondWith<P, R> function

TrustTaskDocument<R> respondWith<P, R>(
  1. TrustTaskDocument<P> request,
  2. String id,
  3. R payload, {
  4. Clock? clock,
})

Build the success-response document for request, per SPEC §4.4.1 — the request's Type URI with the #response fragment, the parties swapped, and the thread continued.

Implementation

TrustTaskDocument<R> respondWith<P, R>(
  TrustTaskDocument<P> request,
  String id,
  R payload, {
  Clock? clock,
}) =>
    TrustTaskDocument<R>(
      id: id,
      threadId: request.threadId ?? request.id,
      type: '${bareTypeUri(request.type)}#response',
      issuer: request.recipient,
      recipient: request.issuer,
      issuedAt: (clock ?? systemClock)(),
      payload: payload,
      // §4.9.2 — the whole exchange shares one parent.
      parentThreadId: request.parentThreadId,
    );