@fedimint/core-web 0.0.6 → 0.0.7
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 +6 -71
- package/dist/{FedimintWallet.d.ts → dts/FedimintWallet.d.ts} +2 -2
- package/dist/dts/FedimintWallet.d.ts.map +1 -0
- package/dist/dts/index.d.ts +3 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/{services → dts/services}/BalanceService.d.ts +5 -4
- package/dist/dts/services/BalanceService.d.ts.map +1 -0
- package/dist/{services → dts/services}/FederationService.d.ts +1 -1
- package/dist/dts/services/FederationService.d.ts.map +1 -0
- package/dist/dts/services/LightningService.d.ts +21 -0
- package/dist/dts/services/LightningService.d.ts.map +1 -0
- package/dist/{services → dts/services}/MintService.d.ts +6 -5
- package/dist/dts/services/MintService.d.ts.map +1 -0
- package/dist/{services → dts/services}/RecoveryService.d.ts +1 -1
- package/dist/dts/services/RecoveryService.d.ts.map +1 -0
- package/dist/dts/services/index.d.ts.map +1 -0
- package/dist/dts/types/index.d.ts +4 -0
- package/dist/dts/types/index.d.ts.map +1 -0
- package/dist/dts/types/utils.d.ts +16 -0
- package/dist/dts/types/utils.d.ts.map +1 -0
- package/dist/{types → dts/types}/wallet.d.ts +4 -14
- package/dist/dts/types/wallet.d.ts.map +1 -0
- package/dist/dts/types/worker.d.ts +4 -0
- package/dist/dts/types/worker.d.ts.map +1 -0
- package/dist/dts/utils/logger.d.ts.map +1 -0
- package/dist/{worker → dts/worker}/WorkerClient.d.ts +3 -3
- package/dist/dts/worker/WorkerClient.d.ts.map +1 -0
- package/dist/dts/worker/index.d.ts.map +1 -0
- package/dist/index.d.ts +298 -5
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +8 -5
- package/src/FedimintWallet.ts +10 -10
- package/src/index.ts +2 -22
- package/src/services/BalanceService.ts +5 -4
- package/src/services/FederationService.ts +1 -1
- package/src/services/LightningService.test.ts +83 -37
- package/src/services/LightningService.ts +68 -40
- package/src/services/MintService.test.ts +8 -1
- package/src/services/MintService.ts +6 -5
- package/src/services/RecoveryService.ts +1 -1
- package/src/test/crypto.ts +44 -0
- package/src/types/index.ts +3 -0
- package/src/types/utils.ts +25 -0
- package/src/types/wallet.ts +4 -23
- package/src/types/worker.ts +12 -0
- package/src/worker/WorkerClient.ts +25 -18
- package/src/worker/worker.test.ts +1 -1
- package/dist/FedimintWallet.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/services/BalanceService.d.ts.map +0 -1
- package/dist/services/FederationService.d.ts.map +0 -1
- package/dist/services/LightningService.d.ts +0 -18
- package/dist/services/LightningService.d.ts.map +0 -1
- package/dist/services/MintService.d.ts.map +0 -1
- package/dist/services/RecoveryService.d.ts.map +0 -1
- package/dist/services/index.d.ts.map +0 -1
- package/dist/types/wallet.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/worker/WorkerClient.d.ts.map +0 -1
- package/dist/worker/index.d.ts.map +0 -1
- /package/dist/{services → dts/services}/index.d.ts +0 -0
- /package/dist/{utils → dts/utils}/logger.d.ts +0 -0
- /package/dist/{worker → dts/worker}/index.d.ts +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { expect } from 'vitest'
|
|
2
2
|
import { walletTest } from '../test/setupTests'
|
|
3
|
+
import { keyPair } from '../test/crypto'
|
|
3
4
|
|
|
4
5
|
walletTest(
|
|
5
6
|
'createInvoice should create a bolt11 invoice',
|
|
@@ -25,6 +26,18 @@ walletTest(
|
|
|
25
26
|
},
|
|
26
27
|
)
|
|
27
28
|
|
|
29
|
+
walletTest('createInvoice with expiry', async ({ wallet }) => {
|
|
30
|
+
expect(wallet).toBeDefined()
|
|
31
|
+
expect(wallet.isOpen()).toBe(true)
|
|
32
|
+
|
|
33
|
+
const invoice = await wallet.lightning.createInvoice(100, 'test', 1000, {})
|
|
34
|
+
expect(invoice).toBeDefined()
|
|
35
|
+
expect(invoice).toMatchObject({
|
|
36
|
+
invoice: expect.any(String),
|
|
37
|
+
operation_id: expect.any(String),
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
|
|
28
41
|
walletTest(
|
|
29
42
|
'listGateways should return a list of gateways',
|
|
30
43
|
async ({ wallet }) => {
|
|
@@ -74,42 +87,6 @@ walletTest('getGateway should return a gateway', async ({ wallet }) => {
|
|
|
74
87
|
})
|
|
75
88
|
})
|
|
76
89
|
|
|
77
|
-
walletTest(
|
|
78
|
-
'createInvoiceWithGateway should create a bolt11 invoice with a gateway',
|
|
79
|
-
async ({ wallet }) => {
|
|
80
|
-
expect(wallet).toBeDefined()
|
|
81
|
-
expect(wallet.isOpen()).toBe(true)
|
|
82
|
-
|
|
83
|
-
const gateways = await wallet.lightning.listGateways()
|
|
84
|
-
const gateway = gateways[0]
|
|
85
|
-
expect(gateway).toBeDefined()
|
|
86
|
-
|
|
87
|
-
const counterBefore = wallet.testing.getRequestCounter()
|
|
88
|
-
const invoice = await wallet.lightning.createInvoiceWithGateway(
|
|
89
|
-
100,
|
|
90
|
-
'test',
|
|
91
|
-
null,
|
|
92
|
-
{},
|
|
93
|
-
gateway.info,
|
|
94
|
-
)
|
|
95
|
-
expect(invoice).toBeDefined()
|
|
96
|
-
expect(invoice).toMatchObject({
|
|
97
|
-
invoice: expect.any(String),
|
|
98
|
-
operation_id: expect.any(String),
|
|
99
|
-
})
|
|
100
|
-
expect(wallet.testing.getRequestCounter()).toBe(counterBefore + 1)
|
|
101
|
-
await expect(
|
|
102
|
-
wallet.lightning.createInvoiceWithGateway(
|
|
103
|
-
100,
|
|
104
|
-
'test',
|
|
105
|
-
1000,
|
|
106
|
-
{},
|
|
107
|
-
gateway.info,
|
|
108
|
-
),
|
|
109
|
-
).resolves.toBeDefined()
|
|
110
|
-
},
|
|
111
|
-
)
|
|
112
|
-
|
|
113
90
|
walletTest(
|
|
114
91
|
'payInvoice should throw on insufficient funds',
|
|
115
92
|
async ({ wallet }) => {
|
|
@@ -126,7 +103,7 @@ walletTest(
|
|
|
126
103
|
const counterBefore = wallet.testing.getRequestCounter()
|
|
127
104
|
// Insufficient funds
|
|
128
105
|
try {
|
|
129
|
-
await wallet.lightning.payInvoice(invoice.invoice
|
|
106
|
+
await wallet.lightning.payInvoice(invoice.invoice)
|
|
130
107
|
expect.unreachable('Should throw error')
|
|
131
108
|
} catch (error) {
|
|
132
109
|
expect(error).toBeDefined()
|
|
@@ -166,3 +143,72 @@ walletTest(
|
|
|
166
143
|
})
|
|
167
144
|
},
|
|
168
145
|
)
|
|
146
|
+
|
|
147
|
+
walletTest(
|
|
148
|
+
'createInvoiceTweaked should create a bolt11 invoice with a tweaked public key',
|
|
149
|
+
async ({ wallet }) => {
|
|
150
|
+
expect(wallet).toBeDefined()
|
|
151
|
+
expect(wallet.isOpen()).toBe(true)
|
|
152
|
+
|
|
153
|
+
// Make an ephemeral key pair
|
|
154
|
+
const { publicKey, secretKey } = keyPair()
|
|
155
|
+
const tweak = 1
|
|
156
|
+
|
|
157
|
+
// Create an invoice paying to the tweaked public key
|
|
158
|
+
const invoice = await wallet.lightning.createInvoiceTweaked(
|
|
159
|
+
1000,
|
|
160
|
+
'test tweaked',
|
|
161
|
+
publicKey,
|
|
162
|
+
tweak,
|
|
163
|
+
)
|
|
164
|
+
expect(invoice).toBeDefined()
|
|
165
|
+
expect(invoice).toMatchObject({
|
|
166
|
+
invoice: expect.any(String),
|
|
167
|
+
operation_id: expect.any(String),
|
|
168
|
+
})
|
|
169
|
+
},
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
walletTest(
|
|
173
|
+
'scanReceivesForTweaks should return the operation id, ',
|
|
174
|
+
async ({ wallet }) => {
|
|
175
|
+
expect(wallet).toBeDefined()
|
|
176
|
+
expect(wallet.isOpen()).toBe(true)
|
|
177
|
+
|
|
178
|
+
// Make an ephemeral key pair
|
|
179
|
+
const { publicKey, secretKey } = keyPair()
|
|
180
|
+
const tweak = 1
|
|
181
|
+
|
|
182
|
+
// Create an invoice paying to the tweaked public key
|
|
183
|
+
const invoice = await wallet.lightning.createInvoiceTweaked(
|
|
184
|
+
1000,
|
|
185
|
+
'test tweaked',
|
|
186
|
+
publicKey,
|
|
187
|
+
tweak,
|
|
188
|
+
)
|
|
189
|
+
await expect(
|
|
190
|
+
wallet.testing.payWithFaucet(invoice.invoice),
|
|
191
|
+
).resolves.toBeDefined()
|
|
192
|
+
|
|
193
|
+
// Scan for the receive
|
|
194
|
+
const operationIds = await wallet.lightning.scanReceivesForTweaks(
|
|
195
|
+
secretKey,
|
|
196
|
+
[tweak],
|
|
197
|
+
{},
|
|
198
|
+
)
|
|
199
|
+
expect(operationIds).toBeDefined()
|
|
200
|
+
expect(operationIds).toHaveLength(1)
|
|
201
|
+
|
|
202
|
+
// Subscribe to claiming the receive
|
|
203
|
+
const subscription = await wallet.lightning.subscribeLnClaim(
|
|
204
|
+
operationIds[0],
|
|
205
|
+
(state) => {
|
|
206
|
+
expect(state).toBeDefined()
|
|
207
|
+
expect(state).toMatchObject({
|
|
208
|
+
state: 'claimed',
|
|
209
|
+
})
|
|
210
|
+
},
|
|
211
|
+
)
|
|
212
|
+
expect(subscription).toBeDefined()
|
|
213
|
+
},
|
|
214
|
+
)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WorkerClient } from '../worker'
|
|
2
|
-
import {
|
|
2
|
+
import type {
|
|
3
3
|
CreateBolt11Response,
|
|
4
4
|
GatewayInfo,
|
|
5
5
|
JSONObject,
|
|
@@ -7,75 +7,103 @@ import {
|
|
|
7
7
|
LightningGateway,
|
|
8
8
|
LnPayState,
|
|
9
9
|
LnReceiveState,
|
|
10
|
+
MSats,
|
|
10
11
|
OutgoingLightningPayment,
|
|
11
|
-
} from '../types
|
|
12
|
+
} from '../types'
|
|
12
13
|
|
|
13
14
|
export class LightningService {
|
|
14
15
|
constructor(private client: WorkerClient) {}
|
|
15
16
|
|
|
16
|
-
async
|
|
17
|
-
amount:
|
|
17
|
+
async createInvoice(
|
|
18
|
+
amount: MSats,
|
|
18
19
|
description: string,
|
|
19
|
-
expiryTime
|
|
20
|
-
extraMeta
|
|
21
|
-
gatewayInfo
|
|
22
|
-
) {
|
|
20
|
+
expiryTime?: number, // in seconds
|
|
21
|
+
extraMeta?: JSONObject,
|
|
22
|
+
gatewayInfo?: GatewayInfo,
|
|
23
|
+
): Promise<CreateBolt11Response> {
|
|
24
|
+
const gateway = gatewayInfo ?? (await this._getDefaultGatewayInfo())
|
|
23
25
|
return await this.client.rpcSingle('ln', 'create_bolt11_invoice', {
|
|
24
26
|
amount,
|
|
25
27
|
description,
|
|
26
|
-
expiry_time: expiryTime,
|
|
27
|
-
extra_meta: extraMeta,
|
|
28
|
-
gateway
|
|
28
|
+
expiry_time: expiryTime ?? null,
|
|
29
|
+
extra_meta: extraMeta ?? {},
|
|
30
|
+
gateway,
|
|
29
31
|
})
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
async
|
|
33
|
-
amount:
|
|
34
|
+
async createInvoiceTweaked(
|
|
35
|
+
amount: MSats,
|
|
34
36
|
description: string,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
tweakKey: string,
|
|
38
|
+
index: number,
|
|
39
|
+
expiryTime?: number, // in seconds
|
|
40
|
+
gatewayInfo?: GatewayInfo,
|
|
41
|
+
extraMeta?: JSONObject,
|
|
37
42
|
): Promise<CreateBolt11Response> {
|
|
38
|
-
await this.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
const gateway = gatewayInfo ?? (await this._getDefaultGatewayInfo())
|
|
44
|
+
return await this.client.rpcSingle(
|
|
45
|
+
'ln',
|
|
46
|
+
'create_bolt11_invoice_for_user_tweaked',
|
|
47
|
+
{
|
|
48
|
+
amount,
|
|
49
|
+
description,
|
|
50
|
+
expiry_time: expiryTime ?? null,
|
|
51
|
+
user_key: tweakKey,
|
|
52
|
+
index,
|
|
53
|
+
extra_meta: extraMeta ?? {},
|
|
54
|
+
gateway,
|
|
55
|
+
},
|
|
56
|
+
)
|
|
47
57
|
}
|
|
48
58
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
// Returns the operation ids of payments received to the tweaks of the user secret key
|
|
60
|
+
async scanReceivesForTweaks(
|
|
61
|
+
tweakKey: string,
|
|
62
|
+
indices: number[],
|
|
63
|
+
extraMeta?: JSONObject,
|
|
64
|
+
): Promise<string[]> {
|
|
65
|
+
return await this.client.rpcSingle('ln', 'scan_receive_for_user_tweaked', {
|
|
66
|
+
user_key: tweakKey,
|
|
67
|
+
indices,
|
|
68
|
+
extra_meta: extraMeta ?? {},
|
|
58
69
|
})
|
|
59
70
|
}
|
|
60
71
|
|
|
61
|
-
private async _getDefaultGatewayInfo(): Promise<
|
|
72
|
+
private async _getDefaultGatewayInfo(): Promise<GatewayInfo> {
|
|
73
|
+
await this.updateGatewayCache()
|
|
62
74
|
const gateways = await this.listGateways()
|
|
63
|
-
return gateways[0]
|
|
75
|
+
return gateways[0]?.info
|
|
64
76
|
}
|
|
65
77
|
|
|
66
78
|
async payInvoice(
|
|
67
79
|
invoice: string,
|
|
68
|
-
|
|
80
|
+
gatewayInfo?: GatewayInfo,
|
|
81
|
+
extraMeta?: JSONObject,
|
|
69
82
|
): Promise<OutgoingLightningPayment> {
|
|
70
|
-
await this.
|
|
71
|
-
const gateway = await this._getDefaultGatewayInfo()
|
|
83
|
+
const gateway = gatewayInfo ?? (await this._getDefaultGatewayInfo())
|
|
72
84
|
return await this.client.rpcSingle('ln', 'pay_bolt11_invoice', {
|
|
73
|
-
maybe_gateway: gateway
|
|
85
|
+
maybe_gateway: gateway,
|
|
74
86
|
invoice,
|
|
75
|
-
extra_meta: extraMeta,
|
|
87
|
+
extra_meta: extraMeta ?? {},
|
|
76
88
|
})
|
|
77
89
|
}
|
|
78
90
|
|
|
91
|
+
subscribeLnClaim(
|
|
92
|
+
operationId: string,
|
|
93
|
+
onSuccess: (state: LnReceiveState) => void = () => {},
|
|
94
|
+
onError: (error: string) => void = () => {},
|
|
95
|
+
) {
|
|
96
|
+
const unsubscribe = this.client.rpcStream(
|
|
97
|
+
'ln',
|
|
98
|
+
'subscribe_ln_claim',
|
|
99
|
+
{ operation_id: operationId },
|
|
100
|
+
onSuccess,
|
|
101
|
+
onError,
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
return unsubscribe
|
|
105
|
+
}
|
|
106
|
+
|
|
79
107
|
subscribeLnPay(
|
|
80
108
|
operationId: string,
|
|
81
109
|
onSuccess: (state: LnPayState) => void = () => {},
|
|
@@ -9,7 +9,7 @@ walletTest('redeemEcash should error on invalid ecash', async ({ wallet }) => {
|
|
|
9
9
|
})
|
|
10
10
|
|
|
11
11
|
walletTest(
|
|
12
|
-
'reissueExternalNotes should
|
|
12
|
+
'reissueExternalNotes should throw if wallet is empty',
|
|
13
13
|
async ({ wallet }) => {
|
|
14
14
|
expect(wallet).toBeDefined()
|
|
15
15
|
expect(wallet.isOpen()).toBe(true)
|
|
@@ -17,3 +17,10 @@ walletTest(
|
|
|
17
17
|
await expect(wallet.mint.reissueExternalNotes('test')).rejects.toThrow()
|
|
18
18
|
},
|
|
19
19
|
)
|
|
20
|
+
|
|
21
|
+
walletTest('spendNotes should throw if wallet is empty', async ({ wallet }) => {
|
|
22
|
+
expect(wallet).toBeDefined()
|
|
23
|
+
expect(wallet.isOpen()).toBe(true)
|
|
24
|
+
|
|
25
|
+
await expect(wallet.mint.spendNotes(100)).rejects.toThrow()
|
|
26
|
+
})
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { WorkerClient } from '../worker'
|
|
2
|
-
import {
|
|
2
|
+
import type {
|
|
3
3
|
Duration,
|
|
4
4
|
JSONObject,
|
|
5
5
|
JSONValue,
|
|
6
6
|
MintSpendNotesResponse,
|
|
7
|
+
MSats,
|
|
7
8
|
ReissueExternalNotesState,
|
|
8
|
-
} from '../types
|
|
9
|
+
} from '../types'
|
|
9
10
|
|
|
10
11
|
export class MintService {
|
|
11
12
|
constructor(private client: WorkerClient) {}
|
|
@@ -44,12 +45,12 @@ export class MintService {
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
async spendNotes(
|
|
47
|
-
minAmount:
|
|
48
|
+
minAmount: MSats,
|
|
48
49
|
// Tells the wallet to automatically try to cancel the spend if it hasn't completed
|
|
49
50
|
// after the specified number of milliseconds.
|
|
50
51
|
// If the receiver has already redeemed the notes at this time,
|
|
51
52
|
// the notes will not be cancelled
|
|
52
|
-
tryCancelAfter: number | Duration = 0,
|
|
53
|
+
tryCancelAfter: number | Duration = 0, // in seconds or Duration object
|
|
53
54
|
includeInvite: boolean = false,
|
|
54
55
|
extraMeta: JSONValue = {},
|
|
55
56
|
): Promise<MintSpendNotesResponse> {
|
|
@@ -77,7 +78,7 @@ export class MintService {
|
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
80
|
|
|
80
|
-
async
|
|
81
|
+
async parseNotes(oobNotes: string): Promise<MSats> {
|
|
81
82
|
return await this.client.rpcSingle('mint', 'validate_notes', {
|
|
82
83
|
oob_notes: oobNotes,
|
|
83
84
|
})
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as secp256k1 from 'secp256k1'
|
|
2
|
+
|
|
3
|
+
const randomBytes = (size: number): Uint8Array => {
|
|
4
|
+
const array = new Uint8Array(size)
|
|
5
|
+
window.crypto.getRandomValues(array)
|
|
6
|
+
return array
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface KeyPair {
|
|
10
|
+
secretKey: string
|
|
11
|
+
publicKey: string
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const keyPair = (secretKey?: Uint8Array): KeyPair => {
|
|
15
|
+
const privateKey: Uint8Array = secretKey
|
|
16
|
+
? validatePrivateKey(secretKey)
|
|
17
|
+
: generatePrivateKey()
|
|
18
|
+
|
|
19
|
+
const publicKey = secp256k1.publicKeyCreate(privateKey)
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
secretKey: Array.from(privateKey)
|
|
23
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
24
|
+
.join(''), // Convert Uint8Array to hex string
|
|
25
|
+
publicKey: Array.from(publicKey)
|
|
26
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
27
|
+
.join(''), // Convert Uint8Array to hex string
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const validatePrivateKey = (key: Uint8Array): Uint8Array => {
|
|
32
|
+
if (!secp256k1.privateKeyVerify(key)) {
|
|
33
|
+
throw new Error('Invalid private key provided')
|
|
34
|
+
}
|
|
35
|
+
return key
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const generatePrivateKey = (): Uint8Array => {
|
|
39
|
+
let key: Uint8Array
|
|
40
|
+
do {
|
|
41
|
+
key = randomBytes(32)
|
|
42
|
+
} while (!secp256k1.privateKeyVerify(key))
|
|
43
|
+
return key
|
|
44
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type Alias<T> = T & {}
|
|
2
|
+
type Resolve<T> = T & unknown
|
|
3
|
+
|
|
4
|
+
type Seconds = Alias<number>
|
|
5
|
+
type Nanos = Alias<number>
|
|
6
|
+
|
|
7
|
+
type Duration = {
|
|
8
|
+
nanos: Nanos
|
|
9
|
+
secs: Seconds
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
type MSats = Alias<number>
|
|
13
|
+
type Sats = Alias<number>
|
|
14
|
+
|
|
15
|
+
type JSONValue =
|
|
16
|
+
| string
|
|
17
|
+
| number
|
|
18
|
+
| boolean
|
|
19
|
+
| null
|
|
20
|
+
| { [key: string]: JSONValue }
|
|
21
|
+
| JSONValue[]
|
|
22
|
+
|
|
23
|
+
type JSONObject = Record<string, JSONValue>
|
|
24
|
+
|
|
25
|
+
export { Alias, Resolve, Duration, MSats, Sats, JSONValue, JSONObject }
|
package/src/types/wallet.ts
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
+
import { MSats, Duration, JSONValue } from './utils'
|
|
2
|
+
|
|
1
3
|
const MODULE_KINDS = ['', 'ln', 'mint'] as const
|
|
2
4
|
type ModuleKind = (typeof MODULE_KINDS)[number]
|
|
3
|
-
type JSONValue =
|
|
4
|
-
| string
|
|
5
|
-
| number
|
|
6
|
-
| boolean
|
|
7
|
-
| null
|
|
8
|
-
| { [key: string]: JSONValue }
|
|
9
|
-
| JSONValue[]
|
|
10
|
-
|
|
11
|
-
type JSONObject = Record<string, JSONValue>
|
|
12
|
-
|
|
13
5
|
type GatewayInfo = {
|
|
14
6
|
gateway_id: string
|
|
15
7
|
api: string
|
|
@@ -21,10 +13,7 @@ type GatewayInfo = {
|
|
|
21
13
|
type LightningGateway = {
|
|
22
14
|
info: GatewayInfo
|
|
23
15
|
vetted: boolean
|
|
24
|
-
ttl:
|
|
25
|
-
nanos: number
|
|
26
|
-
secs: number
|
|
27
|
-
}
|
|
16
|
+
ttl: Duration
|
|
28
17
|
}
|
|
29
18
|
|
|
30
19
|
type RouteHint = {
|
|
@@ -38,7 +27,7 @@ type FeeToAmount = {
|
|
|
38
27
|
type OutgoingLightningPayment = {
|
|
39
28
|
payment_type: PayType
|
|
40
29
|
contract_id: string
|
|
41
|
-
fee:
|
|
30
|
+
fee: MSats
|
|
42
31
|
}
|
|
43
32
|
|
|
44
33
|
type PayType = {
|
|
@@ -100,19 +89,12 @@ type ReissueExternalNotesState =
|
|
|
100
89
|
| 'Done'
|
|
101
90
|
| { Failed: { error: string } }
|
|
102
91
|
|
|
103
|
-
type Duration = {
|
|
104
|
-
nanos: number
|
|
105
|
-
secs: number
|
|
106
|
-
}
|
|
107
|
-
|
|
108
92
|
type MintSpendNotesResponse = {
|
|
109
93
|
notes: string
|
|
110
94
|
operation_id: string
|
|
111
95
|
}
|
|
112
96
|
|
|
113
97
|
export {
|
|
114
|
-
JSONValue,
|
|
115
|
-
JSONObject,
|
|
116
98
|
LightningGateway,
|
|
117
99
|
RouteHint,
|
|
118
100
|
FeeToAmount,
|
|
@@ -128,6 +110,5 @@ export {
|
|
|
128
110
|
ModuleKind,
|
|
129
111
|
CancelFunction,
|
|
130
112
|
ReissueExternalNotesState,
|
|
131
|
-
Duration,
|
|
132
113
|
MintSpendNotesResponse,
|
|
133
114
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
2
|
CancelFunction,
|
|
3
3
|
JSONValue,
|
|
4
4
|
ModuleKind,
|
|
5
5
|
StreamError,
|
|
6
6
|
StreamResult,
|
|
7
|
-
|
|
7
|
+
WorkerMessageType,
|
|
8
|
+
} from '../types'
|
|
8
9
|
import { logger } from '../utils/logger'
|
|
9
10
|
|
|
10
11
|
// Handles communication with the wasm worker
|
|
@@ -13,7 +14,7 @@ export class WorkerClient {
|
|
|
13
14
|
private worker: Worker
|
|
14
15
|
private requestCounter = 0
|
|
15
16
|
private requestCallbacks = new Map<number, (value: any) => void>()
|
|
16
|
-
private initPromise: Promise<
|
|
17
|
+
private initPromise: Promise<boolean> | undefined = undefined
|
|
17
18
|
|
|
18
19
|
constructor() {
|
|
19
20
|
// Must create the URL inside the constructor for vite
|
|
@@ -65,26 +66,32 @@ export class WorkerClient {
|
|
|
65
66
|
// TODO: Handle timeouts
|
|
66
67
|
// TODO: Handle multiple errors
|
|
67
68
|
|
|
68
|
-
sendSingleMessage
|
|
69
|
+
sendSingleMessage<
|
|
70
|
+
Response extends JSONValue = JSONValue,
|
|
71
|
+
Payload extends JSONValue = JSONValue,
|
|
72
|
+
>(type: WorkerMessageType, payload?: Payload): Promise<Response> {
|
|
69
73
|
return new Promise((resolve, reject) => {
|
|
70
74
|
const requestId = ++this.requestCounter
|
|
71
75
|
logger.debug('WorkerClient - sendSingleMessage', requestId, type, payload)
|
|
72
|
-
this.requestCallbacks.set(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
)
|
|
79
|
-
if (response.data) resolve(response.data)
|
|
80
|
-
else if (response.error) reject(response.error)
|
|
81
|
-
else
|
|
82
|
-
logger.warn(
|
|
83
|
-
'WorkerClient - sendSingleMessage - malformed response',
|
|
76
|
+
this.requestCallbacks.set(
|
|
77
|
+
requestId,
|
|
78
|
+
(response: StreamResult<Response>) => {
|
|
79
|
+
this.requestCallbacks.delete(requestId)
|
|
80
|
+
logger.debug(
|
|
81
|
+
'WorkerClient - sendSingleMessage - response',
|
|
84
82
|
requestId,
|
|
85
83
|
response,
|
|
86
84
|
)
|
|
87
|
-
|
|
85
|
+
if (response.data) resolve(response.data)
|
|
86
|
+
else if (response.error) reject(response.error)
|
|
87
|
+
else
|
|
88
|
+
logger.warn(
|
|
89
|
+
'WorkerClient - sendSingleMessage - malformed response',
|
|
90
|
+
requestId,
|
|
91
|
+
response,
|
|
92
|
+
)
|
|
93
|
+
},
|
|
94
|
+
)
|
|
88
95
|
this.worker.postMessage({ type, payload, requestId })
|
|
89
96
|
})
|
|
90
97
|
}
|
|
@@ -215,7 +222,7 @@ export class WorkerClient {
|
|
|
215
222
|
|
|
216
223
|
cleanup() {
|
|
217
224
|
this.worker.terminate()
|
|
218
|
-
this.initPromise =
|
|
225
|
+
this.initPromise = undefined
|
|
219
226
|
this.requestCallbacks.clear()
|
|
220
227
|
}
|
|
221
228
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { expect } from 'vitest'
|
|
2
|
-
import { JSONObject } from '../types/wallet'
|
|
3
2
|
import { TESTING_INVITE } from '../test/TestingService'
|
|
4
3
|
import { workerTest } from '../test/setupTests'
|
|
4
|
+
import { JSONObject } from '../types'
|
|
5
5
|
|
|
6
6
|
// Waits for a message of a given type from the worker
|
|
7
7
|
const waitForWorkerResponse = (
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FedimintWallet.d.ts","sourceRoot":"","sources":["../src/FedimintWallet.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAU,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAItD,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAc;IAEtB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,WAAW,CAAA;IACjB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,UAAU,EAAE,iBAAiB,CAAA;IAC7B,QAAQ,EAAE,eAAe,CAAA;IAEhC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,OAAO,CAAiB;IAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;gBACS,IAAI,GAAE,OAAe;IAkB3B,UAAU;IAMV,WAAW;IAKX,IAAI,CAAC,UAAU,GAAE,MAA4B;IAc7C,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAA4B;IAkB1C;;;OAGG;IACG,OAAO;IAMb,MAAM;IAIN;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ;CAI5B"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,OAAO,EACP,UAAU,EACV,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,OAAO,EACP,UAAU,EACV,oBAAoB,GACrB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BalanceService.d.ts","sourceRoot":"","sources":["../../src/services/BalanceService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC;;;;GAIG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAExC;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC;;;;;;;;;;;;OAYG;IACH,gBAAgB,CACd,SAAS,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAe,EAC/C,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAe;CAY9C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FederationService.d.ts","sourceRoot":"","sources":["../../src/services/FederationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,qBAAa,iBAAiB;IAChB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAI/B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAInD,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAG7C"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { WorkerClient } from '../worker';
|
|
2
|
-
import { CreateBolt11Response, GatewayInfo, JSONObject, JSONValue, LightningGateway, LnPayState, LnReceiveState, OutgoingLightningPayment } from '../types/wallet';
|
|
3
|
-
export declare class LightningService {
|
|
4
|
-
private client;
|
|
5
|
-
constructor(client: WorkerClient);
|
|
6
|
-
createInvoiceWithGateway(amount: number, description: string, expiryTime: (number | null) | undefined, extraMeta: JSONObject | undefined, gatewayInfo: GatewayInfo): Promise<JSONValue>;
|
|
7
|
-
createInvoice(amount: number, description: string, expiryTime?: number | null, extraMeta?: JSONObject): Promise<CreateBolt11Response>;
|
|
8
|
-
payInvoiceWithGateway(invoice: string, gatewayInfo: GatewayInfo, extraMeta?: JSONObject): Promise<JSONValue>;
|
|
9
|
-
private _getDefaultGatewayInfo;
|
|
10
|
-
payInvoice(invoice: string, extraMeta?: JSONObject): Promise<OutgoingLightningPayment>;
|
|
11
|
-
subscribeLnPay(operationId: string, onSuccess?: (state: LnPayState) => void, onError?: (error: string) => void): import("../types/wallet").CancelFunction;
|
|
12
|
-
subscribeLnReceive(operationId: string, onSuccess?: (state: LnReceiveState) => void, onError?: (error: string) => void): import("../types/wallet").CancelFunction;
|
|
13
|
-
waitForReceive(operationId: string): Promise<LnReceiveState>;
|
|
14
|
-
getGateway(gatewayId?: string | null, forceInternal?: boolean): Promise<LightningGateway | null>;
|
|
15
|
-
listGateways(): Promise<LightningGateway[]>;
|
|
16
|
-
updateGatewayCache(): Promise<JSONValue>;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=LightningService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LightningService.d.ts","sourceRoot":"","sources":["../../src/services/LightningService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,wBAAwB,EACzB,MAAM,iBAAiB,CAAA;AAExB,qBAAa,gBAAgB;IACf,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,wBAAwB,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,MAAM,GAAG,IAAI,aAAO,EAChC,SAAS,EAAE,UAAU,YAAK,EAC1B,WAAW,EAAE,WAAW;IAWpB,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,SAAS,GAAE,UAAe,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAY1B,qBAAqB,CACzB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,SAAS,GAAE,UAAe;YASd,sBAAsB;IAK9B,UAAU,CACd,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,UAAe,GACzB,OAAO,CAAC,wBAAwB,CAAC;IAUpC,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAe,EACjD,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAe;IAa7C,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAe,EACrD,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAe;IAavC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgB5D,UAAU,CACd,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAO7B,YAAY,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI3C,kBAAkB,IAAI,OAAO,CAAC,SAAS,CAAC;CAG/C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MintService.d.ts","sourceRoot":"","sources":["../../src/services/MintService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAA;AAExB,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzC,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,UAAe,GACzB,OAAO,CAAC,MAAM,CAAC;IAOlB,6BAA6B,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAe,EAChD,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAe;IAavC,UAAU,CACd,SAAS,EAAE,MAAM,EAKjB,cAAc,GAAE,MAAM,GAAG,QAAY,EACrC,aAAa,GAAE,OAAe,EAC9B,SAAS,GAAE,SAAc,GACxB,OAAO,CAAC,sBAAsB,CAAC;IAyB5B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMhD,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7D,mBAAmB,CACjB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAe,EAChD,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAe;IAavC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CAKnE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RecoveryService.d.ts","sourceRoot":"","sources":["../../src/services/RecoveryService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,qBAAa,eAAe;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,2BAA2B,CACzB,SAAS,EAAE,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,IAAI,EACzE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,MAAM,IAAI;CAQd"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/types/wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,SAAS,qDAAsD,CAAA;AACrE,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjD,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAU;gBAEX,KAAK,GAAE,QAAiB;IAIpC,QAAQ,CAAC,KAAK,EAAE,QAAQ;IAIxB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAOpC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IASlD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIrC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIpC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIrC,OAAO,CAAC,SAAS;CAYlB;AAED,eAAO,MAAM,MAAM,QAAe,CAAA"}
|