@fedimint/core-web 0.0.6 → 0.0.8

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 (74) hide show
  1. package/README.md +6 -71
  2. package/dist/{FedimintWallet.d.ts → dts/FedimintWallet.d.ts} +3 -3
  3. package/dist/dts/FedimintWallet.d.ts.map +1 -0
  4. package/dist/dts/index.d.ts +3 -0
  5. package/dist/dts/index.d.ts.map +1 -0
  6. package/dist/{services → dts/services}/BalanceService.d.ts +5 -4
  7. package/dist/dts/services/BalanceService.d.ts.map +1 -0
  8. package/dist/{services → dts/services}/FederationService.d.ts +1 -1
  9. package/dist/dts/services/FederationService.d.ts.map +1 -0
  10. package/dist/dts/services/LightningService.d.ts +21 -0
  11. package/dist/dts/services/LightningService.d.ts.map +1 -0
  12. package/dist/{services → dts/services}/MintService.d.ts +6 -5
  13. package/dist/dts/services/MintService.d.ts.map +1 -0
  14. package/dist/{services → dts/services}/RecoveryService.d.ts +1 -1
  15. package/dist/dts/services/RecoveryService.d.ts.map +1 -0
  16. package/dist/dts/services/index.d.ts.map +1 -0
  17. package/dist/dts/types/index.d.ts +4 -0
  18. package/dist/dts/types/index.d.ts.map +1 -0
  19. package/dist/dts/types/utils.d.ts +16 -0
  20. package/dist/dts/types/utils.d.ts.map +1 -0
  21. package/dist/{types → dts/types}/wallet.d.ts +4 -14
  22. package/dist/dts/types/wallet.d.ts.map +1 -0
  23. package/dist/dts/types/worker.d.ts +4 -0
  24. package/dist/dts/types/worker.d.ts.map +1 -0
  25. package/dist/dts/utils/logger.d.ts.map +1 -0
  26. package/dist/{worker → dts/worker}/WorkerClient.d.ts +4 -4
  27. package/dist/dts/worker/WorkerClient.d.ts.map +1 -0
  28. package/dist/dts/worker/index.d.ts.map +1 -0
  29. package/dist/index.d.ts +298 -5
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/worker.js +1 -1
  33. package/dist/worker.js.map +1 -1
  34. package/package.json +8 -5
  35. package/src/FedimintWallet.test.ts +43 -60
  36. package/src/FedimintWallet.ts +20 -14
  37. package/src/index.ts +2 -22
  38. package/src/services/BalanceService.ts +5 -4
  39. package/src/services/FederationService.test.ts +1 -1
  40. package/src/services/FederationService.ts +1 -1
  41. package/src/services/LightningService.test.ts +103 -63
  42. package/src/services/LightningService.ts +84 -47
  43. package/src/services/MintService.test.ts +16 -2
  44. package/src/services/MintService.ts +8 -8
  45. package/src/services/RecoveryService.ts +1 -1
  46. package/src/test/TestFedimintWallet.ts +10 -1
  47. package/src/test/TestingService.ts +49 -30
  48. package/src/test/crypto.ts +44 -0
  49. package/src/test/fixtures.test.ts +18 -0
  50. package/src/test/{setupTests.ts → fixtures.ts} +25 -4
  51. package/src/types/index.ts +3 -0
  52. package/src/types/utils.ts +25 -0
  53. package/src/types/wallet.ts +4 -23
  54. package/src/types/worker.ts +13 -0
  55. package/src/worker/WorkerClient.test.ts +6 -0
  56. package/src/worker/WorkerClient.ts +28 -20
  57. package/src/worker/worker.js +9 -0
  58. package/src/worker/worker.test.ts +2 -2
  59. package/dist/FedimintWallet.d.ts.map +0 -1
  60. package/dist/index.d.ts.map +0 -1
  61. package/dist/services/BalanceService.d.ts.map +0 -1
  62. package/dist/services/FederationService.d.ts.map +0 -1
  63. package/dist/services/LightningService.d.ts +0 -18
  64. package/dist/services/LightningService.d.ts.map +0 -1
  65. package/dist/services/MintService.d.ts.map +0 -1
  66. package/dist/services/RecoveryService.d.ts.map +0 -1
  67. package/dist/services/index.d.ts.map +0 -1
  68. package/dist/types/wallet.d.ts.map +0 -1
  69. package/dist/utils/logger.d.ts.map +0 -1
  70. package/dist/worker/WorkerClient.d.ts.map +0 -1
  71. package/dist/worker/index.d.ts.map +0 -1
  72. /package/dist/{services → dts/services}/index.d.ts +0 -0
  73. /package/dist/{utils → dts/utils}/logger.d.ts +0 -0
  74. /package/dist/{worker → dts/worker}/index.d.ts +0 -0
@@ -1,3 +1,4 @@
1
+ import { LightningService } from '../services'
1
2
  import { WorkerClient } from '../worker'
2
3
 
3
4
  export const TESTING_INVITE =
@@ -7,7 +8,10 @@ export const TESTING_INVITE =
7
8
  // of the WorkerClient. It is not intended for use in production.
