Skip to content

Releases: hiero-ledger/hiero-sdk-js

v2.85.0

Choose a tag to compare

@github-actions github-actions released this 09 Jun 12:28
8828d28

This release centers on aligning the examples set with the Java SDK and adding HIP-1313 TCK support, alongside several bug fixes. The remaining merged PRs are internal — a large round of
unit/integration test-coverage additions and dependency updates — with no user-facing impact.

Enhancements

  • Examples aligned with the Java SDK — added 13 new examples and aligned an existing one so the example set stays consistent across SDKs (#621).
    #4047

    New examples: construct-client, generate-key-with-mnemonic, transfer-crypto, create-file, delete-file, update-account-public-key, consensus-pub-sub-with-submit-key,
    topic-with-admin-key, multi-app-transfer, consensus-pub-sub-chunked, schedule-multi-sig-transaction, scheduled-transfer, schedule-identical-transaction.

Bug Fixes

  • Mnemonic: throw on invalid BIP-44 derivation paths instead of deriving silently. #3992
  • FreezeTransaction: stop emitting a spurious endTime is deprecated warning when deserializing a transaction, and clarify the deprecation message with a migration path.
    #4095

Full Changelog: v2.84.0...v2.85.0

v2.84.0

Choose a tag to compare

@github-actions github-actions released this 07 May 09:58
afff8e9

This stable release ships support for HIP-1137 — the Registered Node Address Book — adding a new family of transactions, queries, and service endpoint types for managing registered nodes alongside the existing consensus node lifecycle. All changes were previewed in v2.84.0-beta.1; no additional user-facing changes were merged after the beta. No breaking changes.

Enhancements

  • RegisteredNodeCreateTransaction, RegisteredNodeUpdateTransaction, RegisteredNodeDeleteTransaction: new transactions for the registered node lifecycle. #3846 HIP-1137

  • RegisteredNodeAddressBookQuery: query the registered node address book, with paging support. #3846

  • New service endpoint types — BlockNodeServiceEndpoint, MirrorNodeServiceEndpoint, RpcRelayServiceEndpoint, GeneralServiceEndpoint, RegisteredServiceEndpoint — describing the various service kinds a node can expose. #3846

  • NodeUpdateTransaction.addAssociatedRegisteredNode: associate a registered node with a consensus node from an existing node update flow. #3846

    Usage Example:

    import {
        BlockNodeServiceEndpoint,
        Client,
        RegisteredNodeAddressBookQuery,
        RegisteredNodeCreateTransaction,
    } from "@hiero-ledger/sdk";
    
    const client = Client.forTestnet().setOperator(operatorId, operatorKey);
    
    // Create a registered node exposing a block-node service endpoint.
    const createTx = await new RegisteredNodeCreateTransaction()
        .setAccountId(operatorId)
        .addServiceEndpoint(
            new BlockNodeServiceEndpoint()
                .setIpAddressV4("127.0.0.1")
                .setPort(50211),
        )
        .freezeWith(client)
        .sign(operatorKey);
    const receipt = await (await createTx.execute(client)).getReceipt(client);
    const registeredNodeId = receipt.registeredNodeId;
    
    // Read it back from the address book.
    const addressBook = await new RegisteredNodeAddressBookQuery()
        .setLimit(25)
        .execute(client);

See examples/registered-node-lifecycle.js for a full create → wait → associate → update → delete flow.

v2.84.0-beta.1

v2.84.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 May 09:21
dd7f004

v2.84.0-beta.1

This beta introduces support for HIP-1137 — the Registered Node Address Book — adding a new family of transactions, queries, and service endpoint types for managing registered nodes alongside the existing consensus node lifecycle. No breaking changes.

Enhancements

  • RegisteredNodeCreateTransaction, RegisteredNodeUpdateTransaction, RegisteredNodeDeleteTransaction: new transactions for the registered node lifecycle. #3846 HIP-1137

  • RegisteredNodeAddressBookQuery: query the registered node address book, with paging support. #3846

  • New service endpoint types — BlockNodeServiceEndpoint, MirrorNodeServiceEndpoint, RpcRelayServiceEndpoint, GeneralServiceEndpoint, RegisteredServiceEndpoint — describing the various service kinds a node can expose. #3846

  • NodeUpdateTransaction.addAssociatedRegisteredNode: associate a registered node with a consensus node from an existing node update flow. #3846

    Usage Example:

    import {
        BlockNodeServiceEndpoint,
        Client,
        RegisteredNodeAddressBookQuery,
        RegisteredNodeCreateTransaction,
    } from "@hiero-ledger/sdk";
    
    const client = Client.forTestnet().setOperator(operatorId, operatorKey);
    
    // Create a registered node exposing a block-node service endpoint.
    const createTx = await new RegisteredNodeCreateTransaction()
        .setAccountId(operatorId)
        .addServiceEndpoint(
            new BlockNodeServiceEndpoint()
                .setIpAddressV4("127.0.0.1")
                .setPort(50211),
        )
        .freezeWith(client)
        .sign(operatorKey);
    const receipt = await (await createTx.execute(client)).getReceipt(client);
    const registeredNodeId = receipt.registeredNodeId;
    
    // Read it back from the address book.
    const addressBook = await new RegisteredNodeAddressBookQuery()
        .setLimit(25)
        .execute(client);

See examples/registered-node-lifecycle.js for a full create → wait → associate → update → delete flow.

v2.83.0

Choose a tag to compare

@github-actions github-actions released this 29 Apr 13:30
e1ccf39

What's Changed

This release introduces new FeeEstimateQuery for off-network fee estimation, and HIP-1313 high-volume throttling for entity creation. It also adds ContractId support to HookEntityId, fixes Ethereum access-list typing for EIP-2930/1559/7702 transactions.

Enhancements

  • FeeEstimateQuery (HIP-1261): New query type for estimating transaction fees against the mirror node REST API (POST /api/v1/network/fees) without submitting to consensus. Supports two modes — INTRINSIC (default) and STATE — and auto-freezes the transaction if needed. #3478
  • HIP-1313 high-volume throttling: Transactions can now opt into the high-volume throttle bucket, which qualifies them for reduced fees during periods of elevated network throughput. Exposed via setHighVolume() on Transaction.
  • ContractId support on HookEntityId: HookEntityId now accepts a contract identifier in addition to an account identifier. Setting one clears the other. #3930
  • Transaction record multiplier: New configurability for the transaction record fee multiplier on supported transactions. #3977

Dependency Changes

  • Bumped protobufjs from 8.0.0 to 8.0.1. #3941
  • Bumped next from 16.1.7 to 16.2.3 (examples). #3933
  • Bumped axios from 1.13.5 to 1.15.0 (examples). #3934
  • Bumped vite from 7.3.1 to 7.3.2 (examples). #3926

New Contributors

Full Changelog: v2.82.0...v2.83.0

v2.83.0-beta.3

Choose a tag to compare

@github-actions github-actions released this 21 Apr 12:43
93c8496

What's Changed

Full Changelog: v2.83.0-beta.2...v2.83.0-beta.3

v2.83.0-beta.2

Choose a tag to compare

@github-actions github-actions released this 14 Apr 13:04
cbdff57

What's Changed

New Contributors

Full Changelog: v2.83.0-beta.1...v2.83.0-beta.2

v2.83.0-beta.1

Choose a tag to compare

@github-actions github-actions released this 01 Apr 19:06
ea5d642

What's Changed

New Contributors

Full Changelog: v2.82.0...v2.83.0-beta.1

v2.82.0

Choose a tag to compare

@github-actions github-actions released this 27 Mar 11:09
65ea72b

What's Changed

This release adds string support for pending airdrop transactions, migrates to ethers v6 to eliminate known security vulnerabilities, updates key dependencies, and fixes a bug in node update transactions.

Enhancements

  • String support for PendingAirdropId: The PendingAirdropId constructor and setter methods (setSenderId, setReceiverId, setTokenId, setNftId) now accept string inputs in addition to object instances. Strings are converted internally using fromString(). #3844

    Usage Example:

    const airdropId = new PendingAirdropId({
        senderId: "0.0.1234",
        receiverId: "0.0.5678",
        tokenId: "0.0.9012",
    });
    
    // Or using setters
    airdropId.setSenderId("0.0.1234");
    airdropId.setReceiverId("0.0.5678");
  • Migration to ethers v6: Ethers v5 contained transitive dependencies (e.g. elliptic) with known security vulnerabilities that would not be fixed upstream. Migrating to ethers v6 resolves these entirely. #3870

Bug Fixes

  • NodeUpdateTransaction description clearing: Fixed a bug where executing a NodeUpdateTransaction without explicitly setting the description field would inadvertently clear the node's existing description. #3889

Dependency Changes

  • Upgraded bignumber.js from 9.1.1 to 10.0.2. #3807
  • Migrated ethers from v5 to v6. #3870
  • Upgraded typescript from 5.7.2 to 5.9.3 (dev dependency). #3871
  • Upgraded @types/node from 24.0.8 to 25.5.0 (dev dependency). #3871

New Contributors

Full Changelog: v2.81.0...v2.82.0

v2.81.0

Choose a tag to compare

@github-actions github-actions released this 13 Mar 15:34
000f784

This release includes a fix for inconsistent handling of multiple transaction bodies within the SDK. The update ensures transactions are built and processed consistently, improving reliability when serializing and verifying transactions.

Bug Fixes

  • Multiple Transaction Bodies Inconsistency: Fixed an issue where transactions could contain inconsistent or mismatched transaction bodies during processing or serialization. The SDK now ensures a single consistent transaction body is used throughout the transaction lifecycle, preventing unexpected validation or verification errors. #3832

Full Changelog: v2.80.0...v2.81.0

v2.81.0-beta.1

Choose a tag to compare

@github-actions github-actions released this 20 Feb 14:33
40e60fc

What's Changed

New Contributors

Full Changelog: v2.80.0...v2.81.0-beta.1