402-mcp 3.1.3 → 3.2.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/README.md +105 -101
- package/build/config.d.ts +1 -0
- package/build/config.js +9 -1
- package/build/config.js.map +1 -1
- package/build/index.js +16 -4
- package/build/index.js.map +1 -1
- package/build/l402/bolt11.d.ts +1 -0
- package/build/l402/bolt11.js +1 -0
- package/build/l402/bolt11.js.map +1 -1
- package/build/l402/challenge-cache.d.ts +1 -0
- package/build/l402/challenge-cache.js +1 -0
- package/build/l402/challenge-cache.js.map +1 -1
- package/build/l402/detect.d.ts +1 -0
- package/build/l402/detect.js +1 -0
- package/build/l402/detect.js.map +1 -1
- package/build/l402/parse.d.ts +1 -0
- package/build/l402/parse.js +1 -0
- package/build/l402/parse.js.map +1 -1
- package/build/store/cashu-tokens.d.ts +3 -0
- package/build/store/cashu-tokens.js +3 -0
- package/build/store/cashu-tokens.js.map +1 -1
- package/build/store/credentials.d.ts +2 -0
- package/build/store/credentials.js +2 -0
- package/build/store/credentials.js.map +1 -1
- package/build/store/encryption.d.ts +3 -0
- package/build/store/encryption.js +3 -0
- package/build/store/encryption.js.map +1 -1
- package/build/tools/balance.d.ts +2 -0
- package/build/tools/balance.js +2 -0
- package/build/tools/balance.js.map +1 -1
- package/build/tools/buy-credits.d.ts +18 -1
- package/build/tools/buy-credits.js +30 -2
- package/build/tools/buy-credits.js.map +1 -1
- package/build/tools/config.d.ts +2 -0
- package/build/tools/config.js +2 -0
- package/build/tools/config.js.map +1 -1
- package/build/tools/credentials.d.ts +2 -0
- package/build/tools/credentials.js +2 -0
- package/build/tools/credentials.js.map +1 -1
- package/build/tools/discover.d.ts +2 -0
- package/build/tools/discover.js +2 -0
- package/build/tools/discover.js.map +1 -1
- package/build/tools/fetch.d.ts +16 -3
- package/build/tools/fetch.js +39 -2
- package/build/tools/fetch.js.map +1 -1
- package/build/tools/nostr-subscribe.d.ts +1 -0
- package/build/tools/nostr-subscribe.js +1 -5
- package/build/tools/nostr-subscribe.js.map +1 -1
- package/build/tools/pay.d.ts +2 -0
- package/build/tools/pay.js +4 -5
- package/build/tools/pay.js.map +1 -1
- package/build/tools/redeem-cashu.d.ts +11 -0
- package/build/tools/redeem-cashu.js +60 -0
- package/build/tools/redeem-cashu.js.map +1 -1
- package/build/tools/safe-error.d.ts +1 -4
- package/build/tools/safe-error.js +1 -4
- package/build/tools/safe-error.js.map +1 -1
- package/build/tools/safe-headers.d.ts +1 -1
- package/build/tools/safe-headers.js +1 -1
- package/build/tools/safe-headers.js.map +1 -1
- package/build/tools/search.d.ts +3 -2
- package/build/tools/search.js +3 -2
- package/build/tools/search.js.map +1 -1
- package/build/wallet/cashu.d.ts +1 -0
- package/build/wallet/cashu.js +4 -3
- package/build/wallet/cashu.js.map +1 -1
- package/build/wallet/human.d.ts +3 -4
- package/build/wallet/human.js +7 -10
- package/build/wallet/human.js.map +1 -1
- package/build/wallet/nwc.d.ts +1 -0
- package/build/wallet/nwc.js +9 -6
- package/build/wallet/nwc.js.map +1 -1
- package/build/wallet/resolve.d.ts +1 -0
- package/build/wallet/resolve.js +1 -0
- package/build/wallet/resolve.js.map +1 -1
- package/build/wallet/types.d.ts +4 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,71 +9,20 @@ L402 + x402 client MCP that gives AI agents economic agency. Discover, pay for,
|
|
|
9
9
|
|
|
10
10
|
Works with **any L402-compliant server** (toll-booth, Aperture, or any future implementation), with bonus features when talking to a [toll-booth](https://github.com/TheCryptoDonkey/toll-booth) instance.
|
|
11
11
|
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
```mermaid
|
|
15
|
-
graph TB
|
|
16
|
-
Agent["AI Agent<br/>(Claude, Cursor, etc.)"]
|
|
17
|
-
MCP["402-mcp<br/>MCP Server"]
|
|
18
|
-
|
|
19
|
-
subgraph Wallets["Payment Rails"]
|
|
20
|
-
NWC["NWC<br/>(Lightning)"]
|
|
21
|
-
Cashu["Cashu<br/>(Ecash)"]
|
|
22
|
-
Human["Human-in-the-loop<br/>(QR code)"]
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
subgraph Storage["Local Storage"]
|
|
26
|
-
Creds["Credential Store<br/>(AES-256-GCM)"]
|
|
27
|
-
Tokens["Cashu Token Store"]
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
subgraph Servers["Any L402 Server"]
|
|
31
|
-
TB["toll-booth"]
|
|
32
|
-
Aperture["Aperture"]
|
|
33
|
-
Other["Any L402<br/>implementation"]
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
Nostr["Nostr Relays<br/>(Service Discovery)"]
|
|
37
|
-
|
|
38
|
-
Agent <-->|"MCP protocol<br/>(stdio / HTTP)"| MCP
|
|
39
|
-
MCP --> NWC
|
|
40
|
-
MCP --> Cashu
|
|
41
|
-
MCP --> Human
|
|
42
|
-
MCP <--> Creds
|
|
43
|
-
MCP <--> Tokens
|
|
44
|
-
MCP <-->|"HTTP + L402"| TB
|
|
45
|
-
MCP <-->|"HTTP + L402"| Aperture
|
|
46
|
-
MCP <-->|"HTTP + L402"| Other
|
|
47
|
-
MCP <-->|"kind 31402"| Nostr
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Payment flow
|
|
51
|
-
|
|
52
|
-
```mermaid
|
|
53
|
-
sequenceDiagram
|
|
54
|
-
participant Agent as AI Agent
|
|
55
|
-
participant MCP as 402-mcp
|
|
56
|
-
participant API as L402 API
|
|
57
|
-
participant Wallet as Wallet (NWC/Cashu)
|
|
12
|
+
## Why 402-mcp?
|
|
58
13
|
|
|
59
|
-
|
|
60
|
-
MCP->>API: GET /endpoint
|
|
61
|
-
API-->>MCP: 402 + invoice + macaroon
|
|
62
|
-
MCP-->>Agent: price: 10 sats, server: toll-booth
|
|
14
|
+
The L402 ecosystem is growing fast - Lightning Labs' [lightning-agent-tools](https://github.com/lightninglabs/lightning-agent-tools), Coinbase's x402, and others. 402-mcp is the **payment-rail agnostic** alternative:
|
|
63
15
|
|
|
64
|
-
|
|
16
|
+
| | 402-mcp | Lightning Labs agent tools |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| **Payment rails** | NWC + Cashu + human fallback | Lightning only |
|
|
19
|
+
| **Node required?** | No — connects to any NWC wallet | Yes — runs LND |
|
|
20
|
+
| **Server compatibility** | Any L402 server | Aperture-focused |
|
|
21
|
+
| **Spend safety** | Per-payment cap + rolling 60s window | Per-call max-cost |
|
|
22
|
+
| **Credential storage** | Encrypted at rest (AES-256-GCM) | File permissions |
|
|
23
|
+
| **Privacy** | No PII, SSRF protection, error sanitisation | Standard |
|
|
65
24
|
|
|
66
|
-
|
|
67
|
-
MCP->>API: GET /endpoint
|
|
68
|
-
API-->>MCP: 402 + invoice + macaroon
|
|
69
|
-
MCP->>MCP: Amount ≤ MAX_AUTO_PAY_SATS?
|
|
70
|
-
MCP->>Wallet: Pay invoice
|
|
71
|
-
Wallet-->>MCP: preimage
|
|
72
|
-
MCP->>MCP: Store credential
|
|
73
|
-
MCP->>API: GET /endpoint + Authorization: L402
|
|
74
|
-
API-->>MCP: 200 OK + data
|
|
75
|
-
MCP-->>Agent: Response data + balance
|
|
76
|
-
```
|
|
25
|
+
Use Lightning Labs' tools if you want agents that **run their own Lightning node**. Use 402-mcp if you want agents that **pay from any wallet without infrastructure**.
|
|
77
26
|
|
|
78
27
|
## Quick start
|
|
79
28
|
|
|
@@ -100,6 +49,8 @@ Add to your MCP configuration:
|
|
|
100
49
|
}
|
|
101
50
|
```
|
|
102
51
|
|
|
52
|
+
See [examples/](./examples/) for more configuration samples.
|
|
53
|
+
|
|
103
54
|
## Configuration
|
|
104
55
|
|
|
105
56
|
| Variable | Default | Description |
|
|
@@ -132,6 +83,38 @@ Add to your MCP configuration:
|
|
|
132
83
|
| `l402_buy_credits` | Browse and purchase volume discount tiers |
|
|
133
84
|
| `l402_redeem_cashu` | Redeem Cashu tokens directly (avoids Lightning round-trip) |
|
|
134
85
|
|
|
86
|
+
## How it works
|
|
87
|
+
|
|
88
|
+
```mermaid
|
|
89
|
+
graph LR
|
|
90
|
+
A["1. l402_config()"] --> B["2. l402_discover(url)"]
|
|
91
|
+
B --> C["3. Agent reasons<br/>about pricing"]
|
|
92
|
+
C --> D["4. l402_buy_credits()<br/>or l402_fetch()"]
|
|
93
|
+
D --> E["5. l402_fetch(url)<br/>with credentials"]
|
|
94
|
+
E --> F["6. Data returned<br/>+ balance cached"]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Example session:**
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Agent: "I need routing data from routing.trotters.cc"
|
|
101
|
+
|
|
102
|
+
1. l402_config()
|
|
103
|
+
-> nwcConfigured: true, maxAutoPaySats: 1000
|
|
104
|
+
|
|
105
|
+
2. l402_discover("https://routing.trotters.cc/api/route")
|
|
106
|
+
-> 10 sats/request, toll-booth detected, tiers available
|
|
107
|
+
|
|
108
|
+
3. Agent reasons: "I need ~20 requests. The 500-sat tier
|
|
109
|
+
gives 555 credits. Better value."
|
|
110
|
+
|
|
111
|
+
4. l402_buy_credits(url, amountSats=500)
|
|
112
|
+
-> Paid 500 sats, received 555 credits
|
|
113
|
+
|
|
114
|
+
5. l402_fetch("https://routing.trotters.cc/api/route?from=...&to=...")
|
|
115
|
+
-> 200 OK, route data, 545 credits remaining
|
|
116
|
+
```
|
|
117
|
+
|
|
135
118
|
## Service discovery
|
|
136
119
|
|
|
137
120
|
Agents can discover paid APIs without knowing URLs upfront. `l402_search` queries Nostr relays for kind 31402 service announcements — the decentralised registry for L402 services.
|
|
@@ -170,60 +153,79 @@ Three payment rails, tried in priority order:
|
|
|
170
153
|
|
|
171
154
|
The agent can override the method per-call, or you can configure only the methods you want.
|
|
172
155
|
|
|
173
|
-
##
|
|
174
|
-
|
|
175
|
-
```mermaid
|
|
176
|
-
graph LR
|
|
177
|
-
A["1. l402_config()"] --> B["2. l402_discover(url)"]
|
|
178
|
-
B --> C["3. Agent reasons<br/>about pricing"]
|
|
179
|
-
C --> D["4. l402_buy_credits()<br/>or l402_fetch()"]
|
|
180
|
-
D --> E["5. l402_fetch(url)<br/>with credentials"]
|
|
181
|
-
E --> F["6. Data returned<br/>+ balance cached"]
|
|
182
|
-
```
|
|
156
|
+
## Safety
|
|
183
157
|
|
|
184
|
-
|
|
158
|
+
`MAX_AUTO_PAY_SATS` caps any single autonomous payment. Above this limit, the agent must ask the human for approval. The agent can read this limit via `l402_config` and factor it into purchasing decisions.
|
|
185
159
|
|
|
186
|
-
|
|
187
|
-
Agent: "I need routing data from routing.trotters.cc"
|
|
160
|
+
## Privacy
|
|
188
161
|
|
|
189
|
-
|
|
190
|
-
-> nwcConfigured: true, maxAutoPaySats: 1000
|
|
162
|
+
402-mcp stores credentials locally on your machine only (`~/.402-mcp/credentials.json`, encrypted at rest). No data is sent to any third party. No accounts, no tracking, no analytics. Payments use Lightning or Cashu - pseudonymous by design.
|
|
191
163
|
|
|
192
|
-
|
|
193
|
-
-> 10 sats/request, toll-booth detected, tiers available
|
|
164
|
+
## Architecture
|
|
194
165
|
|
|
195
|
-
|
|
196
|
-
|
|
166
|
+
```mermaid
|
|
167
|
+
graph TB
|
|
168
|
+
Agent["AI Agent<br/>(Claude, Cursor, etc.)"]
|
|
169
|
+
MCP["402-mcp<br/>MCP Server"]
|
|
197
170
|
|
|
198
|
-
|
|
199
|
-
|
|
171
|
+
subgraph Wallets["Payment Rails"]
|
|
172
|
+
NWC["NWC<br/>(Lightning)"]
|
|
173
|
+
Cashu["Cashu<br/>(Ecash)"]
|
|
174
|
+
Human["Human-in-the-loop<br/>(QR code)"]
|
|
175
|
+
end
|
|
200
176
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
177
|
+
subgraph Storage["Local Storage"]
|
|
178
|
+
Creds["Credential Store<br/>(AES-256-GCM)"]
|
|
179
|
+
Tokens["Cashu Token Store"]
|
|
180
|
+
end
|
|
204
181
|
|
|
205
|
-
|
|
182
|
+
subgraph Servers["Any L402 Server"]
|
|
183
|
+
TB["toll-booth"]
|
|
184
|
+
Aperture["Aperture"]
|
|
185
|
+
Other["Any L402<br/>implementation"]
|
|
186
|
+
end
|
|
206
187
|
|
|
207
|
-
|
|
188
|
+
Nostr["Nostr Relays<br/>(Service Discovery)"]
|
|
208
189
|
|
|
209
|
-
|
|
190
|
+
Agent <-->|"MCP protocol<br/>(stdio / HTTP)"| MCP
|
|
191
|
+
MCP --> NWC
|
|
192
|
+
MCP --> Cashu
|
|
193
|
+
MCP --> Human
|
|
194
|
+
MCP <--> Creds
|
|
195
|
+
MCP <--> Tokens
|
|
196
|
+
MCP <-->|"HTTP + L402"| TB
|
|
197
|
+
MCP <-->|"HTTP + L402"| Aperture
|
|
198
|
+
MCP <-->|"HTTP + L402"| Other
|
|
199
|
+
MCP <-->|"kind 31402"| Nostr
|
|
200
|
+
```
|
|
210
201
|
|
|
211
|
-
|
|
202
|
+
## Payment flow
|
|
212
203
|
|
|
213
|
-
|
|
204
|
+
```mermaid
|
|
205
|
+
sequenceDiagram
|
|
206
|
+
participant Agent as AI Agent
|
|
207
|
+
participant MCP as 402-mcp
|
|
208
|
+
participant API as L402 API
|
|
209
|
+
participant Wallet as Wallet (NWC/Cashu)
|
|
214
210
|
|
|
215
|
-
|
|
211
|
+
Agent->>MCP: l402_discover(url)
|
|
212
|
+
MCP->>API: GET /endpoint
|
|
213
|
+
API-->>MCP: 402 + invoice + macaroon
|
|
214
|
+
MCP-->>Agent: price: 10 sats, server: toll-booth
|
|
216
215
|
|
|
217
|
-
|
|
218
|
-
|---|---|---|
|
|
219
|
-
| **Payment rails** | NWC + Cashu + human fallback | Lightning only |
|
|
220
|
-
| **Node required?** | No — connects to any NWC wallet | Yes — runs LND |
|
|
221
|
-
| **Server compatibility** | Any L402 server | Aperture-focused |
|
|
222
|
-
| **Spend safety** | Per-payment cap + rolling 60s window | Per-call max-cost |
|
|
223
|
-
| **Credential storage** | Encrypted at rest (AES-256-GCM) | File permissions |
|
|
224
|
-
| **Privacy** | No PII, SSRF protection, error sanitisation | Standard |
|
|
216
|
+
Agent->>Agent: Reason about pricing
|
|
225
217
|
|
|
226
|
-
|
|
218
|
+
Agent->>MCP: l402_fetch(url)
|
|
219
|
+
MCP->>API: GET /endpoint
|
|
220
|
+
API-->>MCP: 402 + invoice + macaroon
|
|
221
|
+
MCP->>MCP: Amount ≤ MAX_AUTO_PAY_SATS?
|
|
222
|
+
MCP->>Wallet: Pay invoice
|
|
223
|
+
Wallet-->>MCP: preimage
|
|
224
|
+
MCP->>MCP: Store credential
|
|
225
|
+
MCP->>API: GET /endpoint + Authorization: L402
|
|
226
|
+
API-->>MCP: 200 OK + data
|
|
227
|
+
MCP-->>Agent: Response data + balance
|
|
228
|
+
```
|
|
227
229
|
|
|
228
230
|
## Ecosystem
|
|
229
231
|
|
|
@@ -234,6 +236,8 @@ Use Lightning Labs' tools if you want agents that **run their own Lightning node
|
|
|
234
236
|
| **[402-mcp](https://github.com/TheCryptoDonkey/402-mcp)** | **MCP client — AI agents discover, pay, and consume L402 + x402 APIs** |
|
|
235
237
|
| [402-announce](https://github.com/TheCryptoDonkey/402-announce) | Publish L402 services on Nostr for decentralised discovery |
|
|
236
238
|
|
|
239
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup and guidelines.
|
|
240
|
+
|
|
237
241
|
---
|
|
238
242
|
|
|
239
243
|
Built by [@TheCryptoDonkey](https://github.com/TheCryptoDonkey).
|
package/build/config.d.ts
CHANGED
package/build/config.js
CHANGED
|
@@ -15,6 +15,7 @@ function assertRange(name, value, min, max) {
|
|
|
15
15
|
throw new Error(`${name} must be an integer between ${min} and ${max}; got ${value}`);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
/** Loads and validates configuration from environment variables, applying defaults. */
|
|
18
19
|
export function loadConfig() {
|
|
19
20
|
const defaultCredentialStore = resolve(homedir(), '.402-mcp', 'credentials.json');
|
|
20
21
|
const nwcUri = process.env.NWC_URI;
|
|
@@ -73,8 +74,15 @@ export function loadConfig() {
|
|
|
73
74
|
if (config.corsOrigin === '*') {
|
|
74
75
|
console.error('Warning: CORS_ORIGIN=* — any website can make cross-origin requests to the MCP HTTP transport. Restrict to specific origins in production.');
|
|
75
76
|
}
|
|
76
|
-
//
|
|
77
|
+
// Block operation if TLS verification is disabled without explicit opt-in.
|
|
78
|
+
// Disabling TLS defeats DNS-rebinding protection for HTTPS and WSS connections.
|
|
79
|
+
// Accept either SSRF_ALLOW_PRIVATE=true or ALLOW_INSECURE_TLS=true — the latter
|
|
80
|
+
// acknowledges the TLS risk without also disabling private-address SSRF blocking.
|
|
77
81
|
if (process.env.NODE_TLS_REJECT_UNAUTHORIZED === '0') {
|
|
82
|
+
const tlsAcknowledged = config.ssrfAllowPrivate || process.env.ALLOW_INSECURE_TLS === 'true';
|
|
83
|
+
if (!tlsAcknowledged) {
|
|
84
|
+
throw new Error('NODE_TLS_REJECT_UNAUTHORIZED=0 disables TLS certificate validation, defeating DNS-rebinding protection. Set ALLOW_INSECURE_TLS=true to acknowledge the risk, or SSRF_ALLOW_PRIVATE=true for local dev.');
|
|
85
|
+
}
|
|
78
86
|
console.error('Warning: NODE_TLS_REJECT_UNAUTHORIZED=0 — TLS certificate validation is disabled. HTTPS DNS rebinding attacks become possible. Do not use in production.');
|
|
79
87
|
}
|
|
80
88
|
return config;
|
package/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -61,7 +61,6 @@ walletProviders.push(createHumanWallet({
|
|
|
61
61
|
initialIntervalS: config.humanPayPollS,
|
|
62
62
|
maxIntervalS: 30,
|
|
63
63
|
timeoutS: config.humanPayTimeoutS,
|
|
64
|
-
generateQr,
|
|
65
64
|
fetchFn: resilientFetch,
|
|
66
65
|
}));
|
|
67
66
|
// Helper: resolve wallet with optional method override
|
|
@@ -69,11 +68,11 @@ function getWallet(method) {
|
|
|
69
68
|
return resolveWallet(walletProviders, method);
|
|
70
69
|
}
|
|
71
70
|
// Helper: pay an invoice using wallet priority
|
|
72
|
-
async function payInvoice(invoice,
|
|
73
|
-
const wallet = getWallet(method);
|
|
71
|
+
async function payInvoice(invoice, options) {
|
|
72
|
+
const wallet = getWallet(options?.method);
|
|
74
73
|
if (!wallet)
|
|
75
74
|
return { paid: false, method: 'none' };
|
|
76
|
-
const result = await wallet.payInvoice(invoice);
|
|
75
|
+
const result = await wallet.payInvoice(invoice, { serverOrigin: options?.serverOrigin });
|
|
77
76
|
return { paid: result.paid, preimage: result.preimage, method: result.method };
|
|
78
77
|
}
|
|
79
78
|
// Helper: store credential — validates preimage and macaroon to prevent credential poisoning
|
|
@@ -144,6 +143,9 @@ registerFetchTool(server, {
|
|
|
144
143
|
parseL402: parseL402Challenge,
|
|
145
144
|
decodeBolt11,
|
|
146
145
|
detectServer,
|
|
146
|
+
challengeCache,
|
|
147
|
+
generateQr,
|
|
148
|
+
walletMethod: () => getWallet()?.method,
|
|
147
149
|
});
|
|
148
150
|
registerPayTool(server, {
|
|
149
151
|
cache: challengeCache,
|
|
@@ -164,11 +166,21 @@ registerBuyCreditsTool(server, {
|
|
|
164
166
|
decodeBolt11,
|
|
165
167
|
maxSpendPerMinuteSats: config.maxSpendPerMinuteSats,
|
|
166
168
|
spendTracker,
|
|
169
|
+
generateQr,
|
|
170
|
+
walletMethod: () => getWallet()?.method,
|
|
167
171
|
});
|
|
168
172
|
registerRedeemCashuTool(server, {
|
|
169
173
|
fetchFn: resilientFetch,
|
|
170
174
|
storeCredential: (origin, macaroon, preimage, paymentHash) => storeCredential(origin, macaroon, preimage, paymentHash, 'toll-booth'),
|
|
171
175
|
removeToken: (tokenStr) => cashuTokenStore?.remove(tokenStr),
|
|
176
|
+
decodeToken: (token) => {
|
|
177
|
+
// Lazy-import cashu-ts to avoid top-level await; decode is synchronous
|
|
178
|
+
const { getDecodedToken } = require('@cashu/cashu-ts');
|
|
179
|
+
return getDecodedToken(token);
|
|
180
|
+
},
|
|
181
|
+
maxAutoPaySats: config.maxAutoPaySats,
|
|
182
|
+
maxSpendPerMinuteSats: config.maxSpendPerMinuteSats,
|
|
183
|
+
spendTracker,
|
|
172
184
|
});
|
|
173
185
|
registerSearchTool(server, { subscribeEvents: createNostrSubscriber(config.ssrfAllowPrivate) });
|
|
174
186
|
// Start transport
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/l402/bolt11.d.ts
CHANGED
package/build/l402/bolt11.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
2
|
const require = createRequire(import.meta.url);
|
|
3
3
|
const bolt11Lib = require('bolt11');
|
|
4
|
+
/** Decodes a BOLT-11 Lightning invoice to extract amount, payment hash, and expiry. */
|
|
4
5
|
export function decodeBolt11(invoice) {
|
|
5
6
|
try {
|
|
6
7
|
const decoded = bolt11Lib.decode(invoice);
|
package/build/l402/bolt11.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bolt11.js","sourceRoot":"","sources":["../../src/l402/bolt11.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAA4B,CAAA;AAQ9D,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEzC,IAAI,QAAQ,GAAkB,IAAI,CAAA;QAClC,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC7B,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC7B,CAAC;aAAM,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;YACzC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,IAAI,IAAI,CAAA;QAE3D,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;YAChG,CAAC,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,SAAS;YAC5C,CAAC,CAAC,IAAI,CAAA;QAER,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC5D,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"bolt11.js","sourceRoot":"","sources":["../../src/l402/bolt11.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAA4B,CAAA;AAQ9D,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEzC,IAAI,QAAQ,GAAkB,IAAI,CAAA;QAClC,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC7B,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC7B,CAAC;aAAM,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;YACzC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,IAAI,IAAI,CAAA;QAE3D,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;YAChG,CAAC,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,SAAS;YAC5C,CAAC,CAAC,IAAI,CAAA;QAER,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC5D,CAAC;AACH,CAAC"}
|
|
@@ -6,6 +6,7 @@ export interface CachedChallenge {
|
|
|
6
6
|
expiresAt: number;
|
|
7
7
|
url?: string;
|
|
8
8
|
}
|
|
9
|
+
/** TTL cache for L402 challenges, keyed by payment hash. Evicts expired entries automatically. */
|
|
9
10
|
export declare class ChallengeCache {
|
|
10
11
|
private cache;
|
|
11
12
|
set(challenge: CachedChallenge): void;
|
|
@@ -2,6 +2,7 @@ const MAX_CACHE_SIZE = 1000;
|
|
|
2
2
|
const PAYMENT_HASH_RE = /^[0-9a-f]{64}$/;
|
|
3
3
|
/** Maximum length for cached string fields to prevent memory exhaustion. */
|
|
4
4
|
const MAX_STRING_LEN = 10_000;
|
|
5
|
+
/** TTL cache for L402 challenges, keyed by payment hash. Evicts expired entries automatically. */
|
|
5
6
|
export class ChallengeCache {
|
|
6
7
|
cache = new Map();
|
|
7
8
|
set(challenge) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"challenge-cache.js","sourceRoot":"","sources":["../../src/l402/challenge-cache.ts"],"names":[],"mappings":"AASA,MAAM,cAAc,GAAG,IAAI,CAAA;AAC3B,MAAM,eAAe,GAAG,gBAAgB,CAAA;AACxC,4EAA4E;AAC5E,MAAM,cAAc,GAAG,MAAM,CAAA;AAE7B,MAAM,OAAO,cAAc;IACjB,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAA;IAElD,GAAG,CAAC,SAA0B;QAC5B,+DAA+D;QAC/D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YAAE,OAAM;QAExD,wDAAwD;QACxD,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,cAAc;YAAE,OAAM;QAEnG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;YACtC,oDAAoD;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YAChD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAClD,CAAC;IAED,GAAG,CAAC,WAAmB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAE5B,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAC9B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,CAAC,WAAmB;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAEO,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"challenge-cache.js","sourceRoot":"","sources":["../../src/l402/challenge-cache.ts"],"names":[],"mappings":"AASA,MAAM,cAAc,GAAG,IAAI,CAAA;AAC3B,MAAM,eAAe,GAAG,gBAAgB,CAAA;AACxC,4EAA4E;AAC5E,MAAM,cAAc,GAAG,MAAM,CAAA;AAE7B,kGAAkG;AAClG,MAAM,OAAO,cAAc;IACjB,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAA;IAElD,GAAG,CAAC,SAA0B;QAC5B,+DAA+D;QAC/D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YAAE,OAAM;QAExD,wDAAwD;QACxD,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,cAAc;YAAE,OAAM;QAEnG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;YACtC,oDAAoD;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YAChD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAClD,CAAC;IAED,GAAG,CAAC,WAAmB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAE5B,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAC9B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,CAAC,WAAmB;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAEO,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
package/build/l402/detect.d.ts
CHANGED
package/build/l402/detect.js
CHANGED
package/build/l402/detect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/l402/detect.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,IAAa;IAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC7C,IAAI,SAAS,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IAC/B,CAAC;IAED,IACE,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,aAAa,IAAI,IAAI;QACrB,aAAa,IAAI,IAAI;QACrB,cAAc,IAAI,IAAI,EACtB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IAC/B,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/l402/detect.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,IAAa;IAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC7C,IAAI,SAAS,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IAC/B,CAAC;IAED,IACE,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,aAAa,IAAI,IAAI;QACrB,aAAa,IAAI,IAAI;QACrB,cAAc,IAAI,IAAI,EACtB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IAC/B,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAC5B,CAAC"}
|
package/build/l402/parse.d.ts
CHANGED
package/build/l402/parse.js
CHANGED
package/build/l402/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/l402/parse.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAEvB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAA;IAC9G,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAA;IAEnI,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAEhD,OAAO;QACL,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QAC9C,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC;KAC5C,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/l402/parse.ts"],"names":[],"mappings":"AAKA,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAEvB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAA;IAC9G,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAA;IAEnI,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAEhD,OAAO;QACL,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QAC9C,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC;KAC5C,CAAA;AACH,CAAC"}
|
|
@@ -4,17 +4,20 @@ export interface StoredToken {
|
|
|
4
4
|
amountSats: number;
|
|
5
5
|
addedAt: string;
|
|
6
6
|
}
|
|
7
|
+
/** Encrypted persistent store for Cashu ecash tokens. */
|
|
7
8
|
export declare class CashuTokenStore {
|
|
8
9
|
private readonly path;
|
|
9
10
|
private data;
|
|
10
11
|
private key;
|
|
11
12
|
constructor(path: string);
|
|
13
|
+
/** Initialises encryption key and loads persisted tokens. */
|
|
12
14
|
init(): Promise<{
|
|
13
15
|
keySource: 'keychain' | 'file';
|
|
14
16
|
}>;
|
|
15
17
|
list(): StoredToken[];
|
|
16
18
|
totalBalance(): number;
|
|
17
19
|
add(token: StoredToken): void;
|
|
20
|
+
/** Removes and returns the first token (FIFO). Used during Cashu melt payments. */
|
|
18
21
|
consumeFirst(): StoredToken | undefined;
|
|
19
22
|
remove(tokenStr: string): void;
|
|
20
23
|
private load;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, renameSync, mkdirSync, existsSync, chmodSync } from 'node:fs';
|
|
2
2
|
import { dirname } from 'node:path';
|
|
3
3
|
import { getOrCreateKey, encrypt, decrypt, isEncrypted } from './encryption.js';
|
|
4
|
+
/** Encrypted persistent store for Cashu ecash tokens. */
|
|
4
5
|
export class CashuTokenStore {
|
|
5
6
|
path;
|
|
6
7
|
data = { tokens: [] };
|
|
@@ -9,6 +10,7 @@ export class CashuTokenStore {
|
|
|
9
10
|
this.path = path;
|
|
10
11
|
// load() is now called from init()
|
|
11
12
|
}
|
|
13
|
+
/** Initialises encryption key and loads persisted tokens. */
|
|
12
14
|
async init() {
|
|
13
15
|
const result = await getOrCreateKey();
|
|
14
16
|
this.key = result.key;
|
|
@@ -25,6 +27,7 @@ export class CashuTokenStore {
|
|
|
25
27
|
this.data.tokens.push(token);
|
|
26
28
|
this.save();
|
|
27
29
|
}
|
|
30
|
+
/** Removes and returns the first token (FIFO). Used during Cashu melt payments. */
|
|
28
31
|
consumeFirst() {
|
|
29
32
|
const token = this.data.tokens.shift();
|
|
30
33
|
if (token)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cashu-tokens.js","sourceRoot":"","sources":["../../src/store/cashu-tokens.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cashu-tokens.js","sourceRoot":"","sources":["../../src/store/cashu-tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export interface StoredCredential {
|
|
|
10
10
|
export interface CredentialEntry extends StoredCredential {
|
|
11
11
|
origin: string;
|
|
12
12
|
}
|
|
13
|
+
/** Encrypted persistent store for L402 credentials (macaroons, preimages, balances). */
|
|
13
14
|
export declare class CredentialStore {
|
|
14
15
|
private readonly path;
|
|
15
16
|
/** Credentials older than 7 days are automatically purged on access. */
|
|
@@ -17,6 +18,7 @@ export declare class CredentialStore {
|
|
|
17
18
|
private data;
|
|
18
19
|
private key;
|
|
19
20
|
constructor(path: string);
|
|
21
|
+
/** Initialises encryption key (OS keychain or file fallback) and loads persisted credentials. */
|
|
20
22
|
init(): Promise<{
|
|
21
23
|
keySource: 'keychain' | 'file';
|
|
22
24
|
}>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, renameSync, mkdirSync, existsSync, chmodSync } from 'node:fs';
|
|
2
2
|
import { dirname } from 'node:path';
|
|
3
3
|
import { getOrCreateKey, encrypt, decrypt, isEncrypted } from './encryption.js';
|
|
4
|
+
/** Encrypted persistent store for L402 credentials (macaroons, preimages, balances). */
|
|
4
5
|
export class CredentialStore {
|
|
5
6
|
path;
|
|
6
7
|
/** Credentials older than 7 days are automatically purged on access. */
|
|
@@ -11,6 +12,7 @@ export class CredentialStore {
|
|
|
11
12
|
this.path = path;
|
|
12
13
|
// load() is now called from init()
|
|
13
14
|
}
|
|
15
|
+
/** Initialises encryption key (OS keychain or file fallback) and loads persisted credentials. */
|
|
14
16
|
async init() {
|
|
15
17
|
const result = await getOrCreateKey();
|
|
16
18
|
this.key = result.key;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/store/credentials.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/store/credentials.ts"],"names":[],"mappings":"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"}
|