Welcome to ethjs, a simple set of modules and examples for the Ethereum ecosystem.
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.
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:
ethjshas no support for decimal numbers read moreethjsuses BN.js, notBigNumber.jsread moreethjsis async only for all RPC/data packet methodsethjsusesBuffer.jsfor handling of hex/utf-8 conversionethjsis highly optimized for the browser (about 30kb smaller than web3.js minified)ethjshas a module first approach, small isolated modules which make up the complex wholeethjsis ES6+ first, published with ES5 standard viababelethjshas a 100% build uptime/+99% coverage policy across all reposethjsis designed with high configurability at every level of each moduleethjshas a fail loudly, early (preferably within async) policyethjshas an enforced UNIX philosophy design policy
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.
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.
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
ethjsand writing your own code and coverage. - Examples - Examples of
ethjsin use.
Here is a map of the ethjs modules with a brief explanation of each.
- ethjs - a simple interface of various modules
- ethjs-query - a module for querying the RPC layer with payload formatting
- etjs-rpc - a module for querying the RPC layer without formatting
- ethjs-provider-signer - sign raw transactions at the provider level
- ethjs-provider-http - a basic http provider
- ethjs-unit - convert between units such as
etherandwei
- 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
- ethjs-filter - filter and event handling for Ethereum RPC filters
- ethjs-contract - a contract object abstraction
- ethjs-signer - a raw transaction signer
- ethjs-account - a module for creating and managing Ethereum accounts
- ethjs-util - simple utils mainly for handling strings and hex values
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
ethjsbetter, 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.
ethjs was built by a strong community of Ethereum developers. A special thanks to:
- Fabian Vogelsteller - for his work on
Mistandweb3.js - Tim Coulter - for his work on
TestRPCandTruffle - Aaron Davis - for his guidence and work on
MetaMaskandethereumjs - Richard Moore - for his work on
ethers-ioandethers-walletfrom which so much ofethjsis build from - Karl Floersch - for his guidence and support
- Martin B. - for his work on
ethereumjs - Alex Beregszaszi - for his work on
ethereumjs - Vitalik Buterin - for creating
Ethereum
