Git Product home page Git Product logo

ledgerhq / ledger-live Goto Github PK

View Code? Open in Web Editor NEW
410.0 30.0 302.0 1.39 GB

Mono-repository for packages related to Ledger Live and its JavaScript ecosystem.

License: MIT License

Shell 0.02% JavaScript 56.83% NSIS 0.01% Python 0.01% Standard ML 0.01% TypeScript 42.90% CSS 0.01% HTML 0.04% Ruby 0.04% Java 0.05% Swift 0.01% Objective-C 0.01% EJS 0.01% Dockerfile 0.01% Kotlin 0.05% Objective-C++ 0.02% MDX 0.01% Solidity 0.01% Makefile 0.01%

ledger-live's Introduction

ledger-logo Β  js-logo

The Ledger Live JavaScript Ecosystem

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 designed specifically for seamless integration with your Ledger device. Acting as a secure gateway to the crypto ecosystem, it allows direct access to a diverse range of crypto, NFT and DeFi services. This integration ensures a safer and more user-friendly experience that address a common security issue 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

πŸ’‘ 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.

Cloning

git clone [email protected]:LedgerHQ/ledger-live.git
cd ledger-live

Proto

⚠️ Important: In order to install the right version of the tools you will need to install the proto toolchain manager. Please follow the instructions on the proto website to install it.

Once you have installed proto, please run the following command:

# Will download and install the supported versions of nodejs, npm and pnpm.
# Run it from the root or a subfolder of the repository.
proto use

Dependencies

Use the pnpm package manager to install the dependencies in the whole workspace:

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.

Common setup errors

Out of sync Podfile.lock

You may encounter this error when running pnpm i. Try:

rm -rf ~/.cocoapods/
pnpm clean && pnpm store prune && proto use && pnpm i && pnpm build:llm:deps
pnpm mobile pod

Note: If prompted to run bundle install do this in the ledger-live-mobile directory. Restart terminal if the error persists.

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 information 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

Name Alias Download
Ledger Live Desktop pnpm desktop Website
Ledger Live Mobile pnpm mobile Android / iOS

/libs - Libraries

Libraries serve as publicly available packages, designed for integration with other libraries or applications. These packages are deployed to the official npm repository under the @ledgerhq organization.

Ledger Live Libraries

Name Alias Umbrella Package
@ledgerhq/ledger-live-common pnpm common -----
---- ----- ----- -------
@ledgerhq/cryptoassets pnpm ljs:cryoptoassets ledgerjs npm
@ledgerhq/devices pnpm ljs:devices ledgerjs npm
@ledgerhq/errors pnpm ljs:errors ledgerjs npm
@ledgerhq/hw-app-algorand pnpm ljs:hw-app-algorand ledgerjs npm
@ledgerhq/hw-app-btc pnpm ljs:hw-app-btc ledgerjs npm
@ledgerhq/hw-app-cosmos pnpm ljs:hw-app-cosmos ledgerjs npm
@ledgerhq/hw-app-eth pnpm ljs:hw-app-eth ledgerjs npm
@ledgerhq/hw-app-helium pnpm ljs:hw-app-helium ledgerjs npm
@ledgerhq/hw-app-polkadot pnpm ljs:hw-app-polkadot ledgerjs npm
@ledgerhq/hw-app-solana pnpm ljs:hw-app-solana ledgerjs npm
@ledgerhq/hw-app-str pnpm ljs:hw-app-str ledgerjs npm
@ledgerhq/hw-app-tezos pnpm ljs:hw-app-tezos ledgerjs npm
@ledgerhq/hw-app-trx pnpm ljs:hw-app-trx ledgerjs npm
@ledgerhq/hw-app-xrp pnpm ljs:hw-app-xrp ledgerjs npm
@ledgerhq/hw-transport pnpm ljs:hw-transport ledgerjs npm
@ledgerhq/hw-transport-http pnpm ljs:hw-transport-http ledgerjs npm
@ledgerhq/hw-transport-mocker pnpm ljs:hw-transport-mocker ledgerjs npm
@ledgerhq/hw-transport-node-hid pnpm ljs:hw-transport-node ledgerjs npm
@ledgerhq/hw-transport-node-hid-noevents pnpm ljs:hw-transport-node ledgerjs npm
@ledgerhq/hw-transport-node-hid-singleton pnpm ljs:hw-transport-node ledgerjs npm
@ledgerhq/hw-transport-node-speculos pnpm ljs:hw-transport-node ledgerjs npm
@ledgerhq/hw-transport-node-speculos-http pnpm ljs:hw-transport-node ledgerjs npm
@ledgerhq/hw-transport-web-ble pnpm ljs:hw-transport-web ledgerjs npm
@ledgerhq/hw-transport-webhid pnpm ljs:hw-transport-webhid ledgerjs npm
@ledgerhq/hw-transport-webusb pnpm ljs:hw-transport-webusb ledgerjs npm
@ledgerhq/logs pnpm ljs:logs ledgerjs npm
@ledgerhq/react-native-hid pnpm ljs:react-native-hid ledgerjs npm
@ledgerhq/react-native-hw-transport-ble pnpm ljs:react-native-hw ledgerjs npm
@ledgerhq/types-cryptoassets pnpm ljs:types-cryptoassets ledgerjs npm
@ledgerhq/types-devices pnpm ljs:types-devices ledgerjs npm
@ledgerhq/types-live pnpm ljs:types-live ledgerjs npm
---- ----- ----- -------
@ledgerhq/icons-ui pnpm ui:icons ui npm
@ledgerhq/native-ui pnpm ui:native ui npm
@ledgerhq/react-ui pnpm ui:react ui npm
@ledgerhq/ui-shared pnpm ui:shared ui npm

/tools - Tools

⚠️ Tools are primarily intended for internal use and are largely undocumented.

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 individual project may include its own specific guidelines, located within its respective folder.

While you explore these projects, here are some key points to keep in mind:

  • Follow the git workflow, prefix your branches and do not create unnecessary merge commits.
  • Be mindful when creating Pull Requests, clearly specify the purpose of your changes and include tests where applicable.
  • Ledger Applications are mostly accepting bugfix contributions. Feature contributions are subject to review; they may be declined if they don't align with our roadmap or our long-term objectives.

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.

ledger-live's People

Contributors

cgrellard-ledger avatar elbywan avatar ggilchrist-ledger avatar gre avatar hedi-edelbloute avatar henri-ly avatar hzheng-ledger avatar iammorrow avatar juan-cortes avatar junichisugiura avatar justkant avatar kallen-ledger avatar kvnls avatar lambertkevin avatar ledger-bot avatar ledgerlive avatar lfbarreto avatar live-github-bot[bot] avatar loeck avatar machard avatar mcayuelas-ledger avatar meriadec avatar mle-gall avatar mortalkastor avatar nastias avatar nparigi-ledger avatar ofreyssinet-ledger avatar sarneijim avatar sshmaxime avatar valpinkman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ledger-live's Issues

Fedora 36 Wayland Blank GUI

Describe the bug
Loading the Ledger Live app image on Fedora 36 running the Wayland display server returns a blank black GUI.

To Reproduce

Steps to reproduce the behavior:

  1. Load up Fedora 36 and ensure you are running the OS using the Wayland display server.
  2. Download and make the app image executable.
  3. Run the appimage in terminal
  4. See error:
    libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)

Expected behavior

As with other OS's running Wayland the Ledger Live applications GUI should display.

Screenshots
VM vs HOST both running wayland. HOST Fedora 36 (Workstation Edition). VM Pop!_OS 22.04 LTS

VMvsHOST

Desktop (please complete the following information):

  • OS: Fedora 36 (Workstation Edition)
  • CPU Ryzen 7 3700X
  • GPU: GTX 1070TI

