phoenix
phoenix copied to clipboard
Implement HW Ledger Support - Abstractions
Is your feature request related to a problem? Please describe. On sending messages, burst, aliases, etc. the signing through the [HW Ledger] (https://www.ledger.com/), seems to be an interesting option for final users. In terms of security this might even raise the wallets reputation.
Describe the solution you'd like There must be a kind of abstraction layer that permits signing the conventional way (burstjs), or using ledger.
Describe alternatives you've considered Several abstraction options are available:
- one interface (of a service, i.e. transaction, account) with internally different implementations
- one service, different methods
- different services
In a first step, it's sufficient to define an abstraction layer and modify the code accordingly, such that ledger implementations could be done afterwards
Ledger communication:
(All values here are hex encoded, for actual communication you need to use raw bytes)
Sending 080400xx00
-> Public key is returned. xx
is the index of the account (look at address_index in BIP41).
Sending 0802xxyyzz
followed by up to 255 bytes of data: Input data to the ledger. yy
is the index of the account. zz
is the data length. This step may need to be called multiple times if the data length is > 255. For xx
he last call should use 80
whereas calls that are not the final call should use 00
. This call will return 4b
.
Ledger HW support for BURST will be one of the biggest achievement of the year when delivered !!! Keep up the great work
Not sure, if this is feasible anymore... need to see with @jjos2372