Skip to content

qtumproject/app-qtum

 
 

Repository files navigation

Ledger Qtum Application

Prerequisite

Be sure to have your environment correctly set up (see Getting Started) and ledgerblue installed.

If you want to benefit from vscode integration, it's recommended to move the toolchain in /opt and set BOLOS_ENV environment variable as follows

BOLOS_ENV=/opt/bolos-devenv

and do the same with BOLOS_SDK environment variable

BOLOS_SDK=/opt/nanos-secure-sdk

Compilation

make DEBUG=1  # compile optionally with PRINTF
make load     # load the app on the Nano using ledgerblue

Documentation

High level documentation on the architecture and interface of the app:

  • qtum.md: specifications of application commands.
  • wallet.md: supported wallet signing policies.
  • merkle.md: rationale and specifications for the usage of Merkle trees.

Additional documentation can be generated with doxygen

doxygen .doxygen/Doxyfile

the process outputs HTML and LaTeX documentations in doc/html and doc/latex folders.

Client libraries

A Python client library and a TypeScript client library are available in this repository.

Tests & Continuous Integration

The flow processed in GitHub Actions is the following:

It outputs 4 artifacts:

  • qtum-app-debug within output files of the compilation process in debug mode
  • code-coverage within HTML details of code coverage
  • documentation within HTML auto-generated documentation

Develop on Ubuntu

This is a quick start script for developing app-qtum on Ubuntu.

# Install docker
sudo apt update
sudo apt install snapd
sudo snap refresh snapd
sudo snap install docker
sudo addgroup --system docker
sudo adduser $USER docker
newgrp docker
sudo snap disable docker
sudo snap enable docker

# Pull the latest dev tool
sudo docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest

# Clone app-qtum
sudo apt install git -y
git clone https://github.com/qtumproject/app-qtum

# Add rules for the supported devices
sudo app-qtum/script/add_udev_rules.sh

# Add ledger_env with command line to ~/.bashrc
app-qtum/script/ledger_ubuntu_env.sh
source ~/.bashrc

# Build the ledger app
cd app-qtum
ledger_env
make
make load
exit

Releases

No releases published

Packages

No packages published

Languages

  • C 47.6%
  • Python 34.5%
  • Rust 5.8%
  • TypeScript 5.3%
  • C++ 3.4%
  • Jupyter Notebook 2.7%
  • Other 0.7%