A decentralized self sovereign identity solution developed by Jolocom.
Jolocom SmartWallet - An application to manage your digital identity.
Interested in our vision? Take a look at our whitepaper.
Prerequisites
- Set-up requires Node.js to be installed on your computer.
Node.js v12+ to build the project. You can either manually install Node version above 12, or you can delegate it to Volta (follow this link to install Volta). Node 12.4.1 is pinned to the project
Installation
- Clone the repository to a directory of your choice.
cdinto the cloned repo and runyarnfrom your terminal to install the required depencencies .
Running a debug version for development
Android
- Please set up an Android development environment and install the required SDKs.
- The Getting Started guide for React Native may come in handy.
- Look for the instructions under React Native CLI Quickstart.
- Connect an Android device and enable USB debugging OR start an Android AVD emulator
- Run
yarn androidto install the application and run it.
- NOTE: this will start a metro bundler server automatically, with stdout/stderr discarded. You can close this and run
yarn startto manually start the bundler and receive more detailed output.
iOS
- Please set up an appropriate Xcode development environment.
- The Getting Started guide for React Native may come in handy.
- Look for the instructions under React Native CLI Quickstart.
cdinto theiosfolder, and install the native dependencies using thepod installcommand.- Run
yarn iosto install and run the application in an emulator.
- This will default to an iPhone X emulator.
- The device can be specified by adding
--simulatorand the device name.
yarn ios --simulator "iPhone SE"
NOTE: this will start a metro bundler server automatically, with stdout/stderr discarded. You can close this and runyarn startto manually start the bundler and receive more detailed output.NOTE: A debug build can also be built through Xcode.
Deeplinks
The application supports deeplinks with this syntax
https://jolocom.app.link/interact?token={jwt}&redirectUrl={redirect_url}
where jwt is a jwt containing a valid interaction token and redirecturl (NOTE: url is an optional parameter) is an address a user will be redirected to (after the user's confirmation) after an interaction has been completed (full cycle of tokens exchange has happened and no exceptions were encountered on the way). Note redirecturl should be “url encoded”. You can do so programaticily, i.e. in JS encodeURIComponent(redirect_url)
A QR code containing a deeplink can be scanned by both the wallet camera and the device camera
Testing
We use Jest + React Native Testing Library for unit testing.
To run unit tests with watch and testing coverage:
yarn test --watch --coverage
Code Style and Formatting
- There are plugins available for a range of IDEs and text editors; automatic formatting on save is also supported in some editors.- Check the
yarn lint:fixandyarn prettier:formatscripts.
