Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DDW-197] Enable hardware wallets for Testnet network #2264

Conversation

nikolaglumac
Copy link
Contributor

This PR adds support for usage of hardware wallets on the Testnet network.


Testing Checklist


Review Checklist

Basics

  • PR has been assigned and has appropriate labels (feature/bug/chore, release-x.x.x)
  • PR is updated to the most recent version of the target branch (and there are no conflicts)
  • PR has a good description that summarizes all changes
  • PR has default-sized Daedalus window screenshots or animated GIFs of important UI changes:
    • In English
    • In Japanese
  • CHANGELOG entry has been added to the top of the appropriate section (Features, Fixes, Chores) and is linked to the correct PR on GitHub
  • Automated tests: All acceptance and unit tests are passing (yarn test)
  • Manual tests (minimum tests should cover newly added feature/fix): App works correctly in development build (yarn dev)
  • Manual tests (minimum tests should cover newly added feature/fix): App works correctly in production build (yarn package / CI builds)
  • There are no flow errors or warnings (yarn flow:test)
  • There are no lint errors or warnings (yarn lint)
  • There are no prettier errors or warnings (yarn prettier:check)
  • There are no missing translations (running yarn manage:translations produces no changes)
  • Text changes are proofread and approved (Jane Wild / Amy Reeve)
  • Japanese text changes are proofread and approved (Junko Oda)
  • UI changes look good in all themes (Alexander Rukin)
  • Storybook works and no stories are broken (yarn storybook)
  • In case of dependency changes yarn.lock file is updated

Code Quality

  • Important parts of the code are properly commented and documented
  • Code is properly typed with flow
  • React components are split-up enough to avoid unnecessary re-renderings
  • Any code that only works in main process is neatly separated from components

Testing

  • New feature/change is covered by acceptance tests
  • New feature/change is manually tested and approved by QA team
  • All existing acceptance tests are still up-to-date
  • New feature/change is covered by Daedalus Testing scenario
  • All existing Daedalus Testing scenarios are still up-to-date

After Review

  • Merge the PR
  • Delete the source branch
  • Move the ticket to done column on the YouTrack board
  • Update Slack QA thread by marking it with a green checkmark

@nikolaglumac nikolaglumac merged commit 8cf5029 into feature/ddw-197-implement-ledger-hw-support Dec 4, 2020
@iohk-bors iohk-bors bot deleted the feature/ddw-197-implement-ledger-hw-support-with-testnet-support branch December 4, 2020 10:40
nikolaglumac added a commit that referenced this pull request Dec 4, 2020
* [DDW-197] Define hw device status types

* [DDW-197] Bump cardano-wallet revision

* [DDW-197] Change statuses on ledger interactions

* [DDW-197] Change initial HW status to CONNECTING

* [DDW-197] Hardware wallet status component

* [DDW-197] Add HW Byron API support

* [DDW-197] Device connection status connected to UI

* [DDW-197] Remove unnecessary log

* [DDW-197] Fix HW addresses listing

* [DDW-197] HW transactions listing fix

* [DDW-197] Edit HW name support added

* [DDW-197] Send HW transaction request WIP

* use 'Buffer' all the way down utils.request and handle buffer as a special body case

* [DDW-197] Test method for external transactions

* [DDW-197] Code cleanup and logic improvements

* [DDW-197] Code cleanup, fixing flow issues and logic improvements

* [DDW-197] Remove device singletone declaration, fix HW utxo-s, fix HW name edit, pass real hw declaration to transactions dialog

* [DDW-197] Add electron-rebuild postinstall script

* [DDW-197] Move HW logic part from wallets to hardwareWallets store

* [DDW-197] External TX helper improvements

* [DDW-197] Improve hw recognizing by using discovery wallet param. Fix disconnected label hide/show clause

* [DDW-197] Test reset fix and applying HW deletion

* [DDW-197] Init Trezor integration

