@sunnyln/lni 0.1.1 → 0.1.3

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.
Files changed (43) hide show
  1. package/README.md +79 -3
  2. package/dist/factory.d.ts +6 -1
  3. package/dist/factory.d.ts.map +1 -1
  4. package/dist/factory.js +5 -0
  5. package/dist/factory.js.map +1 -1
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +2 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/internal/polling.d.ts.map +1 -1
  11. package/dist/internal/polling.js +13 -6
  12. package/dist/internal/polling.js.map +1 -1
  13. package/dist/nodes/blink.d.ts +5 -0
  14. package/dist/nodes/blink.d.ts.map +1 -1
  15. package/dist/nodes/blink.js +138 -74
  16. package/dist/nodes/blink.js.map +1 -1
  17. package/dist/nodes/cln.d.ts.map +1 -1
  18. package/dist/nodes/cln.js +24 -9
  19. package/dist/nodes/cln.js.map +1 -1
  20. package/dist/nodes/lnd.d.ts +1 -1
  21. package/dist/nodes/lnd.d.ts.map +1 -1
  22. package/dist/nodes/lnd.js +19 -2
  23. package/dist/nodes/lnd.js.map +1 -1
  24. package/dist/nodes/spark.d.ts +25 -0
  25. package/dist/nodes/spark.d.ts.map +1 -0
  26. package/dist/nodes/spark.js +974 -0
  27. package/dist/nodes/spark.js.map +1 -0
  28. package/dist/nodes/speed.d.ts.map +1 -1
  29. package/dist/nodes/speed.js +8 -7
  30. package/dist/nodes/speed.js.map +1 -1
  31. package/dist/nodes/strike.d.ts.map +1 -1
  32. package/dist/nodes/strike.js +14 -7
  33. package/dist/nodes/strike.js.map +1 -1
  34. package/dist/spark-runtime.d.ts +21 -0
  35. package/dist/spark-runtime.d.ts.map +1 -0
  36. package/dist/spark-runtime.js +176 -0
  37. package/dist/spark-runtime.js.map +1 -0
  38. package/dist/types.d.ts +14 -1
  39. package/dist/types.d.ts.map +1 -1
  40. package/dist/vendor/frosts-bridge.js +6015 -0
  41. package/dist/vendor/spark-runtime.browser.js +2011 -0
  42. package/dist/vendor/spark-sdk-bare.js +70149 -0
  43. package/package.json +21 -4
package/README.md CHANGED
@@ -5,6 +5,7 @@ Remote connect to major Lightning node implementations with one TypeScript inter
5
5
  - Supports major nodes: CLN, LND, Phoenixd
6
6
  - Supports protocols: BOLT11, BOLT12, NWC
7
7
  - Includes custodial APIs: Strike, Speed, Blink
8
+ - Includes Spark (`SparkNode`) with pure TypeScript signer patching (no UniFFI bindings)
8
9
  - LNURL + Lightning Address support (`user@domain.com`, `lnurl1...`)
9
10
  - Frontend-capable TypeScript runtime (`fetch`-based)
10
11
 
@@ -59,6 +60,80 @@ const status = await node.lookupInvoice({ paymentHash: invoice.paymentHash });
59
60
  const txs = await node.listTransactions({ from: 0, limit: 10 });
60
61
  ```
61
62
 
63
+ ### Spark (browser + Expo Go oriented)
64
+
65
+ ```ts
66
+ import { createNode, installSparkRuntime } from '@sunnyln/lni';
67
+
68
+ // One-time runtime setup for browser / React Native / Expo Go.
69
+ // - Adds Buffer + atob/btoa polyfills when missing
70
+ // - Wraps fetch for gRPC-web body reader compatibility
71
+ // - Optionally injects API key header into same-origin Spark HTTP calls
72
+ const sparkRuntime = installSparkRuntime({
73
+ apiKey: 'optional-api-key',
74
+ apiKeyHeader: 'x-api-key',
75
+ apiKeySameOriginOnly: true, // default true; safer for browser CORS
76
+ });
77
+
78
+ const sparkNode = createNode({
79
+ kind: 'spark',
80
+ config: {
81
+ mnemonic: 'abandon ...', // store securely in production
82
+ network: 'mainnet', // or regtest/testnet/signet/local
83
+ // optional:
84
+ // passphrase: '...',
85
+ // defaultMaxFeeSats: 20,
86
+ // sparkOptions: { ...sdk options... },
87
+ // sdkEntry: 'auto' | 'bare' | 'native' | 'default'
88
+ },
89
+ });
90
+
91
+ const sparkInfo = await sparkNode.getInfo();
92
+ const sparkInvoice = await sparkNode.createInvoice({
93
+ amountMsats: 25_000,
94
+ description: 'Spark invoice',
95
+ });
96
+
97
+ // Optional cleanup (restores original global fetch if installSparkRuntime changed it)
98
+ sparkRuntime.restore();
99
+ ```
100
+
101
+ ### How does the pure TypeScript Spark signer work?
102
+
103
+ The Spark protocol uses **2-of-2 threshold Schnorr signatures (FROST)** for every operation — sending, receiving, even wallet initialization. The official Spark SDK (`@buildonspark/spark-sdk`) ships a **Rust WASM binary** that handles all the FROST cryptography. That works in Node.js, but breaks in **browsers and Expo/React Native** where WASM loading is restricted or unavailable.
104
+
105
+ We didn't write a FROST library from scratch. We used two existing TypeScript packages:
106
+ - **`@frosts/core`** — generic FROST protocol types and operations
107
+ - **`@frosts/secp256k1-tr`** — secp256k1 + Taproot (BIP-340) specific implementation
108
+
109
+ Then in `spark.ts`, we wrote two functions that **replace** the SDK's WASM calls:
110
+
111
+ 1. **`pureSignFrost()`** — computes the user's signature share. This is the user's half of the 2-of-2 signing. It takes the user's secret key, nonces, and the signing package (commitments from both the user and the statechain operator), then produces a signature share using the FROST round2 math.
112
+
113
+ 2. **`pureAggregateFrost()`** — combines the user's share with the statechain operator's share into a final Schnorr signature. For the adaptor path (Lightning payments via swap), it also handles adaptor signature construction where the signature is offset by an adaptor point.
114
+
115
+ These get injected into the Spark SDK via `setSparkFrostOnce()`, which overrides the SDK's default WASM signer with our pure TS implementation.
116
+
117
+ The tricky part wasn't the basic FROST math — it was matching the exact behavior of Spark's **custom FROST variant** ("nested FROST" from Lightspark's fork). Spark uses nested FROST where the user is always in a singleton participant group, which means the Lagrange interpolation coefficient (lambda) is always 1 for the user. The statechain operators form their own group. This is different from standard FROST where Lagrange coefficients are computed across all participants.
118
+
119
+ Three cryptographic bugs were discovered and fixed during implementation:
120
+
121
+ - **Adaptor signature validation key**: The adaptor z-candidate validation was checking against the user's individual public key instead of the aggregated group key. The BIP-340 challenge hash depends on the full group key, so validation was effectively random (~50% correct).
122
+
123
+ - **Non-adaptor aggregate path**: The `@frosts` library's built-in `aggregateWithTweak()` function broke for two reasons: (a) JavaScript Maps use reference equality for object keys, and different `Identifier` instances for the same logical signer don't match, and (b) the library computed binding factors with a slightly different key than what was used during signing. Fixed by doing manual aggregation — sum the shares and serialize — matching the adaptor path.
124
+
125
+ - **Payment completion polling**: The SDK's `payLightningInvoice()` returns immediately after initiating the swap, before the Lightning payment settles. Added polling via `getLightningSendRequest` to wait for the terminal status and return the preimage.
126
+
127
+ Reference implementation for Spark's FROST behavior: [buildonspark/spark](https://github.com/buildonspark/spark) (uses Rust WASM, not `@frosts`).
128
+
129
+ Spark entrypoint behavior:
130
+ - `sdkEntry: 'auto'` (default) uses a browser-safe bundled Spark bare runtime in browser/Expo and falls back to the default SDK entry in Node.
131
+ - `sdkEntry: 'bare'` forces the browser-safe bundled no-WASM/no-native path.
132
+ - `sdkEntry: 'default'` uses the standard SDK export (may load WASM).
133
+ - `sdkEntry: 'native'` uses the React Native native SDK entry.
134
+
135
+ Node-only note: use `sdkEntry: 'default'` for Node environments.
136
+
62
137
  For NWC specifically, `createNode` returns `NwcNode` when `kind: 'nwc'`, so you can close it:
63
138
 
64
139
  ```ts
