UNPKG

iustosed

Version:
74 lines (63 loc) 2.7 kB
/* * Copyright ConsenSys Software Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. * * SPDX-License-Identifier: Apache-2.0 */ const Utils = require("./utils"); const Priv = require("./priv"); const FlexiblePrivacyGroup = require("./flexiblePrivacyGroup"); const Eth = require("./eth"); const Ptm = require("./ptm"); const Raft = require("./raft"); const Istanbul = require("./istanbul"); const Permission = require("./permission"); /** * Handles elements * @name Web3Quorum * @class Web3Quorum * * @param {Object} web3 instance of the web3.js library * @param {Object} [enclaveOptions] configs of the transaction manager required for GoQuorum case only * @param {string} enclaveOptions.ipcPath absolute file path to the ipc of the transaction manager * @param {string} enclaveOptions.privateUrl http url to the transaction manager * @param {Object} enclaveOptions.tlsSettings TLS configuration for the transaction manager when using HTTPS in privateUrl * @param {Buffer} enclaveOptions.tlsSettings.key client key buffer * @param {Buffer} enclaveOptions.tlsSettings.clcert client certificate buffer * @param {Buffer} enclaveOptions.tlsSettings.cacert CA certificate buffer * @param {Boolean} enclaveOptions.tlsSettings.allowInsecure * @param {Boolean} [isQuorum=false] indicates if the connected to client is quorum or besu */ function Web3Quorum(web3, enclaveOptions = {}, isQuorum = false) { if (web3.currentProvider == null) { throw new Error("Missing provider"); } // TODO: to be updated by a method call web3_clientVersion // eslint-disable-next-line no-param-reassign web3.isQuorum = isQuorum; // Extend the utils namespace methods Utils(web3); Ptm(web3, enclaveOptions); // Extend the priv namespace methods Priv(web3); // Extend the flexiblePrivacyGroup namespace methods FlexiblePrivacyGroup(web3); // Extend the eth namespace methods with GoQuorum methods Eth(web3); // Extend the raft namespace methods Raft(web3); // Extend the Istanbul namespace methods Istanbul(web3); // Extend the Permission namespace methods Permission(web3); return web3; } module.exports = Web3Quorum;