Gaëtan Renaudeau
9ceb01bec0
|
7 years ago | |
---|---|---|
.circleci | 7 years ago | |
.storybook | 7 years ago | |
build | 7 years ago | |
flow-defs | 7 years ago | |
scripts | 7 years ago | |
src | 7 years ago | |
static | 7 years ago | |
webpack | 7 years ago | |
.babelrc | 7 years ago | |
.eslintrc | 7 years ago | |
.flowconfig | 7 years ago | |
.gitignore | 7 years ago | |
.prettierignore | 7 years ago | |
.prettierrc | 7 years ago | |
LICENSE | 7 years ago | |
README.md | 7 years ago | |
babel.config.js | 7 years ago | |
crowdin.yml | 7 years ago | |
electron-builder.yml | 7 years ago | |
jest.config.js | 7 years ago | |
package.json | 7 years ago | |
yarn.lock | 7 years ago |
README.md
Ledger Live - Desktop
⚠️ 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
- NodeJS LTS
- Yarn LTS
- Python v2.7.10 (used by node-gyp to build native addons)
- You will also need a C++ compiler
Optional
- In the application we use
Museo Sans
font. To include it in the app, you need to have a zip filemuseosans.zip
which you should extract and place inside thestatic/fonts/museosans
directory
Install
- Clone or fork the repo
git clone git@github.com:LedgerHQ/ledger-live-desktop.git
- 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
yarn storybook
Run code quality checks
yarn lint # launch eslint
yarn prettier # launch prettier
yarn flow # launch flow
yarn test # launch unit tests
Programmaically reset hard the app
Stop the app and to clean accounts, settings, etc, run
rm -rf ~/Library/Application\ Support/Electron/
Additional Info on tools used in the app
- Sentry - error-tracking software, learn more
- Storybook - UI development environment, learn more
- U2F - We use a custom transport encapsulation to pass instructions to the hardware device with U2F protocol. Learn more about U2F