/docs

Documentation for the ethjs module set.

MIT LicenseMIT

Welcome

Welcome to ethjs, a simple set of modules and examples for the Ethereum ecosystem.

Experimental

Note, all ethjs modules are highly experimental. If you want to bring ethjs into production use, please help out, and start user testing ethjs!

We are aiming for early January 2017 for production use.

Web3.js

We love web3.js! web3.js has brought us a first pass at a library for building Ethereum dApps and apps. We hope to work closely with the developers and maintainers of web3 to foster better design, share knowledge and give alternative design insight.

However, there are some critical differences between ethjs and web3.js:

  • ethjs has no support for decimal numbers read more
  • ethjs uses BN.js, not BigNumber.js read more
  • ethjs is async only for all RPC/data packet methods
  • ethjs uses Buffer.js for handling of hex/utf-8 conversion
  • ethjs is highly optimized for the browser (about 30kb smaller than web3.js minified)
  • ethjs has a module first approach, small isolated modules which make up the complex whole
  • ethjs is ES6+ first, published with ES5 standard via babel
  • ethjs has a 100% build uptime/+99% coverage policy across all repos
  • ethjs is designed with high configurability at every level of each module
  • ethjs has a fail loudly, early (preferably within async) policy
  • ethjs has an enforced UNIX philosophy design policy

Heads Up

Note, all ethjs modules may eventually be merged into the ethereumjs Github org. We are currently in discussions to find the best path forward for these modules.

Relationship with ethereumjs

ethjs is a set of modules that are part of the EthereumJS community. We dedicate all these modules to the javascript developers of the Ethereum community in the hopes that they might be useful for dApps, apps and developers.

While we have no official affiliation with the Ethereum foundation, we will be working closely with the Ethereum community.

Please visit, github.com/ethereumjs for more.

Contributing

Please help better the ecosystem by submitting issues and pull requests to ethjs. We need all the help we can get to build the absolute best linting standards and utilities. We follow the AirBNB linting standard and the unix philosophy.

Guides

You'll find more detailed information on using ethjs and tailoring it to your needs in our guides:

  • User guide - Usage, configuration, FAQ and complementary tools.
  • Developer guide - Contributing to ethjs and writing your own code and coverage.
  • Examples - Examples of ethjs in use.

Module Guide

Here is a map of the ethjs modules with a brief explanation of each.

Interfaces

  • ethjs - a simple interface of various modules

Querying/RPC

  • ethjs-query - a module for querying the RPC layer with payload formatting
  • etjs-rpc - a module for querying the RPC layer without formatting

Providers

Unit Conversion

  • ethjs-unit - convert between units such as ether and wei

Formatting

  • ethjs-format - payload formatter for the Ethereum RPC layer
  • ethjs-schema - the entire Ethereum RPC schema as a JSON object
  • ethjs-abi - Solidity transaction formatting

Filtering/Events

  • ethjs-filter - filter and event handling for Ethereum RPC filters

Contract Handling

Transaction Signing

Accounts

  • ethjs-account - a module for creating and managing Ethereum accounts

Utils

  • ethjs-util - simple utils mainly for handling strings and hex values

Help out

There is always a lot of work to do, and will have many rules to maintain. So please help out in any way that you can:

  • Create, enhance, and debug ethjs rules (see our guide to "Working on rules").
  • Improve documentation.
  • Chime in on any open issue or pull request.
  • Open new issues about your ideas for making ethjs better, and pull requests to show us how your idea works.
  • Add new tests to absolutely anything.
  • Create or contribute to ecosystem tools.
  • Spread the word!

Please consult our Code of Conduct docs before helping out.

We communicate via issues and pull requests.

Important documents

Special Thanks

ethjs was built by a strong community of Ethereum developers. A special thanks to: