/smartwallet-app

A decentralized self sovereign identity solution developed by Jolocom.

Primary LanguageTypeScriptOtherNOASSERTION

Jolocom SmartWallet - An application to manage your digital identity.

Interested in our vision? Take a look at our whitepaper.

Gitter chat

Prerequisites

  • Set-up requires Node.js to be installed on your computer.
    • The Jolocom SmartWallet requires 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
  • We use Yarn as our package manager.
  • We use CocoaPods for iOS dependency management.

Installation

  1. Clone the repository to a directory of your choice.
  2. cd into the cloned repo and run yarn from your terminal to install the required depencencies .

Running a debug version for development

Android

  1. 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.
  1. Connect an Android device and enable USB debugging OR start an Android AVD emulator
  2. Run yarn android to 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 start to manually start the bundler and receive more detailed output.

iOS

  1. 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.
  1. cd into the ios folder, and install the native dependencies using the pod install command.
  2. Run yarn ios to install and run the application in an emulator.
  • This will default to an iPhone X emulator.
  • The device can be specified by adding --simulator and the device name.
    • e.g. yarn ios --simulator "iPhone SE"
  • NOTE: this will start a metro bundler server automatically, with stdout/stderr discarded. You can close this and run yarn start to manually start the bundler and receive more detailed output.
  • NOTE: A debug build can also be built through Xcode.

Running a build on a physical device requires the appropriate code signing certificates.

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 redirect_url (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 redirect_url 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

  • We use ESLint and Prettier to keep a consistent style across the codebase.
    • 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:fix and yarn prettier:format scripts.

Copyright (C) 2014-2022 JOLOCOM GmbH