Giter Club home page Giter Club logo

ledger-live-desktop's Introduction

⛔️ 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! 👨‍💻👩‍💻

Ledger Live (desktop) Crowdin

Ledger Live is a new generation wallet desktop application providing a unique interface to maintain multiple cryptocurrencies for your Ledger Nano S / Blue. Manage your device, create accounts, receive and send cryptoassets, ...and many more.

Architecture

Ledger Live is an hybrid desktop application built with Electron, React, Redux, RxJS,.. and highly optimized with ledger-core C++ library to deal with blockchains (sync, broadcast,..) via ledger-core-node-bindings. It communicates to Ledger hardware wallet devices (Nano X / Nano S / Blue) to verify address and sign transactions with ledgerjs. Some logic is shared with live-common.

Download

The latest stable release is available on ledger.com/ledger-live.

Previous versions and pre-releases can be downloaded on here from the Releases section.

Compatibility

  • macOS 10.14+
  • Windows 8.1+ (x64)
  • Linux (x64)

Signed hashes

Ledger Live releases are signed. The automatic update mechanism makes use of the signature to verify that each subsequent update is authentic. Instructions for verifying the hash and signatures of the installation packages are available on this page, which will be integrated into the official download page.

Development

Setup

Requirements

Install

# 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

Debug

If you are using Visual Studio Code IDE, here is a Launch Configuration that should allow you to run and debug the main process as well as the render process of the application.

As stated in the debugging documentation, this file should be named launch.json and located under the .vscode folder.

{
  "version": "0.2.0",
  "compounds": [
    {
      "name": "Run and Debug LLD",
      "configurations": ["Debug Main Process", "Debug Renderer Process"],
      "stopAll": true
    }
  ],
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "runtimeExecutable": "yarn",
      "args": ["start"],
      "outputCapture": "std",
      "resolveSourceMapLocations": null,
      "env": {
        "ELECTRON_ARGS": "--remote-debugging-port=8315"
      }
    },
    {
      "name": "Debug Renderer Process",
      "type": "chrome",
      "request": "attach",
      "address": "localhost",
      "port": 8315,
      "timeout": 60000
    }
  ]
}

Config (optional helpers)

Environment variables

(you can use a .env or export environment variables)

NO_DEBUG_COMMANDS=1
NO_DEBUG_DB=1
NO_DEBUG_ACTION=1
NO_DEBUG_TAB_KEY=1
NO_DEBUG_NETWORK=1
NO_DEBUG_ANALYTICS=1
NO_DEBUG_WS=1
NO_DEBUG_DEVICE=1
NO_DEBUG_COUNTERVALUES=1

other envs can be seen in live-common:src/env.js

Run tests

In a terminal you need to have webpack dev server running

yarn start

In an other terminal you need to launch the webdriver/electron container. First run will be slow. Next ones will be fast unless some changes are made to the container or package.json. You need to kill and re run the command if package.json changed. Make sure you are running Docker.

yarn start-electron-webdriver

You can point VNCViewer to localhost::5900 to check what is happening in the container. secret is the password. Then you can launch tests.

yarn spectron

or

node_modules/.bin/jest tests/specs/<FILEREGEX>.spec.js

By default it uses --runInBand jest option otherwise it explodes!

If you need to create an app.json, run a test that set up what you need and run it with the env var SPECTRON_DUMP_APP_JSON set. It will create tests/dump.json at the end of the spec.

Please put the image expectations at the end of the it(...) tests so that it does not break the whole flow if a snapshot breaks

Run code quality checks

yarn ci

File structure

