From: Chris Duncan Date: Thu, 4 Sep 2025 00:13:42 +0000 (-0700) Subject: Merge branch 'releases/v0.3' X-Git-Tag: v0.10.5~29 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=594f407bc2e775d9f9c46c36b25830a3fa5c0050;p=libnemo.git Merge branch 'releases/v0.3' --- 594f407bc2e775d9f9c46c36b25830a3fa5c0050 diff --cc CHANGELOG.md index 5f4d74a,d6bb620..0c1a08c --- a/CHANGELOG.md +++ b/CHANGELOG.md @@@ -3,100 -3,14 +3,108 @@@ SPDX-FileCopyrightText: 2025 Chris Dunc SPDX-License-Identifier: GPL-3.0-or-later --> +## v0.5.2 + +### Notable Changes + +Remove async-await from new Vault functionality in favor of Promise chaining +(see [v0.4.0](#v040) for details). + + + +## v0.5.1 + +### Notable Changes + +Fix type definitions for unit denomination `convert()` function overloads. + + + +## v0.5.0 + +### Notable Changes + +#### Sign arbitrary data with Wallet + +The ability to "log in with Nano" is gaining traction, and while the `sign()` +function from `Tools` allows signing arbitrary string data using a private key, +there was no way to sign with a `libnemo` wallet which does not expose private +keys. Now, the `sign()` instance method of the `Wallet` class has been updated +to accept one or more strings of data, hash them to a 32-byte value using +BLAKE2b, sign with a given account index, and return the signature. Note that +the data is first hashed only to maintain compatibility with other Nano tools; a +future update could enable signing full-length messages without hashing them. +Also note that the Nano app for Ledger wallets still have a bug which prevents +them from signing nonces. + +#### Implement missing password update method + +The `Vault` class for wallet secrets supports an `update` action to re-encrypt +them using a new password if the wallet is unlocked. However, the `Wallet` class +itself did not have a method to make this request to its vault. This has now +been implemented. + +### Other Changes + +The `convert()` tool now supports denomination output as a float in addition to +string and bigint. + +Some functions extracted to separate files to improve organization. + +Type definitions updated. + +Tests added or updated to accomodate new features. + + + +## v0.4.1 + +### Notable Changes + +Redefine Vault worker class members as instance properties instead of static +properties and initialize the worker with `new` instead of an `init()` method +which allows it to privatize its properties again. + + + +## v0.4.0 + +### Notable Changes + +#### Vault abandons async-await + +Bundlers try to optimize code based on features supported by the target browser +environment as well as work around shortcomings or bugs. Sometimes this results +in mangling code that would otherwise be acceptable. Private class fields and +async-await are two such features that bundlers are eager to refactor. This is +particularly problematic for the Vault worker in `libnemo` due to how it loads +as a stringified data blog. To avoid this situation, async-await statements have +been replaced by traditional promise chaining in Vault-related classes, and +private members that were being hoisted outside the class scope (and thus being +lost when loading the worker) are now initialized in a static method so that +they keep their place in the class as designed. + +#### BLAKE2b outputs bytes only + +This change is intended purely to simplify the structure of the BLAKE2b hashing +implementation. The `digest()` method no longer accepts any parameters and will +always output bytes; hex string is no longer an output option, and the bytes +should be converted if necessary. + +### Other Changes + +Fixed some erroneous JSdoc comment documentation. + + + + ## v0.3.2 + + ### Notable Changes + + Fix type comparison to undefined when restoring Wallets from database. + + + ## v0.3.1 ### Notable Changes