Package Exports
- @parity/api
- @parity/api/lib/contract
- @parity/api/lib/format/input
- @parity/api/lib/format/output
- @parity/api/lib/transport/error
- @parity/api/lib/util
- @parity/api/lib/util/decode
- @parity/api/lib/util/encode
- @parity/api/lib/util/format
- @parity/api/lib/util/identity
- @parity/api/lib/util/sha3
- @parity/api/lib/util/types
- @parity/api/lib/util/wei
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@parity/api) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@parity/api
Parity.js is a thin, fast, Promise-based wrapper around the Ethereum APIs.
installation
Install the package with npm install --save @parity/api
usage
initialisation
// import the actual Api class
import Api from '@parity/api';
// do the setup
const provider = new Api.Provider.Http('http://localhost:8545');
const api = new Api(provider);
making calls
perform a call
api.eth
.coinbase()
.then((coinbase) => {
console.log(`The coinbase is ${coinbase}`);
});
multiple promises
Promise
.all([
api.eth.coinbase(),
api.net.listening()
])
.then(([coinbase, listening]) => {
// do stuff here
});
chaining promises
api.eth
.newFilter({...})
.then((filterId) => api.eth.getFilterChanges(filterId))
.then((changes) => {
console.log(changes);
});
contracts
attach contract
const abi = [{ name: 'callMe', inputs: [{ type: 'bool', ...}, { type: 'string', ...}]}, ...abi...];
const address = '0x123456...9abc';
const contract = api.newContract(abi, address);
find & call a function
contract.instance
.callMe
.call({ gas: 21000 }, [true, 'someString']) // or estimateGas or postTransaction
.then((result) => {
console.log(`the result was ${result}`);
});
apis
APIs implement the calls as exposed in the Ethcore JSON Ethereum RPC definitions. Mapping follows the naming conventions of the originals, i.e. eth_call
becomes eth.call
, personal_accounts
becomes personal.accounts
, etc.
public node
For operation within a public node, the following peerDependencies needs to be added (this functionality will be moved shortly) -