src
├── main : the main process is the mother of all process. it boots internal and renderer process and starts the window.
├── internal : related to internal thread that runs commands, device logic, libcore,..
├── renderer : everything related to the UI.
│   ├── screens
│   ├── modals
│   ├── components : all components that are not screens or modals, flattened.
│   ├── animations
│   ├── icons
│   ├── images
│   ├── styles
│   ├── bridge : logic related to interacting with accounts and currencies.
│   ├── families : per currency specific logic and components
│   ├── actions : redux actions
│   ├── reducers : redux reducers
│   ├── middlewares
│   ├── analytics
│   ├── fonts
│   ├── hooks
│   ├── i18n : all translation files
│   ├── index.html : html point point
│   ├── index.js : js entry point
│   ├── init.js : initialize the rendering
│   ├── live-common-setup.js : set up live-common for renderer specific parts
│   └── ... other files related to renderer
├── config : constants files. DEPRECATED. will be moved to live-common.
├── helpers : helpers. DEPRECATED. will be moved to live-common or in relevant places.
├── live-common-set-supported-currencies.js : generic set up of supported coins
├── live-common-setup.js : generic set up of live-common
├── logger : internal logging library. used by all thread. produces the "export logs".
├── network.js : network implementation. will eventually move back to live-common.
└── sentry : related to bug report API

Localization / Translations

Translations from English to other languages are handled internally so it is not possible to directly contribute to them, however if you spot a bug (e.g. a wrong variable name) or any issue in translation files, feel free to report a bug to Ledger's support team and it will be taken care of.

ledger-live-desktop's People

Contributors

amougel avatar arnaud97234 avatar dasilvarosa avatar dependabot[bot] avatar gre avatar grsoares21 avatar henri-ly avatar hzheng-ledger avatar iammorrow avatar juan-cortes avatar junichisugiura avatar khalilbellakrid avatar lambertkevin avatar ledger-bot avatar ledgerlive avatar lfbarreto avatar loeck avatar machard avatar meriadec avatar mortalkastor avatar nabil-brn avatar nastias avatar nparigi-ledger avatar ofreyssinet-ledger avatar pbondoer avatar qd-qd avatar thomasrogerlux avatar tlaforge-ledger avatar valpinkman avatar web-flow 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  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

ledger-live-desktop's Issues

Litecoin Transaction Details wrong

Ledger Live Version and Operating System

  • Ledger Live 1.0.0
  • Platform: Windows 10

Actual behavior

As seen in the screenshots, the "From" address shows nothing in Ledger Live and displays Coinbase (which is true) in the old Bitcoin Wallet app.
Also, just for comprehension: Why does it show Coinbase and not a normal address in the first place?

litecoin1
litecoin2
litecoin3

Fix uninstall confirmation of app that was not installed

Ledger Live Version and Operating System

  • Ledger Live RC2
  • Platform: macOS

Expected behavior

Modal:
title: Oops, that app can't be uninstalled
description: Check on your device which apps are installed

Actual behavior

Modal:
{{cryptocurrency}} has been uninstalled from your device

Steps to reproduce the behavior

Uninstall an app that's not installed.

Order of settings in Help

Ledger Live Version

  • Ledger Live 1.0.0

Part of the application to improve

Settings / Help

Description

screen shot 2018-07-09 at 17 08 54

Password Length > 20

Ledger Live Version and Operating System

  • Ledger Live 1.0.0
  • Platform: linux

Expected behavior

Not that much a bug, but it seems that there is a 20 characters limit on the password length (since nothing appears on the screen if I type more).
So when I type more than 20 characters, should'nt I be warned?

Actual behavior

(At fist I though the (unseen) extra characters were taken into account for the password, but they are not. my bad!)
Still, I'd like to be warned about the password policy

Steps to reproduce the behavior

During the password creation, enter more than 20 characters,

Support for a button that will select the full account value

  • I have checked this feature was not yet requested.

Part of the application

Send section

Description

In the old application if you typed in a amount it would display a button that will put in the max you got on your account. So if i would type in 2btc while i only had 1, it would display a button that will select the whole account value. This function would be handy if you want to send your whole accounts value.

Sign all release binaries

  • I have checked this feature was not yet requested.

Part of the application

Application binary

Description

Previous releases such as the Ledger Chrome manager/wallet and Ledger standalone apps had all been signed using the key infrastructures of Google and the Ledger wallet itself.

However, the binaries offered for release are not signed by PGP or another method. It's therefore impossible to protect against malicious modifications of the binaries.

A public key for signing should be announced on the Ledger website, and then the current and all future release binaries should be signed with the corresponding private key.

License ?

Hello,

What is the license of this fantastic product ?

In package.json, we can read "BSD-2-Clause".
But is it the one you have choosen ?

