UNPKG

@digitalasset/daml-ledger

Version:
133 lines 10.2 kB
"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.DamlLedgerClient = void 0; const grpc_js_1 = require("@grpc/grpc-js"); const Callback_1 = require("../util/Callback"); const HumanReadableReporter_1 = require("../reporting/HumanReadableReporter"); const NodeJsResetClient_1 = require("./NodeJsResetClient"); const NodeJsPackageClient_1 = require("./NodeJsPackageClient"); const NodeJsLedgerIdentityClient_1 = require("./NodeJsLedgerIdentityClient"); const NodeJsCommandSubmissionClient_1 = require("./NodeJsCommandSubmissionClient"); const NodeJsPartyManagementClient_1 = require("./NodeJsPartyManagementClient"); const NodeJsPackageManagementClient_1 = require("./NodeJsPackageManagementClient"); const ledgerIdentityService = require("../generated/com/daml/ledger/api/v1/ledger_identity_service_grpc_pb"); const partyManagementService = require("../generated/com/daml/ledger/api/v1/admin/party_management_service_grpc_pb"); const packageManagementService = require("../generated/com/daml/ledger/api/v1/admin/package_management_service_grpc_pb"); const ledger_identity_service_pb_1 = require("../generated/com/daml/ledger/api/v1/ledger_identity_service_pb"); const activeContractsService = require("../generated/com/daml/ledger/api/v1/active_contracts_service_grpc_pb"); const commandService = require("../generated/com/daml/ledger/api/v1/command_service_grpc_pb"); const commandCompletionService = require("../generated/com/daml/ledger/api/v1/command_completion_service_grpc_pb"); const commandSubmissionService = require("../generated/com/daml/ledger/api/v1/command_submission_service_grpc_pb"); const packageService = require("../generated/com/daml/ledger/api/v1/package_service_grpc_pb"); const ledgerConfigurationService = require("../generated/com/daml/ledger/api/v1/ledger_configuration_service_grpc_pb"); const timeService = require("../generated/com/daml/ledger/api/v1/testing/time_service_grpc_pb"); const transactionService = require("../generated/com/daml/ledger/api/v1/transaction_service_grpc_pb"); const resetService = require("../generated/com/daml/ledger/api/v1/testing/reset_service_grpc_pb"); const NodeJsCommandClient_1 = require("./NodeJsCommandClient"); const NodeJsActiveContractsClient_1 = require("./NodeJsActiveContractsClient"); const NodeJsCommandCompletionClient_1 = require("./NodeJsCommandCompletionClient"); const NodeJsLedgerConfigurationClient_1 = require("./NodeJsLedgerConfigurationClient"); const util_1 = require("util"); const NodeJsTimeClient_1 = require("./NodeJsTimeClient"); const NodeJsTransactionClient_1 = require("./NodeJsTransactionClient"); /** * A {@link LedgerClient} implementation that connects to an existing Ledger and provides clients to query it. To use the {@link DamlLedgerClient} * call the static `connect` method, passing an instance of {@link LedgerClientOptions} with the host, port and (for secure connection) the * necessary certificates. */ class DamlLedgerClient { constructor(ledgerId, address, credentials, reporter, grpcOptions) { this.ledgerId = ledgerId; this._activeContractsClient = new NodeJsActiveContractsClient_1.NodeJsActiveContractsClient(ledgerId, new DamlLedgerClient.ActiveContractsServiceClient(address, credentials, grpcOptions), reporter); this._commandClient = new NodeJsCommandClient_1.NodeJsCommandClient(ledgerId, new DamlLedgerClient.CommandServiceClient(address, credentials, grpcOptions), reporter); this._commandCompletionClient = new NodeJsCommandCompletionClient_1.NodeJsCommandCompletionClient(ledgerId, new DamlLedgerClient.CommandCompletionServiceClient(address, credentials, grpcOptions), reporter); this._commandSubmissionClient = new NodeJsCommandSubmissionClient_1.NodeJsCommandSubmissionClient(ledgerId, new DamlLedgerClient.CommandSubmissionServiceClient(address, credentials, grpcOptions), reporter); this._ledgerIdentityClient = new NodeJsLedgerIdentityClient_1.NodeJsLedgerIdentityClient(new DamlLedgerClient.LedgerIdentityServiceClient(address, credentials, grpcOptions)); this._packageClient = new NodeJsPackageClient_1.NodeJsPackageClient(ledgerId, new DamlLedgerClient.PackageServiceClient(address, credentials, grpcOptions)); this._ledgerConfigurationClient = new NodeJsLedgerConfigurationClient_1.NodeJsLedgerConfigurationClient(ledgerId, new DamlLedgerClient.LedgerConfigurationServiceClient(address, credentials, grpcOptions)); this._timeClient = new NodeJsTimeClient_1.NodeJsTimeClient(ledgerId, new DamlLedgerClient.TimeServiceClient(address, credentials, grpcOptions), reporter); this._transactionClient = new NodeJsTransactionClient_1.NodeJsTransactionClient(ledgerId, new DamlLedgerClient.TransactionServiceClient(address, credentials, grpcOptions), reporter); this._resetClient = new NodeJsResetClient_1.NodeJsResetClient(ledgerId, new DamlLedgerClient.ResetServiceClient(address, credentials, grpcOptions)); this._partyManagementClient = new NodeJsPartyManagementClient_1.NodeJsPartyManagementClient(new DamlLedgerClient.PartyManagementServiceClient(address, credentials, grpcOptions), reporter); this._packageManagementClient = new NodeJsPackageManagementClient_1.NodeJsPackageManagementClient(new DamlLedgerClient.PackageManagementServiceClient(address, credentials, grpcOptions), reporter); } get activeContractsClient() { return this._activeContractsClient; } get commandClient() { return this._commandClient; } get commandCompletionClient() { return this._commandCompletionClient; } get commandSubmissionClient() { return this._commandSubmissionClient; } get ledgerIdentityClient() { return this._ledgerIdentityClient; } get packageClient() { return this._packageClient; } get ledgerConfigurationClient() { return this._ledgerConfigurationClient; } get timeClient() { return this._timeClient; } get transactionClient() { return this._transactionClient; } get resetClient() { return this._resetClient; } get partyManagementClient() { return this._partyManagementClient; } get packageManagementClient() { return this._packageManagementClient; } static connectCallback(options, callback) { let creds; if (!options.certChain && !options.privateKey && !options.rootCerts) { creds = grpc_js_1.credentials.createInsecure(); } else if (options.certChain && options.privateKey && options.rootCerts) { creds = grpc_js_1.credentials.createSsl(options.rootCerts, options.privateKey, options.certChain); } else { setImmediate(() => { callback(new Error(`Incomplete information provided to establish a secure connection (certChain: ${!!options.certChain}, privateKey: ${!!options.privateKey}, rootCerts: ${!!options.rootCerts})`)); }); return; } const reporter = options.reporter || HumanReadableReporter_1.HumanReadableReporter; const address = `${options.host}:${options.port}`; const client = new DamlLedgerClient.LedgerIdentityServiceClient(address, creds); client.getLedgerIdentity(new ledger_identity_service_pb_1.GetLedgerIdentityRequest(), (error, response) => { Callback_1.forward(callback, error, response, response => { return new DamlLedgerClient(response.getLedgerId(), address, creds, reporter, options.grpcOptions); }); }); } static connect(options, callback) { return callback ? DamlLedgerClient.connectCallback(options, callback) : DamlLedgerClient.connectPromise(options); } } exports.DamlLedgerClient = DamlLedgerClient; DamlLedgerClient.LedgerIdentityServiceClient = grpc_js_1.makeClientConstructor(ledgerIdentityService['com.daml.ledger.api.v1.LedgerIdentityService'], 'LedgerIdentityService'); DamlLedgerClient.ActiveContractsServiceClient = grpc_js_1.makeClientConstructor(activeContractsService['com.daml.ledger.api.v1.ActiveContractsService'], 'ActiveContractsService'); DamlLedgerClient.CommandServiceClient = grpc_js_1.makeClientConstructor(commandService['com.daml.ledger.api.v1.CommandService'], 'CommandService'); DamlLedgerClient.CommandCompletionServiceClient = grpc_js_1.makeClientConstructor(commandCompletionService['com.daml.ledger.api.v1.CommandCompletionService'], 'CommandCompletionService'); DamlLedgerClient.CommandSubmissionServiceClient = grpc_js_1.makeClientConstructor(commandSubmissionService['com.daml.ledger.api.v1.CommandSubmissionService'], 'CommandSubmissionService'); DamlLedgerClient.PackageServiceClient = grpc_js_1.makeClientConstructor(packageService['com.daml.ledger.api.v1.PackageService'], 'PackageService'); DamlLedgerClient.LedgerConfigurationServiceClient = grpc_js_1.makeClientConstructor(ledgerConfigurationService['com.daml.ledger.api.v1.LedgerConfigurationService'], 'LedgerConfigurationService'); DamlLedgerClient.TimeServiceClient = grpc_js_1.makeClientConstructor(timeService['com.daml.ledger.api.v1.testing.TimeService'], 'TimeService'); DamlLedgerClient.TransactionServiceClient = grpc_js_1.makeClientConstructor(transactionService['com.daml.ledger.api.v1.TransactionService'], 'TransactionService'); DamlLedgerClient.ResetServiceClient = grpc_js_1.makeClientConstructor(resetService['com.daml.ledger.api.v1.testing.ResetService'], 'ResetService'); DamlLedgerClient.PartyManagementServiceClient = grpc_js_1.makeClientConstructor(partyManagementService['com.daml.ledger.api.v1.admin.PartyManagementService'], 'PartyManagementService'); DamlLedgerClient.PackageManagementServiceClient = grpc_js_1.makeClientConstructor(packageManagementService['com.daml.ledger.api.v1.admin.PackageManagementService'], 'PackageManagementService'); DamlLedgerClient.connectPromise = util_1.promisify(DamlLedgerClient.connectCallback); //# sourceMappingURL=DamlLedgerClient.js.map