UNPKG

@digitalasset/daml-ledger

Version:
51 lines (50 loc) 2.13 kB
import { ClientReadableObjectStream } from "../call/ClientReadableObjectStream"; import { CompletionStreamResponse } from "../model/CompletionStreamResponse"; import { Callback } from "../util/Callback"; import { ClientCancellableCall } from "../call/ClientCancellableCall"; import { CompletionEndResponse } from "../model/CompletionEndResponse"; import { CompletionStreamRequest } from "../model/CompletionStreamRequest"; /** * Allows clients to observe the status of their submissions. * * CommandsValidation may be submitted via the Command Submission Service. * * The on-ledger effects of their submissions are disclosed by the * TransactionValidation Service. * * CommandsValidation may fail in 4 distinct manners: * * 1. INVALID_PARAMETER gRPC error on malformed payloads and missing * required fields. * * 2. Failure communicated in the SubmitResponse. * * 3. Failure communicated in a CompletionValidation. * * 4. A Checkpoint with record_time &gt; command mrt arrives through the * CompletionValidation Stream, and the command's CompletionValidation was not visible * before. In this case the command is lost. * * Clients that do not receive a successful completion about their * submission MUST NOT assume that it was successful. * * Clients SHOULD subscribe to the CompletionStream before starting to * submit commands to prevent race conditions. * * Interprocess tracing of command submissions may be achieved via Zipkin * by filling out the trace_context field. * * The server will return a child context of the submitted one, (or a new * one if the context was missing) on both the CompletionValidation and TransactionValidation streams. */ export interface CommandCompletionClient { /** * Subscribe to command completion events. */ completionStream(requestObject: CompletionStreamRequest): ClientReadableObjectStream<CompletionStreamResponse>; /** * Returns the offset after the latest completion. */ completionEnd(): Promise<CompletionEndResponse>; completionEnd(callback: Callback<CompletionEndResponse>): ClientCancellableCall; }