Anyway, an explicite LICENSE file would be great!

"View in explorer" for Komodo operation does not work

Ledger Live Version and Operating System

  • Ledger Live Live 1.0.0-rc.2
  • Platform: macOS

Expected behavior

Clicking "View in explorer" for Komodo operation a new browser window should be opened with operation details.

Actual behavior

Clicking "View in explorer" for Komodo operation a new browser window is opened, however with a content "502 Bad Gateway".

Steps to reproduce the behavior

  1. Make a Komodo operation
  2. Open operation details
  3. Press "View in explorer" button

Ledger Live (Desktop) - not working Komodo operation explorer

I personally suspect that the link is to an old explorer. Currently the official Komodo website directs to this one - https://kmdexplorer.io 🤔

Improve the log file management

  • use gz compression
  • improve the "export logs" by just returning the last file of the logs folder (because it can be a .log or a .log.gz)
  • make sure a file don't grow infinitely, we can always filter logs that are too old. it basically need to rotate

Exchange support

  • I have checked this feature was not yet requested.

Part of the application

Portfolio and Accounts

Description

Please add some more exchanges for BTC to Fiat conversion such as Coinbase/Coinbase Pro.

Wrong ethereum balance in portfolio

Ledger Live Version and Operating System

  • Ledger Live version_here
  • Platform: windows OR mac OR linux

Expected behavior

Actual behavior

Steps to reproduce the behavior

UI regression polish

Ledger Live Version and Operating System

  • Ledger Live 1.0.0
  • Platform: mac

Expected behavior

The arrow pointing to the Add Account should be repositioned

Actual behavior

The arrow goes over the text

Steps to reproduce the behavior

Has to be Empty state - no accounts yet to be able to see the initial instruction

Support for Monero (XMR)

  • I have checked this feature was not yet requested.

Part of the application

Accounts section

Description

Monero is an internally developed wallet app, and therefore it should be reasonably easy to allow for integration with the default wallet app, perhaps using RPC on a local Monero wallet which can be launched directly from the Ledger Live application.

Ripple operations gone after clearing app cache

Ledger Live Version and Operating System

  • Ledger Live 1.0.0-rc.2
  • Platform: macOS

Expected behavior

When app cache is cleared, resynchronization should retrieve and display all previous Ripple operations.

Actual behavior

When app cache is cleared, resynchronization is not retrieving (and not displaying) any of previous Ripple operations.

Steps to reproduce the behavior

  1. Add Ripple account
  2. Make operation(s)
  3. Clear app cache
  4. Resynchronize the app
  5. Go back to Ripple account

Please note that I had only incoming operations for my Ripple account.

To get all previous Ripple operations back on the list I had to reset the Ledger Live (though probably removing the account and adding it back would have worked also).

32-bit version?

Hello. I noticed that the new "Ledger Live" version seems to run only on 64-bit systems.

Is there a plan for releasing an additional 32-bit version?

I really would like to see a 32-bit Ledger Live version in order to be able to run it in some old machines.

Thanks in advance, Ledger devs.

A customer.

Ledger Live Version

  • Ledger Live version_here

Part of the application to improve

Description

Windows: Internal process error (3765269347)

(@gre edit) we are aware of this important bug and having hard time to reproduce it. The bug is that, on Windows, it crashes at boot with this "Internal process error". This happens to less than 5% of our users.

current workaround we have is to invite you to "Run as Admin" https://support.ledgerwallet.com/hc/en-us/articles/360006702834-Troubleshooting-on-Windows

we are really looking forward to understand what is wrong. If you want to investigate on your side please don't hesitate to add comments in this issue.


Error was thrown:

