@ledgerhq/live-cli
@ledgerhq/live-cli
npm i @ledgerhq/live-cli
@ledgerhq/live-cli

@ledgerhq/live-cli

Mono-repository containing packages related to Ledger Live and its javascript ecosystem.

by LedgerHQ

22.6.6 (see all)TypeScript:Not Found
npm i @ledgerhq/live-cli
Readme

ledger-logo   js-logo

The Ledger Live JavaScript ecosystem

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

gitpoap badge

About

ledger-live is a monorepository whose purpose is to centralize all the JavaScript code related to the Ledger Live applications in one place.

Ledger Live is our platform of apps and services integrated specifically to work with your Nano device. It functions as a secure gateway to the crypto ecosystem. This means accessing a variety of crypto, NFT and DeFi based services directly and seamlessly from your hardware wallet – a better, simpler user experience that bypasses a major security concern known as blind signing.

Developers looking to integrate their blockchain in Ledger Live are invited to head to the Developer Portal where they will find the section Blockchain Support.

Installation

In order to interact with any package contained in this repository you will need to install the following:

This is only a minimal setup. You will need to perform additional installation steps depending on the package you want to work on, please refer to its nested readme file.

Then, clone the repository and install the dependencies:

git clone git@github.com:LedgerHQ/ledger-live.git
cd ledger-live
pnpm i
# Alternatively, if you want to bypass the postinstall scripts which can be long to run
# pnpm i --ignore-scripts

Note: multiple postinstall steps will be triggered and fail if the applications prerequisites are not met. You can safely ignore the errors if you do not plan to work on those apps.

Usage

Important: All the commands should be run at the root of the monorepo.

Tools

We use pnpm workspaces and turborepo under the hood to handle local and external dependencies, orchestrate tasks and perform various optimizations like package hoisting or remote caching.

For changelog generation releases and package publishing we rely on the changesets library.

Root scripts

The scripts that are defined inside the root /package.json file will use turborepo under the hood and automatically perform needed tasks before running the action.

# This command will first build all the local dependencies needed in the right order.
# Only then it will attempt to build the `Ledger Live Desktop` app.
pnpm build:lld

Aliases

To run nested scripts which are not covered at the root, you should not change your working directory. Every package has an alias defined (see application or library tables or check out the package.json file) that you can use as a prefix when running the script from the root.

# `pnpm desktop` is one of the shorthands written to avoid changing the working directory.

# The following command will run the nested `test` script.
# `test` is defined inside the `./apps/ledger-live-desktop/package.json` file.
pnpm desktop test

Note that when using these kinds of scripts you will have to make sure that the dependencies are built beforehand.

Scoping

You can scope any pnpm or turborepo based script by using the --filter flag.

This is a very powerful feature that you should look into if you are a frequent contributor.

Please check out the pnpm or turborepo documentation for more details (the syntax is almost similar albeit pnpm being a bit more powerful).

Here are some examples:

# Install all the dependencies needed for the packages under ./libs
pnpm i -F "{libs/**}..."
# Run lint only on packages that have been changed compared to origin/develop
pnpm lint --filter=[origin/develop]
# Test every package that has been changed since the last commit excluding the applications
pnpm run test --continue --filter="!./apps/*" --filter="...[HEAD~1]"
# Run typechecks for the Ledger Live Mobile project
pnpm typecheck --filter="live-mobile"

Documentation

Each project folder has a README.md file which contains basic documentation. It includes background info about the project and how to setup, run and build it.

Please check the wiki for additional documentation.

Structure

The sub-packages are (roughly) split into three categories.

/app - Applications

The applications are user-facing programs which depend on one or more libraries.

Ledger Live Applications

NameAliasDownload
Ledger Live Desktoppnpm desktopWebsite
Ledger Live Mobilepnpm mobileAndroid / iOS

/libs - Libraries

Libraries are public packages which purpose is to be consumed by other libraries or applications. They are deployed to the official npm repository under the @ledgerhq organization.

Ledger Live Libraries

