Skip to content

Release v4.0.0

Latest

Choose a tag to compare

@raul-oliveira raul-oliveira released this 22 Jun 16:03
8b91b69

Breaking Changes

See PR #1081 for full details and migration guide.

  • WalletRequestError.cause is now typed as the WalletRequestErrorCause | undefined discriminated union (was unknown). Code that catches WalletRequestError and reads err.cause must narrow on a discriminant (status / state / source) before accessing fields, and chained errors are now wrapped in { source } instead of being assigned the inner error directly (#1081)

Features

  • feat(errors): type WalletRequestError.cause as a discriminated union (#1081) by @tuliomir
  • feat(shielded): crypto provider interface and send-side primitives (#1085) by @pedroferreira1
  • feat(shielded): transaction headers — shielded outputs, unshield balance (#1086) by @pedroferreira1
  • feat(shielded): address derivation, network version byte, key chains (#1087) by @pedroferreira1
  • feat(shielded): data model + storage layer for shielded addresses (#1088) by @pedroferreira1
  • feat(stream): support multisig (P2SH) wallets in manual stream sync (#1106) by @raul-oliveira

Shielded PRs (#1085#1088) are foundational, purely additive groundwork (crypto, headers, address derivation, storage). They are not yet wired into any user-facing flow — transparent-only wallets are byte-identical to v3.1.1.

Tests & Chores

Full Changelog: v3.1.1...v3.2.0