Additional context
I have tried to reproduce this using a Pop_OS! virtual machine running wayland. See in screenshot the comparison between the host and the VM.
Note that Nvidia gpu's sometimes have trouble on Wayland. I asked a person on discord with an Nvidia GPU to reproduce this and got the same error.

Module not found '@ledgerhq/devices/hid-framing' / https://registry.yarnpkg.com/@ledgerhq%2fdevices/hid-framing returned a 405

Details

  • Impacted Library: [e.g. @ledgerhq/devices]
  • Version: [e.g. 7.0.0]

Describe the bug

After a clean installation of the latest version 7.0.0 the following error occurs:

Trace:
Error: https://registry.yarnpkg.com/@ledgerhq%2fdevices/hid-framing: Request "https://registry.yarnpkg.com/@ledgerhq%2fdevices/hid-framing" returned a 405
at Request.params.callback [as _callback] (/Users/dimabrook/.yarn/lib/cli.js:67038:18)
at Request.self.callback (/Users/dimabrook/.yarn/lib/cli.js:140883:22)
at Request.emit (node:events:390:28)
at Request. (/Users/dimabrook/.yarn/lib/cli.js:141855:10)
at Request.emit (node:events:390:28)
at IncomingMessage. (/Users/dimabrook/.yarn/lib/cli.js:141777:12)
at Object.onceWrapper (node:events:509:28)
at IncomingMessage.emit (node:events:402:35)
at endReadableNT (node:internal/streams/readable:1343:12)
at processTicksAndRejections (node:internal/process/task_queues:83:21)

Expected behavior

Should compile and build.

Additional context

Trying to run:

$ yarn add @ledgerhq/devices/hid-framing

Returns this error:

error An unexpected error occurred: "https://registry.yarnpkg.com/@ledgerhq%2fdevices/hid-framing: Request "https://registry.yarnpkg.com/@ledgerhq%2fdevices/hid-framing\" returned a 405".

Build problem @ledgerhq/icons-ui

I'm try build:

pnpm build:lld:deps

so packets was complete build, but @ledgerhq/icons-ui have this error

@ledgerhq/icons-ui:build: src/native/BracketleftLight.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketleftLight.tsx(13,228): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: src/native/BracketleftMedium.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketleftMedium.tsx(13,228): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: src/native/BracketleftRegular.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketleftRegular.tsx(13,228): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: src/native/BracketleftThin.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketleftThin.tsx(13,227): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: src/native/BracketleftUltraLight.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketleftUltraLight.tsx(13,228): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightLight.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightLight.tsx(13,230): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightMedium.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightMedium.tsx(13,230): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightRegular.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightRegular.tsx(13,230): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightThin.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightThin.tsx(13,229): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightUltraLight.tsx(13,76): error TS2322: Type '{ children: Element; clipPath: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<GProps, any, any>> & Readonly<GProps>'. @ledgerhq/icons-ui:build: src/native/BracketrightUltraLight.tsx(13,230): error TS2322: Type '{ children: Element; id: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build: Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<ClipPathProps, any, any>> & Readonly<ClipPathProps>'. @ledgerhq/icons-ui:build:  ELIFECYCLE  Command failed with exit code 2. @ledgerhq/icons-ui:build: Error: command finished with error: command (libs/ui/packages/icons) pnpm run build exited (1) command (libs/ui/packages/icons) pnpm run build exited (1)

node -v
v17.7.1

tsc -v
Version 4.1.3

Linux, Ubuntu

Add status column on CSV history export

Describe the bug

On exporting the operations history as CSV also failed transactions get exported. There is no way to understand from the CSV file alone if a transaction was executed successful or failed. This causes problems on tax reporting tools like cointracking.

To Reproduce

Steps to reproduce the behavior:

  1. Go to 'Settings'
  2. Click on 'Accounts'
  3. Click on 'Operation history'
  4. Click on 'Save'
  5. Select all accounts, also the ones with failed transactions
  6. Click on 'Save'
  7. Inspect CSV file

Expected behavior

