A very primitive implementation of a non-custodial Ethereum wallet. It uses Async Storage to save account data locally.
- Node 10.15.1
- NPM 6.4.1
- Xcode 11.5
A lot of it is boilerplate included in the template that React Native starts you off with. These are the notable files/folders.
index.js
Entry file
screens/
Top-level components used for navigation. Each component has it's own folder with a index.js
being the stateful container and presentation.js
being the dumb component.
utils/
, Provides utility functions, mainly for storage
vendor/
, Holds the distributable package files that i had to browserify in order to run on react native
This project uses bip39.generateMnemonic()
to produce 128-bits of entropy. It is not an ideal approach for a secure and production-ready wallet. To improve our seed entropy, we would need to replace that method with either
- using random user input such as mouse movement or key strokes
- a system entropy generator like /dev/urandom
- or both