NameAliasUmbrellaPackage
@ledgerhq/ledger-live-commonpnpm common-----
---------------------
@ledgerhq/cryptoassetspnpm ljs:cryoptoassetsledgerjsnpm
@ledgerhq/devicespnpm ljs:devicesledgerjsnpm
@ledgerhq/errorspnpm ljs:errorsledgerjsnpm
@ledgerhq/hw-app-algorandpnpm ljs:hw-app-algorandledgerjsnpm
@ledgerhq/hw-app-btcpnpm ljs:hw-app-btcledgerjsnpm
@ledgerhq/hw-app-cosmospnpm ljs:hw-app-cosmosledgerjsnpm
@ledgerhq/hw-app-ethpnpm ljs:hw-app-ethledgerjsnpm
@ledgerhq/hw-app-heliumpnpm ljs:hw-app-heliumledgerjsnpm
@ledgerhq/hw-app-polkadotpnpm ljs:hw-app-polkadotledgerjsnpm
@ledgerhq/hw-app-solanapnpm ljs:hw-app-solanaledgerjsnpm
@ledgerhq/hw-app-strpnpm ljs:hw-app-strledgerjsnpm
@ledgerhq/hw-app-tezospnpm ljs:hw-app-tezosledgerjsnpm
@ledgerhq/hw-app-trxpnpm ljs:hw-app-trxledgerjsnpm
@ledgerhq/hw-app-xrppnpm ljs:hw-app-xrpledgerjsnpm
@ledgerhq/hw-transportpnpm ljs:hw-transportledgerjsnpm
@ledgerhq/hw-transport-httppnpm ljs:hw-transport-httpledgerjsnpm
@ledgerhq/hw-transport-mockerpnpm ljs:hw-transport-mockerledgerjsnpm
@ledgerhq/hw-transport-node-blepnpm ljs:hw-transport-nodeledgerjsnpm
@ledgerhq/hw-transport-node-hidpnpm ljs:hw-transport-nodeledgerjsnpm
@ledgerhq/hw-transport-node-hid-noeventspnpm ljs:hw-transport-nodeledgerjsnpm
@ledgerhq/hw-transport-node-hid-singletonpnpm ljs:hw-transport-nodeledgerjsnpm
@ledgerhq/hw-transport-node-speculospnpm ljs:hw-transport-nodeledgerjsnpm
@ledgerhq/hw-transport-node-speculos-httppnpm ljs:hw-transport-nodeledgerjsnpm
@ledgerhq/hw-transport-web-blepnpm ljs:hw-transport-webledgerjsnpm
@ledgerhq/hw-transport-webhidpnpm ljs:hw-transport-webhidledgerjsnpm
@ledgerhq/hw-transport-webusbpnpm ljs:hw-transport-webusbledgerjsnpm
@ledgerhq/logspnpm ljs:logsledgerjsnpm
@ledgerhq/react-native-hidpnpm ljs:react-native-hidledgerjsnpm
@ledgerhq/react-native-hw-transport-blepnpm ljs:react-native-hwledgerjsnpm
@ledgerhq/types-cryptoassetspnpm ljs:types-cryptoassetsledgerjsnpm
@ledgerhq/types-devicespnpm ljs:types-devicesledgerjsnpm
@ledgerhq/types-livepnpm ljs:types-liveledgerjsnpm
---------------------
@ledgerhq/icons-uipnpm ui:iconsuinpm
@ledgerhq/native-uipnpm ui:nativeuinpm
@ledgerhq/react-uipnpm ui:reactuinpm
@ledgerhq/ui-sharedpnpm ui:shareduinpm

/tools - Tools

⚠️ Tools are meant to be used internally and are undocumented for the most part.

A tool can be a github action, a shell script or a piece of JavaScript code that is used throughout this repository.

Contributing

Please check the general guidelines for contributing to Ledger Live projects: CONTRIBUTING.md.

Each separate project may also contain specific guidelines inside its own folder.

In the meantime here are some important highlights:

  • Follow the git workflow, prefix your branches and do not create unneeded merge commits.
  • Be mindful when creating Pull Requests, specify the reason of the change clearly and write tests if needed.
  • Ledger Applications are mostly accepting bugfix contributions. For features we may reject them based on the fact that they do not fit our roadmap or our long-term goals.

Nightly Releases

Every night a github action merges the develop branch into the nightly branch.

For more information on the nightly releases, have a look at our wiki.

Ledger Live Desktop

  • Every commit triggers a workflow that will build and attach the application binaries to the run.
  • For Ledger Employees: Nightly releases are built every night under the protected ledger-live-build repository.

Ledger Live Mobile

Libraries

Nightly versions of library packages are pushed every night to npm.

To install a nightly library use the @nightly dist-tag.

npm i @ledgerhq/live-common@nightly

License

Please check each project LICENSE file, most of them are under the MIT license.

VersionTagPublished
22.6.6
latest
4d ago
22.6.7-next.0
next
2hrs ago
22.6.7-nightly.1
nightly
9hrs ago
22.6.6-recover-beta.0
recover-beta
14d ago
No alternatives found
No tutorials found
Add a tutorial
No dependencies found

Rate & Review

100
No reviews found
Be the first to rate