You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Gaëtan Renaudeau 6af5e5fe1d update analytics 7 years ago
.circleci Refresh circleci cache key 7 years ago
.storybook Integrate countervalues changes 7 years ago
build Updated app icon and installer visuals/icons to use new design 7 years ago
flow-defs include git revision in sentry & export file name 7 years ago
scripts Fix the compile script. it was a regression to remove `export` 7 years ago
src Merge pull request #845 from gre/make-libcore-import-unknown-wallet-and-account 7 years ago
static update analytics 7 years ago
webpack Remove UglifyJS and explicitely opt-out from it 7 years ago
.babelrc Use REAL babel.config in electron-webpack 7 years ago
.eslintrc no-lonely-if is back 7 years ago
.flowconfig bump some deps 7 years ago
.gitignore refactor icons to move react element into constants 7 years ago
.npmrc \n 7 years ago
.nvmrc Add \n to .nvmrc 7 years ago
.prettierignore Reverse transactions in accounts reducers 7 years ago
.prettierrc init 🎉 7 years ago
LICENSE Add LICENSE 7 years ago
PULL_REQUEST_TEMPLATE.md Update PULL_REQUEST_TEMPLATE.md 7 years ago
README.md Merge pull request #741 from NastiaS/minorFixesBranch 7 years ago
babel.config.js don't disable the displayName of styled components 7 years ago
crowdin.yml crowdin config 7 years ago
electron-builder.yml Nicer app and uninstaller icons for Windows 7 years ago
jest.config.js __APP_VERSION__ jest global 7 years ago
package.json v1.0.0-beta.7 7 years ago
yarn.lock Refactor deviceAccess without semaphore using a simple queue 7 years ago

README.md

Ledger Live - Desktop

CircleCI Crowdin

⚠️ Disclaimer: this project is under active development. Use at your own risks.

Ledger Live Desktop is a new generation Ledger Wallet application build with React, Redux and Electron to run natively on the web. The main goal of the app is to provide our users with a single wallet for all crypto currencies supported by our devices. To learn more check out Ledger

Architecture

From one side Ledger Desktop app connected to the Blockchain via the in-house written C++ library - LibCore and from the other it communicates to the Ledger Hardware Device to securely sign all transactions.

Setup

Requirements

Optional

  • In the application we use Museo Sans font. To include it in the app, you need to have a zip file museosans.zip which you should extract and place inside the static/fonts/museosans directory

Install

  1. Clone or fork the repo
git clone git@github.com:LedgerHQ/ledger-live-desktop.git
  1. Install dependencies
yarn

Run

Launch the app

yarn start

Build

# Build & package the whole app
# Creates a .dmg for Mac, .exe installer for Windows, or .AppImage for Linux
# Output files will be created in dist/ folder
yarn dist

Note: Use yarn dist:dir to speed up the process: it will skip the packaging step. Handy for debugging builds. You can also use BUNDLE_ANALYZER=1 yarn dist:dir to generate webpack-bundle-analyzer report.


Config (optional helpers)

Environment variables

(you can use a .env or export environment variables)

DEV_TOOLS_MODE=bottom # devtools position Options: right, bottom, undocked, detach
HIDE_DEV_WINDOW=0

## flags for development purpose
DEBUG_DEVICE=1
DEBUG_NETWORK=1
DEBUG_COMMANDS=1
DEBUG_DB=1
DEBUG_ACTION=1
DEBUG_TAB_KEY=1
DEBUG_LIBCORE=1
DEBUG_WS=1
LEDGER_RESET_ALL=1
LEDGER_DEBUG_ALL_LANGS=1
SKIP_GENUINE=1
SKIP_ONBOARDING=1
SHOW_LEGACY_NEW_ACCOUNT=1
HIGHLIGHT_I18N=1

## constants
GET_CALLS_TIMEOUT=30000
GET_CALLS_RETRY=2
SYNC_MAX_CONCURRENT=6
SYNC_BOOT_DELAY=2000
SYNC_ALL_INTERVAL=60000
CHECK_APP_INTERVAL_WHEN_INVALID=600
CHECK_APP_INTERVAL_WHEN_VALID=1200
CHECK_UPDATE_DELAY=5000
DEVICE_DISCONNECT_DEBOUNCE=500

Launch storybook

We use storybook for UI development.

yarn storybook

Run code quality checks

yarn lint                # launch eslint
yarn prettier            # launch prettier
yarn flow                # launch flow
yarn test                # launch unit tests

Programmatically reset app files

# clear the dev electron user data directory
# it remove sqlite db, accounts, settings
# useful to start from a fresh state

yarn reset-files

File structure

.
├── dist : output folder generate by the build
├── scripts : commands (for building, releasing,...)
├── src
│   ├── internals : code that run on the 'internal' thread.
│   ├── main : code that run on the 'main' thread.
│   ├── renderer : code that run on the 'renderer' thread
│   ├── components : all the React components
|       └── modals : sub levels for the modals
│   ├── api : related to HTTP APIs
│   ├── bridge : an abstraction on top of blockchains apis (libcore / js impls)
│   ├── commands : an abstraction to run code over the internal thread
│   ├── icons : all the icons of our app, as React components.
│   ├── config : contains the constants,...
│   ├── helpers : generic folder for our business logic (might be reorganized in the future)
│   ├── middlewares : redux middlewares
│   ├── actions : redux actions
│   ├── reducers : redux reducers
│   ├── sentry : for our bug tracker
│   ├── stories : for storybook
│   ├── styles : theme
│   ├── logger.js : abstraction for all our console.log s
│   └── types : global flow types
├── static
│   ├── docs
│   ├── fonts
│   ├── i18n
│   ├── images
│   └── videos
├── webpack : build configuration
└── yarn.lock