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.
You need to run a local Ethereum node to use this library.
npm install web3
yarn add web3
meteor add ethereum:web3
Bower
bower install web3
Component
component install ethereum/web3.js
- Include
web3.min.js
in your html file. (not required for the meteor package)
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.
- Node.js
- npm
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
sudo apt-get install nodejs-legacy
npm run-script build
npm test
'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()
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
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
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();
- Python Web3.py
- Haskell hs-web3
- Java web3j
- Scala web3j-scala
- Purescript purescript-web3
- PHP web3.php