UNPKG

@digitalasset/daml-ledger

Version:
47 lines (46 loc) 1.75 kB
import { ClientCancellableCall } from "../call/ClientCancellableCall"; import { Callback } from "../util/Callback"; import { SubmitRequest } from "../model/SubmitRequest"; /** * Allows clients to attempt advancing the ledger's state by submitting * commands. * * The final states of their submissions are disclosed by the Command * CompletionValidation 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 Checkoint 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 CommandSubmissionClient { /** * Submit a single composite command. */ submit(requestObject: SubmitRequest): Promise<void>; submit(requestObject: SubmitRequest, callback: Callback<void>): ClientCancellableCall; }