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
:
ethjs
has no support for decimal numbers read moreethjs
uses BN.js, notBigNumber.js
read moreethjs
is async only for all RPC/data packet methodsethjs
usesBuffer.js
for handling of hex/utf-8 conversionethjs
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 wholeethjs
is ES6+ first, published with ES5 standard viababel
ethjs
has a 100% build uptime/+99% coverage policy across all reposethjs
is designed with high configurability at every level of each moduleethjs
has a fail loudly, early (preferably within async) policyethjs
has 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
ethjs
and writing your own code and coverage. - Examples - Examples of
ethjs
in 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
ether
andwei
- 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
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.
ethjs
was built by a strong community of Ethereum developers. A special thanks to:
- Fabian Vogelsteller - for his work on
Mist
andweb3.js
- Tim Coulter - for his work on
TestRPC
andTruffle
- Aaron Davis - for his guidence and work on
MetaMask
andethereumjs
- Richard Moore - for his work on
ethers-io
andethers-wallet
from which so much ofethjs
is 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