UNPKG

fabric-network

Version:

SDK for writing node.js applications to interact with Hyperledger Fabric. This package encapsulates the APIs to connect to a Fabric network, submit transactions and perform queries against the ledger.

47 lines 2.28 kB
"use strict"; /* * Copyright 2020 IBM All Rights Reserved. * * SPDX-License-Identifier: Apache-2.0 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.newPrivateBlockEvent = void 0; const gatewayutils_1 = require("../gatewayutils"); const fullblockeventfactory_1 = require("./fullblockeventfactory"); const fullcontracteventfactory_1 = require("./fullcontracteventfactory"); const fulltransactioneventfactory_1 = require("./fulltransactioneventfactory"); const util = require("util"); function newPrivateBlockEvent(eventInfo) { const privateData = eventInfo.privateData; if (!privateData) { throw new Error('No private data found: ' + util.inspect(eventInfo)); } const fullBlockEvent = fullblockeventfactory_1.newFullBlockEvent(eventInfo); const privateBlockEvent = { blockNumber: fullBlockEvent.blockNumber, blockData: fullBlockEvent.blockData, getTransactionEvents: gatewayutils_1.cachedResult(() => newPrivateTransactionEvents(privateBlockEvent, privateData)) }; return Object.freeze(privateBlockEvent); } exports.newPrivateBlockEvent = newPrivateBlockEvent; function newPrivateTransactionEvents(blockEvent, privateData) { return fulltransactioneventfactory_1.getTransactionEnvelopeIndexes(blockEvent.blockData) .map((index) => newPrivateTransactionEvent(blockEvent, index, privateData[index])); } // eslint-disable-next-line @typescript-eslint/no-explicit-any function newPrivateTransactionEvent(blockEvent, index, privateData) { const fullTransactionEvent = fulltransactioneventfactory_1.newFullTransactionEvent(blockEvent, index); const privateTransactionEvent = { transactionId: fullTransactionEvent.transactionId, status: fullTransactionEvent.status, transactionData: fullTransactionEvent.transactionData, isValid: fullTransactionEvent.isValid, // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment privateData, getBlockEvent: () => blockEvent, getContractEvents: gatewayutils_1.cachedResult(() => fullcontracteventfactory_1.newFullContractEvents(privateTransactionEvent)) }; return Object.freeze(privateTransactionEvent); } //# sourceMappingURL=privateblockeventfactory.js.map