@sunnyln/lni 0.1.0 → 0.1.2
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 +96 -81
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -4
- package/dist/errors.js.map +1 -1
- package/dist/factory.d.ts +38 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +26 -0
- package/dist/factory.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/http.d.ts.map +1 -1
- package/dist/internal/http.js +27 -9
- package/dist/internal/http.js.map +1 -1
- package/dist/internal/polling.d.ts.map +1 -1
- package/dist/internal/polling.js +9 -2
- package/dist/internal/polling.js.map +1 -1
- package/dist/internal/transform.d.ts +1 -0
- package/dist/internal/transform.d.ts.map +1 -1
- package/dist/internal/transform.js +7 -1
- package/dist/internal/transform.js.map +1 -1
- package/dist/lnurl.d.ts.map +1 -1
- package/dist/lnurl.js +12 -18
- package/dist/lnurl.js.map +1 -1
- package/dist/nodes/blink.d.ts +8 -0
- package/dist/nodes/blink.d.ts.map +1 -1
- package/dist/nodes/blink.js +166 -112
- package/dist/nodes/blink.js.map +1 -1
- package/dist/nodes/cln.d.ts.map +1 -1
- package/dist/nodes/cln.js +31 -10
- package/dist/nodes/cln.js.map +1 -1
- package/dist/nodes/lnd.d.ts +1 -1
- package/dist/nodes/lnd.d.ts.map +1 -1
- package/dist/nodes/lnd.js +22 -5
- package/dist/nodes/lnd.js.map +1 -1
- package/dist/nodes/nwc.d.ts.map +1 -1
- package/dist/nodes/nwc.js +4 -12
- package/dist/nodes/nwc.js.map +1 -1
- package/dist/nodes/phoenixd.d.ts.map +1 -1
- package/dist/nodes/phoenixd.js +12 -4
- package/dist/nodes/phoenixd.js.map +1 -1
- package/dist/nodes/speed.d.ts.map +1 -1
- package/dist/nodes/speed.js +9 -12
- package/dist/nodes/speed.js.map +1 -1
- package/dist/nodes/strike.d.ts.map +1 -1
- package/dist/nodes/strike.js +19 -17
- package/dist/nodes/strike.js.map +1 -1
- package/dist/types.d.ts +25 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Lightning Node Interface
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Remote connect to major Lightning node implementations with one TypeScript interface.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- `
|
|
10
|
-
- `ClnNode`
|
|
11
|
-
- `LndNode`
|
|
12
|
-
- `NwcNode`
|
|
13
|
-
- `StrikeNode`
|
|
14
|
-
- `SpeedNode`
|
|
15
|
-
- `BlinkNode`
|
|
16
|
-
- LNURL helpers (`detectPaymentType`, `needsResolution`, `resolveToBolt11`, `getPaymentInfo`)
|
|
17
|
-
|
|
18
|
-
Not included yet:
|
|
19
|
-
|
|
20
|
-
- `SparkNode` (intentionally deferred)
|
|
5
|
+
- Supports major nodes: CLN, LND, Phoenixd
|
|
6
|
+
- Supports protocols: BOLT11, BOLT12, NWC
|
|
7
|
+
- Includes custodial APIs: Strike, Speed, Blink
|
|
8
|
+
- LNURL + Lightning Address support (`user@domain.com`, `lnurl1...`)
|
|
9
|
+
- Frontend-capable TypeScript runtime (`fetch`-based)
|
|
21
10
|
|
|
22
11
|
## Install
|
|
23
12
|
|
|
@@ -25,94 +14,120 @@ Not included yet:
|
|
|
25
14
|
npm install @sunnyln/lni
|
|
26
15
|
```
|
|
27
16
|
|
|
28
|
-
|
|
17
|
+
## TypeScript Examples
|
|
29
18
|
|
|
30
|
-
|
|
31
|
-
cd bindings/typescript
|
|
32
|
-
npm install
|
|
33
|
-
npm run typecheck
|
|
34
|
-
npm run build
|
|
35
|
-
```
|
|
19
|
+
### Node API
|
|
36
20
|
|
|
37
|
-
|
|
21
|
+
```ts
|
|
22
|
+
import {
|
|
23
|
+
createNode,
|
|
24
|
+
InvoiceType,
|
|
25
|
+
type BackendNodeConfig,
|
|
26
|
+
} from '@sunnyln/lni';
|
|
27
|
+
|
|
28
|
+
const backend: BackendNodeConfig = {
|
|
29
|
+
kind: 'lnd',
|
|
30
|
+
config: {
|
|
31
|
+
url: 'https://lnd.example.com',
|
|
32
|
+
macaroon: '...',
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const node = createNode(backend);
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
const info = await node.getInfo();
|
|
40
39
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
const invoiceParams = {
|
|
41
|
+
invoiceType: InvoiceType.Bolt11,
|
|
42
|
+
amountMsats: 2000,
|
|
43
|
+
description: 'your memo',
|
|
44
|
+
expiry: 3600,
|
|
45
|
+
};
|
|
45
46
|
|
|
46
|
-
|
|
47
|
+
const invoice = await node.createInvoice(invoiceParams);
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
const payInvoiceParams = {
|
|
50
|
+
invoice: invoice.invoice,
|
|
51
|
+
feeLimitPercentage: 1,
|
|
52
|
+
allowSelfPayment: true,
|
|
53
|
+
};
|
|
51
54
|
|
|
52
|
-
|
|
55
|
+
const payment = await node.payInvoice(payInvoiceParams);
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
const status = await node.lookupInvoice({ paymentHash: invoice.paymentHash });
|
|
58
|
+
|
|
59
|
+
const txs = await node.listTransactions({ from: 0, limit: 10 });
|
|
56
60
|
```
|
|
57
61
|
|
|
58
|
-
|
|
62
|
+
For NWC specifically, `createNode` returns `NwcNode` when `kind: 'nwc'`, so you can close it:
|
|
59
63
|
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
npm run pack:dry-run
|
|
64
|
+
```ts
|
|
65
|
+
const nwcNode = createNode({ kind: 'nwc', config: { nwcUri: 'nostr+walletconnect://...' } });
|
|
66
|
+
// ... use node
|
|
67
|
+
nwcNode.close();
|
|
65
68
|
```
|
|
66
69
|
|
|
67
|
-
|
|
70
|
+
### LNURL + Lightning Address
|
|
68
71
|
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
npm run publish:public
|
|
72
|
-
```
|
|
72
|
+
```ts
|
|
73
|
+
import { detectPaymentType, needsResolution, getPaymentInfo, resolveToBolt11 } from '@sunnyln/lni';
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
const destination = 'user@domain.com';
|
|
75
76
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
- `npm run test:integration:blink`
|
|
82
|
-
- `npm run test:integration:nwc`
|
|
77
|
+
const type = detectPaymentType(destination);
|
|
78
|
+
const requiresResolution = needsResolution(destination);
|
|
79
|
+
const info = await getPaymentInfo(destination, 100_000);
|
|
80
|
+
const bolt11 = await resolveToBolt11(destination, 100_000);
|
|
81
|
+
```
|
|
83
82
|
|
|
84
|
-
|
|
83
|
+
### Invoice Event Polling
|
|
85
84
|
|
|
86
85
|
```ts
|
|
87
|
-
|
|
86
|
+
await node.onInvoiceEvents(
|
|
87
|
+
{
|
|
88
|
+
paymentHash: invoice.paymentHash,
|
|
89
|
+
pollingDelaySec: 3,
|
|
90
|
+
maxPollingSec: 60,
|
|
91
|
+
},
|
|
92
|
+
(status, tx) => {
|
|
93
|
+
console.log('Invoice event:', status, tx);
|
|
94
|
+
},
|
|
95
|
+
);
|
|
96
|
+
```
|
|
88
97
|
|
|
89
|
-
|
|
90
|
-
url: 'https://127.0.0.1:8080',
|
|
91
|
-
macaroon: '...'
|
|
92
|
-
});
|
|
98
|
+
## Implemented in this package
|
|
93
99
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
100
|
+
- `PhoenixdNode`
|
|
101
|
+
- `ClnNode`
|
|
102
|
+
- `LndNode`
|
|
103
|
+
- `NwcNode`
|
|
104
|
+
- `StrikeNode`
|
|
105
|
+
- `SpeedNode`
|
|
106
|
+
- `BlinkNode`
|
|
107
|
+
- LNURL helpers (`detectPaymentType`, `needsResolution`, `resolveToBolt11`, `getPaymentInfo`)
|
|
97
108
|
|
|
98
|
-
|
|
109
|
+
Not included yet:
|
|
110
|
+
- `SparkNode` (planned)
|
|
99
111
|
|
|
100
|
-
|
|
101
|
-
|
|
112
|
+
## Frontend Runtime Notes
|
|
113
|
+
|
|
114
|
+
- Uses `fetch`, no Node-native runtime dependency required.
|
|
115
|
+
- You can inject custom fetch via constructor options:
|
|
102
116
|
- `new LndNode(config, { fetch: customFetch })`
|
|
103
|
-
-
|
|
104
|
-
- Most backends require secrets (API keys, macaroons, runes, passwords). For production web apps, use a backend proxy/BFF to protect secrets.
|
|
117
|
+
- Most backends require secrets (API keys, macaroons, runes, passwords). For production web apps, use a backend proxy/BFF to protect credentials.
|
|
105
118
|
|
|
106
|
-
##
|
|
119
|
+
## Build and Publish (package maintainers)
|
|
107
120
|
|
|
108
|
-
|
|
121
|
+
```bash
|
|
122
|
+
npm run prepack
|
|
123
|
+
npm run pack:dry-run
|
|
124
|
+
npm run publish:public
|
|
125
|
+
```
|
|
109
126
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
- `LookupInvoiceParams`
|
|
116
|
-
- `OnInvoiceEventParams`
|
|
127
|
+
## Integration tests
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
npm run test:integration
|
|
131
|
+
```
|
|
117
132
|
|
|
118
|
-
|
|
133
|
+
These scripts set `NODE_TLS_REJECT_UNAUTHORIZED=0` because many local Lightning nodes use self-signed certs in test environments. Do not use this in production.
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,KAAK,GACL,MAAM,GACN,cAAc,GACd,cAAc,GACd,YAAY,CAAC;AAEjB,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,YAAY,CAAC;IACnC,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,KAAK,GACL,MAAM,GACN,cAAc,GACd,cAAc,GACd,YAAY,CAAC;AAEjB,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,YAAY,CAAC;IACnC,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAO/G;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,GAAE,YAAoB,GAAG,QAAQ,CAUvF"}
|
package/dist/errors.js
CHANGED
|
@@ -3,14 +3,11 @@ export class LniError extends Error {
|
|
|
3
3
|
status;
|
|
4
4
|
body;
|
|
5
5
|
constructor(code, message, options) {
|
|
6
|
-
super(message);
|
|
6
|
+
super(message, options?.cause !== undefined ? { cause: options.cause } : undefined);
|
|
7
7
|
this.name = 'LniError';
|
|
8
8
|
this.code = code;
|
|
9
9
|
this.status = options?.status;
|
|
10
10
|
this.body = options?.body;
|
|
11
|
-
if (options?.cause !== undefined) {
|
|
12
|
-
this.cause = options.cause;
|
|
13
|
-
}
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
13
|
export function asLniError(error, fallbackCode = 'Api') {
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjB,IAAI,CAAe;IACnB,MAAM,CAAU;IAChB,IAAI,CAAU;IAE9B,YAAY,IAAkB,EAAE,OAAe,EAAE,OAA6D;QAC5G,KAAK,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjB,IAAI,CAAe;IACnB,MAAM,CAAU;IAChB,IAAI,CAAU;IAE9B,YAAY,IAAkB,EAAE,OAAe,EAAE,OAA6D;QAC5G,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,eAA6B,KAAK;IAC3E,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BlinkNode } from './nodes/blink.js';
|
|
2
|
+
import { ClnNode } from './nodes/cln.js';
|
|
3
|
+
import { LndNode } from './nodes/lnd.js';
|
|
4
|
+
import { NwcNode } from './nodes/nwc.js';
|
|
5
|
+
import { PhoenixdNode } from './nodes/phoenixd.js';
|
|
6
|
+
import { SpeedNode } from './nodes/speed.js';
|
|
7
|
+
import { StrikeNode } from './nodes/strike.js';
|
|
8
|
+
import type { BackendNodeConfig, BlinkConfig, ClnConfig, LightningNode, LndConfig, NodeRequestOptions, NwcConfig, PhoenixdConfig, SpeedConfig, StrikeConfig } from './types.js';
|
|
9
|
+
export declare function createNode(input: {
|
|
10
|
+
kind: 'phoenixd';
|
|
11
|
+
config: PhoenixdConfig;
|
|
12
|
+
}, options?: NodeRequestOptions): PhoenixdNode;
|
|
13
|
+
export declare function createNode(input: {
|
|
14
|
+
kind: 'cln';
|
|
15
|
+
config: ClnConfig;
|
|
16
|
+
}, options?: NodeRequestOptions): ClnNode;
|
|
17
|
+
export declare function createNode(input: {
|
|
18
|
+
kind: 'lnd';
|
|
19
|
+
config: LndConfig;
|
|
20
|
+
}, options?: NodeRequestOptions): LndNode;
|
|
21
|
+
export declare function createNode(input: {
|
|
22
|
+
kind: 'nwc';
|
|
23
|
+
config: NwcConfig;
|
|
24
|
+
}, options?: NodeRequestOptions): NwcNode;
|
|
25
|
+
export declare function createNode(input: {
|
|
26
|
+
kind: 'strike';
|
|
27
|
+
config: StrikeConfig;
|
|
28
|
+
}, options?: NodeRequestOptions): StrikeNode;
|
|
29
|
+
export declare function createNode(input: {
|
|
30
|
+
kind: 'speed';
|
|
31
|
+
config: SpeedConfig;
|
|
32
|
+
}, options?: NodeRequestOptions): SpeedNode;
|
|
33
|
+
export declare function createNode(input: {
|
|
34
|
+
kind: 'blink';
|
|
35
|
+
config: BlinkConfig;
|
|
36
|
+
}, options?: NodeRequestOptions): BlinkNode;
|
|
37
|
+
export declare function createNode(input: BackendNodeConfig, options?: NodeRequestOptions): LightningNode;
|
|
38
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/factory.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BlinkNode } from './nodes/blink.js';
|
|
2
|
+
import { ClnNode } from './nodes/cln.js';
|
|
3
|
+
import { LndNode } from './nodes/lnd.js';
|
|
4
|
+
import { NwcNode } from './nodes/nwc.js';
|
|
5
|
+
import { PhoenixdNode } from './nodes/phoenixd.js';
|
|
6
|
+
import { SpeedNode } from './nodes/speed.js';
|
|
7
|
+
import { StrikeNode } from './nodes/strike.js';
|
|
8
|
+
export function createNode(input, options = {}) {
|
|
9
|
+
switch (input.kind) {
|
|
10
|
+
case 'phoenixd':
|
|
11
|
+
return new PhoenixdNode(input.config, options);
|
|
12
|
+
case 'cln':
|
|
13
|
+
return new ClnNode(input.config, options);
|
|
14
|
+
case 'lnd':
|
|
15
|
+
return new LndNode(input.config, options);
|
|
16
|
+
case 'nwc':
|
|
17
|
+
return new NwcNode(input.config, options);
|
|
18
|
+
case 'strike':
|
|
19
|
+
return new StrikeNode(input.config, options);
|
|
20
|
+
case 'speed':
|
|
21
|
+
return new SpeedNode(input.config, options);
|
|
22
|
+
case 'blink':
|
|
23
|
+
return new BlinkNode(input.config, options);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/index.js
CHANGED
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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/internal/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAU/D;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,CAelG;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/internal/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAU/D;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,CAelG;AAiED,wBAAsB,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C1G;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAexG;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAYtH;AAED,wBAAgB,WAAW,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKvE"}
|
package/dist/internal/http.js
CHANGED
|
@@ -34,26 +34,41 @@ function encodeForm(form) {
|
|
|
34
34
|
}
|
|
35
35
|
function withTimeout(signal, timeoutMs) {
|
|
36
36
|
if (!timeoutMs || timeoutMs <= 0) {
|
|
37
|
-
return
|
|
37
|
+
return {
|
|
38
|
+
signal,
|
|
39
|
+
clear: () => { },
|
|
40
|
+
};
|
|
38
41
|
}
|
|
39
42
|
const controller = new AbortController();
|
|
40
43
|
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
44
|
+
let externalAbortListener;
|
|
45
|
+
const clear = () => {
|
|
46
|
+
clearTimeout(timeoutId);
|
|
47
|
+
if (signal && externalAbortListener) {
|
|
48
|
+
signal.removeEventListener('abort', externalAbortListener);
|
|
49
|
+
externalAbortListener = undefined;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
41
52
|
if (signal) {
|
|
42
53
|
if (signal.aborted) {
|
|
43
|
-
|
|
54
|
+
clear();
|
|
44
55
|
controller.abort();
|
|
45
56
|
}
|
|
46
57
|
else {
|
|
47
|
-
|
|
48
|
-
|
|
58
|
+
externalAbortListener = () => {
|
|
59
|
+
clear();
|
|
49
60
|
controller.abort();
|
|
50
|
-
}
|
|
61
|
+
};
|
|
62
|
+
signal.addEventListener('abort', externalAbortListener, { once: true });
|
|
51
63
|
}
|
|
52
64
|
}
|
|
53
65
|
controller.signal.addEventListener('abort', () => {
|
|
54
|
-
|
|
66
|
+
clear();
|
|
55
67
|
}, { once: true });
|
|
56
|
-
return
|
|
68
|
+
return {
|
|
69
|
+
signal: controller.signal,
|
|
70
|
+
clear,
|
|
71
|
+
};
|
|
57
72
|
}
|
|
58
73
|
export async function requestText(fetchFn, url, args = {}) {
|
|
59
74
|
const headers = new Headers(args.headers);
|
|
@@ -70,14 +85,14 @@ export async function requestText(fetchFn, url, args = {}) {
|
|
|
70
85
|
}
|
|
71
86
|
body = encodeForm(args.form).toString();
|
|
72
87
|
}
|
|
73
|
-
const
|
|
88
|
+
const timeout = withTimeout(args.signal, args.timeoutMs);
|
|
74
89
|
let response;
|
|
75
90
|
try {
|
|
76
91
|
response = await fetchFn(url, {
|
|
77
92
|
method: args.method ?? (body ? 'POST' : 'GET'),
|
|
78
93
|
headers,
|
|
79
94
|
body,
|
|
80
|
-
signal,
|
|
95
|
+
signal: timeout.signal,
|
|
81
96
|
});
|
|
82
97
|
}
|
|
83
98
|
catch (error) {
|
|
@@ -85,6 +100,9 @@ export async function requestText(fetchFn, url, args = {}) {
|
|
|
85
100
|
cause: error,
|
|
86
101
|
});
|
|
87
102
|
}
|
|
103
|
+
finally {
|
|
104
|
+
timeout.clear();
|
|
105
|
+
}
|
|
88
106
|
const text = await response.text();
|
|
89
107
|
if (!response.ok) {
|
|
90
108
|
throw new LniError('Http', `HTTP ${response.status}: ${text || response.statusText}`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/internal/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAgBxC,MAAM,UAAU,YAAY,CAAC,WAAuB;IAClD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAC3C,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAE,mEAAmE,CAAC,CAAC;AAC1G,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAAY,EAAE,KAAkC;IACxF,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;IACvE,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAEpD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBAC1D,SAAS;YACX,CAAC;YACD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,IAAgC;IAClD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/internal/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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"}
|
package/dist/internal/polling.js
CHANGED
|
@@ -16,10 +16,17 @@ export async function pollInvoiceEvents(args) {
|
|
|
16
16
|
}
|
|
17
17
|
args.callback('pending', tx);
|
|
18
18
|
}
|
|
19
|
-
catch {
|
|
19
|
+
catch (error) {
|
|
20
|
+
if (typeof console !== 'undefined' && typeof console.debug === 'function') {
|
|
21
|
+
console.debug('[lni] pollInvoiceEvents lookup failed', error);
|
|
22
|
+
}
|
|
20
23
|
args.callback('failure');
|
|
21
24
|
}
|
|
22
|
-
|
|
25
|
+
if (Date.now() - startedAt + delayMs <= maxDurationMs) {
|
|
26
|
+
await sleep(delayMs);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
break;
|
|
23
30
|
}
|
|
24
31
|
args.callback('failure');
|
|
25
32
|
}
|
|
@@ -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,
|
|
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"}
|
|
@@ -5,6 +5,7 @@ export declare function parseOptionalNumber(value: unknown): number;
|
|
|
5
5
|
export declare function toUnixSeconds(value: unknown): number;
|
|
6
6
|
export declare function rHashToHex(value: string): string;
|
|
7
7
|
export declare function btcToMsats(amount: string | number): number;
|
|
8
|
+
export declare function msatsToBtc(amountMsats: number): string;
|
|
8
9
|
export declare function satsToMsats(amount: string | number): number;
|
|
9
10
|
export declare function matchesSearch(tx: Transaction, search?: string): boolean;
|
|
10
11
|
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/internal/transform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,wBAAgB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAM,GAAG,QAAQ,CAiBzE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAelF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAW1D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWpD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUhD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAM3D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAYvE"}
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/internal/transform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,wBAAgB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAM,GAAG,QAAQ,CAiBzE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAelF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAW1D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWpD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUhD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAM3D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAYvE"}
|
|
@@ -19,7 +19,7 @@ export function emptyNodeInfo(overrides = {}) {
|
|
|
19
19
|
}
|
|
20
20
|
export function emptyTransaction(overrides = {}) {
|
|
21
21
|
return {
|
|
22
|
-
type: '',
|
|
22
|
+
type: 'incoming',
|
|
23
23
|
invoice: '',
|
|
24
24
|
description: '',
|
|
25
25
|
descriptionHash: '',
|
|
@@ -71,6 +71,12 @@ export function btcToMsats(amount) {
|
|
|
71
71
|
}
|
|
72
72
|
return Math.round(num * 100_000_000_000);
|
|
73
73
|
}
|
|
74
|
+
export function msatsToBtc(amountMsats) {
|
|
75
|
+
if (!Number.isFinite(amountMsats)) {
|
|
76
|
+
return '0.00000000';
|
|
77
|
+
}
|
|
78
|
+
return (amountMsats / 100_000_000_000).toFixed(8);
|
|
79
|
+
}
|
|
74
80
|
export function satsToMsats(amount) {
|
|
75
81
|
const num = typeof amount === 'string' ? Number(amount) : amount;
|
|
76
82
|
if (!Number.isFinite(num)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/internal/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGzD,MAAM,UAAU,aAAa,CAAC,YAA+B,EAAE;IAC7D,OAAO;QACL,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,CAAC;QAClB,kBAAkB,EAAE,CAAC;QACrB,oBAAoB,EAAE,CAAC;QACvB,wBAAwB,EAAE,CAAC;QAC3B,2BAA2B,EAAE,CAAC;QAC9B,sBAAsB,EAAE,CAAC;QACzB,yBAAyB,EAAE,CAAC;QAC5B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,YAAkC,EAAE;IACnE,OAAO;QACL,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/internal/transform.ts"],"names":[],"mappings":"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"}
|
package/dist/lnurl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lnurl.d.ts","sourceRoot":"","sources":["../src/lnurl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,mBAAmB,CAAC;AAqBzF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CAqB7E;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAejD;
|
|
1
|
+
{"version":3,"file":"lnurl.d.ts","sourceRoot":"","sources":["../src/lnurl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,mBAAmB,CAAC;AAqBzF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CAqB7E;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAejD;AAmED,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9B,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9B,OAAO,CAAC,WAAW,CAAC,CAmCtB"}
|
package/dist/lnurl.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { bech32 } from '@scure/base';
|
|
2
2
|
import { LniError } from './errors.js';
|
|
3
|
-
import { resolveFetch, requestJson
|
|
3
|
+
import { resolveFetch, requestJson } from './internal/http.js';
|
|
4
4
|
export function detectPaymentType(destination) {
|
|
5
5
|
const input = destination.trim();
|
|
6
6
|
const lower = input.toLowerCase();
|
|
@@ -20,7 +20,7 @@ export function detectPaymentType(destination) {
|
|
|
20
20
|
}
|
|
21
21
|
export function needsResolution(destination) {
|
|
22
22
|
const normalized = destination.trim().toLowerCase();
|
|
23
|
-
return
|
|
23
|
+
return (normalized.includes('@') && !normalized.startsWith('lnurl')) || normalized.startsWith('lnurl1');
|
|
24
24
|
}
|
|
25
25
|
export function lightningAddressToUrl(user, domain) {
|
|
26
26
|
return `https://${domain}/.well-known/lnurlp/${user}`;
|
|
@@ -42,25 +42,18 @@ export function decodeLnurl(lnurl) {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
async function fetchLnurlPay(url, fetchFn) {
|
|
45
|
-
const payload = await
|
|
45
|
+
const payload = await requestJson(fetchFn, url, {
|
|
46
46
|
method: 'GET',
|
|
47
47
|
headers: {
|
|
48
48
|
accept: 'application/json',
|
|
49
49
|
},
|
|
50
50
|
timeoutMs: 30_000,
|
|
51
51
|
});
|
|
52
|
-
|
|
53
|
-
try {
|
|
54
|
-
parsed = JSON.parse(payload);
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
throw new LniError('Json', `Invalid LNURL-pay response: ${error.message}`);
|
|
58
|
-
}
|
|
59
|
-
const maybeError = parsed;
|
|
52
|
+
const maybeError = payload;
|
|
60
53
|
if (maybeError?.status === 'ERROR') {
|
|
61
54
|
throw new LniError('LnurlError', maybeError.reason);
|
|
62
55
|
}
|
|
63
|
-
return
|
|
56
|
+
return payload;
|
|
64
57
|
}
|
|
65
58
|
async function requestInvoice(callbackUrl, amountMsats, fetchFn) {
|
|
66
59
|
const callback = new URL(callbackUrl);
|
|
@@ -97,6 +90,11 @@ function assertAmountRange(amountMsats, minSendable, maxSendable) {
|
|
|
97
90
|
throw new LniError('InvalidInput', `Amount ${amountMsats} msats exceeds maximum ${maxSendable} msats`);
|
|
98
91
|
}
|
|
99
92
|
}
|
|
93
|
+
async function resolveViaLnurlPay(url, amountMsats, fetchFn) {
|
|
94
|
+
const lnurlPay = await fetchLnurlPay(url, fetchFn);
|
|
95
|
+
assertAmountRange(amountMsats, lnurlPay.minSendable, lnurlPay.maxSendable);
|
|
96
|
+
return requestInvoice(lnurlPay.callback, amountMsats, fetchFn);
|
|
97
|
+
}
|
|
100
98
|
export async function resolveToBolt11(destination, amountMsats, options) {
|
|
101
99
|
const fetchFn = resolveFetch(options?.fetch);
|
|
102
100
|
const destinationType = detectPaymentType(destination);
|
|
@@ -111,14 +109,10 @@ export async function resolveToBolt11(destination, amountMsats, options) {
|
|
|
111
109
|
}
|
|
112
110
|
if (destinationType === 'lightning_address') {
|
|
113
111
|
const { user, domain } = parseLightningAddress(destination.trim());
|
|
114
|
-
|
|
115
|
-
assertAmountRange(amountMsats, lnurlPay.minSendable, lnurlPay.maxSendable);
|
|
116
|
-
return requestInvoice(lnurlPay.callback, amountMsats, fetchFn);
|
|
112
|
+
return resolveViaLnurlPay(lightningAddressToUrl(user, domain), amountMsats, fetchFn);
|
|
117
113
|
}
|
|
118
114
|
const lnurl = decodeLnurl(destination.trim());
|
|
119
|
-
|
|
120
|
-
assertAmountRange(amountMsats, lnurlPay.minSendable, lnurlPay.maxSendable);
|
|
121
|
-
return requestInvoice(lnurlPay.callback, amountMsats, fetchFn);
|
|
115
|
+
return resolveViaLnurlPay(lnurl, amountMsats, fetchFn);
|
|
122
116
|
}
|
|
123
117
|
export async function getPaymentInfo(destination, amountMsats, options) {
|
|
124
118
|
const fetchFn = resolveFetch(options?.fetch);
|