theQRL / qrl-wallet

QRL Wallet
https://wallet.theqrl.org
MIT License
48 stars 27 forks source link
electron meteor qrl quantum-resistant-ledger semantic-ui webassembly xmss

Build Status Codacy Badge Known Vulnerabilities MIT licensed

qrl-wallet | wallet.theqrl.org

This is the QRL wallet application developed by The QRL team, and hosted on wallet.theqrl.org

It provides both web and desktop interfaces using Meteor, Semantic UI, NodeJS and Electron.

All secure XMSS operations are run in a web assembly compiled version of qrllib locally in your browser or desktop application. Keys stay in the memory space of the XMSS object, which is destroyed the moment you close the wallet, browser window or desktop application.

Development Dependencies

The following dependencies are required for a functional local development environment.

NodeJS v14

We recommend using nvm to manage NodeJS versions and using the version of NodeJS as specified in the .nvmrc file

Meteor

@theqrl/electrify-qrl

npm install -g @theqrl/electrify-qrl

node-gyp

npm install -g node-gyp

node-gyp issues can generally be solved with updating npm (npm i -g npm) and rebuilding modules (npm rebuild)

Linux only: libudev-dev, libusb-dev and libusb-1.0-0-dev

sudo apt-get install libudev-dev libusb-dev libusb-1.0-0-dev

Redhat Linux: electron-installer-redhat installed globally

npm i -g electron-installer-redhat

Debian/Ubuntu Linux: electron-installer-debian installed globally

npm i -g electron-installer-debian

Mac only: create-dmg

npm install --global create-dmg

Windows Only - Build Tools for Visual Studio 2017

Windows Only - Wix Toolset Build Tools and electron-wix-msi-qrl:

npm install -g electron-wix-msi-qrl

Install qrl-wallet

git clone https://github.com/theQRL/qrl-wallet.git
cd qrl-wallet
npm install

Run QRL Wallet (web wallet)

meteor

A locally running wallet will be available at http://localhost:3000

Run Tests

meteor test --driver-package meteortesting:mocha

Run QRL Wallet (desktop client)

npm run electron

Package Electron Client

Ensure the node, mongo and mongod for the platform being built for are in the .electrify/bin directory (these are found in .meteor/local/dev_bundle after a successful local run)

  1. Clean the dist folder

MacOS and Linux

npm run cleanDist

Windows

npm run win:remove_dist
npm run win:create_dist
  1. Package Electron App

MacOS, Linux and Windows

npm run releaseready
npm run build

Build Installer

npm run installer

If you have issues, the QRL Discord is a good place to ask for help.