⛔️ DEPRECATED
This repository is now deprecated. We moved to a new mono repository architecture containing all of Ledger Live JavaScript Ecosystem that you can find here. You can follow the migration guide to help you make the transition.
We are hiring, join us! 👨💻👩💻
@ledgerhq/live-common
“Ledger Live Common” ````
`.--:::::
`.-::::::::: ````
.://///:-..`` `-/+++/-`
`://///-` -++++++o/.
`/+++/:` -+++++osss+`
`:++++:` ./++++-/osss/`
.+++++` `-://- .ooooo.
-+ooo/` `` `/oooo-
.oooo+` .::-.` `+++++.
`+oooo:./+++/. -++++/`
-ossso+++++:` -/+++/.
-ooo+++++:` .://///.
./+++++/` ``.-://///:`
`---.` -:::::///:-.
:::::::-.`
....``
Ledger Live Common (@ledgerhq/live-common
) is a JavaScript library available via a NPM package.
This library depends on a bunch of ledgerjs packages and put together the core business logic behind Ledger Live Desktop and Ledger Live Mobile.
The stack is pretty standard for a ES6 and FlowType library. The notable dependencies are libraries like RxJS and BigNumber.js. There is also a bit of React and Redux but exposed in agnostic ways (meaning it's not mandatory to use – there will be dedicated entry point for them to offer utilities like React Hooks).
Table of Contents
- Introduction, Goals and Tradeoffs
- Getting started
- Setup to use
@ledgerhq/live-common
ledger-live
CLI- tools web playground
mobile-test-app
test project
- Setup to use
- Learn by example
- The Currency models and utilities
- The Account models and portfolio logic
- The CurrencyBridge: scan accounts with a device
- The AccountBridge: synchronize an account and perform transaction
- Hardware Wallet logic
- Apps store logic
- Firmware Update logic
- Countervalues logic
- Coin integration specifics
- Introduction
- Bridge implementations, where to start? (JS, Mock)
- Implementing the hardware wallet logic of a new coin
- The account derivation (BIP44 and exceptions)
- Advanced
- api/socket
createDeviceSocket
and script runner - env.js: live-common configuration system
- Serialization and reconciliation
- cross.js and "LiveQR" protocol
- cache.js helpers
- Tokens management and ERC20
- api/socket
Developing with Ledger Live Common
- Developing setup
- The different test approaches
- Unit test of live-common logic
- End-to-end tests of the
ledger-live
command - Bridge dataset tests
- Providing mocks to implement UI tests