@@ -104,14 +179,15 @@ await node.onInvoiceEvents(
104
179
  - `StrikeNode`
105
180
  - `SpeedNode`
106
181
  - `BlinkNode`
182
+ - `SparkNode`
107
183
  - LNURL helpers (`detectPaymentType`, `needsResolution`, `resolveToBolt11`, `getPaymentInfo`)
108
184
 
109
- Not included yet:
110
- - `SparkNode` (planned)
111
-
112
185
  ## Frontend Runtime Notes
113
186
 
114
187
  - Uses `fetch`, no Node-native runtime dependency required.
188
+ - Spark no longer requires project-level Spark shims/vendor bundles; those are packaged in `@sunnyln/lni`.
189
+ - For local `file:` package development with Expo, build the package first (`bindings/typescript`: `npm run build`) and use the Expo example `metro.config.js` pattern for `./dist/*` resolution.
190
+ - If Expo shows `Invalid call ... import(specifier)` in `dist/nodes/spark.js`, rebuild `bindings/typescript` and restart Metro with cache clear (`npx expo start --clear`).
115
191
  - You can inject custom fetch via constructor options:
116
192
  - `new LndNode(config, { fetch: customFetch })`
117
193
  - Most backends require secrets (API keys, macaroons, runes, passwords). For production web apps, use a backend proxy/BFF to protect credentials.
package/dist/factory.d.ts CHANGED
@@ -3,9 +3,10 @@ import { ClnNode } from './nodes/cln.js';
3
3
  import { LndNode } from './nodes/lnd.js';
4
4
  import { NwcNode } from './nodes/nwc.js';
5
5
  import { PhoenixdNode } from './nodes/phoenixd.js';
6
+ import { SparkNode } from './nodes/spark.js';
6
7
  import { SpeedNode } from './nodes/speed.js';
7
8
  import { StrikeNode } from './nodes/strike.js';
8
- import type { BackendNodeConfig, BlinkConfig, ClnConfig, LightningNode, LndConfig, NodeRequestOptions, NwcConfig, PhoenixdConfig, SpeedConfig, StrikeConfig } from './types.js';
9
+ import type { BackendNodeConfig, BlinkConfig, ClnConfig, LightningNode, LndConfig, NodeRequestOptions, NwcConfig, PhoenixdConfig, SparkConfig, SpeedConfig, StrikeConfig } from './types.js';
9
10
  export declare function createNode(input: {
10
11
  kind: 'phoenixd';
11
12
  config: PhoenixdConfig;
@@ -34,5 +35,9 @@ export declare function createNode(input: {
34
35
  kind: 'blink';
35
36
  config: BlinkConfig;
36
37
  }, options?: NodeRequestOptions): BlinkNode;
38
+ export declare function createNode(input: {
39
+ kind: 'spark';
40
+ config: SparkConfig;
41
+ }, options?: NodeRequestOptions): SparkNode;
37
42
  export declare function createNode(input: BackendNodeConfig, options?: NodeRequestOptions): LightningNode;
38
43
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,EACnD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,YAAY,CAAC;AAChB,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,EACzC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;AACX,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,EACzC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;AACX,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,EACzC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;AACX,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,EAC/C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,CAAC;AACd,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,EAC7C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,CAAC;AACb,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,EAC7C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,CAAC;AACb,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,EACnD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,YAAY,CAAC;AAChB,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,EACzC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;AACX,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,EACzC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;AACX,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,EACzC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;AACX,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,EAC/C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,CAAC;AACd,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,EAC7C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,CAAC;AACb,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,EAC7C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,CAAC;AACb,wBAAgB,UAAU,CACxB,KAAK,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,EAC7C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,CAAC;AACb,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,aAAa,CAAC"}
package/dist/factory.js CHANGED
@@ -3,6 +3,7 @@ import { ClnNode } from './nodes/cln.js';
3
3
  import { LndNode } from './nodes/lnd.js';
4
4
  import { NwcNode } from './nodes/nwc.js';
5
5
  import { PhoenixdNode } from './nodes/phoenixd.js';
6
+ import { SparkNode } from './nodes/spark.js';
6
7
  import { SpeedNode } from './nodes/speed.js';
7
8
  import { StrikeNode } from './nodes/strike.js';
8
9
  export function createNode(input, options = {}) {
@@ -21,6 +22,10 @@ export function createNode(input, options = {}) {
21
22
  return new SpeedNode(input.config, options);
22
23
  case 'blink':
23
24
  return new BlinkNode(input.config, options);
25
+ case 'spark':
26
+ return new SparkNode(input.config, options);
27
+ default:
28
+ throw new Error(`Unsupported backend kind: ${input.kind}`);
24
29
  }
25
30
  }
26
31
  //# sourceMappingURL=factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA2C/C,MAAM,UAAU,UAAU,CAAC,KAAwB,EAAE,UAA8B,EAAE;IACnF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,KAAK,KAAK;YACR,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,KAAK;YACR,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,KAAK;YACR,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,QAAQ;YACX,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,KAAK,OAAO;YACV,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,KAAK,OAAO;YACV,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgD/C,MAAM,UAAU,UAAU,CAAC,KAAwB,EAAE,UAA8B,EAAE;IACnF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,KAAK,KAAK;YACR,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,KAAK;YACR,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,KAAK;YACR,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,QAAQ;YACX,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,KAAK,OAAO;YACV,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,KAAK,OAAO;YACV,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,KAAK,OAAO;YACV,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C;YACE,MAAM,IAAI,KAAK,CAAC,6BAA8B,KAA0B,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './types.js';
2
2
  export * from './errors.js';
3
3
  export * from './lnurl.js';
4
4
  export * from './factory.js';
5
+ export * from './spark-runtime.js';
5
6
  export { PhoenixdNode } from './nodes/phoenixd.js';
6
7
  export { ClnNode } from './nodes/cln.js';
7
8
  export { LndNode } from './nodes/lnd.js';
@@ -9,4 +10,5 @@ export { NwcNode } from './nodes/nwc.js';
9
10
  export { StrikeNode } from './nodes/strike.js';
10
11
  export { SpeedNode } from './nodes/speed.js';
11
12
  export { BlinkNode } from './nodes/blink.js';
13
+ export { SparkNode } from './nodes/spark.js';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ export * from './types.js';
2
2
  export * from './errors.js';
3
3
  export * from './lnurl.js';
4
4
  export * from './factory.js';
5
+ export * from './spark-runtime.js';
5
6
  export { PhoenixdNode } from './nodes/phoenixd.js';
6
7
  export { ClnNode } from './nodes/cln.js';
7
8
  export { LndNode } from './nodes/lnd.js';
@@ -9,4 +10,5 @@ export { NwcNode } from './nodes/nwc.js';
9
10
  export { StrikeNode } from './nodes/strike.js';
10
11
  export { SpeedNode } from './nodes/speed.js';
11
12
  export { BlinkNode } from './nodes/blink.js';
13
+ export { SparkNode } from './nodes/spark.js';
12
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"polling.d.ts","sourceRoot":"","sources":["../../src/internal/polling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ3F,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BlF"}
1
+ {"version":3,"file":"polling.d.ts","sourceRoot":"","sources":["../../src/internal/polling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ3F,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoClF"}
@@ -7,7 +7,9 @@ export async function pollInvoiceEvents(args) {
7
7
  const delayMs = Math.max(args.params.pollingDelaySec, 1) * 1000;
8
8
  const maxDurationMs = Math.max(args.params.maxPollingSec, 1) * 1000;
9
9
  const startedAt = Date.now();
10
- while (Date.now() - startedAt <= maxDurationMs) {
10
+ const elapsed = () => Date.now() - startedAt;
11
+ while (elapsed() < maxDurationMs) {
12
+ const iterationStart = Date.now();
11
13
  try {
12
14
  const tx = await args.lookup();
13
15
  if (tx.settledAt > 0) {
@@ -18,15 +20,20 @@ export async function pollInvoiceEvents(args) {
18
20
  }
19
21
  catch (error) {
20
22
  if (typeof console !== 'undefined' && typeof console.debug === 'function') {
21
- console.debug('[lni] pollInvoiceEvents lookup failed', error);
23
+ console.debug('[lni] pollInvoiceEvents lookup failed (will retry)', error);
22
24
  }
23
- args.callback('failure');
25
+ args.callback('pending');
24
26
  }
25
- if (Date.now() - startedAt + delayMs <= maxDurationMs) {
26
- await sleep(delayMs);
27
+ // Sleep for the remaining delay time (accounting for how long the lookup took)
28
+ const lookupDuration = Date.now() - iterationStart;
29
+ const remainingSleep = Math.max(0, delayMs - lookupDuration);
30
+ if (remainingSleep > 0 && elapsed() + remainingSleep < maxDurationMs) {
31
+ await sleep(remainingSleep);
32
+ }
33
+ else if (elapsed() < maxDurationMs) {
34
+ // Still have time but not enough for a full delay — do one more iteration
27
35
  continue;
28
36
  }
29
- break;
30
37
  }
31
38
  args.callback('failure');
32
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"polling.js","sourceRoot":"","sources":["../../src/internal/polling.ts"],"names":[],"mappings":"AAEA,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA2B;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAChE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC1E,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,IAAI,aAAa,EAAE,CAAC;YACtD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QAED,MAAM;IACR,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"polling.js","sourceRoot":"","sources":["../../src/internal/polling.ts"],"names":[],"mappings":"AAEA,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA2B;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAChE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAE7C,OAAO,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC1E,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,+EAA+E;QAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC;QAC7D,IAAI,cAAc,GAAG,CAAC,IAAI,OAAO,EAAE,GAAG,cAAc,GAAG,aAAa,EAAE,CAAC;YACrE,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;YACrC,0EAA0E;YAC1E,SAAS;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC"}
@@ -5,7 +5,10 @@ export declare class BlinkNode implements LightningNode {
5
5
  private readonly timeoutMs?;
6
6
  private readonly baseUrl;
7
7
  private cachedWalletId?;
8
+ private static readonly MAX_TRANSACTION_FETCH;
9
+ private static readonly DEFAULT_PAGE_SIZE;
8
10
  private static readonly ME_QUERY;
11
+ private static readonly TRANSACTIONS_QUERY;
9
12
  constructor(config: BlinkConfig, options?: NodeRequestOptions);
10
13
  private headers;
11
14
  private gql;
@@ -18,6 +21,8 @@ export declare class BlinkNode implements LightningNode {
18
21
  getOffer(_search?: string): Promise<Offer>;
19
22
  listOffers(_search?: string): Promise<Offer[]>;
20
23
  payOffer(_offer: string, _amountMsats: number, _payerNote?: string): Promise<PayInvoiceResponse>;
24
+ private mapTransaction;
25
+ private listTransactionsPage;
21
26
  lookupInvoice(params: LookupInvoiceParams): Promise<Transaction>;
22
27
  listTransactions(params: ListTransactionsParams): Promise<Transaction[]>;
23
28
  decode(str: string): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"blink.d.ts","sourceRoot":"","sources":["../../src/nodes/blink.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AA+ErW,qBAAa,SAAU,YAAW,aAAa;IAoBjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAnBnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAY9B;gBAE2B,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,kBAAuB;IAMlF,OAAO,CAAC,OAAO;YAQD,GAAG;YAsBH,YAAY;YAYZ,cAAc;IAUtB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAY5B,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAoDhE,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4DjE,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAIvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAI1C,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI9C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIhG,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAahE,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAmFxE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpC,eAAe,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAOnG"}
1
+ {"version":3,"file":"blink.d.ts","sourceRoot":"","sources":["../../src/nodes/blink.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AA2FrW,qBAAa,SAAU,YAAW,aAAa;IA8DjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IA7DnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAEhD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAY9B;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAsCxC;gBAE2B,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,kBAAuB;IAMlF,OAAO,CAAC,OAAO;YAQD,GAAG;YAsBH,YAAY;YAYZ,cAAc;IAUtB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAY5B,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAoDhE,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4DjE,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAIvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAI1C,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI9C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAItG,OAAO,CAAC,cAAc;YA0BR,oBAAoB;IAqC5B,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IA8BhE,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6CxE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpC,eAAe,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAOnG"}
@@ -9,6 +9,8 @@ export class BlinkNode {
9
9
  timeoutMs;
10
10
  baseUrl;
11
11
  cachedWalletId;
12
+ static MAX_TRANSACTION_FETCH = 1000;
13
+ static DEFAULT_PAGE_SIZE = 100;
12
14
  static ME_QUERY = `
13
15
  query Me {
14
16
  me {
@@ -21,6 +23,45 @@ export class BlinkNode {
21
23
  }
22
24
  }
23
25
  }
26
+ `;
27
+ static TRANSACTIONS_QUERY = `
28
+ query TransactionsQuery($first: Int, $after: String) {
29
+ me {
30
+ defaultAccount {
31
+ transactions(first: $first, after: $after) {
32
+ edges {
33
+ cursor
34
+ node {
35
+ id
36
+ createdAt
37
+ direction
38
+ status
39
+ memo
40
+ settlementAmount
41
+ settlementCurrency
42
+ settlementFee
43
+ initiationVia {
44
+ __typename
45
+ ... on InitiationViaLn {
46
+ paymentHash
47
+ }
48
+ }
49
+ settlementVia {
50
+ __typename
51
+ ... on SettlementViaLn {
52
+ preImage
53
+ }
54
+ }
55
+ }
56
+ }
57
+ pageInfo {
58
+ hasNextPage
59
+ endCursor
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
24
65
  `;
25
66
  constructor(config, options = {}) {
26
67
  this.config = config;
@@ -101,7 +142,7 @@ export class BlinkNode {
101
142
  `;
102
143
  const response = await this.gql(query, {
103
144
  input: {
104
- amount: String(Math.floor((params.amountMsats ?? 0) / 1000)),
145
+ amount: Math.floor((params.amountMsats ?? 0) / 1000),
105
146
  walletId,
106
147
  memo: params.description,
107
148
  },
@@ -184,89 +225,112 @@ export class BlinkNode {
184
225
  async payOffer(_offer, _amountMsats, _payerNote) {
185
226
  throw new LniError('Api', 'Bolt12 is not implemented for BlinkNode.');
186
227
  }
228
+ mapTransaction(node) {
229
+ const paymentHash = node.initiationVia?.__typename === 'InitiationViaLn'
230
+ ? (node.initiationVia.paymentHash ?? '')
231
+ : '';
232
+ const preimage = node.settlementVia?.__typename === 'SettlementViaLn' ? (node.settlementVia.preImage ?? '') : '';
233
+ const amountMsats = node.settlementCurrency === 'BTC' ? satsToMsats(Math.abs(node.settlementAmount ?? 0)) : 0;
234
+ const feeMsats = node.settlementCurrency === 'BTC' ? satsToMsats(Math.abs(node.settlementFee ?? 0)) : 0;
235
+ return emptyTransaction({
236
+ type: node.direction === 'SEND' ? 'outgoing' : 'incoming',
237
+ paymentHash,
238
+ preimage,
239
+ amountMsats,
240
+ feesPaid: feeMsats,
241
+ createdAt: node.createdAt,
242
+ settledAt: node.status === 'SUCCESS' ? node.createdAt : 0,
243
+ description: node.memo ?? '',
244
+ descriptionHash: '',
245
+ payerNote: '',
246
+ externalId: node.id,
247
+ });
248
+ }
249
+ async listTransactionsPage(args) {
250
+ const response = await this.gql(BlinkNode.TRANSACTIONS_QUERY, {
251
+ first: Math.max(args.first, 1),
252
+ after: args.after ?? null,
253
+ });
254
+ const page = response.me.defaultAccount.transactions;
255
+ const edges = page.edges;
256
+ const transactions = edges
257
+ .map(({ node }) => this.mapTransaction(node))
258
+ .filter((tx) => {
259
+ if (args.paymentHash && tx.paymentHash !== args.paymentHash) {
260
+ return false;
261
+ }
262
+ return matchesSearch(tx, args.search);
263
+ });
264
+ if (!page.pageInfo.hasNextPage) {
265
+ return {
266
+ transactions,
267
+ nextCursor: null,
268
+ };
269
+ }
270
+ const nextCursor = page.pageInfo.endCursor ?? edges[edges.length - 1]?.cursor ?? null;
271
+ return {
272
+ transactions,
273
+ nextCursor: nextCursor && nextCursor !== args.after ? nextCursor : null,
274
+ };
275
+ }
187
276
  async lookupInvoice(params) {
188
277
  if (!params.paymentHash) {
189
278
  throw new LniError('InvalidInput', 'lookupInvoice requires paymentHash for BlinkNode.');
190
279
  }
191
- const txs = await this.listTransactions({ from: 0, limit: 100, search: params.search });
192
- const match = txs.find((tx) => tx.paymentHash === params.paymentHash);
193
- if (!match) {
194
- throw new LniError('Api', `Transaction not found for payment hash: ${params.paymentHash}`);
280
+ let after = null;
281
+ while (true) {
282
+ const page = await this.listTransactionsPage({
283
+ first: 100,
284
+ after,
285
+ paymentHash: params.paymentHash,
286
+ search: params.search,
287
+ });
288
+ const match = page.transactions.find((tx) => tx.paymentHash === params.paymentHash);
289
+ if (match) {
290
+ return match;
291
+ }
292
+ if (!page.nextCursor) {
293
+ break;
294
+ }
295
+ after = page.nextCursor;
195
296
  }
196
- return match;
297
+ throw new LniError('Api', `Transaction not found for payment hash: ${params.paymentHash}`);
197
298
  }
198
299
  async listTransactions(params) {
199
- const query = `
200
- query TransactionsQuery($first: Int, $last: Int, $after: String, $before: String) {
201
- me {
202
- defaultAccount {
203
- transactions(first: $first, last: $last, after: $after, before: $before) {
204
- edges {
205
- node {
206
- id
207
- createdAt
208
- direction
209
- status
210
- memo
211
- settlementAmount
212
- settlementCurrency
213
- settlementFee
214
- initiationVia {
215
- __typename
216
- ... on InitiationViaLn {
217
- paymentHash
218
- }
219
- }
220
- settlementVia {
221
- __typename
222
- ... on SettlementViaLn {
223
- preImage
224
- }
225
- }
300
+ const limit = params.limit > 0
301
+ ? params.limit
302
+ : Math.min(BlinkNode.MAX_TRANSACTION_FETCH, BlinkNode.DEFAULT_PAGE_SIZE * 10);
303
+ const from = Math.max(params.from, 0);
304
+ const pageSize = Math.max(Math.min(limit, BlinkNode.DEFAULT_PAGE_SIZE), 1);
305
+ let after = null;
306
+ let skipped = 0;
307
+ const transactions = [];
308
+ while (transactions.length < limit) {
309
+ const page = await this.listTransactionsPage({
310
+ first: pageSize,
311
+ after,
312
+ paymentHash: params.paymentHash,
313
+ search: params.search,
314
+ });
315
+ if (!page.transactions.length && !page.nextCursor) {
316
+ break;
317
+ }
318
+ for (const tx of page.transactions) {
319
+ if (skipped < from) {
320
+ skipped += 1;
321
+ continue;
322
+ }
323
+ transactions.push(tx);
324
+ if (transactions.length >= limit) {
325
+ break;
226
326
  }
227
- }
228
327
  }
229
- }
230
- }
231
- }
232
- `;
233
- const first = Math.max(params.from + params.limit, 1);
234
- const response = await this.gql(query, {
235
- first,
236
- last: null,
237
- after: null,
238
- before: null,
239
- });
240
- const transactions = response.me.defaultAccount.transactions.edges.map(({ node }) => {
241
- const paymentHash = node.initiationVia?.__typename === 'InitiationViaLn'
242
- ? (node.initiationVia.paymentHash ?? '')
243
- : '';
244
- const preimage = node.settlementVia?.__typename === 'SettlementViaLn' ? (node.settlementVia.preImage ?? '') : '';
245
- const amountMsats = node.settlementCurrency === 'BTC' ? satsToMsats(Math.abs(node.settlementAmount ?? 0)) : 0;
246
- const feeMsats = node.settlementCurrency === 'BTC' ? satsToMsats(Math.abs(node.settlementFee ?? 0)) : 0;
247
- return emptyTransaction({
248
- type: node.direction === 'SEND' ? 'outgoing' : 'incoming',
249
- paymentHash,
250
- preimage,
251
- amountMsats,
252
- feesPaid: feeMsats,
253
- createdAt: node.createdAt,
254
- settledAt: node.status === 'SUCCESS' ? node.createdAt : 0,
255
- description: node.memo ?? '',
256
- descriptionHash: '',
257
- payerNote: '',
258
- externalId: node.id,
259
- });
260
- });
261
- const filtered = transactions.filter((tx) => {
262
- if (params.paymentHash && tx.paymentHash !== params.paymentHash) {
263
- return false;
328
+ if (!page.nextCursor) {
329
+ break;
264
330
  }
265
- return matchesSearch(tx, params.search);
266
- });
267
- const skip = Math.max(params.from, 0);
268
- const end = params.limit > 0 ? skip + params.limit : undefined;
269
- return filtered.slice(skip, end);
331
+ after = page.nextCursor;
332
+ }
333
+ return transactions;
270
334
  }
271
335
  async decode(str) {
272
336
  return str;
@@ -1 +1 @@
1
- {"version":3,"file":"blink.js","sourceRoot":"","sources":["../../src/nodes/blink.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blink.js","sourceRoot":"","sources":["../../src/nodes/blink.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cln.d.ts","sourceRoot":"","sources":["../../src/nodes/cln.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAyEnW,qBAAa,OAAQ,YAAW,aAAa;IAI/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;gBAEP,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,kBAAuB;IAKhF,OAAO,CAAC,OAAO;YAQD,QAAQ;YASR,QAAQ;YASR,qBAAqB;IAenC,OAAO,CAAC,oBAAoB;IAkBtB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IA0D5B,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IA8ChE,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+BjE,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAiBtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAUzC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQ7C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAe7F,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAkBhE,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAwBxE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpC,eAAe,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAWnG"}
1
+ {"version":3,"file":"cln.d.ts","sourceRoot":"","sources":["../../src/nodes/cln.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AA2EnW,qBAAa,OAAQ,YAAW,aAAa;IAI/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;gBAEP,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,kBAAuB;IAKhF,OAAO,CAAC,OAAO;YAQD,QAAQ;YASR,QAAQ;YASR,qBAAqB;IAenC,OAAO,CAAC,oBAAoB;IAgCtB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IA0D5B,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAiDhE,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+BjE,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAiBtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IASzC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQ7C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAe7F,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAkBhE,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAwBxE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpC,eAAe,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAWnG"}