Open MelbourneDeveloper opened 6 years ago
That's quite cool. Please let me know about progress, I might want to use this for BTCPay to support several hardware wallet.
@MelbourneDeveloper I am working now on the Trezor support integration, and from there moving on the full library.
@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.
@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.
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.
@NicolasDorier that's great to hear!
Please keep an eye on https://github.com/MelbourneDeveloper/Trezor.Net/issues/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.
@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.
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