@digitalasset/daml-ledger
Version:
DAML Ledger API Node.js bindings
47 lines (46 loc) • 1.75 kB
TypeScript
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 > 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;
}