Welcome to vapjs
, a simple set of modules and examples for the Vapory ecosystem.
Note, all vapjs
modules are highly experimental. If you want to bring vapjs
into production use, please help out, and start user testing vapjs
!
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 Vapory 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 vapjs
and web3.js
:
vapjs
has no support for decimal numbers read morevapjs
uses BN.js, notBigNumber.js
read morevapjs
is async only for all RPC/data packet methodsvapjs
usesBuffer.js
for handling of hex/utf-8 conversionvapjs
is highly optimized for the browser (about 30kb smaller than web3.js minified)vapjs
has a module first approach, small isolated modules which make up the complex wholevapjs
is ES6+ first, published with ES5 standard viababel
vapjs
has a 100% build uptime/+99% coverage policy across all reposvapjs
is designed with high configurability at every level of each modulevapjs
has a fail loudly, early (preferably within async) policyvapjs
has an enforced UNIX philosophy design policy
Note, all vapjs
modules may eventually be merged into the vaporyjs
Github org. We are currently in discussions to find the best path forward for these modules.
Relationship with vaporyjs
vapjs
is a set of modules that are part of the VaporyJS community. We dedicate all these modules to the javascript developers of the Vapory community in the hopes that they might be useful for dApps, apps and developers.
While we have no official affiliation with the Vapory foundation, we will be working closely with the Vapory community.
Please visit, github.com/vaporyjs for more.
Please help better the ecosystem by submitting issues and pull requests to vapjs
. 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 vapjs
and tailoring it to your needs in our guides:
- User guide - Usage, configuration, FAQ and complementary tools.
- Developer guide - Contributing to
vapjs
and writing your own code and coverage. - Examples - Examples of
vapjs
in use.
Here is a map of the vapjs
modules with a brief explanation of each.
- vapjs - a simple interface of various modules
- vapjs-query - a module for querying the RPC layer with payload formatting
- etjs-rpc - a module for querying the RPC layer without formatting
- vapjs-provider-signer - sign raw transactions at the provider level
- vapjs-provider-http - a basic http provider
- vapjs-unit - convert between units such as
vapor
andwei
- vapjs-format - payload formatter for the Vapory RPC layer
- vapjs-schema - the entire Vapory RPC schema as a JSON object
- vapjs-abi - Solidity transaction formatting
- vapjs-filter - filter and event handling for Vapory RPC filters
- vapjs-contract - a contract object abstraction
- vapjs-signer - a raw transaction signer
- vapjs-account - a module for creating and managing Vapory accounts
- vapjs-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 vapjs 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
vapjs
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.
vapjs
was built by a strong community of Vapory 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
andvaporyjs
- Richard Moore - for his work on
ethers-io
andvapors-wallet
from which so much ofvapjs
is build from - Karl Floersch - for his guidence and support
- Martin B. - for his work on
vaporyjs
- Alex Beregszaszi - for his work on
vaporyjs
- Vitalik Buterin - for creating
Vapory