Skip to content

Quorum.js is an extension to web3.js providing support for JP Morgan's Quorum API

License

Notifications You must be signed in to change notification settings

Consensys/quorum.js

Repository files navigation

quorum.js: JavaScript API for Quorum

quorum.js is an extension for web3.js which adds support for APIs specific to Quorum.

⚠️ Project Deprecation Notice ⚠️

quorum.js library will be deprecated on December 31st 2021, date from when we will stop supporting the project.

quorum.js library is deprecated and replaced by web3js-quorum that offers wider compatibility with the Quorum stack including both Besu and GoQuorum.

From now on, we encourage all users with active projects using quorum.js to migrate to web3js-quorum. Please refer to migration instructions.

We will continue to support quorum.js in particular fixing bugs until the end of 2021.

If you have any questions or concerns, please reach out to the ConsenSys protocol engineering team on #Discord or by email.

Features

  • Provide js applications with easy access to all Quorum-specific APIs (including private transaction, consensus, and permissioning APIs)
  • Works with web3.js smart contract wrappers

Requirements

Installation

npm install quorum-js

Quickstart

The Quorum-specific API methods provided by quorum.js are accessed in one of two ways:

Extending web3 object

const Web3 = require("web3");
const quorumjs = require("quorum-js");

const web3 = new Web3("http://localhost:22000");

quorumjs.extend(web3);

web3.quorum.eth.sendRawPrivateTransaction(signedTx, args);

This makes Quorum-specific API methods available through the web3.quorum object.

RawTransactionManager object

Additional private transaction-specific APIs require access to a Privacy Manager:

const Web3 = require("web3");
const quorumjs = require("quorum-js");

const web3 = new Web3("http://localhost:22000");

const enclaveOptions = {
  privateUrl: "http://localhost:9081" // Tessera ThirdParty server url, use ipcPath if using Constellation
};

const txnMngr = quorumjs.RawTransactionManager(web3, enclaveOptions);

txnMngr.sendRawTransaction(args);

Documentation

For full usage and API details see the documentation.

Examples

The 7nodes-test directory contains examples of quorum.js usage. These scripts can be tested with a running 7nodes test network.

Getting Help

Stuck at some step? Please join our slack community for support.