0.21.14 • Published 6 years ago

zsl-web3.js v0.21.14

Weekly downloads
2
License
LGPL-3.0
Repository
github
Last release
6 years ago

Quorum JavaScript API, middleware to talk with a Quorum node over RPC with ZSL functions

This is a forked version of the web3 API form ethereum which provides extensions for quorum and the zsl library.

You will need to run Quorum with the ZSL precompiles installed to get full functionality.

This is the Ethereum compatible JavaScript API which implements the Generic JSON RPC spec. It's available on npm as a node module, for bower and component as an embeddable js and as a meteor.js package.

NPM version Build Status dependency status dev dependency status Coverage Status Stories in Ready

You need to run a local Ethereum node to use this library.

Documentation

Installation

Node.js

npm install web3

Yarn

yarn add web3

Meteor.js

meteor add ethereum:web3

As Browser module

Bower

bower install web3

Component

component install ethereum/web3.js
  • Include web3.min.js in your html file. (not required for the meteor package)

Usage

Use the web3 object directly from global namespace:

console.log(web3); // {eth: .., shh: ...} // it's here!

Set a provider (HttpProvider)

if (typeof web3 !== 'undefined') {
  web3 = new Web3(web3.currentProvider);
} else {
  // set the provider you want from Web3.providers
  web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

Set a provider (HttpProvider using HTTP Basic Authentication)

web3.setProvider(new web3.providers.HttpProvider('http://host.url', 0, BasicAuthUsername, BasicAuthPassword));

There you go, now you can use it:

var coinbase = web3.eth.coinbase;
var balance = web3.eth.getBalance(coinbase);

You can find more examples in example directory.

Contribute!

Requirements

  • Node.js
  • npm
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
sudo apt-get install nodejs-legacy

Building (gulp)

npm run-script build

Testing (mocha)

npm test

Quorum functions

'privateSendTransaction' for sending privateFor transactions:

web3.eth.privateSendTransaction({"from": "0xed9d02e382b34818e88b88a309c7fe71e65f419d", "to": "0xed9d02e382b34818e88b88a309c7fe71e65f419d", "data":
"0x00", "privateFor" : ["QfeDAys9MPDs2XHExtc84jKGHxZg/aj52DTh0vtA3Xc="]})

Commands for dynamic-raft branch of Quorum:

from web3-quorum

web3.quorum.nodeInfo
web3.quorum.isBlockMaker(address)
web3.quorum.isVoter(address)
web3.quorum.canonicalHash(blockHash)
web3.quorum.makeBlock()
web3.quorum.vote()
web3.quorum.pauseBlockMaker()
web3.quorum.resumeBlockMaker()

Istanbul functions

web3.istanbul.getSnapshot(blockHashOrBlockNumber) returns [object]
web3.istanbul.getSnapshotAtHash(blockHash) returns [object]
web3.istanbul.getValidators(blockHashOrBlockNumber) returns []string
web3.istanbul.getValidatorsAtHash(blockHash) returns []string
web3.istanbul.propose(address, auth)
web3.istanbul.discard(address)
web3.istanbul.candidates returns map[string] boolean

ZSL functions

web3.zsl.loadTracker(filename) returns JSON
web3.zsl.saveTracker(filename, JSON) returns bool
web3.zsl.getCommitment(rho, pk, value) returns hash
web3.zsl.getSendNullifier(rho) returns hash
web3.zsl.createShielding(rho, pk, value) returns proof
web3.zsl.createUnshielding(rho, sk, value, treeIndex, authPath) returns proof
web3.zsl.createShieldedTransfer(rho1, sk1, value1, treeIndex1, authPath1, rho2, sk2, value2, treeIndex2, authPath2, outrho1, outpk1, outvalue1, outrho2, outpk2, outvalue2) returns proof
web3.zsl.verifyShieldedTransfer(proof, anchor, spend_nf1, spend_nf2, send_nf1, send_nf2, commitment1, commitment2) returns bool
web3.zsl.verifyShielding(proof, send_nf, commitment, value) returns bool
web3.zsl.verifyUnshielding(proof, spend_nf, root, value) returns bool
web3.zsl.getNewAddress() returns keypair
web3.zsl.getRandomness() returns buffer
web3.zsl.debugShielding() returns bool
web3.zsl.debugUnshielding() returns bool
web3.zsl.debugShieldedTransfer() returns bool

Migration 0.13.0 -> 0.14.0

web3.js version 0.14.0 supports multiple instances of web3 object. To migrate to this version, please follow the guide:

-var web3 = require('web3');
+var Web3 = require('web3');
+var web3 = new Web3();

Community

Other implementations

0.21.14

6 years ago

0.21.13

6 years ago

0.21.12

6 years ago

0.21.11

6 years ago

0.20.10

6 years ago

0.20.9

6 years ago

0.20.8

6 years ago

0.20.7

6 years ago

0.20.6

6 years ago

0.1.0

6 years ago