Skip to content

v2.77.0

Choose a tag to compare

@github-actions github-actions released this 12 Nov 11:49
· 8 commits to main since this release
7fbbbe4

This release introduces client-level timeout controls and significant improvements to the WebClient and AddressBookQuery behavior in the Hiero JavaScript SDK. These updates improve consistency across SDKs, enhance reliability in web environments, and ensure better handling of network and timeout conditions.

Enhancements

  • Client-level Timeout Controls
    Introduced new client-level timeout configurations to align behavior with other SDKs and improve network resilience:

    • Client.grpcDeadline (ms):
      New per-RPC default deadline with setGrpcDeadline(int) / getGrpcDeadline().
      Default: 10,000 ms.
      Used during warmup and as a fallback when a Transaction doesn’t set its own deadline.
    • Client.requestTimeout (ms):
      New overall timeout for the full execute() lifecycle (including retries and backoff).
      Default: 120,000 ms.
    • Both values must be positive, non-zero integers for validation consistency across SDKs.
  • Improved JS SDK Client Deadline Behavior
    When a transaction-level grpcDeadline is exceeded, the SDK now marks the node as unhealthy and rotates to the next available node instead of throwing a fatal error. This change improves network stability under transient load conditions.

  • Fallback Deadline Handling
    Executable now applies the client-level grpcDeadline when no explicit per-transaction deadline is set, ensuring consistent and predictable timeout behavior.

  • Browser (gRPC-web / Envoy) Enhancements
    Added an initial HTTP healthcheck to the proxy with a timeout equal to grpcDeadline.
    Healthcheck results are cached per-node to minimize redundant checks and improve request performance.

Bug Fixes

  • Mirror Network Initialization
    Fixed an issue where the mirror network was not correctly set in the client state when using WebClient.forMirrorNetwork in web environments.

  • AddressBookQuery Execution
    Resolved a bug that prevented AddressBookQuery from executing when the Client class had an empty network state.

  • Node Model Definition
    Corrected a model definition issue where a property in the Node model was not marked as optional.

Documentation

  • Updated SDK documentation to describe the new client-level timeout APIs and their validation rules.

Full Changelog: v2.76.0...v2.77.0