Two possibilities to fix this issue:

  1. Do not export failed transactions - this might cause backwards compatibility issues
  2. Add a new column "status" indicating if transaction was successful or not.

Screenshots

Bildschirmfoto 2022-06-25 um 02 57 47

image

Desktop (please complete the following information):

  • OS: MacOS

Additional context

Remove node-usb-detection dependency

Context

@ledgerhq/hw-transport-node-hid-singleton

Is your feature request related to a problem? Please describe.

node-usb-detection dependency make @ledgerhq/hw-transport-node-hid-singleton unavailable for Electron14+. Electron version below 18 are not supported anymore.

node-usb-detection will be deprecated soon anyway.

Describe the solution you'd like

Move to node-usb which provides a small guide to help making the transition.

I tried to look at it, but I do not have competencies to make the changes my self.

Thanks.


EDIT: related PR -> #903

suggestions

For the love of god.

Fix your product.

Does not support multtible seeds
Does not support multiple passphrases, deletes old passphrase if you setup a new one, without telling you, despite docs saying there is no limit on passphrases.
Selecting "settings" brings up a dialog telling you to hold both buttons for settings, instead of just going there
No way to lock screen from homescreen, even though this is the only way to switch to passphrase accounts
Power-off while plugged in immediately turns back on.

Doc on CLI

What's the new way of building/using the CLI with pnpm? I checked some docs on the Wiki but we still need to update them I think.

by @haammar-ledger

Module not found

Details

  • Impacted Library:@ledgerhq/hw-transport-webhid
  • Version: 6.27.1

Describe the bug

This is what I found

./node_modules/@ledgerhq/hw-transport-webhid/lib-es/TransportWebHID.js
Module not found: Can't resolve '@ledgerhq/devices/hid-framing' in '/Users/john/Documents/apps/work/gfx-web-app/node_modules/@ledgerhq/hw-transport-webhid/lib-es'

Expected behavior

A clear and concise description of what you expected to happen.

Additional context

Add any other context about the problem here.
It seems it needs to be import hidFraming from "@ledgerhq/devices/lib/hid-framing" or similar instead of import hidFraming from "@ledgerhq/devices/hid-framing"; as it seems the hid_framing is added into the lib and lib-es folder

Clicking switch button for asset in portfolio doesn't update statistics

Describe the bug

Clicking switch button for asset in Portfolio doesn't update balance in bold and price change to match the units for the graph.

To Reproduce

Steps to reproduce the behavior:

  1. Click on Portfolio in the left sidebar
  2. Click on an asset under Asset
  3. Click the switch button next to the balance

Expected behavior

Balance in bold and price change should match the units for the graph.

Desktop:

  • OS: Windows 10
  • Application version: 2.43.1

Additional context

Clicking Accounts in the left sidebar, clicking an account and clicking the switch button works as expected. It just doesn't work from Portfolio where an asset may be aggregating multiple accounts. The last release where it was working as expected is 2.40.0.

Allow assets to be (temporarily) excluded from history chart on Portfolio screen

Context

Ledger Live Portfolio screen, history chart.

Is your feature request related to a problem? Please describe.

DOT transactions don't show up on Ledger Live, apparently because there's no batch transaction support yet.
While the DOT balance is right, Ledger Live makes it appear as though the entire balance was received on the current day,
causing an upspike on the history chart of the total balance on the current day. This skews the visual representation quite a bit.

Describe the solution you'd like

Ideally, of course, I'd like to see DOT fully supported, but this feature request isn't about that.

I'd like to be able to (temporarily) exclude assets from the total balance history chart as this would mitigate the presentation issue.

Describe alternatives you've considered

My alternative so far is to delete the DOT account temporarily and add it again, but that's a bit time consuming and awkward.

Additional context

Total Balance History Chart

As you can see, it looks like my portfolio went up at the very end, when in fact it went down. What makes it appear to go up is simply the fact that the DOT that I bought several days ago got lumped into the current day

