github cashubtc/cashu-ts v5.0.0-rc.10

pre-release5 hours ago

This release adds the draft Nutroot specification, gated on version 3 (BLS) keysets. Note, there are a few more v5 breaking changes since rc.09, please check the migration-5.0.0.md document.

What's Changed

  • chore(deps): bump replace-in-file from 8.4.0 to 9.0.0 by @dependabot[bot] in #1065
  • chore(deps): bump @types/node from 25.6.0 to 26.2.0 by @dependabot[bot] in #1064
  • chore(deps): bump typescript-eslint from 8.67.0 to 8.68.0 in the eslint group by @dependabot[bot] in #1061
  • chore(deps): bump @eslint/js from 9.39.4 to 9.39.5 in the dev-tooling group by @dependabot[bot] in #1062
  • chore(deps): bump the commitlint packages to 21.2.2 by @dependabot[bot] in #1063
  • chore: group the commitlint and vite bumps with their families by @robwoodgate in #1074
  • chore: drop four unused devDependencies by @robwoodgate in #1075
  • chore(deps): bump @types/node from 26.2.0 to 26.4.0 in the dev-tooling group across 1 directory by @dependabot[bot] in #1076
  • chore(deps): bump lint-staged from 16.4.0 to 17.3.0 by @dependabot[bot] in #1078
  • fix(utils): guard the keysetIds argument of getDecodedToken by @robwoodgate in #1084
  • fix(transport): never retry a request carrying a Blind-auth header by @robwoodgate in #1090
  • feat(nutroot): nutroot secrets for v3 keysets (NUT-10) by @robwoodgate in #950
  • feat(nutroot): adapt NIP-07 browser signers to both lock families by @robwoodgate in #1005
  • fix(nutroot): tighten v3 spending, requests and melt outputs by @robwoodgate in #1092
  • fix(wallet): normalise quote amounts in WebSocket updates by @robwoodgate in #1088
  • fix(wallet): unblind melt change and restore with the keyset the mint signed under by @robwoodgate in #1081
  • feat(events): polling fallback behind every NUT-17 subscription by @robwoodgate in #1072
  • feat(nut14): preimage option for spending HTLC inputs by @robwoodgate in #1071
  • test: import LockBuilder and the BLS helpers statically by @robwoodgate in #1093
  • perf(wallet): restore only the counters a scan needs by @robwoodgate in #964
  • feat(wallet): accept a custom hash-to-curve for proof state checks by @robwoodgate in #1080
  • fix(wallet): unblind swap and mint outputs with the keyset the mint signed under by @robwoodgate in #1095
  • fix(utils): tighten UTF-8, CBOR and TLV decoding by @robwoodgate in #1097
  • fix(nut26): reject repeated singular TLV tags and untyped policy flags by @robwoodgate in #1099
  • fix(nut11): reject malformed P2PK tag values and bound key lists by @robwoodgate in #1101
  • fix(nut11): bind SIG_INPUTS signatures to the secret and honour overlapping HTLC refunds by @robwoodgate in #1104
  • fix(nut11): validate a SIG_ALL signing package before signing it by @robwoodgate in #1106
  • refactor(crypto): sign and verify P2PK over a digest by @robwoodgate in #1108
  • fix(crypto): validate helper inputs at the boundary by @robwoodgate in #1111
  • fix(wallet): require a 64-byte seed at construction by @robwoodgate in #1113
  • fix(model): tighten Amount construction and strict wire JSON parsing by @robwoodgate in #1114
  • fix(mint): validate and bound mint response shapes by @robwoodgate in #1116
  • fix(mint): strip wallet fields from inputs and bind melt responses by @robwoodgate in #1118
  • test(wallet): give the restore state-check scan a 15s budget by @robwoodgate in #1120
  • fix(transport): bound the WebSocket queue and tear down cleanly by @robwoodgate in #1121
  • fix(model): validate persisted outputs and pin the hash-to-curve counter by @robwoodgate in #1123
  • fix(transport): scope request logs, merge headers case-insensitively, sanitize log context by @robwoodgate in #1125
  • feat(crypto): hash the transcript plainly, tag the BAT message by @robwoodgate in #1129
  • fix(wallet): enforce payment-request terms and guard counters, previews and cache age by @robwoodgate in #1127
  • chore(deps): bump the dev-tooling group with 4 updates by @dependabot[bot] in #1132
  • fix(core): reject incomplete DLEQ proofs on encode and decode by @robwoodgate in #1135
  • chore(deps): bump typescript-eslint from 8.68.0 to 8.69.0 in the eslint group by @dependabot[bot] in #1131
  • fix(auth): install OIDC tokens through the session they belong to by @robwoodgate in #1137
  • chore(ci): run the auth demo against a live mint by @robwoodgate in #1139
  • fix(wallet): bind created quotes to what was asked for by @robwoodgate in #1141
  • fix(wallet): keep the keychain consistent across refreshes and cache loads by @robwoodgate in #1143
  • fix(auth): bound OIDC reads and delays, refuse redirects and non-S256 PKCE by @robwoodgate in #1145
  • fix: throw CTSError from the last four bare Error sites, and lint for it by @robwoodgate in #1147
  • docs: note that getKeyset looks up an explicit empty id in the v5 migration guide by @robwoodgate in #1148
  • refactor(wallet)!: drop the wire payload from mint previews by @robwoodgate in #1150
  • chore(main): release 5.0.0-rc.10 by @robwoodgate in #1086

Full Changelog: v5.0.0-rc.9...v5.0.0-rc.10

Don't miss a new cashu-ts release

NewReleases is sending notifications on new releases.