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