A maintenance release, carrying most of the v5 rc.8 work back to v4. serializeSwapPreview / deserializeSwapPreview round-trip a SwapPreview through a JSON-safe form, and the docs now teach the persist-the-preview pattern for swaps, not just melts, so a crash between prepare and complete is more easily recoverable.
LockBuilder and asLocked arrive beside P2PKBuilder and asP2PK as forward-compatible names for the lock surface. They do the same thing today, but code migrated to them now keeps compiling across the v5 upgrade, where the spending-condition semantics change.
Two fixes. Global request options no longer clobber per-call values for library options such as requestTimeout: RequestInit fields keep global-wins, and headers merge rather than one bag replacing the other. And proof selection no longer returns an empty send on a fee-charging mint when the wallet plainly holds the funds.
MintInfo also exposes the remaining NUT-06 fields: urls, time and tos_url, along with an accessor for icon_url.
What's Changed
- fix(transport): split request option precedence by option class [backport v4-dev] by @robwoodgate in #971
- feat(wallet): add swap preview serialize helpers and persistence docs [backport v4-dev] by @robwoodgate in #973
- test: pin the NUT-13 V2 secret derivation vectors [backport v4-dev] by @robwoodgate in #999
- fix(wallet): keep large proofs in the close-match selection pool [backport v4-dev] by @robwoodgate in #1002
- feat(wallet): add LockBuilder and asLocked as forward-compatible names [backport v4-dev] by @robwoodgate in #996
- feat(model): expose NUT-06 urls, time and tos_url on MintInfo [backport v4-dev] by @robwoodgate in #1004
- chore(v4-dev): release 4.10.0 by @robwoodgate in #988
Full Changelog: v4.9.0...v4.10.0