@forgesworn/moneyer 0.20.1 → 0.21.0
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 +10 -0
- package/README.md +3 -4
- package/dist/server.js +6 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.21.0 - 2026-10-16
|
|
4
|
+
|
|
5
|
+
- **Certificates go out as `c` and `c2` only.** The `sig`/`sig2` that had
|
|
6
|
+
carried the same value alongside them since 0.17.0 are dropped, as dni
|
|
7
|
+
asked. The draft never named them, the reference mint emits only `c`/`c2`,
|
|
8
|
+
and every wallet that verifies a moneyer certificate reads `c` first:
|
|
9
|
+
notecase since 0.25.0, heartwood since 0.18.0-beta.24, lnurl-wallet,
|
|
10
|
+
lnurlcash-core and its Python and Go ports. The bound-mint receipt on
|
|
11
|
+
`/verify` is a different field and keeps its name.
|
|
12
|
+
|
|
3
13
|
## 0.20.1 - 2026-10-13
|
|
4
14
|
|
|
5
15
|
- **A name with a cx1 issues invoices its payer's wallet will accept.** Its
|
package/README.md
CHANGED
|
@@ -393,9 +393,8 @@ spend is refused with a reason and the note stays outstanding; a verifier
|
|
|
393
393
|
that crashes, errors or stalls refuses too, and never accepts.
|
|
394
394
|
|
|
395
395
|
Every note gets a certificate, `cs1` over hex(Q) and its amount: `c` on
|
|
396
|
-
the informational GET, `c`/`c2` on every rotate, split and merge
|
|
397
|
-
|
|
398
|
-
those have moved on. The
|
|
396
|
+
the informational GET, `c`/`c2` on every rotate, split and merge, and
|
|
397
|
+
under no other name. The
|
|
399
398
|
informational GET verifies a `k1` in full before answering, so a wallet
|
|
400
399
|
checking a note it was handed learns whether its spend really opens it.
|
|
401
400
|
|
|
@@ -692,7 +691,7 @@ clearnet.
|
|
|
692
691
|
| `/p/cb` | LUD-06 pay callback; issues the mint invoice for the note the `comment` names, a hash or a `cp1` key (`h` is an older spelling for a hash) |
|
|
693
692
|
| `/z/cb/<zap name>` | the zap callback; validates the kind 9734 and issues the invoice. A name with a `cx1` calls back at `/z/cb/<zap name>/<index>`, the index its payRequest advertised, so the invoice commits to exactly the metadata the payer was shown |
|
|
694
693
|
| `/verify/<hash>` | LUD-21 verify, for mint invoices and melt payments |
|
|
695
|
-
| `/w` | LUD-03 informational GET; accepts `k1` (a preimage, `ck1` or `cw1`, verified in full) or the non-disclosing LUD-25 `p` check (a bearer note's h or any `cp1`; `h` is its older name, still accepted); a live note carries `payLink` and its `cs1` as `
|
|
694
|
+
| `/w` | LUD-03 informational GET; accepts `k1` (a preimage, `ck1` or `cw1`, verified in full) or the non-disclosing LUD-25 `p` check (a bearer note's h or any `cp1`; `h` is its older name, still accepted); a live note carries `payLink` and its `cs1` as `c` |
|
|
696
695
|
| `/w/cb` | the mutating callback: melt, rotate, split, merge; inputs as preimages, `ck1`s or `cw1`s, outputs as `p1`/`p2` (a bearer note's h or a `cp1`), or their older names `h`/`h2` |
|
|
697
696
|
| `POST /names` | claim a lightning address, authenticated by NIP-98 |
|
|
698
697
|
| `/.well-known/nostr.json` | NIP-05 for the names this mint serves |
|
package/dist/server.js
CHANGED
|
@@ -97,13 +97,12 @@ export const createMoneyer = async (config, deps = {}) => {
|
|
|
97
97
|
// LUD-25 offline verification: a cs1 over hex(Q) and the amount, for
|
|
98
98
|
// every note, bearer notes included.
|
|
99
99
|
const certify = (q, amountMsat) => encodeCs1WithAmount(amountMsat, hexToBytes(signer.sign(q, amountMsat)));
|
|
100
|
-
// LUD-25 names the certificate `c` (and `c2` for split change). The
|
|
101
|
-
// `sig`/`sig2`
|
|
102
|
-
//
|
|
103
|
-
const certified = (field, q, amountMsat) => {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
};
|
|
100
|
+
// LUD-25 names the certificate `c` (and `c2` for split change). The
|
|
101
|
+
// `sig`/`sig2` that went out alongside them from 0.17.0 to 0.20.1 are
|
|
102
|
+
// gone: the draft never named them, and every wallet reads `c`.
|
|
103
|
+
const certified = (field, q, amountMsat) => ({
|
|
104
|
+
[field]: certify(q, amountMsat)
|
|
105
|
+
});
|
|
107
106
|
// Every host this mint answers on. A spend's signature is bound to one
|
|
108
107
|
// domain, and a note travels as a URL naming one host, so a signature
|
|
109
108
|
// bound to any of this mint's own hosts is this mint's. Without a
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forgesworn/moneyer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
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",
|