/ledger-live-common

Common ground for the Ledger Wallet apps

Primary LanguageTypeScriptApache License 2.0Apache-2.0

We are hiring, join us! 👨‍💻👩‍💻

“Ledger Live Common” @ledgerhq/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

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