@greenlightcln/glsdk 0.0.0 → 0.0.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/index.d.ts +127 -0
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.js +319 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +1 -1
package/index.d.ts
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
/* auto-generated by NAPI-RS */
|
|
5
|
+
|
|
6
|
+
export interface ReceiveResponse {
|
|
7
|
+
bolt11: string
|
|
8
|
+
}
|
|
9
|
+
export interface SendResponse {
|
|
10
|
+
status: number
|
|
11
|
+
preimage: Buffer
|
|
12
|
+
/** Amount in millisatoshis (as i64 for JS compatibility) */
|
|
13
|
+
amountMsat: number
|
|
14
|
+
/** Amount sent in millisatoshis (as i64 for JS compatibility) */
|
|
15
|
+
amountSentMsat: number
|
|
16
|
+
parts: number
|
|
17
|
+
}
|
|
18
|
+
export interface OnchainSendResponse {
|
|
19
|
+
tx: Buffer
|
|
20
|
+
txid: Buffer
|
|
21
|
+
psbt: string
|
|
22
|
+
}
|
|
23
|
+
export interface OnchainReceiveResponse {
|
|
24
|
+
bech32: string
|
|
25
|
+
p2Tr: string
|
|
26
|
+
}
|
|
27
|
+
export declare class Credentials {
|
|
28
|
+
/** Load credentials from raw bytes */
|
|
29
|
+
static load(raw: Buffer): Promise<Credentials>
|
|
30
|
+
/** Save credentials to raw bytes */
|
|
31
|
+
save(): Promise<Buffer>
|
|
32
|
+
}
|
|
33
|
+
export declare class Scheduler {
|
|
34
|
+
/**
|
|
35
|
+
* Create a new scheduler client
|
|
36
|
+
*
|
|
37
|
+
* # Arguments
|
|
38
|
+
* * `network` - Network name ("bitcoin" or "regtest")
|
|
39
|
+
*/
|
|
40
|
+
constructor(network: string)
|
|
41
|
+
/**
|
|
42
|
+
* Register a new node with the scheduler
|
|
43
|
+
*
|
|
44
|
+
* # Arguments
|
|
45
|
+
* * `signer` - The signer instance
|
|
46
|
+
* * `code` - Optional invite code
|
|
47
|
+
*/
|
|
48
|
+
register(signer: Signer, code?: string | undefined | null): Promise<Credentials>
|
|
49
|
+
/**
|
|
50
|
+
* Recover node credentials
|
|
51
|
+
*
|
|
52
|
+
* # Arguments
|
|
53
|
+
* * `signer` - The signer instance
|
|
54
|
+
*/
|
|
55
|
+
recover(signer: Signer): Promise<Credentials>
|
|
56
|
+
}
|
|
57
|
+
export declare class Signer {
|
|
58
|
+
/**
|
|
59
|
+
* Create a new signer from a BIP39 mnemonic phrase
|
|
60
|
+
*
|
|
61
|
+
* # Arguments
|
|
62
|
+
* * `phrase` - BIP39 mnemonic phrase (12 or 24 words)
|
|
63
|
+
*/
|
|
64
|
+
constructor(phrase: string)
|
|
65
|
+
/**
|
|
66
|
+
* Authenticate the signer with credentials
|
|
67
|
+
*
|
|
68
|
+
* # Arguments
|
|
69
|
+
* * `credentials` - Device credentials from registration
|
|
70
|
+
*/
|
|
71
|
+
authenticate(credentials: Credentials): Promise<Signer>
|
|
72
|
+
/**
|
|
73
|
+
* Start the signer's background task
|
|
74
|
+
* Returns a handle to control the signer
|
|
75
|
+
*/
|
|
76
|
+
start(): Promise<Handle>
|
|
77
|
+
/**
|
|
78
|
+
* Get the node ID for this signer
|
|
79
|
+
* (stays sync — pure in-memory computation, no I/O)
|
|
80
|
+
*/
|
|
81
|
+
nodeId(): Buffer
|
|
82
|
+
}
|
|
83
|
+
export declare class Handle {
|
|
84
|
+
/**
|
|
85
|
+
* Stop the signer's background task
|
|
86
|
+
* (stays sync — just sends a stop signal)
|
|
87
|
+
*/
|
|
88
|
+
stop(): void
|
|
89
|
+
}
|
|
90
|
+
export declare class Node {
|
|
91
|
+
/**
|
|
92
|
+
* Create a new node connection
|
|
93
|
+
*
|
|
94
|
+
* # Arguments
|
|
95
|
+
* * `credentials` - Device credentials
|
|
96
|
+
*/
|
|
97
|
+
constructor(credentials: Credentials)
|
|
98
|
+
/** Stop the node if it is currently running */
|
|
99
|
+
stop(): Promise<void>
|
|
100
|
+
/**
|
|
101
|
+
* Receive a payment (generate invoice with JIT channel support)
|
|
102
|
+
*
|
|
103
|
+
* # Arguments
|
|
104
|
+
* * `label` - Unique label for this invoice
|
|
105
|
+
* * `description` - Invoice description
|
|
106
|
+
* * `amount_msat` - Optional amount in millisatoshis
|
|
107
|
+
*/
|
|
108
|
+
receive(label: string, description: string, amountMsat?: number | undefined | null): Promise<ReceiveResponse>
|
|
109
|
+
/**
|
|
110
|
+
* Send a payment
|
|
111
|
+
*
|
|
112
|
+
* # Arguments
|
|
113
|
+
* * `invoice` - BOLT11 invoice string
|
|
114
|
+
* * `amount_msat` - Optional amount for zero-amount invoices
|
|
115
|
+
*/
|
|
116
|
+
send(invoice: string, amountMsat?: number | undefined | null): Promise<SendResponse>
|
|
117
|
+
/**
|
|
118
|
+
* Send an on-chain transaction
|
|
119
|
+
*
|
|
120
|
+
* # Arguments
|
|
121
|
+
* * `destination` - Bitcoin address
|
|
122
|
+
* * `amount_or_all` - Amount (e.g., "10000sat", "1000msat") or "all"
|
|
123
|
+
*/
|
|
124
|
+
onchainSend(destination: string, amountOrAll: string): Promise<OnchainSendResponse>
|
|
125
|
+
/** Generate a new on-chain address */
|
|
126
|
+
onchainReceive(): Promise<OnchainReceiveResponse>
|
|
127
|
+
}
|
|
Binary file
|
|
Binary file
|
package/index.js
ADDED
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/* prettier-ignore */
|
|
4
|
+
|
|
5
|
+
/* auto-generated by NAPI-RS */
|
|
6
|
+
|
|
7
|
+
const { existsSync, readFileSync } = require('fs')
|
|
8
|
+
const { join } = require('path')
|
|
9
|
+
|
|
10
|
+
const { platform, arch } = process
|
|
11
|
+
|
|
12
|
+
let nativeBinding = null
|
|
13
|
+
let localFileExisted = false
|
|
14
|
+
let loadError = null
|
|
15
|
+
|
|
16
|
+
function isMusl() {
|
|
17
|
+
// For Node 10
|
|
18
|
+
if (!process.report || typeof process.report.getReport !== 'function') {
|
|
19
|
+
try {
|
|
20
|
+
const lddPath = require('child_process').execSync('which ldd').toString().trim()
|
|
21
|
+
return readFileSync(lddPath, 'utf8').includes('musl')
|
|
22
|
+
} catch (e) {
|
|
23
|
+
return true
|
|
24
|
+
}
|
|
25
|
+
} else {
|
|
26
|
+
const { glibcVersionRuntime } = process.report.getReport().header
|
|
27
|
+
return !glibcVersionRuntime
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
switch (platform) {
|
|
32
|
+
case 'android':
|
|
33
|
+
switch (arch) {
|
|
34
|
+
case 'arm64':
|
|
35
|
+
localFileExisted = existsSync(join(__dirname, 'index.android-arm64.node'))
|
|
36
|
+
try {
|
|
37
|
+
if (localFileExisted) {
|
|
38
|
+
nativeBinding = require('./index.android-arm64.node')
|
|
39
|
+
} else {
|
|
40
|
+
nativeBinding = require('@greenlightcln/glsdk-android-arm64')
|
|
41
|
+
}
|
|
42
|
+
} catch (e) {
|
|
43
|
+
loadError = e
|
|
44
|
+
}
|
|
45
|
+
break
|
|
46
|
+
case 'arm':
|
|
47
|
+
localFileExisted = existsSync(join(__dirname, 'index.android-arm-eabi.node'))
|
|
48
|
+
try {
|
|
49
|
+
if (localFileExisted) {
|
|
50
|
+
nativeBinding = require('./index.android-arm-eabi.node')
|
|
51
|
+
} else {
|
|
52
|
+
nativeBinding = require('@greenlightcln/glsdk-android-arm-eabi')
|
|
53
|
+
}
|
|
54
|
+
} catch (e) {
|
|
55
|
+
loadError = e
|
|
56
|
+
}
|
|
57
|
+
break
|
|
58
|
+
default:
|
|
59
|
+
throw new Error(`Unsupported architecture on Android ${arch}`)
|
|
60
|
+
}
|
|
61
|
+
break
|
|
62
|
+
case 'win32':
|
|
63
|
+
switch (arch) {
|
|
64
|
+
case 'x64':
|
|
65
|
+
localFileExisted = existsSync(
|
|
66
|
+
join(__dirname, 'index.win32-x64-msvc.node')
|
|
67
|
+
)
|
|
68
|
+
try {
|
|
69
|
+
if (localFileExisted) {
|
|
70
|
+
nativeBinding = require('./index.win32-x64-msvc.node')
|
|
71
|
+
} else {
|
|
72
|
+
nativeBinding = require('@greenlightcln/glsdk-win32-x64-msvc')
|
|
73
|
+
}
|
|
74
|
+
} catch (e) {
|
|
75
|
+
loadError = e
|
|
76
|
+
}
|
|
77
|
+
break
|
|
78
|
+
case 'ia32':
|
|
79
|
+
localFileExisted = existsSync(
|
|
80
|
+
join(__dirname, 'index.win32-ia32-msvc.node')
|
|
81
|
+
)
|
|
82
|
+
try {
|
|
83
|
+
if (localFileExisted) {
|
|
84
|
+
nativeBinding = require('./index.win32-ia32-msvc.node')
|
|
85
|
+
} else {
|
|
86
|
+
nativeBinding = require('@greenlightcln/glsdk-win32-ia32-msvc')
|
|
87
|
+
}
|
|
88
|
+
} catch (e) {
|
|
89
|
+
loadError = e
|
|
90
|
+
}
|
|
91
|
+
break
|
|
92
|
+
case 'arm64':
|
|
93
|
+
localFileExisted = existsSync(
|
|
94
|
+
join(__dirname, 'index.win32-arm64-msvc.node')
|
|
95
|
+
)
|
|
96
|
+
try {
|
|
97
|
+
if (localFileExisted) {
|
|
98
|
+
nativeBinding = require('./index.win32-arm64-msvc.node')
|
|
99
|
+
} else {
|
|
100
|
+
nativeBinding = require('@greenlightcln/glsdk-win32-arm64-msvc')
|
|
101
|
+
}
|
|
102
|
+
} catch (e) {
|
|
103
|
+
loadError = e
|
|
104
|
+
}
|
|
105
|
+
break
|
|
106
|
+
default:
|
|
107
|
+
throw new Error(`Unsupported architecture on Windows: ${arch}`)
|
|
108
|
+
}
|
|
109
|
+
break
|
|
110
|
+
case 'darwin':
|
|
111
|
+
localFileExisted = existsSync(join(__dirname, 'index.darwin-universal.node'))
|
|
112
|
+
try {
|
|
113
|
+
if (localFileExisted) {
|
|
114
|
+
nativeBinding = require('./index.darwin-universal.node')
|
|
115
|
+
} else {
|
|
116
|
+
nativeBinding = require('@greenlightcln/glsdk-darwin-universal')
|
|
117
|
+
}
|
|
118
|
+
break
|
|
119
|
+
} catch {}
|
|
120
|
+
switch (arch) {
|
|
121
|
+
case 'x64':
|
|
122
|
+
localFileExisted = existsSync(join(__dirname, 'index.darwin-x64.node'))
|
|
123
|
+
try {
|
|
124
|
+
if (localFileExisted) {
|
|
125
|
+
nativeBinding = require('./index.darwin-x64.node')
|
|
126
|
+
} else {
|
|
127
|
+
nativeBinding = require('@greenlightcln/glsdk-darwin-x64')
|
|
128
|
+
}
|
|
129
|
+
} catch (e) {
|
|
130
|
+
loadError = e
|
|
131
|
+
}
|
|
132
|
+
break
|
|
133
|
+
case 'arm64':
|
|
134
|
+
localFileExisted = existsSync(
|
|
135
|
+
join(__dirname, 'index.darwin-arm64.node')
|
|
136
|
+
)
|
|
137
|
+
try {
|
|
138
|
+
if (localFileExisted) {
|
|
139
|
+
nativeBinding = require('./index.darwin-arm64.node')
|
|
140
|
+
} else {
|
|
141
|
+
nativeBinding = require('@greenlightcln/glsdk-darwin-arm64')
|
|
142
|
+
}
|
|
143
|
+
} catch (e) {
|
|
144
|
+
loadError = e
|
|
145
|
+
}
|
|
146
|
+
break
|
|
147
|
+
default:
|
|
148
|
+
throw new Error(`Unsupported architecture on macOS: ${arch}`)
|
|
149
|
+
}
|
|
150
|
+
break
|
|
151
|
+
case 'freebsd':
|
|
152
|
+
if (arch !== 'x64') {
|
|
153
|
+
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
|
|
154
|
+
}
|
|
155
|
+
localFileExisted = existsSync(join(__dirname, 'index.freebsd-x64.node'))
|
|
156
|
+
try {
|
|
157
|
+
if (localFileExisted) {
|
|
158
|
+
nativeBinding = require('./index.freebsd-x64.node')
|
|
159
|
+
} else {
|
|
160
|
+
nativeBinding = require('@greenlightcln/glsdk-freebsd-x64')
|
|
161
|
+
}
|
|
162
|
+
} catch (e) {
|
|
163
|
+
loadError = e
|
|
164
|
+
}
|
|
165
|
+
break
|
|
166
|
+
case 'linux':
|
|
167
|
+
switch (arch) {
|
|
168
|
+
case 'x64':
|
|
169
|
+
if (isMusl()) {
|
|
170
|
+
localFileExisted = existsSync(
|
|
171
|
+
join(__dirname, 'index.linux-x64-musl.node')
|
|
172
|
+
)
|
|
173
|
+
try {
|
|
174
|
+
if (localFileExisted) {
|
|
175
|
+
nativeBinding = require('./index.linux-x64-musl.node')
|
|
176
|
+
} else {
|
|
177
|
+
nativeBinding = require('@greenlightcln/glsdk-linux-x64-musl')
|
|
178
|
+
}
|
|
179
|
+
} catch (e) {
|
|
180
|
+
loadError = e
|
|
181
|
+
}
|
|
182
|
+
} else {
|
|
183
|
+
localFileExisted = existsSync(
|
|
184
|
+
join(__dirname, 'index.linux-x64-gnu.node')
|
|
185
|
+
)
|
|
186
|
+
try {
|
|
187
|
+
if (localFileExisted) {
|
|
188
|
+
nativeBinding = require('./index.linux-x64-gnu.node')
|
|
189
|
+
} else {
|
|
190
|
+
nativeBinding = require('@greenlightcln/glsdk-linux-x64-gnu')
|
|
191
|
+
}
|
|
192
|
+
} catch (e) {
|
|
193
|
+
loadError = e
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
break
|
|
197
|
+
case 'arm64':
|
|
198
|
+
if (isMusl()) {
|
|
199
|
+
localFileExisted = existsSync(
|
|
200
|
+
join(__dirname, 'index.linux-arm64-musl.node')
|
|
201
|
+
)
|
|
202
|
+
try {
|
|
203
|
+
if (localFileExisted) {
|
|
204
|
+
nativeBinding = require('./index.linux-arm64-musl.node')
|
|
205
|
+
} else {
|
|
206
|
+
nativeBinding = require('@greenlightcln/glsdk-linux-arm64-musl')
|
|
207
|
+
}
|
|
208
|
+
} catch (e) {
|
|
209
|
+
loadError = e
|
|
210
|
+
}
|
|
211
|
+
} else {
|
|
212
|
+
localFileExisted = existsSync(
|
|
213
|
+
join(__dirname, 'index.linux-arm64-gnu.node')
|
|
214
|
+
)
|
|
215
|
+
try {
|
|
216
|
+
if (localFileExisted) {
|
|
217
|
+
nativeBinding = require('./index.linux-arm64-gnu.node')
|
|
218
|
+
} else {
|
|
219
|
+
nativeBinding = require('@greenlightcln/glsdk-linux-arm64-gnu')
|
|
220
|
+
}
|
|
221
|
+
} catch (e) {
|
|
222
|
+
loadError = e
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
break
|
|
226
|
+
case 'arm':
|
|
227
|
+
if (isMusl()) {
|
|
228
|
+
localFileExisted = existsSync(
|
|
229
|
+
join(__dirname, 'index.linux-arm-musleabihf.node')
|
|
230
|
+
)
|
|
231
|
+
try {
|
|
232
|
+
if (localFileExisted) {
|
|
233
|
+
nativeBinding = require('./index.linux-arm-musleabihf.node')
|
|
234
|
+
} else {
|
|
235
|
+
nativeBinding = require('@greenlightcln/glsdk-linux-arm-musleabihf')
|
|
236
|
+
}
|
|
237
|
+
} catch (e) {
|
|
238
|
+
loadError = e
|
|
239
|
+
}
|
|
240
|
+
} else {
|
|
241
|
+
localFileExisted = existsSync(
|
|
242
|
+
join(__dirname, 'index.linux-arm-gnueabihf.node')
|
|
243
|
+
)
|
|
244
|
+
try {
|
|
245
|
+
if (localFileExisted) {
|
|
246
|
+
nativeBinding = require('./index.linux-arm-gnueabihf.node')
|
|
247
|
+
} else {
|
|
248
|
+
nativeBinding = require('@greenlightcln/glsdk-linux-arm-gnueabihf')
|
|
249
|
+
}
|
|
250
|
+
} catch (e) {
|
|
251
|
+
loadError = e
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
break
|
|
255
|
+
case 'riscv64':
|
|
256
|
+
if (isMusl()) {
|
|
257
|
+
localFileExisted = existsSync(
|
|
258
|
+
join(__dirname, 'index.linux-riscv64-musl.node')
|
|
259
|
+
)
|
|
260
|
+
try {
|
|
261
|
+
if (localFileExisted) {
|
|
262
|
+
nativeBinding = require('./index.linux-riscv64-musl.node')
|
|
263
|
+
} else {
|
|
264
|
+
nativeBinding = require('@greenlightcln/glsdk-linux-riscv64-musl')
|
|
265
|
+
}
|
|
266
|
+
} catch (e) {
|
|
267
|
+
loadError = e
|
|
268
|
+
}
|
|
269
|
+
} else {
|
|
270
|
+
localFileExisted = existsSync(
|
|
271
|
+
join(__dirname, 'index.linux-riscv64-gnu.node')
|
|
272
|
+
)
|
|
273
|
+
try {
|
|
274
|
+
if (localFileExisted) {
|
|
275
|
+
nativeBinding = require('./index.linux-riscv64-gnu.node')
|
|
276
|
+
} else {
|
|
277
|
+
nativeBinding = require('@greenlightcln/glsdk-linux-riscv64-gnu')
|
|
278
|
+
}
|
|
279
|
+
} catch (e) {
|
|
280
|
+
loadError = e
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
break
|
|
284
|
+
case 's390x':
|
|
285
|
+
localFileExisted = existsSync(
|
|
286
|
+
join(__dirname, 'index.linux-s390x-gnu.node')
|
|
287
|
+
)
|
|
288
|
+
try {
|
|
289
|
+
if (localFileExisted) {
|
|
290
|
+
nativeBinding = require('./index.linux-s390x-gnu.node')
|
|
291
|
+
} else {
|
|
292
|
+
nativeBinding = require('@greenlightcln/glsdk-linux-s390x-gnu')
|
|
293
|
+
}
|
|
294
|
+
} catch (e) {
|
|
295
|
+
loadError = e
|
|
296
|
+
}
|
|
297
|
+
break
|
|
298
|
+
default:
|
|
299
|
+
throw new Error(`Unsupported architecture on Linux: ${arch}`)
|
|
300
|
+
}
|
|
301
|
+
break
|
|
302
|
+
default:
|
|
303
|
+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (!nativeBinding) {
|
|
307
|
+
if (loadError) {
|
|
308
|
+
throw loadError
|
|
309
|
+
}
|
|
310
|
+
throw new Error(`Failed to load native binding`)
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
const { Credentials, Scheduler, Signer, Handle, Node } = nativeBinding
|
|
314
|
+
|
|
315
|
+
module.exports.Credentials = Credentials
|
|
316
|
+
module.exports.Scheduler = Scheduler
|
|
317
|
+
module.exports.Signer = Signer
|
|
318
|
+
module.exports.Handle = Handle
|
|
319
|
+
module.exports.Node = Node
|
|
Binary file
|
|
Binary file
|
|
Binary file
|