3.2.x
Configurable, silent-by-default logging; upgrade codemods; and a Wrap event decoding fix.
This page covers the 3.2.x line.
3.2.0
Released 2026-06-24.
This release makes SDK diagnostics observable without imposing a logging library, ships codemods to automate the 3.1.0 upgrade, and fixes decoding of the on-chain Wrap event. There are no breaking changes.
Configurable, silent-by-default logging
The SDK is silent by default — it emits no console output of its own. When you want visibility into what it's doing, pass a logger to createConfig. Any object matching the four-level GenericLogger interface (error / warn / info / debug) works, so console, pino, winston, and OpenTelemetry's DiagLogger all satisfy it directly:
import { createConfig } from "@zama-fhe/sdk/viem";
import { sepolia } from "@zama-fhe/sdk/chains";
import { web } from "@zama-fhe/sdk/web";
const config = createConfig({
chains: [sepolia],
publicClient,
walletClient,
relayers: { [sepolia.id]: web() },
logger: console, // opt in to diagnostics — omit for total silence
});Bring your own structured logger the same way:
Upgrade codemods
Automated codemods (built on Codemod-OSS / JSSG) migrate a 3.0.x codebase to the 3.1.0 API — the createConfig rename, flat config props, and the transport-map shape. Run them against your source tree instead of editing call sites by hand:
Review the diff before committing — codemods handle the mechanical rewrites, but you should still verify the result compiles and your tests pass.
Bug fixes
Decode the 3-field
Wrapevent. The SDK now decodes the current 3-fieldWrapevent emitted by the wrapper contracts, rather than the legacy 2-fieldWrappedevent. If you read shield activity from event logs, wrapped balances now decode correctly. See Decrypt values from event logs.Quieter workers. Relayer workers no longer emit
console.errorfor failures that were caught and handled upstream, so your logs only show genuine problems.
Last updated