A simple wallet application for IOTA token.
This wallet application will enable iOS & Android users to securely access or generate a wallet on their mobile device. It will allow a user to send, receive, and generate addresses.
Security of the seed while the app is in active use will be handled by the audited TweetNaCl using the secrect box function (Sand box: here). At rest the secret box will be stored by iOS Keychain and on Android Facebook's Conceal.
It also includes a seed generator that is using SJCL's random-words.
- React Native - Facebook's crossplatform mobile framework
- Redux & Redux-Persist - Manages the application state and persists it locally.
- iota.lib.js - IOTA foundation's client library for the IOTA Token
- react-native-keychain - A native wrapper for iOS's Keychain, stores the seed
- Styled Components - A styling library so the app doesn't look crap.
For more info on security go here
Features - V0.1
As specificed in the bounty it will have the following functions:
- Generate Seed
- Hydrate a pre-exisiting seed
- Send Transfer
- Specify amount
- Specify address
- Attach to tangle
- Receive Transfer
- Get latest confirmed balance
- Display all pending transfers
- Generate New Address
- Show QR code for that
- Change node address
- Integrate into Native Keystores
- Encrypt seed in secure box
- Destory memory on Background
The applicaiton is structured in the following way:
--- app -- components // Smaller react components for use in routes | --- libs // Crypto, Remember Me, & Redux Store | --- routes // Application routes | --- assets // Images and assets | --- actions // Application Actions (Redux) | --- reducers // Application Reducers (Redux) | --- entry.js // Entry point for the application
git clone https://github.com/l3wi/iotaMobile.git //clone the repo cd iotaMobile // CD into directory npm install -g react-native-cli yarn // Install Yarn and ReactNative CLI yarn // Install Deps react-native run-ios // Launch emulator and start bundler // PS: If simulator has an error. Make sure to Debug JS remotely (Press CMD + D)
MIT 2017 - Lewis Freiberg