8
9
  export class TestingService {
9
10
  public TESTING_INVITE: string
10
- constructor(private client: WorkerClient) {
11
+ constructor(
12
+ private client: WorkerClient,
13
+ private lightning: LightningService,
14
+ ) {
11
15
  // Solo Mint on mutinynet
12
16
  this.TESTING_INVITE = TESTING_INVITE
13
17
  }
@@ -20,40 +24,55 @@ export class TestingService {
20
24
  return this.client._getRequestCallbackMap()
21
25
  }
22
26
 
23
- async payWithFaucet(invoice: string) {
24
- try {
25
- const response = await fetch(
26
- `https://faucet.mutinynet.com/api/lnurlw/callback?k1=k1&pr=${invoice}`,
27
- )
27
+ async getInviteCode() {
28
+ const res = await fetch('http://localhost:15243/connect-string')
29
+ if (res.ok) {
30
+ return await res.text()
31
+ } else {
32
+ throw new Error(`Failed to get invite code: ${await res.text()}`)
33
+ }
34
+ }
28
35
 
29
- if (!response.ok) {
30
- throw new Error(
31
- `HTTP error! Failed to pay invoice. status: ${response.status}`,
32
- )
33
- }
36
+ private async getFaucetGatewayApi() {
37
+ const res = await fetch('http://localhost:15243/gateway-api')
38
+ if (res.ok) {
39
+ return await res.text()
40
+ } else {
41
+ throw new Error(`Failed to get gateway: ${await res.text()}`)
42
+ }
43
+ }
44
+
45
+ async getFaucetGatewayInfo() {
46
+ const gateways = await this.lightning.listGateways()
47
+ const api = await this.getFaucetGatewayApi()
48
+ const gateway = gateways.find((g) => g.info.api === api)
49
+ if (!gateway) {
50
+ throw new Error(`Gateway not found: ${api}`)
51
+ }
52
+ return gateway.info
53
+ }
34
54
 
35
- return await response.json()
36
- } catch (error) {
37
- console.error('Error paying with faucet', error)
38
- throw error
55
+ async payFaucetInvoice(invoice: string) {
56
+ const res = await fetch('http://localhost:15243/pay', {
57
+ method: 'POST',
58
+ body: invoice,
59
+ })
60
+ if (res.ok) {
61
+ return await res.text()
62
+ } else {
63
+ throw new Error(`Failed to pay faucet invoice: ${await res.text()}`)
39
64
  }
40
65
  }
41
66
 
42
- async getExternalInvoice(amount: number) {
43
- try {
44
- const response = await fetch(
45
- `https://lnurl-staging.mutinywallet.com/lnurlp/refund/callback?amount=${amount}`,
46
- )
47
- if (!response.ok) {
48
- throw new Error(
49
- `HTTP error! Failed to get external invoice. status: ${response.status}`,
50
- )
51
- }
52
-
53
- return await response.json()
54
- } catch (error) {
55
- console.error('Error getting external invoice', error)
56
- throw error
67
+ async createFaucetInvoice(amount: number) {
68
+ const res = await fetch('http://localhost:15243/invoice', {
69
+ method: 'POST',
70
+ body: amount.toString(),
71
+ })
72
+ if (res.ok) {
73
+ return await res.text()
74
+ } else {
75
+ throw new Error(`Failed to generate faucet invoice: ${await res.text()}`)
57
76
  }
58
77
  }
59
78
  }
@@ -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,18 @@
1
+ import { expect } from 'vitest'
2
+ import { walletTest } from './fixtures'
3
+
4
+ walletTest('Fund wallet 1', async ({ fundedWallet }) => {
5
+ expect(fundedWallet).toBeDefined()
6
+ })
7
+
8
+ walletTest('Fund wallet 2', async ({ fundedWallet }) => {
9
+ expect(fundedWallet).toBeDefined()
10
+ })
11
+
12
+ walletTest('Fund wallet 3', async ({ fundedWallet }) => {
13
+ expect(fundedWallet).toBeDefined()
14
+ })
15
+
16
+ walletTest('Fund wallet 4', async ({ fundedWallet }) => {
17
+ expect(fundedWallet).toBeDefined()
18
+ })
@@ -1,24 +1,40 @@
1
1
  import { expect, test } from 'vitest'
2
2
  import { TestFedimintWallet } from './TestFedimintWallet'
3
+ import { WorkerClient } from '../worker/WorkerClient'
3
4
 
4
5
  /**
5
6
  * Adds Fixtures for setting up and tearing down a test FedimintWallet instance
6
7
  */
7
- export const walletTest = test.extend<{ wallet: TestFedimintWallet }>({
8
+ export const walletTest = test.extend<{
9
+ wallet: TestFedimintWallet
10
+ fundedWallet: TestFedimintWallet
11
+ }>({
8
12
  wallet: async ({}, use) => {
9
13
  const randomTestingId = Math.random().toString(36).substring(2, 15)
10
14
  const wallet = new TestFedimintWallet()
11
15
  expect(wallet).toBeDefined()
12
-
16
+ const inviteCode = await wallet.testing.getInviteCode()
13
17
  await expect(
14
- wallet.joinFederation(wallet.testing.TESTING_INVITE, randomTestingId),
18
+ wallet.joinFederation(inviteCode, randomTestingId),
15
19
  ).resolves.toBeUndefined()
20
+
16
21
  await use(wallet)
17
22
 
18
23
  // clear up browser resources
19
24
  await wallet.cleanup()
25
+
20
26
  // remove the wallet db
21
- indexedDB.deleteDatabase(randomTestingId)
27
+ await new Promise((resolve) => {
28
+ const request = indexedDB.deleteDatabase(randomTestingId)
29
+ request.onsuccess = resolve
30
+ request.onerror = resolve
31
+ request.onblocked = resolve
32
+ })
33
+ },
34
+
35
+ fundedWallet: async ({ wallet }, use) => {
36
+ await wallet.fundWallet(10_000)
37
+ await use(wallet)
22
38
  },
23
39
  })
24
40
 
@@ -28,6 +44,7 @@ export const walletTest = test.extend<{ wallet: TestFedimintWallet }>({
28
44
  export const workerTest = test.extend<{
29
45
  worker: Worker
30
46
  clientName: string
47
+ workerClient: WorkerClient
31
48
  }>({
32
49
  worker: async ({}, use) => {
33
50
  const worker = new Worker(new URL('../worker/worker.js', import.meta.url), {
@@ -40,4 +57,8 @@ export const workerTest = test.extend<{
40
57
  const randomTestingId = Math.random().toString(36).substring(2, 15)
41
58
  await use(randomTestingId)
42
59
  },
60
+ workerClient: async ({}, use) => {
61
+ const workerClient = new WorkerClient()
62
+ await use(workerClient)
63
+ },
43
64
  })
@@ -0,0 +1,3 @@
1
+ export * from './wallet'
2
+ export * from './utils'
3
+ export * from './worker'
@@ -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 }
@@ -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: number
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
  }
@@ -0,0 +1,13 @@
1
+ const WorkerMessageTypes = [
2
+ 'init',
3
+ 'initialized',
4
+ 'rpc',
5
+ 'log',
6
+ 'open',
7
+ 'join',
8
+ 'error',
9
+ 'unsubscribe',
10
+ 'cleanup',
11
+ ] as const
12
+
13
+ export type WorkerMessageType = (typeof WorkerMessageTypes)[number]
@@ -0,0 +1,6 @@
1
+ import { expect } from 'vitest'
2
+ import { workerTest } from '../test/fixtures'
3
+
4
+ workerTest('should initialize', async ({ workerClient }) => {
5
+ expect(workerClient).toBeDefined()
6
+ })
@@ -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
- } from '../types/wallet'
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<void> | null = null
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(type: string, payload?: any): Promise<any> {
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(requestId, (response) => {
73
- this.requestCallbacks.delete(requestId)
74
- logger.debug(
75
- 'WorkerClient - sendSingleMessage - response',
76
- requestId,
77
- response,
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
  }
@@ -213,9 +220,10 @@ export class WorkerClient {
213
220
  })
214
221
  }
215
222
 
216
- cleanup() {
217
- this.worker.terminate()
218
- this.initPromise = null
223
+ async cleanup() {
224
+ await this.sendSingleMessage('cleanup')
225
+ this.requestCounter = 0
226
+ this.initPromise = undefined
219
227
  this.requestCallbacks.clear()
220
228
  }
221
229
 
@@ -80,6 +80,15 @@ self.onmessage = async (event) => {
80
80
  rpcHandle.free()
81
81
  streamCancelMap.delete(requestId)
82
82
  }
83
+ } else if (type === 'cleanup') {
84
+ console.log('cleanup message received')
85
+ client?.free()
86
+ self.postMessage({
87
+ type: 'cleanup',
88
+ data: {},
89
+ requestId,
90
+ })
91
+ close()
83
92
  } else {
84
93
  self.postMessage({
85
94
  type: 'error',
@@ -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
- import { workerTest } from '../test/setupTests'
3
+ import { JSONObject } from '../types'
4
+ import { workerTest } from '../test/fixtures'
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"}
@@ -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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkerClient.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EAEZ,MAAM,iBAAiB,CAAA;AAKxB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,WAAW,CAA6B;;IAchD,UAAU;IAMV,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAuB3B,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAwB5D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CACP,QAAQ,SAAS,SAAS,GAAG,SAAS,EACtC,IAAI,SAAS,SAAS,GAAG,SAAS,EAElC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,EAClC,OAAO,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,EAC5C,KAAK,GAAE,MAAM,IAAe,GAC3B,cAAc;YAoCH,eAAe;IA2C7B,SAAS,CAAC,QAAQ,SAAS,SAAS,GAAG,SAAS,EAC9C,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,QAAQ,CAAC;IAOpB,OAAO;IAOP,kBAAkB;IAGlB,sBAAsB,wBAnN6B,GAAG,KAAK,IAAI;CAsNhE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
File without changes
File without changes
File without changes