github cashubtc/nutshell 0.20.2

3 hours ago

Nutshell 0.20.2

Nutshell 0.20.2 is mostly a hardening release for the mint and wallet.

Notable Changes

Mint

  • Hardened NUT-29 batched minting: batch minting endpoints now enforce authentication and apply stricter validation/length limits on incoming batch requests.
  • More reliable pending-proof and melt-quote resolution: fixed hangs from internal settlement failures.
  • Quote and subscription IDs now use UUIDv7 for improved uniqueness and sortability.
  • Websocket subscriptions clean up all filters when a client unsubscribes.
  • Docker Compose Redis now binds only to localhost.

Wallet

  • Added raw proofs listing to the wallet CLI.
  • handle_lnurl now validates the requested amount before proceeding.
  • Unsupported keyset versions are now gracefully filtered out when loading a mint.

Other

  • Added regression tests around fee handling and HTLC spending conditions without a preimage on the proof (NUT-14).

What's Changed

  • fix(mint): enforce validation and length limits on NUT-29 batch requests by @a1denvalu3 in #1034
  • remove lnbits by @callebtc in #1033
  • fix(mint): enforce auth for NUT-29 batch minting endpoint by @a1denvalu3 in #1031
  • fix(mint): resolve pending proofs hang from internal settlement failure by @a1denvalu3 in #967
  • fix(mint): move batch mint quote unset pending outside try block by @a1denvalu3 in #1035
  • fix(mint): round up fee_paid on pending melt quote resolution by @a1denvalu3 in #1037
  • fix: use UUIDv7 for quote and subscription IDs by @callebtc in #1023
  • test(mint): test htlc spending conditions with no preimage on proof (Nut-14) by @edgarmuyomba in #1039
  • tests: regression for fees by @callebtc in #1038
  • chore(docker): restrict redis port binding to localhost by @a1denvalu3 in #1040
  • fix(mint): remove all subscription filters upon unsubscribe by @a1denvalu3 in #1043
  • fix(wallet): check amount in handle_lnurl by @a1denvalu3 in #1042
  • Revert "remove lnbits" by @callebtc in #1048
  • feat(wallet): list raw proofs by @edgarmuyomba in #1026
  • fix(wallet): gracefully handle and filter out unsupported keyset versions by @a1denvalu3 in #1047
  • fix(wallet): resolve hanging proof CLI tests in regtest by @a1denvalu3 in #1053
  • feat(crypto): align NUT-20/29 signatures with spec change by @a1denvalu3 in #1054
  • Revert "feat(crypto): align NUT-20/29 signatures with spec change" by @a1denvalu3 in #1056
  • fix(lightning): migrate LND backends to SendPaymentV2 (SendPaymentSync removed in lnd 0.21) by @robwoodgate in #1050
  • fix(mint): handle background melt exceptions by @a1denvalu3 in #1060
  • fix(mint): resolve regtest lnbits, event loop teardown, and python 3.12 workflow updates by @a1denvalu3 in #1061
  • fix(mint): resolve auth ledger schema, audience validation, and rate limit issues by @a1denvalu3 in #1052
  • feat(crypto): deterministic DLEQ nonce derivation (NUT-12) by @robwoodgate in #1010
  • chore(release): bump version to 0.20.2 by @callebtc in #1064
  • fix(auth): allow OIDC tokens with non-client audience by @callebtc in #1065
  • feat(core): add method name to mint and melt settings by @KvngMikey in #1063
  • feat(mint): align NUT-04 with amount_paid/issued + updated_at by @a1denvalu3 in #1044
  • add more batch mint tests by @callebtc in #1015
  • fix: persist and unify mint quote accounting fields on wallet and mint by @a1denvalu3 in #1068
  • Revert "fix: persist and unify mint quote accounting fields on wallet and mint" by @a1denvalu3 in #1069
  • fix(mint): align mint quote accounting and fix pending state priority by @a1denvalu3 in #1070
  • Bump setup 0.20.2 by @callebtc in #1074

New Contributors

Full Changelog: 0.20.1...0.20.2

Don't miss a new nutshell release

NewReleases is sending notifications on new releases.