@digitalasset/daml-ledger
Version:
DAML Ledger API Node.js bindings
95 lines • 6.05 kB
JavaScript
"use strict";
// Copyright (c) 2021 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeJsCommandClient = void 0;
const Callback_1 = require("../util/Callback");
const ClientCancellableCall_1 = require("../call/ClientCancellableCall");
const SubmitAndWaitRequestValidation_1 = require("../validation/SubmitAndWaitRequestValidation");
const Validation_1 = require("../validation/Validation");
const SubmitAndWaitRequestCodec_1 = require("../codec/SubmitAndWaitRequestCodec");
const SubmitAndWaitForTransactionResponseCodec_1 = require("../codec/SubmitAndWaitForTransactionResponseCodec");
const SubmitAndWaitForTransactionIdResponseCodec_1 = require("../codec/SubmitAndWaitForTransactionIdResponseCodec");
const SubmitAndWaitForTransactionTreeResponseCodec_1 = require("../codec/SubmitAndWaitForTransactionTreeResponseCodec");
class NodeJsCommandClient {
constructor(ledgerId, client, reporter) {
this.submitAndWaitPromise = Callback_1.promisify(this.submitAndWaitCallback);
this.submitAndWaitForTransactionPromise = Callback_1.promisify(this.submitAndWaitForTransactionCallback);
this.submitAndWaitForTransactionIdPromise = Callback_1.promisify(this.submitAndWaitForTransactionIdCallback);
this.submitAndWaitForTransactionTreePromise = Callback_1.promisify(this.submitAndWaitForTransactionTreeCallback);
this.ledgerId = ledgerId;
this.client = client;
this.reporter = reporter;
}
submitAndWaitCallback(requestObject, callback) {
const tree = SubmitAndWaitRequestValidation_1.SubmitAndWaitRequestValidation.validate(requestObject);
if (Validation_1.isValid(tree)) {
const request = SubmitAndWaitRequestCodec_1.SubmitAndWaitRequestCodec.serialize(requestObject);
request.getCommands().setLedgerId(this.ledgerId);
return ClientCancellableCall_1.ClientCancellableCall.accept(this.client.submitAndWait(request, (error, _) => {
Callback_1.forwardVoidResponse(callback, error);
}));
}
else {
setImmediate(() => callback(new Error(this.reporter.render(tree))));
return ClientCancellableCall_1.ClientCancellableCall.rejected;
}
}
;
submitAndWait(requestObject, callback) {
return callback ? this.submitAndWaitCallback(requestObject, callback) : this.submitAndWaitPromise(requestObject);
}
submitAndWaitForTransactionCallback(requestObject, callback) {
const tree = SubmitAndWaitRequestValidation_1.SubmitAndWaitRequestValidation.validate(requestObject);
if (Validation_1.isValid(tree)) {
const request = SubmitAndWaitRequestCodec_1.SubmitAndWaitRequestCodec.serialize(requestObject);
request.getCommands().setLedgerId(this.ledgerId);
return ClientCancellableCall_1.ClientCancellableCall.accept(this.client.submitAndWaitForTransaction(request, (error, response) => {
Callback_1.forward(callback, error, response, SubmitAndWaitForTransactionResponseCodec_1.SubmitAndWaitForTransactionResponseCodec.deserialize);
}));
}
else {
setImmediate(() => callback(new Error(this.reporter.render(tree))));
return ClientCancellableCall_1.ClientCancellableCall.rejected;
}
}
submitAndWaitForTransaction(requestObject, callback) {
return callback ? this.submitAndWaitForTransactionCallback(requestObject, callback) : this.submitAndWaitForTransactionPromise(requestObject);
}
submitAndWaitForTransactionIdCallback(requestObject, callback) {
const tree = SubmitAndWaitRequestValidation_1.SubmitAndWaitRequestValidation.validate(requestObject);
if (Validation_1.isValid(tree)) {
const request = SubmitAndWaitRequestCodec_1.SubmitAndWaitRequestCodec.serialize(requestObject);
request.getCommands().setLedgerId(this.ledgerId);
return ClientCancellableCall_1.ClientCancellableCall.accept(this.client.submitAndWaitForTransactionId(request, (error, response) => {
Callback_1.forward(callback, error, response, SubmitAndWaitForTransactionIdResponseCodec_1.SubmitAndWaitForTransactionIdResponseCodec.deserialize);
}));
}
else {
setImmediate(() => callback(new Error(this.reporter.render(tree))));
return ClientCancellableCall_1.ClientCancellableCall.rejected;
}
}
submitAndWaitForTransactionId(requestObject, callback) {
return callback ? this.submitAndWaitForTransactionIdCallback(requestObject, callback) : this.submitAndWaitForTransactionIdPromise(requestObject);
}
submitAndWaitForTransactionTreeCallback(requestObject, callback) {
const tree = SubmitAndWaitRequestValidation_1.SubmitAndWaitRequestValidation.validate(requestObject);
if (Validation_1.isValid(tree)) {
const request = SubmitAndWaitRequestCodec_1.SubmitAndWaitRequestCodec.serialize(requestObject);
request.getCommands().setLedgerId(this.ledgerId);
return ClientCancellableCall_1.ClientCancellableCall.accept(this.client.submitAndWaitForTransactionTree(request, (error, response) => {
Callback_1.forward(callback, error, response, SubmitAndWaitForTransactionTreeResponseCodec_1.SubmitAndWaitForTransactionTreeResponseCodec.deserialize);
}));
}
else {
setImmediate(() => callback(new Error(this.reporter.render(tree))));
return ClientCancellableCall_1.ClientCancellableCall.rejected;
}
}
submitAndWaitForTransactionTree(requestObject, callback) {
return callback ? this.submitAndWaitForTransactionTreeCallback(requestObject, callback) : this.submitAndWaitForTransactionTreePromise(requestObject);
}
}
exports.NodeJsCommandClient = NodeJsCommandClient;
//# sourceMappingURL=NodeJsCommandClient.js.map