Ledger App updated with HF25 operations
![image.png](https://files.peakd.com/file/peakd-hive/engrave/Eo23B9HfFGSxgkzJckVtC8WSMeoEwfMcitDDJBZYJzaiVGqirgAwMZmEHpr2WcufBP6.png)
Image credit (@thepeakstudio)
I'm slowly getting back on track to work on a Ledger Hive Application. My [previous post](https://peakd.com/hive-139531/@engrave/javascript-library-for-ledger-nano-s-hive-application) gathered a lot of traction so I feel committed to keeping you in touch.
# HF25
The latest hard fork (which happened a few days ago) introduced few new transactions, so I decided to modify both the app and the library to support it.
Javascript library is available on NPM with a newest version `2.1.0`:
* `https://www.npmjs.com/package/@engrave/ledger-app-hive`
Because the original repository seems to be dead (my previous Merge Request hasn't been reviewed or merged), I decided to move it to the new home:
* **Ledger Application**: `https://gitlab.com/engrave/ledger/hw-app-hive`
* **Javascript Library**: `https://gitlab.com/engrave/ledger/ledger-app-hive`
Here is my first `recurrent_transfer` operation signed with my Ledger: `https://hiveblocks.com/tx/76293c907bf0038076f3507402a716c7d0b8ed57`
![image.png](https://files.peakd.com/file/peakd-hive/engrave/23z7Bh3LG2w23qb9SdLz1Vhmf2wRZKHztTw1H9RL58exJVe2XygcfAS4nqbPPUrTfKNqv.png)
# Code review
I'm slowly getting familiar with the codebase. What I can tell so far, is that it contains a lot of unused code which I'm removing. This seems like a copy-paste and I would really like to clean it before sending it to the official review. It also contains some code prepared for Ledger Nano X but I couldn't build it so far. This is probably some kind of a left-over from the boilerplate so there's a lot of work to be done yet.
I'm getting familiar with the ledger SDK as well to understand the code better.
# Development stack and SDK
SDK used to build the Hive app is already deprecated. There is also a new firmware version (2.0) that is not compatible with the previous one, hence we cannot run the app on new devices. I'm trying to port it to the new SDK version. The new SDK unifies the user flow for both Nano S and Nano X, so finally, we could run it on both devices.
I've even bought the Nano X to be able to test the app against this model.
Ledger prepared a docker image that contains all the necessary libraries to build the app. Unfortunately, the newest version does not work with the actual codebase so I need to make some changes to build it but at the end, this should make future development much easier.
# Ledger companion app
Simultaneously, I've started working on an electron-powered desktop app (as I promised in a previous post). I decided to go with Vue.js and for now, it contains basic CSS rules and views. Will push the code to the gitlab when it's a bit cleaner.
![image.png](https://files.peakd.com/file/peakd-hive/engrave/EowF9ezqJkPjHhLKMx9NjA82sqpuhKVddGJHDgbd5zyo9TsVhKtGc1714xjdsZxerab.png)
# What next
To get this app accepted by the Ledger, it needs to fulfill security, documentation, and functional requirements but I would also make it more user friendly, so the plan is as follow:
* Make it compatible with a new SDK and 2.0 firmware version
* Make it working on both Nano S and Nano X devices
* Add Approve and Reject screens before signing the transaction
* Prepare user guide and developer's documentation for Ledger Team
* Develop a working version of the Hive companion app
* Submit the app for the official review
***
Follow me to be up to date with incoming development updates!
***
**Click on the image to vote for @engrave witness:**
[![banner_engrave 100.png](https://images.hive.blog/DQmUghvic5TCPPvVkB4iB7eXmgQ3RQ4L8jkVizvuCBW8RMT/banner_engrave%20100.png)](https://hivesigner.com/sign/account-witness-vote?witness=engrave&approve=1)