Skip to content
This repository has been archived by the owner on Feb 14, 2024. It is now read-only.

Hardwarewallets.Net Feedback #23

Open
MelbourneDeveloper opened this issue Sep 17, 2018 · 7 comments
Open

Hardwarewallets.Net Feedback #23

MelbourneDeveloper opened this issue Sep 17, 2018 · 7 comments

Comments

@MelbourneDeveloper
Copy link
Contributor

MelbourneDeveloper commented Sep 17, 2018

Hey @NicolasDorier ,

Sorry about the lack of contribution lately. I'm still planning on finishing off the Android support, but I've been working on other projects and have very little time.

I'm currently working on https://github.com/MelbourneDeveloper/Hardwarewallets.Net

The idea of this library is on the base level to have a public interface that sits across all hardwarewallets and all coins on all platforms. Your library does not need to implement the public interface. I will include wrappers for the hardwarewallet libraries in the second tier of the library. The plan is to build up the interface bit by bit and slowly implement the interface for KeepKey, Trezor, and Ledger.

This is the main interface:
https://github.com/MelbourneDeveloper/Hardwarewallets.Net/blob/master/src/Hardwarewallets.Net.Base/IHardwarewalletManager.cs

You can already see the library in action with unit tests for Trezor and your library:
https://github.com/MelbourneDeveloper/Hardwarewallets.Net/tree/master/src/Hardwarewallets.Net.UnitTests

Basically just hoping to get your input on moving forward with this. I'd especially like your input on Bitcoin transaction signing. I'm hoping to also hear from @juanfranblanco on this. Please feel free to submit any pull requests if you think anything looks wrong.

Christian

@NicolasDorier
Copy link
Contributor

That's quite cool. Please let me know about progress, I might want to use this for BTCPay to support several hardware wallet.

@juanfranblanco
Copy link

@MelbourneDeveloper I am working now on the Trezor support integration, and from there moving on the full library.

@MelbourneDeveloper
Copy link
Contributor Author

MelbourneDeveloper commented Sep 26, 2018

@NicolasDorier and @juanfranblanco glad to hear you guys are interested. I just did a big refactor where there is interfaces for each function. Like IAddressDeriver, and ITransactionSigner and so on instead of trying to cram all the functions in to one big interface. Now, I think this library will be quite useful - especially for tasks like getting bulk addresses etc.

All the main code has been consolidated in to one assembly, but there are no dependencies inside that assembly. So, adapters have to be made for each of the libraries. Those adapters are now stored in the unit tests. In time, the IAddressDeriver interface will be moved in to my libraries so that there is no need for adapters on top.

@MelbourneDeveloper
Copy link
Contributor Author

@NicolasDorier , there has been some progress on this. It's currently mostly for getting addresses. If you'd like to give feedback on what you'd need to be useful for BTCPay, I can make that a higher priority.

@NicolasDorier
Copy link
Contributor

NicolasDorier commented Dec 2, 2018

I saw your progress on the Trezor lib especially. I will use it for BTCPay.

I don't think there is any need more than what you already did, this seems to be perfect.

@MelbourneDeveloper
Copy link
Contributor Author

@NicolasDorier that's great to hear!

Please keep an eye on MelbourneDeveloper/Trezor.Net#4. Satoshi Labs have dumped support for Hid in Trezor Core. That means it will be broken in firmware version 1.7.1 which is in beta currently. I'm not sure why yet. I already fixed Android, and there is a plan for UWP. But, I'm currently looking for a replacement transport for .NET Core.

@NicolasDorier
Copy link
Contributor

NicolasDorier commented Dec 3, 2018

@MelbourneDeveloper in my case, I would have a custom transport which root server side created packets to websocket to trezor bridge running on browser extension. So I don't think this will break things for me.

So as long as the bridge keep working, I am fine.

I used a similar hack for Ledger. With ledger on BTCPay, I generate the packets server side => websocket => U2F.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants