Skip to content
This repository has been archived by the owner on Sep 26, 2023. It is now read-only.

Add support for Ledger Hardware Wallet #106

Closed
wants to merge 47 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Sep 29, 2022

This PR is the work that we have done to add hardware wallet support (via Ledger device) to the lib (and cli).

We also have another branch ledger-merged where there are some cherry picked commits to allow the testing and live demo we presented at ZCON3, but it would make the history messy so we made a PR with just our commits

Karrq and others added 30 commits June 7, 2022 06:51
refactor(keys): rename `Keys` to `InMemoryKeys`
refactor(keys): impl above traits for `InMemoryKeys`
refactor(lightwallet): split methods between generic over keystore and
`InMemoryKeys` specific
style: formatting
feat(builder): impl `Builder` for zcash-primitive's Builder
feat(keystore): obtain associated builder for certain keystore
refactor: use new `Builder` trait
Modularize keystore functionality
feat(txbuilder): add `HsmTxProver` support
feat(keys:ledger): initial impl of `Builder` and `Keystore`
misc: add compute_taddr utility
misc: add some derives and remove some unnecessary code (spurious clones)
feat(ledger): add utility functions
feat(keystores): add enum to wrap keystore variants
refactor: use new `Keystores` enum API - WIP
refactor: use keystores instead of requiring in memory keystore where possible
feat(leger): `add_zaddr` and `add_taddr` with automatic path creation
refactor(lightwallet): provide defaults for some fields tin non-memory
keystore
feat(wallet): add support for more functionality with both keystores
refactor: specify if a clone of the keystore is necessary
Integrate Ledger based keystore with lib and CLI
feat(ledger): device ""id""
refactor(keys:adapters): use `Self` instead of enum name
chore: bump wallet serialization version
refactor: adjust spendable notes based on ivk only
feat(keystores): method to retrieve all spendable ivks
refactor(wallet): initialize `Keystores` from file
refactor: don't force memory keys for lock/unlock encrypt/decrypt operations
refactor(data): use ivk in SaplingNoteData instead of extfvk,
refactor(data): also for SpendableNotes
refactor(sync): compute nullifier via keystore
refactor(sync): use ivk instead of extfvk
refactor(builder): use ivk instead of vk for adding sapling spends
misc: use `to_repr()` to compare ivks
Complete ledger integration
@adityapk00
Copy link
Owner

Thanks for this. Reviewing it...

@ftheirs
Copy link

ftheirs commented Nov 28, 2022

Hey @adityapk00, were you able to check this PR? Do you have any comment or improvement that we should make?

@daira
Copy link

daira commented Apr 21, 2023

@adityapk00, what help would be needed to progress this PR?

Karrq and others added 2 commits August 8, 2023 17:14
fix(ledger): missing txversion on build
Add support for TX v5 to Ledger
@ghost ghost closed this Oct 26, 2023
@ghost ghost deleted the ledger-master branch October 26, 2023 14:40
This pull request was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants