- Notifications
You must be signed in to change notification settings - Fork188
Ethereum wallet with erc20 support / web wallet - built using react, web3, eth-lightwallet
License
MIT, MIT licenses found
Licenses found
PaulLaux/eth-hot-wallet
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Technical review article:How to build an Ethereum Wallet web app (Medium)
Created by Paul Laux,@dr_laux for announcements
- LightWallet V3
- Web3.js Ethereum JavaScript API
- React-boilerplate as a wrapper of React JS, Redux, Saga, Reselect, ImmutableJS and more
- Ant Design React js components
- Webpack 3 - A bundler for javascript and friends.
- Many others, Seepackage.json
- Infura.io as JsonRPC provider
- Coinmarketcap as exchange rates provider
- Encryption keys generated from seed and stored in the browser.
- Network selector including local and remote rpc
- Eth balance auto converted to btc/usd/euro.
- Responsive design for mobile 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
web3.eth.contract(erc20Abi)
Like all other network communication in the wallet, calls to erc20 contracts are done insideapp/containers/Header/saga.js
.ERC20 Abi can be imported using
import{erc20Abi}from'utils/contracts/abi';
- ERC20 native token support
- Local storage
- Tests
- Event log
- CI for development and production
- External security audit
- Upgrade to react 16
- Upgrade Enzyme 3
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.
- 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.
npm run build:dll
to build webpack DLL required for development.
npm run start
to start development mode. Go tohttp://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 seereact-boiledplate docs here or in the official repo.
After build, webpack monitor will generate stats about bundle size:
This project is licensed under the MIT license, Copyright (c) 2017 Paul Laux For more information seeLICENSE.md
.
About
Ethereum wallet with erc20 support / web wallet - built using react, web3, eth-lightwallet