Error
    at o (file:///E:/Ledger%20Live/resources/app.asar/renderer.js:1:25413)
    at a (file:///E:/Ledger%20Live/resources/app.asar/renderer.js:1:25600)
    at EventEmitter.l (file:///E:/Ledger%20Live/resources/app.asar/renderer.js:1:27016)
    at emitTwo (events.js:130:20)
    at EventEmitter.emit (events.js:213:7)

Error happens directly after clicking "Get started". Windows 7 Home Premium SP1 64bit, intel i7.

Way to keep plausible deniability intact

  • I have checked this feature was not yet requested.

Part of the application

application

Description

Way to keep plausible deniability intact when forced to connect Ledger Nano S to Ledger Live application. An the moment all the accounts show up regardless of the current passphrase.

Possible solution:

  1. Two passwords on the application
    or
  2. optional use the ledger instead of the password to unlock the application (still different accounts depending on with passphrase is used).

Amount BTG incorrect

Ledger Live Version and Operating System

  • Ledger Live 1.0.1
  • Platform: windows

Expected behavior

I want all BTG in wallet display correct.

Actual behavior

My BTG wallet display incorrect. Problem can be from blockchain explorer. My BTG address is ALUfGyBr9dxfcuzzQWCUv8QzKSX6p1Av9F. I search in http://btgexp.com/ not found. But I have BTG when I search in https://explorer.bitcoingold.org/ and https://btgexplorer.com/ .

Steps to reproduce the behavior

Can you change BTG blockchain explorer

App Manager not working

Ledger Live Version and Operating System

  • Ledger Live 1.0.0
  • Platform: Windows 10

Actual behavior

After adding an Account (currency) to Ledger Live and then going to the Manager Tab I get stuck on "Navigate to the dashboard on your device" although I am on the dashboard on my device.

Steps to reproduce the behavior

-open currency app on Ledger
-add currency to the Portfolio in Ledger Live
-close currency app on Ledger
-navigate to Manager in Ledger Live

Polish on app we tell to install

follow up #945 discussion, we should display You should install "Ethereum" app for Ethereum Classic because ETC app don't exist.

technically we need to add appName in CryptoCurrency to be able to do this. (which will also allow us to associate crypto to app for the manager)

two last point on graph use same countervalue

Ledger Live Version and Operating System

  • Ledger Live rc.2
  • Platform: mac

Expected behavior

the two last point countervalues should be different like other points

Actual behavior

two last points are identically

Steps to reproduce the behavior

a

Support for Stellar (XLM) accounts

  • I have checked this feature was not yet requested.

Part of the application

Accounts

Description

There's already a Stellar app for the Ledger Nano S, now it would be handy if Ledger Live supported Stellar accounts:
screen shot 2018-07-09 at 11 19 17

Difficulties with adding Ethereum

Ledger Live Version and Operating System

  • Ledger Live 1.0.0
  • Platform: Windows 10

Actual behavior

When trying to add the Ethereum account to my Portfolio it sometimes gets stuck on the "Open Ethereum app on your device" screen. After some tries it works.
Kind of similar to issue #943

Steps to reproduce the behavior

-open Ethereum app on Ledger
-click on add Account
-select Ethereum and continue

Automatize internationalization

  • explore possible solutions for inputing translations (Google Spreasheet, external services, etc.)
  • create script that synchronize translations inside app codebase

Can't add BTC/BCH/DASH (something wen't wrong during synchronization)

Ledger Live Version and Operating System

  • Ledger Live 1.0.0
  • Platform: Linix (Fedora 28)

Expected behavior

I expected to be able to add my BTC/BCH/DASH accounts.

Actual behavior

Adding BTC/BCH/DASH doesn't work. I get the following error:

screenshot from 2018-07-09 16-15-03

Also please note - ETH works.

Steps to reproduce the behavior

  1. Download official latest ledger live AppImage
  2. Run, follow instructions.
  3. Try and add BTC/BCH or DASH.

Sending Transaction Keeps Failing

I have a Ledger hw.1 and when I try to send a transaction, I get an error saying that it failed and to try again later. While the wallet is trying to send the transaction to my paired mobile phone, it does one of two things. Either it just sits there and keeps trying while never showing up on the mobile app, OR it shows up on the mobile app, I confirm it, then the wallet says that Sending Failed and to try again later. When I try to use the security card to authenticate, it fails to send as well. Is there a known issue that is causing this?

Support for NEO accounts

  • I have checked this feature was not yet requested.

Part of the application

Accounts

Description

There's already a NEO app for the Ledger Nano S, now it would be handy if Ledger Live supported NEO accounts:
screen shot 2018-07-09 at 11 26 55

No mouse "pointer" cursor hovering over a content of a button

Ledger Live Version and Operating System

  • Ledger Live 1.0.0-rc.2
  • Platform: macOS

Expected behavior

When hovering over a button, mouse cursor should be set as "pointer".

Actual behavior

When hovering over a button, mouse cursor is set as "pointer" only when inside button's padding area, but is not within button content (icon/text).

Steps to reproduce the behavior

Click on image to see the video:

Reproducing the current issue

Missing Ethereum Classic app

Ledger Live Version and Operating System

  • Ledger Live 1.0.0
  • Platform: Windows 10

Expected behavior

Unlock/get into ETC wallet

Actual behavior

Client says open ETC app, there is no app.

Steps to reproduce the behavior

Tried with ETH app, not working.

Account issues + some other issues

Ledger Live Version and Operating System

Ethereum 1.0.24
Ripple 1.0.4

  • Ledger Live 1.0.0
  • Platform: windows 10

Ledger nano S 1.4.2

Expected behavior

Two issues here

1)Adding accounts to go smooth without hiccups.
2)Reliability of connection between Ledger live application and ledger itself doesn't work like it should.