This project should be auditing it's code automatically for vulnerabilities

Context

CI Pipeline / monorepo base package

Is your feature request related to a problem? Please describe.

Given many of the applications and code in this monorepo is strongly related to the security of cryptoassets this repo should be automatically failing CI checks if vulnerable packages are in use or automatically updating vulnerable code.

Describe the solution you'd like

Use dependabot or something like it to automatically open PRs to fix vulnerable packages.

Describe alternatives you've considered

  1. This can be done with pnpm audit --fix to leverage the overrides capability of pnpm. However there's two downsides I've noticed by taking this approach. First off, this makes a modification to the package.json at the base of the repo which probably isn't ideal for long term maintainability. Second, this tool opts to relist the same package if there's multiple security advisories listed for the same package rather than setting the newest package version as the minimum. This ends up leading to issues where these things need to be manually updated instead.

  2. Alternatively this could be used as an alert to a developer on the team with only pnpm audit so that it can be manually updated when a CI pipeline fails running. This is probably the least favorable solution long term, but should work decently well for now.

Additional context

Add any other context or screenshots about the feature request here.

Tagging releases for external consumers

Context

Ledger Live Desktop

Is your feature request related to a problem? Please describe.

I am the maintainer of the ledger-live-desktop package for NixOS. Before the change to the monorepo the https://github.com/LedgerHQ/ledger-live-desktop repo was using the releases feature to tag the latest releases. This was very useful to me as I could watch the repo for new releases and get notified about it. There doesn't seem to be any tagging of new releases as of now. I just looked at the main branch and it seems like this is where releases get cut. It also doesn't seem like the release artifacts are published on GitHub anymore, should I just download them from the ledger website?

Describe the solution you'd like

Start using GitHub releases again.

Describe alternatives you've considered

Any alternative that allows me to subscribe to that specific event on GitHub.

Update LLD Documentation on how to build the app

When I follow the documentation path,
I have to go to https://github.com/LedgerHQ/ledger-live/tree/develop/apps/ledger-live-desktop
to access the LLD doc

and i'm only told that I can use pnpm desktop dist to build the LLD app. but in fact it fails with a webpack error. You also need to do pnpm desktop build

interestingly it's mentionned as an example in the root README.md that there is a pnpm build:lld, maybe this kind of important information should be raised on that root README.md ? ( something I suggested in a past PR and as we have to use this board, i'm forwarding this feedback here instead )

Ability to get application app in use

I'm seeking the ability to get information on which app is running in the Ledger device, need this to be able to know if the user using the EVM app or some native token app, is this even possible?

Unable to resolve module in react-native-hw-transport-ble

Details
@ledgerhq/react-native-hw-transport-ble
"6.27.2"

pixel 6

Describe the bug

Error: Unable to resolve module @ledgerhq/devices/ble/sendAPDU from @ledgerhq/react-native-hw-transport-ble/lib/BleTransport.js: @ledgerhq/devices/ble/sendAPDU could not be found within the project or in these directories:
  node_modules/@ledgerhq/react-native-hw-transport-ble/node_modules
  node_modules

Actual behavior
fails to compile

Expected behavior
A clear and concise description of what you expected to happen.
compiles

Implement BLS signatures for Chia (XCH) support

Context