* [DDW-197] Trezor connect improvement

* [DDW-197] Clean yarn.lock

* [DDW-197] Improve Trezor HW store manipulations

* [DDW-197] Fix translations conflict and run translations manager

* [DDW-197] Fix hw transactions types conflict

* [DDW-197] Code cleanup

* [DDW-197] Switch HW support to Shelley cardano wallet API and LedgerJs shelley methods

* [DDW-197] Fix HW loading, add tx serialization and shelley derivation path for exporiting public key

* [DDW-197] Fix Local Storage

* [DDW-197] HW transaction serialization INIT

* [DDW-197] Preparing Trezor TX

* [DDW-197] WORKING trezor tx

* [DDW-197] Ledger TX send with faked data

* [DDW-197] Isolate Ledger / Trezor specific methods to utils and store cleanup

* [DDW-197] Add Hardware Wallets config constants, remove logs and sign tx channel cleanup

* fix yarn.lock

* [DDW-197] Code improvements, eslint issues fixes, new flow types

* [DDW-197] Remove unncecessary webpack external

* fix yarn.lock more

* fix ci by breaking daedalus

* fix electron-rebuild on linux in nix-shell

* [DDW-197] Fix all EsLint and Flow issues, code improvements

* [DDW-197] Type all shelleyLedger methods and helpers

* fix loading usb_bindings.node

* fix HID-hidraw

* [DDW-197] Connecting improvement and additional LC devices storage

* fix darwin development shell

* [DDW-197] New hw icon for each wallet and removing connectin process once wallet recognized

* [DDW-197] Add hardware wallets to list with orher wallets. Reverted trezor-connect as external

* [DDW-197] Handle hw devices on app start

* fix yarn.lock

* electron-rebuild: patchelf output files in nix-shell

* do not webpack trezor-connect

* [DDW-197] Bump cardano-wallet to latest master, comment out smashUrl and integration of derivation_path coins selection input parameter

* fix linux installers and yarn.lock

* fix CI

* temporarily turn allowedRequisites off

* [DDW-197] Connect Trezor logic with Send Tx dialog

* [DDW-197] Remove hw_ prefixes, move hardware wallets to global wallets list and remove all separated HW handlers

* [DDW-197] Remove isHardwareWalletRoute declaration and instances

* whitelist all the deps of trezor-connect

* [DDW-197] Remove and replace active hardware wallet with active wallet and fix tx send issue caused by hw migration

* [DDW-197] Connect wallet feature from Add screen

* dont try to patchelf on darwin

* add the same whitelist to darwin

* [DDW-197] Add / Improve hardware wallet connect feature

* fix missing usb binding files

* fix missing usb binding files

* [DDW-197] Remove Hardware Wallets sidebar section

* [DDW-197] Remove all hardware wallets related component we dont need anymore

* [DDW-197] Add missing HardwareWalletStatus component

* [DDW-197] Delegation with Hardware Wallets - INIT - missing WBE

* [DDW-197] Bump the cardano-wallet to the released version to fix the wallet restoration issue

* [DDW-197] Roll back last commit

* [DDW-197] Various fixes

* try commenting out ledger support

* fix yarn.lock

* [DDW-197] Bump WBE to latest master and prepare HW delegation process

* [DDW-197] Remove unnecessary helper dummy data

* [DDW-197] Remove TransportNodeHID related methods from main process due to latest dev-ops changes and excluded package. Fix WBE revision

* [DDW-197] Remove Ledger instantiating on app bootstraping

* [DDW-197] Remove unnecessary declarations and cleanup

* [DDW-197] Bump cardano-wallet to latest master and extended coin selections integration / improvement

* [DDW-197] Fix electron store type for HARDWARE_WALLET_DEVICES

* [DDW-197] Fix CI builds

* [DDW-197] Fix Add / Connect hardware wallet icon styles

* [DDW-197] Enable Ledger devices / HW

* [DDW-197] Small fix for Device Change handler

* [DDW-197] Fix device interaction immediately after Hardware Wallet creation

* [DDW-197] Logic improvement for connecting device while process started and device was unplugged

* [DDW-197] Unset PAIRED flag on wallet delete

* [DDW-197] Improve device - wallet connection check on app start

* [DDW-197] Remove weird red border from sidebar wallet while wallet disconnected

* [DDW-197] Improve process while device not connected and transaction send initialized

* [DDW-197] Change send dialog for Flight, improve HW status dialog and spinner

* [DDW-197] Improve submitting state while sending external transaction + Flight send dialog confirmation checkbox improvement

* [DDW-197] Send transaction progress label

* [DDW-197] HW delegation progress label

* [DDW-197] Introduce try&catch on TrezorConnect

* use pre-built usb bindings for windows

they where built by just running `yarn install` in the source on a windows VM

* [DDW-197] Connecting logic improvement for Trezor devices

* [DDW-197] Add firmware, device model and Trezor Bridge checkers

* [DDW-197] Merges develop

* [DDW-197] Cancel all device action on tx dialog close. Reset listeners on app refresh

* [DDW-197] Fix eslint issues and small code cleanup

* [DDW-197] Fix multiple connections instantiting on hardware wallet restore

* [DDW-197] Cancel all device actions on connecting dialog close

* [DDW-197] Avoid rebuilding electron on CI

* [DDW-197] Move postinstall into node script

* [DDW-197] Add supported devices flag. Disable Ledger initialization and show Trezor image on Connect dialog

* [DDW-197] Move node-hid pkg to optional dependencies

* [DDW-197] Code and logic improvements

* [DDW-197] Move device action reset method to separated channel. Fix Flow and ESLint issues

* [DDW-197] Run prettier and fix ESLint issues

* [DDW-197] Fix transaction signing when multiple devices presented

* [DDW-197] Update copy and improve logic to pass named HW to status progress

* [DDW-197] Run translations manager

* [DDW-197] If device match already restored wallet then redirect from connecting dialog to corresponding wallet summary screen

* [DDW-197] Remove all logs from stores and main process

* [DDW-197] Remove eslint-disable and fix issues in hardware wallets main process channel

* [DDW-197] Fix aborting device action on delegation confirmation dialog and fix cancel button disable state

* [DDW-197] Pass coin selections request errors to delegation and send dialogs

* [DDW-197] Fix hw delegation from stake pools list

* Merges in latest develop, Adds CHANGELOG

* [DDW-197] Fix all the themes for HW features

* [DDW-197] Add Hardware Wallet Support config variable

* [DDW-197] Run translations manager

* [DDW-197] Add Hardware Wallet logging filters and prevent exposing sensitive device data/keys

* [DDW-197] Add connecting guard on tx sign dialog

* [DDW-197] Fixes add screen button colors

* [DDW-197] Copy update

* Adds signing support for keccak supplemental

* [DDW-197] Enable Ledger support and fix connacting and signing

* [DDW-197] Fix deriveXpub and handle in main process, preparing logic for handling delegation certs

* [DDW-197] Add HW addressess (getPublicKey / constructAddress / inspectAddress) support

* [DDW-197] Bump cardano-wallet to the latest master

* [DDW-197] Bump cardano-wallet to include ADP-461

* [DDW-197] Construct address api call improvement

* [DDW-197] Fix Ledger delegation - working logic without cleanup WIP

* [DDW-197] Pass real HW ID and get public keys for delegation

* [DDW-197] Introduce HARDENED constants and more PATH transformation helpers

* [DDW-197] Fix First delegation fees with deposit amount

* [DDW-197] Remove Ledger inicializations we do not need anymore

* [DDW-197] Improve Ledger delete (recognizing wallet name) and saving connection related data

* [DDW-197] Ledger connect improvements

* [DDW-197] New Ledger connecting approach

