@forgesworn/moneyer 0.11.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.11.1 - 2026-09-07
4
+
5
+ - Hash lookups report `Note already spent.` for retained burned notes,
6
+ `Unknown note.` for unregistered hashes, and `pending` for unresolved
7
+ melts. This follows the proposed LUD-25 status revision and lets wallets
8
+ recognise a redeemed note without sending its bearer secret. Existing
9
+ burned rows are retained already; no database migration is required.
10
+ - Test tooling uses an immutable conformance commit matching this response
11
+ contract. It is a development dependency, not a runtime dependency.
12
+
3
13
  ## 0.11.0 - 2026-09-06
4
14
 
5
15
  **Three fields the reference mint publishes and moneyer did not.** Each
package/dist/server.js CHANGED
@@ -837,12 +837,10 @@ export const createMoneyer = async (config, deps = {}) => {
837
837
  const note = h ? await resolveNoteId(h) : await resolveNote(k1);
838
838
  if (!note)
839
839
  return fail('Unknown note.');
840
- // A hash-only lookup must not disclose whether a note id once existed:
841
- // LUD-25 gives a never-registered and an already-spent h the same
842
- // response as an unknown k1. A caller presenting the bearer k1 still
843
- // receives the useful already-spent distinction.
840
+ // Hash lookups protect the secret, not the note's spent state.
841
+ // Retained burned rows let a wallet reconcile without revealing k1.
844
842
  if (note.state === 'burned')
845
- return fail(h ? 'Unknown note.' : 'Note already spent.');
843
+ return fail('Note already spent.');
846
844
  // A note reserved by an in-flight melt is not withdrawable, and must
847
845
  // not be advertised as though it were. LUD-25 makes this GET the way
848
846
  // anyone checks what a note is worth, so answering "live, worth all
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgesworn/moneyer",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "An LNURLcash (LUD-25) mint - strikes Lightning bearer notes. Independent implementation, cln/lnd funding sources, SQLite, zero HTTP framework.",
5
5
  "author": "TheCryptoDonkey",
6
6
  "license": "MIT",
@@ -70,7 +70,7 @@
70
70
  "@types/node": "^24.0.0",
71
71
  "animejs": "^4.0.0",
72
72
  "happy-dom": "^20.0.0",
73
- "lnurlcash-conformance": "^0.7.0",
73
+ "lnurlcash-conformance": "https://codeload.github.com/lnurlcash/lnurlcash-conformance/tar.gz/6c6aee66cf1b6cba72a03af976ecec113f470c9e",
74
74
  "playwright": "^1.62.1",
75
75
  "typescript": "^5.7.0",
76
76
  "uqr": "^0.1.2",