# eth-hot-wallet

> Ethereum and ERC20 Hot Wallet

Latest version **0.6.0** (published 2018-09-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install eth-hot-wallet
pnpm add eth-hot-wallet
yarn add eth-hot-wallet
bun add eth-hot-wallet
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.6.0 |
| Published | 2018-09-07 |
| First published | 2017-12-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=7 |
| Dependencies | 34 |
| Unpacked size | 3 MB |
| Known vulnerabilities | 0 (+19 in 6 direct dependencies) |
| Install scripts | yes |
| GitHub stars | 304 |
| Author | Paul Laux |
| Maintainers | paullaux |

## Links

- npm: https://www.npmjs.com/package/eth-hot-wallet
- Repository: https://github.com/PaulLaux/eth-hot-wallet
- Homepage: https://github.com/PaulLaux/eth-hot-wallet#readme
- Issues: https://github.com/PaulLaux/eth-hot-wallet/issues
- npm.io page: https://npm.io/package/eth-hot-wallet

## Dependencies (34)

- [ip](https://npm.io/package/ip.md) 1.1.5
- [antd](https://npm.io/package/antd.md) 3.1.1
- [intl](https://npm.io/package/intl.md) 1.2.5
- [web3](https://npm.io/package/web3.md) 0.20.7
- [chalk](https://npm.io/package/chalk.md) 1.1.3
- [react](https://npm.io/package/react.md) ^15.6.0
- [redux](https://npm.io/package/redux.md) 3.6.0
- [store](https://npm.io/package/store.md) ^2.0.12
- [lodash](https://npm.io/package/lodash.md) 4.17.10
- [express](https://npm.io/package/express.md) 4.16.3
- [history](https://npm.io/package/history.md) 4.7.2
- [warning](https://npm.io/package/warning.md) 3.0.0
- [minimist](https://npm.io/package/minimist.md) 1.2.0
- [reselect](https://npm.io/package/reselect.md) 3.0.1
- [cross-env](https://npm.io/package/cross-env.md) 5.2.0
- [immutable](https://npm.io/package/immutable.md) 3.8.2
- [invariant](https://npm.io/package/invariant.md) 2.2.4
- [react-dom](https://npm.io/package/react-dom.md) ^15.6.0
- [prop-types](https://npm.io/package/prop-types.md) 15.6.2
- [redux-saga](https://npm.io/package/redux-saga.md) 0.15.3
- [compression](https://npm.io/package/compression.md) 1.7.3
- [react-redux](https://npm.io/package/react-redux.md) 5.0.7
- [react-helmet](https://npm.io/package/react-helmet.md) 5.1.3
- [sanitize.css](https://npm.io/package/sanitize.css.md) 5.0.0
- [whatwg-fetch](https://npm.io/package/whatwg-fetch.md) 2.0.4
- [babel-polyfill](https://npm.io/package/babel-polyfill.md) 6.26.0
- [react-loadable](https://npm.io/package/react-loadable.md) 4.0.5
- [eth-lightwallet](https://npm.io/package/eth-lightwallet.md) 3.0.1
- [redux-immutable](https://npm.io/package/redux-immutable.md) 4.0.0
- [fontfaceobserver](https://npm.io/package/fontfaceobserver.md) 2.0.9
- [react-router-dom](https://npm.io/package/react-router-dom.md) 4.1.1
- [styled-components](https://npm.io/package/styled-components.md) 2.0.0
- [react-router-redux](https://npm.io/package/react-router-redux.md) 5.0.0-alpha.6
- [hoist-non-react-statics](https://npm.io/package/hoist-non-react-statics.md) 2.1.1

## Recent versions

- 0.6.0 (latest) — 2018-09-07
- 0.5.1 — 2018-01-22
- 0.5.0 — 2018-01-22
- 0.4.1 — 2018-01-21
- 0.4.0 — 2018-01-21
- 0.3.0 — 2017-12-24
- 0.2.0 — 2017-12-13
- 0.1.2 — 2017-12-05
- 0.1.1 — 2017-12-05
- 0.1.0 — 2017-12-05

## README

# ETH-Hot-Wallet 

## Ethereum wallet with ERC20 support - A web wallet 

![eth-hot-wallet ethereum wallet preview](https://paullaux.github.io/eth-hot-wallet/docs/images/eth-hot-wallet-ethereum.PNG)

https://eth-hot-wallet.com

#### Work in progress

##### Created by Paul Laux, [@dr_laux](https://twitter.com/dr_laux) for announcements

### Core components

- [ ] [LightWallet V3](https://github.com/ConsenSys/eth-lightwallet) 
- [ ] [Web3.js](https://github.com/ethereum/web3.js/) Ethereum JavaScript API
- [ ] [React-boilerplate](https://github.com/react-boilerplate/react-boilerplate) as a wrapper of React JS, Redux, Saga, Reselect, ImmutableJS and more
- [ ] [Ant Design](https://github.com/ant-design/ant-design) React js components
- [ ] [Webpack 3](https://github.com/webpack/webpack) - A bundler for javascript and friends.
- [ ] Many others, See [package.json](https://github.com/PaulLaux/eth-hot-wallet/blob/master/package.json)


### API Providers

- [ ] [Infura.io](https://infura.io/) as JsonRPC provider
- [ ] [Coinmarketcap](https://coinmarketcap.com/) as exchange rates provider


### Features

- [x] Encryption keys generated from seed and stored in the browser.
- [x] Network selector including local and remote rpc 
- [x] Eth balance auto converted to btc/usd/euro.
- [x] Responsive design for mobile support.


#### ERC20 wallet and native token support
Eth-hot-wallet supports erc20 tokens. From the user side, the tokens will have the same look and feel like Ether. 
To interact with contracts, we use 
```javascript
web3.eth.contract(erc20Abi)
```
Like all other network communication in the wallet, calls to erc20 contracts are done inside `app/containers/Header/saga.js`.
ERC20 Abi can be imported using 
```javascript
import { erc20Abi } from 'utils/contracts/abi';
```




### Todo

- [x] ERC20 native token support
- [x] Local storage
- [ ] Tests
- [ ] Event log
- [ ] CI for development and production
- [ ] External security audit
- [ ] Upgrade to react 16
- [ ] Upgrade Enzyme 3


### Development

4 Major containers were created:

- Homepage container - all the actions related to keystore, including manipulation and usage.

- Header container - all the activities related to network communication / web3 API.

- SendTo container - state and actions related to sendTo modal, actual checks and sending is happening in header container.

![eth-hot-wallet send token preview](https://paullaux.github.io/eth-hot-wallet/docs/images/eth-hot-wallet-sendToken.jpg)


- TokenChooser container - allows the user to select which erc20 token will be used from a pre-defined list. The list of supported tokens can be found in `app/containers/TokenChooser/token-lists.js`. Each network requires a different list.

![eth-hot-wallet erc20 token chooser preview](https://paullaux.github.io/eth-hot-wallet/docs/images/eth-hot-wallet-erc20-tokenChooser.jpg)



#### npm scripts for eth-hot wallet:

`npm run build:dll` to build webpack DLL required for development.

`npm run start` to start development mode. Go to http://localhost:3001 - changes will be reflected in realtime using hot module reloading.

`npm run build` to create bundle for publishing

`npm run generate` to create new components / containers using the generator.

For more documentation regarding the react setup see [react-boiledplate docs](https://eth-hot-wallet.com/docs/react-boilerplate/) here or in the official repo.


After build, webpack monitor will generate stats about bundle size:


![eth-hot-wallet webpack-monitor](https://paullaux.github.io/eth-hot-wallet/docs/images/webpack-monitor.JPG)

## License

This project is licensed under the MIT license, Copyright (c) 2017 Paul Laux For more information see `LICENSE.md`.

---
_Source: https://npm.io/package/eth-hot-wallet · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
