Releases: hiero-ledger/hiero-sdk-js
v2.65.1
What's Changed
This release introduces robust support for external transaction signing via Hardware Security Modules (HSMs), enabling secure workflows for enterprise and regulated environments. It also includes several enhancements and bug fixes aimed at improving SDK reliability and developer experience.
Upgrading
For detailed guidance on implementing HSM-based signing and transaction size tracking, refer to the updated SDK documentation and examples provided.
Enhancements
-
HSM Support for External Signing:
- Introduced
SignableNodeTransactionBodyBytes
to encapsulatenodeAccountId
,transactionId
, and canonicalbodyBytes
. - Added
Transaction.signableNodeBodyBytesList()
to return node-specific, signable transaction bytes for HSM workflows. - Enables secure external signing (e.g., via HSM or KMS) and injection of signatures back into the transaction.
#3119
Usage Example:
const bytesList = transaction.signableNodeBodyBytesList; // Sign bytesList[i] externally and append signature back to the transaction
- Introduced
-
Key Type Detection Enhancement:
- Added a utility library to determine key types.
- Updated existing logic to use the centralized utility for consistent behavior.
#3068
-
Transaction Size Tracking:
- Introduced getters for transaction size, including support for chunked transactions such as
FileAppendTransaction
.
#2961
- Introduced getters for transaction size, including support for chunked transactions such as
Bug Fixes
- Transaction Regression Fixes:
- Resolved regressions in
ContractCreateTransaction
andTokenCreateTransaction
.
#3125
- Resolved regressions in
Documentation
- Added usage documentation and examples for the HSM signing API.
#3119 - Documented local code coverage command to improve developer workflow.
#3116
Full Changelog: v2.64.5...v2.65.0
Full Changelog: v2.64.5...v2.65.1
v2.65.0
What's Changed
This release introduces robust support for external transaction signing via Hardware Security Modules (HSMs), enabling secure workflows for enterprise and regulated environments. It also includes several enhancements and bug fixes aimed at improving SDK reliability and developer experience.
Upgrading
For detailed guidance on implementing HSM-based signing and transaction size tracking, refer to the updated SDK documentation and examples provided.
Enhancements
-
HSM Support for External Signing:
- Introduced
SignableNodeTransactionBodyBytes
to encapsulatenodeAccountId
,transactionId
, and canonicalbodyBytes
. - Added
Transaction.signableNodeBodyBytesList()
to return node-specific, signable transaction bytes for HSM workflows. - Enables secure external signing (e.g., via HSM or KMS) and injection of signatures back into the transaction.
#3119
Usage Example:
const bytesList = transaction.signableNodeBodyBytesList; // Sign bytesList[i] externally and append signature back to the transaction
- Introduced
-
Key Type Detection Enhancement:
- Added a utility library to determine key types.
- Updated existing logic to use the centralized utility for consistent behavior.
#3068
-
Transaction Size Tracking:
- Introduced getters for transaction size, including support for chunked transactions such as
FileAppendTransaction
.
#2961
- Introduced getters for transaction size, including support for chunked transactions such as
Bug Fixes
- Transaction Regression Fixes:
- Resolved regressions in
ContractCreateTransaction
andTokenCreateTransaction
.
#3125
- Resolved regressions in
Documentation
- Added usage documentation and examples for the HSM signing API.
#3119 - Documented local code coverage command to improve developer workflow.
#3116
Full Changelog: v2.64.5...v2.65.0
v2.64.5
What's Changed
- chore(release): v2.64.5 by @ivaylogarnev-limechain in #3110
Full Changelog: v2.64.4...v2.64.5
v2.64.3
What's Changed
- chore(release): v2.64.3 by @ivaylogarnev-limechain in #3106
Full Changelog: v2.64.2...v2.64.3
v2.64.0-beta.1
What's Changed
- chore: Renamed TCK client image by @ivaylogarnev-limechain in #3058
- chore(deps): bump step-security/harden-runner from 2.11.1 to 2.12.0 by @dependabot in #3062
- chore(deps): bump renovatebot/github-action from 41.0.20 to 41.0.21 by @dependabot in #3060
- chore(deps): bump actions/setup-java from 4.7.0 to 4.7.1 by @dependabot in #3036
- feat: update protobufs 0.61 by @ivaylonikolov7 in #3066
- chore(TCK): Added
airdropToken
endpoint by @ivaylogarnev-limechain in #3067 - feat: transaction retry on
THROTTLED_AT_CONSENSUS
by @ivaylonikolov7 in #3065 - chore(deps): bump renovatebot/github-action from 41.0.21 to 41.0.22 by @dependabot in #3074
- feat: extend set key with alias to work with public ecdsa keys by @venilinvasilev in #3051
- fix: update README.md by @SimiHunjan in #3026
- chore(TCK): Added retry on unhealthy local node by @ivaylogarnev-limechain in #3077
- feat: HIP 551 by @ivaylonikolov7 in #3039
- chore(release): v2.64.0 beta.1 by @ivaylonikolov7 in #3078
Full Changelog: v2.63.0...v2.64.0-beta.1
v2.63.0
This release introduces various enhancements to the Hedera JavaScript SDK, including improved browser support, extended ECDSA functionality, better error handling, and internal optimizations.
Enhancements
-
UMD Browser Support: Added a UMD example demonstrating usage of the SDK in browser environments. #3028
-
PrivateKey Recovery ID Calculation: Added
PrivateKey.getRecoveryId(r, s, message)
method to enable recovery ID (v) calculation from raw ECDSA signature components. This addition allows developers to compute the recovery ID directly, enabling full support for signing and serializing Ethereum transactions (including EIP-155) within the SDK. It enhances compatibility with external Ethereum clients and tooling. #3021 -
Ethereum Address Example: Added an example demonstrating how to sign and recover Ethereum addresses using the Hedera SDK, Ethereum-style signature hashing (EIP-191), and the ecrecover contract. #3029
-
Dynamic Protobuf Generation: Implemented dynamic generation of RequestType.js and Status.js by parsing protobuf definitions. #3018
-
Improved Query Reliability: Enhanced reliability of getReceiptQuery and getRecordQuery, which are single-node requests. These queries now retry up to 10 times with a delay when encountering node-specific issues (e.g., "All nodes are unhealthy") to handle transient network or node health problems more gracefully. #3038
-
Internal Code Optimization: Extracted _makePaymentTransaction function used by both Query and CostQuery for initiating payment transactions. #3017
Bug Fixes
- TopicUpdateTransaction Bug: Fixed a bug in TopicUpdateTransaction related to the handling of feeExemptKeys and customFees properties when they are unset. Previously, the transaction would include empty arrays for these fields, unintentionally clearing existing values on the topic. This change ensures that unset properties are treated as null, preserving existing topic configurations. #3031
Removed
- Removed MyHbarWallet gRPC web proxies. #3053
Documentation
- Updated README.md to reflect support for the UMD package. #3028
v2.63.0-beta.1
What's Changed
- fix: replaced elliptic with @noble/curves by @venilinvasilev in #2937
- chore(cryptography): bump deps by @venilinvasilev in #3015
- chore(release): v2.63.0 beta.1 by @ivaylonikolov7 in #3016
Full Changelog: v2.62.0...v2.63.0-beta.1
v2.62.0
What's changed
This release enhances account alias handling in the SDK and introduces new testing and documentation improvements for contract queries and transaction verification. It also includes development dependency upgrades to maintain compatibility and security.
Enhancements
-
Improved Account Alias Handling: Added support for hollow account detection (
num=0
with alias) inAccountId
. This ensures more accurate handling of aliases and improves protobuf conversion logic. -
Protobuf Conversion Updates: Enhanced
AccountId
behavior with more explicit conversion rules for:- Both
AccountId
number and alias set - Only alias set
- Only number set
Comprehensive test coverage has been included.
Contributed by @ivaylonikolov7 in #2994
- Both
Documentation
- Mirror Node Contract Queries: Added usage documentation to help developers correctly configure sender addresses using ECDSA keys and aliases in contract queries.
Contributed by @ivaylonikolov7 in #2993
Tests
- PublicKey Verification: Added unit tests for
PublicKey.verifyTransaction
, ensuring correct behavior in signature verification.
Contributed by @0xivanov in #2971
Dependency Upgrades
- Development Dependencies:
- Upgraded
chromedriver
from133.0.3
to134.0.5
(including in the cryptography package) - Upgraded
sinon
from19.0.2
to20.0.0
- Upgraded
vite
from6.1.0
to6.1.3
(including in the cryptography package) - Upgraded
axios
from1.7.7
to1.8.2
in `/examples/simple_rest_signature_p
- Upgraded
Full Changelog: v2.61.0...v2.62.0
v2.62.0-beta.3
This release adds support for generating UMD build files to allow the library to be used directly in browsers via CDN distribution.
Added
- Generation of UMD build files (dist/) for browser compatibility, enabling direct script usage in HTML.
- UMD files are available for easy CDN hosting via unpkg.com, simplifying integration and deployment in web projects.
Full Changelog: v2.62.0-beta.2...v2.62.0-beta.3
v2.62.0-beta.2
What's Changed
- chore: bump elliptic peer depеndency by @venilinvasilev in #2976
- refactor: remove account creation in integration tests by @venilinvasilev in #2970
- chore: bump elliptic version by @venilinvasilev in #2977
- chore: regenerate lockfile for tck by @venilinvasilev in #2978
- fix: remove circular dependancy in dependencies by @ivaylonikolov7 in #2985
- chore(release): v2.62.0 beta.2 by @ivaylonikolov7 in #2989
Full Changelog: v2.62.0-beta.1...v2.62.0-beta.2