Chia devs are still waiting for Ledger to support BLS signatures (https://trello.com/c/GWhZwZ3N) se they can develop a Ledger app for Chia.

Is your feature request related to a problem? Please describe.

The preblem is that the Chia devs can't develop a Ledger app by themselves without getting support from Ledger to implement the BLS standard.

Describe the solution you'd like

Add support for G2 and the BLS standard.

Describe alternatives you've considered

Contact the Chia devs so they can let you know exactly what they need from Ledger to develop the app for Chia.

Additional context

Chia Network (XCH) is a layer 1 blockchain that uses its own custom-designed programming language called Chialisp and a novel consensus mechanism called proof-of-space-and-time (PoST). The combination of these two allows the blockchain to use less energy without compromising network security. In contrast to most other blockchains, Chia Network is a public, for-profit, open source company that aspires to become listed on NYSE or NASDAQ. Its blockchain is aimed at enterprise use, which is why Chia Network plans to have XCH on its balance sheet in case of a listing.

Currently, Chia is the most decentralized blockchain with over 150k active full nodes: https://dashboard.chia.net/d/em15uQ47k/peer-info?orgId=1, well over Bitcoin's node count. In addition, Chia Network has its own programming language called Chialisp. This is an on-chain programming language that is smart contract-compatible and takes most important components of Ethereum, Solidity, and Bitcoin Core but keeps Bitcoin's UTXO model.

sha512sum hash verification non-functional

Describe the bug

Can not confirm on Mac (and potentially other OS) that sha512 hashes published in ledger-live-desktop-2.42.0.sha512sum are signed by Ledger.

To Reproduce

  1. Visit Verification Instructions
  2. Click download links for ledger-live-desktop-2.42.0-mac.dmg, ledger-live-desktop-2.42.0.sha512sum, ledgerlive.pem
  3. Follow instructions for Verify the sha512sum hashes
  4. See error

Expected behavior

Downloaded files

ledger-live-desktop-2.42.0-mac.dmg
ledgerlive.cer
ledger-live-desktop-2.42.0.sha512sum.sig

Instructions indicate sha256 verification when it should be sha512. Updating the command syntax to sha512 and the downloaded files produces Verification Failure

Screenshots

Verification Failure

Desktop (please complete the following information):

  • macOS Monterey 12.4

Additional context

It appears the Ledger Live verification instructions need to be updated and/or the sha512 hashes are not being signed by Ledger.

Ledger device: UNKNOWN_ERROR (0x6a82)

Ledger Live Version and Operating System
tested on Ledger Live 2.43.1
Ledger Nano S β‚Ώitcoin app 2.0.6
Platform and version: Windows 10

Expected behavior
I expect to connect to remote bitcoind full node to create lss.json for SatStack.

Actual behavior
Ledger device: UNKNOWN_ERROR (0x6a82)

image

I've tried some of the suggestions listed at LedgerHQ/ledger-live-desktop#4473 but none worked.

Ledger, please get this working -- We want full sovereignty, without connecting to Ledger's nodes.

Run CI on external Contribs

(Maybe a known issue) PRs from external contributors can't have a green CI because EC2 runner don't work on them apparently, example: #171

by @haammar-ledger

Tezos accounts are not synchronizing

Describe the bug

Tezos accounts are not being synchronized, even after clearing cache.

To Reproduce

  1. Open Ledger Live after extended period of time (weeks)
    • Status says "synchronized"
  2. Expect to see up-to-date account balance & transaction history - FAIL
    • last shown transaction from 2+ months ago
  3. Press "synchronize" button, waiting for sync to complete...
  4. Expect to see up-to-date account balance & transaction history - FAIL (unchanged)
  5. Go to "Settings", force clear cache
  6. Go back to Step 1 (no change, no actual sync)

😒

Expected behavior

Expecting to see up-to-date account balance & transaction history for all my XTZ accounts

Desktop (please complete the following information):

  • OS: MacOS
  • App: Ledger Live 2.44.0

Ledger live 2.44.0 fails to start on linux

here are the logs dumped when trying to start ledger live on ubuntu

Ledger Live 2.44.0
[7366:0722/122619.364268:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[7366:0722/122619.364338:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
No protocol specified
[7366:0722/122619.394985:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[7366:0722/122619.404673:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[7366:0722/122619.407267:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[7366:0722/122619.410028:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[7366:0722/122619.412414:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[7366:0722/122619.414995:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[7366:0722/122619.419280:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[7366:0722/122619.499274:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[7366:0722/122619.504544:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=1024
[7366:0722/122619.504560:FATAL:gpu_data_manager_impl_private.cc(417)] GPU process isn't usable. Goodbye.
Failed to generate minidump.Illegal instruction

Can't install ledger-live

Hello,
When I execute yay -S ledger-live :

apps/ledger-live-desktop postinstall$ node ./scripts/post-install.js
β”‚ running
β”‚ no previous checksum saved, will rebuild native deps and save new checksum
β”‚ node:internal/errors:477
β”‚ ErrorCaptureStackTrace(err);
β”‚ ^
β”‚ Error: spawn npm ENOENT
β”‚ at ChildProcess._handle.onexit (node:internal/child_process:283:19)
β”‚ at onErrorNT (node:internal/child_process:476:16)
β”‚ at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
β”‚ errno: -2,
β”‚ code: 'ENOENT',
β”‚ syscall: 'spawn npm',
β”‚ path: 'npm',
β”‚ spawnargs: [ 'run', 'install-deps' ]
β”‚ }
β”‚ Node.js v18.7.0
└─ Failed in 124ms
 ELIFECYCLE  Command failed with exit code 1.
==> ERROR: A failure occurred in build().
Aborting...
-> error making: ledger-live

Archlinux x64
kernel 5.18.12-arch1-1
Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]

Bring back commit hash for CI builds

Builds from CI in PRs don't use commit hash as version anymore.
This poses a problem of clarity / version followup when testing builds in PRs, or for broader Alpha Test. We can't know what exact version is being used.

Example:
On monorepo (here version is same as prod one) -> https://github.com/LedgerHQ/ledger-live/actions/runs/2383762005
On old LLD repo (here version is the last commit hash) -> https://github.com/LedgerHQ/ledger-live-desktop/actions/runs/2375029109

This version is also displayed within the app under settings > about > version

It seems to be linked to these steps not being present in the monorepo workflow

build error

I don't know what to do for this error can someone help me ?
image

Ledger Live desktop application doesn't recognize the dongle when dongle is connected via bluetooth with mobile app

Describe the bug

The dongle is connected via bluetooth to the mobile app and when opening the desktop app and trying to open the "Manager" section, it doesn't recognize the dongle. Normally the dongle would require you to confirm the opening of the manager section, but right now, it doesn't.

Each of the steps provided in the first level troubleshoot doesn't work, neither the reset of the device. I tried the reboot of the computer, different usb port, disconnect and reconnect the dongle when Live Ledger app is open and closed.

To Reproduce

Steps to reproduce the behavior:

  1. Go to dongle and enable bluetooth
  2. Go to mobile app and connect dongle with live ledger app
  3. Go to desktop app and try to open the manager section
  4. See that the app is trying to wait for the device, but nothing happens
  5. Go to mobile app
  6. Open "My ledger" section
  7. Select device from list
  8. App is asking to keep the device near the dongle
  9. Go to dongle and it request confirmation to open the manager section
  10. Confirm the request at the dongle
  11. Go to app and see the manager section is opened

Above steps shows, that the mobile app is working fine connecting with the dongle, but the desktop app cannot connect.

Expected behavior

The desktop app should recognize the dongle even it is already connected via bluetooth with the mobile device.

Desktop (please complete the following information):

  • OS: Monterey 12.4

Smartphone (please complete the following information):

  • Device: iPhone 12 pro
  • OS: OS15.5
  • Live Ledger Mobile app: 3.2.0 (383)
  • Live Ledger version: V2.0.2

Additional context

Add any other context about the problem here.

Ledger lives signatures

Why can't you spend 5 minutes and add ledger live signatures to your website? This behavior is very concerning for a security company. Just got my ledger and planning to return it back because of the lack of transparency.

Ticker symbols in CSV operation history export

Describe the bug

The operation history export function is sometimes using a non-standard ticker symbol, for example FANTOM, instead of FTM. Is there a way for the user to rename the token within the Ledger Live application? If not, may I request using standard ticker symbols when exporting? Note that most tokens I have tested are indeed using the expected ticker symbol. FTM is the only one I have seen using a different ticker, however, the scope of my testing is very limited.

To Reproduce

  1. Add ERC-20 FTM token.
  2. Receive ERC-20 FTM token.
  3. Export operation history.
  4. Inspect CSV file

Expected behavior

Expected currency ticker FTM, instead it is FANTOM.

Screenshots

None

Desktop (please complete the following information):

  • OS: Windows 10

Smartphone (please complete the following information):
N/A

Additional context
I'm a developer integrating Ledger with a crypto tax app called DaLi/RP2. Standard ticker symbols are useful when matching transactions exported from multiple exchanges and devices, and also when fetching spot-price for tax purposes.

Add any other context about the problem here.

ARM build for Apple Silicon Macs

Describe the bug

The x64 build via Rosetta 2 hangs a lot during exchange. An ARM build would be much better and give improved security because of no transformation through Rosetta.

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

A clear and concise description of what you expected to happen.

Screenshots

If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: any macOS with Silicon

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]

Additional context

Add any other context about the problem here.

Only 4 Decimal Places

Describe the bug

This is a re-post of this original issue from the prior repo: LedgerHQ/ledger-live-desktop#4896

Ledger Live is only showing 4 digits of precision for all assets - Bitcoin, Ethereum, etc. This makes it more or less unusable if you want to have any measure of accuracy in your accounting.

Tested on 2.43.1 on Win10

Expected behavior

The app should show the actual proper balances (i.e. all 8 digits for Bitcoin). Or if some users don't wish to know their actual holdings (?), at least make it optional.

Desktop (please complete the following information):

  • OS: Windows 10

CACHE Gold Token (CGT) is suddenly missing from all Ledger devices and apps

Hi, Our token CACHE GOLD - CGT appears to be come back as delisted and countervalues disabled, which has caused customers using Ledger to be worried about the token. Our token is still growing and can be viewed here - https://coinmarketcap.com/currencies/cache-gold/

https://raw.githubusercontent.com/LedgerHQ/ledger-live-desktop/v2.39.2/cryptoassets.md
https://raw.githubusercontent.com/LedgerHQ/ledgerjs/master/packages/cryptoassets/data/erc20.js

Would be grateful, if someone can point me in the right direction to fix this via a PR. Thanks!

https://etherscan.io/token/0xf5238462e7235c7b62811567e63dd17d12c2eaa0

This previous issue was archived without reply - LedgerHQ/ledgerjs#804

@seigneur

Which repo is the one being published on npm?

For example, package @ledgerhq/hw-app-btc published here:
https://www.npmjs.com/package/@ledgerhq/hw-app-btc

In the npm registry, the Repository and Homepage both point to the old repo: github.com/LedgerHQ/ledgerjs

However, I see that it's being frequently updated (last publish 2 days).

So what is being publised on npm? The old repo or the new mono-repo?
In case the new repo is being published, could you please fix the links in npm so that it's a bit more clear?

ARM64 build for Windows

There are so many new devices out there with Windows for ARM on board, but we can only use ledger live in emulation mode, which makes it extremly slow and almost not possible to use.

Can we please get an ARM64 build for Windows?

Translation Mistake in Ledger Live for Desktop

Describe the bug
In the manager menu on Ledger Live App(Desktop), the word "free" was mistranslated. The correct translation for free(english) is frei(german).

To Reproduce

Steps to reproduce the behavior:

  1. Open Ledger Live on your PC/MAC (set the language to german)
  2. Go to 'Manager'
  3. Plug in your Ledger Device and enter your password
  4. You will see behind the MB without a space the word kostenlos.

Expected behavior

This is the wrong word. The correct word in this case: free -> frei

Screenshots

new
new2
new3

Desktop (please complete the following information):

  • OS: Ledger Live App for MAC(ARM)

Additional context

Go to ledger-live/apps/ledger-live-desktop/static/i18n/de/app.json

Line 1580 : "freeSpace" : "<0>{{space}}</0>kostenlos",
to
Line 1580 : "freeSpace" : "<0>{{space}}</0> frei",

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.