Actual behavior

1)Installing Ripple and Ethereum accounts does not work. It keeps running on the "Open the Ripple app on your device" step. This does not go away while being in the app.

Going out of the Ripple or Ethereum app and going back in while in that step does not help.

Result is not being able to add the accounts to the application.

  1. If you want to use the application Manager it asks you to navigate to the dashboard on the device. While being in the dashboard it does not always trigger the next step. it keeps on loading.

When this happens going inside and outside a crypto app does not seem to trigger the "navigation to the dashboard" event. Again you are stuck.

Lastly I find it weird that when I disconnect the device from the computer while being in the Manager it still has a check mark next to the "Connect and unlock your Ledger device". Only when going to another menu and comming back to the Manager the status is correct.

Steps to reproduce the behavior

Click add accounts, choose ripple or Ethereum. open the ledger wallet app on the device. No progress in the live app.

Weird that those apps don't work while qtum and btc work fine.

Minor currency chart bug

Ledger Live Version and Operating System

  • Ledger Live 1.0.0
  • Platform: Windows 10

Actual behavior

When not using USD as the standard currency the price charts for the accounts (not the big chart of the portfolio) still show USD although they are in my case the right EUR values

ltc

Error: Internal process error (3765269347)

Error was thrown:

Error
    at o (file:///C:/Program%20Files/Ledger%20Live/resources/app.asar/renderer.js:1:25413)
    at a (file:///C:/Program%20Files/Ledger%20Live/resources/app.asar/renderer.js:1:25600)
    at EventEmitter.l (file:///C:/Program%20Files/Ledger%20Live/resources/app.asar/renderer.js:1:27016)
    at emitTwo (events.js:130:20)
    at EventEmitter.emit (events.js:213:7)

CI

  • connect repo with circleCI or Travis, to run lint/prettier/flow
  • explore possibilites to create releases directly (Linux & Mac), on each tag

last step of receive does not block the background click

Ledger Live Version and Operating System

  • Ledger Live 1.0.0-rc.2
  • Platform: mac

Expected behavior

Receive step 4 should be not closable if you have not confirmed yet on the device to avoid being able to have the device "blocked" on the confirm and being able to go somewhere else.

Actual behavior

the Close cross is correctly hidden, however you can still click on the background later

Steps to reproduce the behavior

  • go Receive > step 4
  • don't accept yet on device
  • click on dark background

Signed checksums

Part of the application to improve

Security of downloads

Description

Any chance of getting signed SHA256 checksums for each release? Thanks

First syncing after opening the App stops and says "paused"

Issue description:
When opening the app, after entering the password, synchronization stops, and its status switch to "Paused"

Pressing the paused/synchronization button again will update balances

Configuration:

  • macOS 10.13.5
  • Ledger live 1.0.0
  • 3 accounts set (1* BTC, 1* ZEC, 1* ETH)
  • internet connection

Step to reproduce:
Open Ledger Live, enter the password and wait for first Sync to fail

Expected behavior:
Not fail the first synchronization

screen shot 2018-07-09 at 11 00 06 pm

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.