ARK Desktop Wallet v2.6 — Major Plugin Improvements & New FeaturessteemCreated with Sketch.

in arkecosystem •  21 days ago 

It’s time for a new Desktop Wallet update. During the last few weeks, we have been thoroughly testing our Desktop Wallet Plugin system, tightening it up and implementing a lot of new features into it. There’s even more, so let's dive into the newest changes.

Apart from the upgraded plugin system, the biggest change in the Desktop Wallet was to remove support for the (now legacy) API v1 endpoints from our codebase. This will make the Desktop Wallet codebase cleaner, and help us focus on implementing new ways to take advantage of new API v2 and its endpoints.

You can download ARK Desktop Wallet at https://ark.io/wallet

This release includes a major version upgrade of Electron from v3 to v5 which includes several performance improvements. Alongside this upgrade, the minimum version for the node.js runtime was raised from 11 to 12.

**Important notice: **With ARK Desktop Wallet v2.6 release, as we have deprecated API v1 inside the wallet, ARK based blockchains that are still using Core ≤v2.3 won’t work properly anymore. We highly recommend every ARK bridgechain that is still running an outdated Core version to update their network, as Core has since released major new features were added, API v1 was deprecated and numerous bugs and security vulnerabilities have been patched.

Plugin system updates and new features

There have been various fixes and updates to the current plugin system, some of which are:

  • Ability to access element references (refs) from within plugin components

  • Fixes to use of lifecycle hooks in plugin components (e.g. mounted, created, etc)

  • Improved loading components within the plugin system

  • Allow sub-pages within plugin components to send primitive type messages back to the plugin for processing via sendToHost in the external page

  • Can now get the current route ($route) from within a plugin

  • Implement a custom webpage component

  • Allow plugins to navigate to different routes

  • Allow access to font awesome icons from plugins

  • Allow key-value storage for plugins

  • Allow plugin access to current peer

  • Block DOM events from plugin components

  • Use a different path for loading plugins when the wallet is in development mode

  • Added Wallet API functionality to plugin components (via permissions):

  • Generic wallet components (e.g. buttons, input fields, utils, etc)
  • HTTP web requests (requires a whitelist to be specified)
  • Profiles (with the network), wallets, and contacts to be accessible

This isn’t all that was added or fixed, so let’s go over the most significant changes of the new updated Desktop Wallet.

What’s New?

  • Make screenshot protection setting persistent — you now have the option to temporarily (current session) or permanently disable screenshot protection for the Desktop Wallet on per profile basis.

  • Toggle wallet dropdown on right mouse click —allows the user to open the context menu of the wallet cards by right-clicking on them.

  • Added animations to market chart and store options — refactored the MarketChart and MarketChartHeader components in order to add some animations to the dashboard.

  • Use last fee option — implemented an additional option to use previously used fee when sending or voting for a delegate within the wallet for those who don’t want to input the previous fee they used each time.

  • Add gradients and scrolling to intro pages

  • ***Improved passphrase detection in vendorfield ***— improves the detection of passphrases in the vendorfield of the transaction form. The previous implementation failed to detect a passphrase if it started or ended with space, for example.

Smarter detection of BIP39 passphrases in Smartbridge field that can prevent user unintentionally including it with the transaction

  • Check unconfirmed votes when updating transactions — check for unconfirmed votes in the synchronizer, and whenever it looks for new transactions, for a smoother voting experience.

  • ***Details modal wasn’t showing for recently registered delegates ***— returns the selected delegate instead of searching in the store, which is still being updated.

  • Unified the grid layout of wallets and contacts — grid layout of wallets and contacts page has been unified for more seamless user experience.

  • ***The discovery of peers has been improved ***— by using TypeScript Peers we can now easily filter for available peers that can be used.

  • ***Fixed various bugs related to amount and fee transaction inputs ***— various improvements on input fields related to the amount (value of sending or fees) for better user experience.

  • ***Reload wallets after rename ***— reloads all wallets after renaming a wallet (previously the Ledger wallets would disappear).

  • Check if the username exists in the delegate registration form — there was no check against existing delegate usernames on the delegate registration transaction form, which is now added.

  • The disconnecting ledger shows zero balance — the balance of an open ledger wallet changed to zero if the ledger is disconnected or unplugged while that ledger wallet was still open within the Desktop Wallet. This has been fixed.

  • Do not create wallet if it fails encryption of the password — prevents wallets from being created when the password encryption fails (e.g. due to high load on a machine which can’t talk to the BIP38 worker).

  • Various QR Code scanning fixes — component used for QR code scanning has been updated and fixed various bugs that were reported.

  • Updated dependencies — numerous dependencies have been updated to the latest versions (ESlint, Vue, Electron, Node, …).

What’s Next for Desktop Wallet?

With the plugin system becoming more robust, secure and soon progressing out of the beta status, we are going to be focused on making it more user-friendly. With that, we recently opened a Tier 0 project for the ***Plugin Manager*** currently under development that will address the following: autodiscovery of plugins, management of plugins, installation from outside sources, and much more! Here is a sneak peek of the mock-up of the new plugin system:

Mock-up of some specific plugin that was installed

Thank You

Special thanks to all of the security researches at Bugcrowd and our security advisor Alessio, who have been thoroughly testing and reporting ways to break or manipulate the plugin system. We have closed potentially harmful ways that malicious plugins could manipulate data and have access to things that shouldn’t be available through the plugin system.

Thank you to all who keep reporting issues so we can fix and address them, and of course, our community developers who are contributing to our codebase by resolving those issues and adding new features for better user experience.

Changes In Numbers

Since the previous release:

  • **12 different developers **contributing to the ARK Desktop Wallet.

  • 61 new commits to the ARK Desktop Wallet.

  • 138 files changed in the ARK Desktop Wallet.

  • 4,796 lines of code added to the ARK Desktop Wallet.

  • 4,106 lines of code deleted from the ARK Desktop Wallet.

Hashes for 2.6.0 of Desktop Wallets (SHA256)

  • **Linux *(ark-desktop-wallet-linux-x64–2.6.0.tar.gz)
    *** 5739f56d9074a1b6bac4d1b05118e987c29df9016d5a8b840d2379780e439f0f

  • **MacOS *(ark-desktop-wallet-mac-2.6.0.dmg)
    ***327bfcdd4e48f2d029644fdf6f7d475c238ca8fe789dde227c0acc3b7ef2e81f

  • **Ubuntu *(ark-desktop-wallet-linux-amd64–2.6.0.deb)
    *** 202e76428884491f00eddd13d1ea976c04b1e30a9f34db9545b01e8cb8aa62a2

  • Windows X86 & X64 (ark-desktop-wallet-win-2.6.0.exe)
    ** 5db60132ab184f6dae125a4c1b43b1b2204ef58492cc434485ef0dffceefadd7

  • Linux-AppImage ***(ark-desktop-wallet-linux-x86_64–2.6.0.AppImage)
    *** bdc5163b6a0a154bc7c99cc3be0d7b1a52a1d457176ddfefe598b7e3e99c801b

I found a bug / an issue — what do I do?

Please open an issue with all of the details on **ARK Desktop Wallet Issues **page.

I want to help with development — what do I do?

Please open a **pull request, and don’t forget, we are also running **Github development bounty, so you can earn some extra ARK.

I want to translate Desktop Wallet into my own language — how can I help?

Please read the instructions at this **link. **Click on the arrow to open the full guide.

Read our new 2019 whitepaper, follow us on social media ( Twitter |Facebook | Reddit ), join our community ( Slack | Discord ), and stay tuned to our blog on Medium and on Steemit.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!