2017-04-05 23:56:41 +03:00
ethers.js
=========
2016-07-16 07:34:40 +03:00
2017-10-20 22:44:54 +03:00
[![npm version ](https://badge.fury.io/js/ethers.svg )](https://badge.fury.io/js/ethers)
2016-08-05 10:53:29 +03:00
2018-06-21 04:14:56 +03:00
Complete Ethereum wallet implementation and utilities in JavaScript (and TypeScript).
2016-08-05 10:40:31 +03:00
**Features:**
2016-07-16 07:34:40 +03:00
2017-04-05 23:56:41 +03:00
- Keep your private keys in your client, **safe** and sound
2017-11-07 09:00:36 +03:00
- Import and export **JSON wallets** (Geth, Parity and crowdsale) and brain wallets
2018-06-21 04:19:08 +03:00
- Import and export BIP 39 **mnemonic phrases** (12 word backup phrases) and **HD Wallets** (English, Italian, Japanese, Korean, Simplified Chinese, Traditional Chinese; more coming soon)
2016-08-05 10:40:31 +03:00
- Meta-classes create JavaScript objects from any contract ABI
2018-01-18 00:23:01 +03:00
- Connect to Ethereum nodes over [JSON-RPC ](https://github.com/ethereum/wiki/wiki/JSON-RPC ), [INFURA ](https://infura.io ), [Etherscan ](https://etherscan.io ), or [MetaMask ](https://metamask.io )
2018-06-21 04:14:56 +03:00
- ENS names are first-class citizens; they can be used anywhere an Ethereum addresses can be
2018-06-21 04:19:08 +03:00
- **Tiny** (~84kb compressed; 270kb uncompressed)
2017-04-05 23:56:41 +03:00
- **Complete** functionality for all your Ethereum needs
2017-10-21 05:01:51 +03:00
- Extensive [documentation ](https://docs.ethers.io/ethers.js/html/ )
2017-10-20 22:44:54 +03:00
- Large collection of test cases which are maintained and added to
2018-06-21 04:14:56 +03:00
- Fully TypeScript ready, with definition files and full TypeScript source
2017-04-05 23:56:41 +03:00
- **MIT License** (including ALL dependencies); completely open source to do with as you please
2016-07-16 07:34:40 +03:00
2018-08-27 21:19:06 +03:00
Keep Updated
------------
For the latest news and advisories, please follow (@ethersproject)[https://twitter.com/ethersproject] on Twitter.
2016-08-05 10:53:29 +03:00
Installing
----------
To use in a browser:
```html
2017-10-21 05:59:30 +03:00
< script charset = "utf-8"
2018-08-27 21:19:06 +03:00
src="https://cdn.ethers.io/scripts/ethers-v4-beta.min.js"
2017-10-21 05:59:30 +03:00
type="text/javascript">
2017-04-05 23:56:41 +03:00
< / script >
2016-08-05 10:53:29 +03:00
```
To use in [node.js ](https://nodejs.org/ ):
```
2017-04-05 23:56:41 +03:00
/Users/ethers/my-app> npm install --save ethers
2016-08-05 10:53:29 +03:00
```
2017-04-05 23:56:41 +03:00
Documentation
-------------
2016-07-23 10:27:14 +03:00
2017-10-21 06:01:08 +03:00
Browse the [API Documentation ](https://docs.ethers.io/ethers.js/html/ ) online.
2016-07-23 10:27:14 +03:00
2018-08-27 21:19:06 +03:00
To fork and submit pull requests to the documentation, please see the
[documentation repository ](https://github.com/ethers-io/documentation ).
Related Libraries
---------------
- [Command Line Interface ](https://github.com/ethers-io/ethers-cli ) - Command Line Tools for ethers
- [CryptoKitties ](https://github.com/ricmoo/ethers-meow ) - CryptoKitties utility libraries
- [ENS ](https://github.com/ethers-io/ethers-ens ) - ENS utility libraries for managing names
- [LedgerSigner ](https://github.com/ethers-io/ethers-ledger ) - Use a Ledger Hardware Wallet as an ethers Signer (supports HID (node.js) and U2F (browser); or specify your own transport)
- [Web3 Bridge ](https://github.com/ethers-io/ethers-web3-bridge ) - Use ethers as the backend for a Web3 front-end
2016-07-16 07:34:40 +03:00
2016-07-23 10:27:14 +03:00
2018-06-21 04:14:56 +03:00
Hacking and Contributing
------------------------
The JavaScript code is now generated from TypeScript, so make sure you modify the
TypeScript and compile it, rather than modifying the JavaScript directly. To start
auto-compiling the TypeScript code, you may use:
```
/home/ethers> npm run auto-build
```
A very important part of ethers is its exhaustive test cases, so before making any
bug fix, please add a test case that fails prior to the fix, and succeeds after the
fix. All regression tests must pass.
Pull requests are always welcome, but please keep a few points in mind:
- Compatibility-breaking changes will not be accepted; they may be considered for the next major version
- Security is important; adding dependencies require fairly convincing arguments
- The library aims to be lean, so keep an eye on the `dist/ethers.min.js` filesize before and after your changes
- Add test cases for both expected and unexpected input
- Any new features need to be supported by us (issues, documentation, testing), so anything that is overly complicated or specific may not be accepted
2018-08-27 21:19:06 +03:00
In general, please start an issue before beginning a pull request, so we can have a public discussion. :)
2018-06-21 04:14:56 +03:00
2016-07-23 10:27:14 +03:00
2017-05-11 02:09:58 +03:00
Donations
---------
I do this because I love it, but if you want to buy me a coffee, I won't say no. ** :o)**
Ethereum: `0xEA517D5a070e6705Cc5467858681Ed953d285Eb9`
2016-07-16 07:34:40 +03:00
License
-------
2017-04-05 23:56:41 +03:00
Completely MIT Licensed. Including ALL dependencies.