openethereum/js/packages/api
Jaco Greeff 49fdd23d58 Ui 2 move to packages/* (#6113)
* Move secureApi to shell

* Extract isTestnet test

* Use mobx + subscriptions for status

* Re-add status indicator

* Add lerna

* Move intial packages to js/packages

* Move 3rdparty/{email,sms}-verification to correct location

* Move package.json & README to library src

* Move tests for library packages

* Move views & dapps to packages

* Move i18n to root

* Move shell to actual src (main app)

* Remove ~ references

* Change ~ to root (explicit imports)

* Finalise convert of ~

* Move views into dapps as well

* Move dapps to packages/

* Fix references

* Update css

* Update test spec locations

* Update tests

* Case fix

* Skip flakey tests

* Update enzyme

* Skip previously ignored tests

* Allow empty api for hw

* Re-add theme for embed
2017-07-21 15:46:53 +02:00
..
contract Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
format Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
local Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
provider Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
pubsub Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
rpc Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
subscriptions Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
transport Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
util Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
api.js Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
api.spec.js Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
index.js Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
library.js Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
package.json Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00
README.md Ui 2 move to packages/* (#6113) 2017-07-21 15:46:53 +02:00

@parity/parity.js

Parity.js is a thin, fast, Promise-based wrapper around the Ethereum APIs.

https://github.com/paritytech/parity/tree/master/js/src/api

installation

Install the package with npm install --save @parity/parity.js

usage

initialisation

// import the actual Api class
import { Api } from '@parity/parity.js';

// 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 = new 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.