* [DDW-197] Multy Hardware Wallets support improvements - Final

* [DDW-197] Improve multiple connections at same session

* [DDW-197] Copy update and Ledger Cardano app version checking improvement

* [DDW-197] New Ledger connecting logic without PENDING devices initially stored

* [DDW-197] Fix for unknown device while Ledger signing initiated

* [DDW-197] Improve connecting and actions rejecting actions / Change clusters / switch logs to loggers

* [DDW-197] Update signing rules

* [DDW-197] Update permissions

* [DDW-197] Fix signing issues

* [DDW-197] Update signing - again

* [DDW-197] Update signing - again x 2

* [DDW-197] Improve HW device images and CSS

* [DDW-197] Multiple device connections improvements / more error handlers on tx confirmations

* [DDW-197] Cleanup

* [DDW-197] Remove objects logging from main process

* [DDW-197] Updates CHANGELOG

* [DDW-197] Disable Ledger on Linux, Improve text copy, Improve logging

* [DDW-197] Improve Pair dialog styling

* [DDW-197] Fixes Ledger support on Linux

* [DDW-197] Fix Flow and EsLint issues

* [DDW-197] Run prettier

* [DDW-197] Fix path role types

* [DDW-197] Fix flow issues, Restore CI builds

* [DDW-197] Remove unnecessary logging

* [DDW-197] Logging cleanup

* [DDW-197] Improve connecting message

* [DDW-197] Fix Ledger disconnected state

* [DDW-197] Add logging

* [DDW-197] Fix error message detection

* [DDW-197] Fix Trezor TTL

* [DDW-197] Improve Ledger transport handling

* [DDW-197] Fix Ledger closed device case

* [DDW-197] Fix Ledger disconnected state handling

* [DDW-197] Fix cardano app polling

* [DDW-197] Add more Ledger transport change guards

* [DDW-197] Adds more logging

* [DDW-197] Fix logic

* [DDW-197] Debug Ledger handling

* [DDW-197] Improve transport change / disconnect detection on Windows

* [DDW-197] Update minimal Cardano Ledger App version

* [DDW-197] Refactor error handling for getting cardano app

* [DDW-197] Simplify logging

* [DDW-197] Update device path on change

* [DDW-197] Add poller on device path change - Windows only

* [DDW-197] Fix pending device flag

* [DDW-197] Remove transport.close() and improve device LC removal logic

* [DDW-197] Improve flow types

* [DDW-197] LC cleanup and eslint fixes

* [DDW-197] Update text copy, fix Delegation wizard validation

* [DDW-197] Guard against potential empty devices list

* [DDW-197] Enable hardware wallets for Testnet network (#2264)

* [DDW-197] HW testnet support

* [DDW-197] Testnet support

* [DDW-197] Code improvement

* [DDW-197] Adds CHANGELOG entry

Co-authored-by: Tomislav Horaček <tomislav.horacek@thespian.hr>

* [DEVOPS] Reduce the size of Linux installers (#2260)

* reduce the linux installer size some

* Adds CHANGELOG

Co-authored-by: Nikola Glumac <niglumac@gmail.com>

* [DDW-197] Update CHANGELOG, Bump Daedalus version

Co-authored-by: Nikola Glumac <niglumac@gmail.com>
Co-authored-by: KtorZ <matthias.benkort@gmail.com>
Co-authored-by: Michael Bishop <michael.bishop@iohk.io>
Co-authored-by: Samuel Leathers <samuel.leathers@iohk.io>
Co-authored-by: darkomijic <darko.mijic@gmail.com>
Co-authored-by: Dominik Guzei <dominik.guzei@gmail.com>
Co-authored-by: John Lotoski <john.lotoski@iohk.io>
@nikolaglumac nikolaglumac added release-3.0.0 Daedalus Mainnet and removed ⏳release-vNext labels Dec 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature release-3.0.0 Daedalus Mainnet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant