@fedimint/core-web 0.0.8 → 0.0.10
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/dist/dts/services/BalanceService.d.ts +2 -3
- package/dist/dts/services/BalanceService.d.ts.map +1 -1
- package/dist/dts/services/LightningService.d.ts +21 -4
- package/dist/dts/services/LightningService.d.ts.map +1 -1
- package/dist/dts/services/MintService.d.ts +1 -1
- package/dist/dts/services/MintService.d.ts.map +1 -1
- package/dist/dts/types/wallet.d.ts +4 -3
- package/dist/dts/types/wallet.d.ts.map +1 -1
- package/dist/index.d.ts +27 -9
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/services/BalanceService.test.ts +1 -1
- package/src/services/BalanceService.ts +2 -3
- package/src/services/LightningService.ts +84 -7
- package/src/services/MintService.ts +2 -2
- package/src/test/fixtures.ts +1 -1
- package/src/types/wallet.ts +2 -5
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { MSats } from '../types';
|
|
2
1
|
import { WorkerClient } from '../worker';
|
|
3
2
|
/**
|
|
4
3
|
* Balance Service
|
|
@@ -16,7 +15,7 @@ export declare class BalanceService {
|
|
|
16
15
|
* const balance = await wallet.balance.getBalance()
|
|
17
16
|
* ```
|
|
18
17
|
*/
|
|
19
|
-
getBalance(): Promise<
|
|
18
|
+
getBalance(): Promise<number>;
|
|
20
19
|
/**
|
|
21
20
|
* Subscribe to the balance of the current wallet in milli-satoshis (MSats)
|
|
22
21
|
*
|
|
@@ -30,6 +29,6 @@ export declare class BalanceService {
|
|
|
30
29
|
* unsubscribe()
|
|
31
30
|
* ```
|
|
32
31
|
*/
|
|
33
|
-
subscribeBalance(onSuccess?: (
|
|
32
|
+
subscribeBalance(onSuccess?: (balanceMsats: number) => void, onError?: (error: string) => void): import("..").CancelFunction;
|
|
34
33
|
}
|
|
35
34
|
//# sourceMappingURL=BalanceService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BalanceService.d.ts","sourceRoot":"","sources":["../../../src/services/BalanceService.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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,YAAY,EAAE,MAAM,KAAK,IAAe,EACpD,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAe;CAY9C"}
|
|
@@ -1,19 +1,36 @@
|
|
|
1
1
|
import { WorkerClient } from '../worker';
|
|
2
|
-
import type { CreateBolt11Response, GatewayInfo, JSONObject, JSONValue, LightningGateway, LnPayState, LnReceiveState,
|
|
2
|
+
import type { CreateBolt11Response, GatewayInfo, JSONObject, JSONValue, LightningGateway, LnPayState, LnReceiveState, OutgoingLightningPayment } from '../types';
|
|
3
3
|
export declare class LightningService {
|
|
4
4
|
private client;
|
|
5
5
|
constructor(client: WorkerClient);
|
|
6
|
-
createInvoice(
|
|
6
|
+
createInvoice(amountMsats: number, description: string, expiryTime?: number, // in seconds
|
|
7
7
|
gatewayInfo?: GatewayInfo, extraMeta?: JSONObject): Promise<CreateBolt11Response>;
|
|
8
|
-
createInvoiceTweaked(
|
|
8
|
+
createInvoiceTweaked(amountMsats: number, description: string, tweakKey: string, index: number, expiryTime?: number, // in seconds
|
|
9
9
|
gatewayInfo?: GatewayInfo, extraMeta?: JSONObject): Promise<CreateBolt11Response>;
|
|
10
10
|
scanReceivesForTweaks(tweakKey: string, indices: number[], extraMeta?: JSONObject): Promise<string[]>;
|
|
11
11
|
private _getDefaultGatewayInfo;
|
|
12
12
|
payInvoice(invoice: string, gatewayInfo?: GatewayInfo, extraMeta?: JSONObject): Promise<OutgoingLightningPayment>;
|
|
13
|
+
payInvoiceSync(invoice: string, timeoutMs?: number, gatewayInfo?: GatewayInfo, extraMeta?: JSONObject): Promise<{
|
|
14
|
+
success: false;
|
|
15
|
+
} | {
|
|
16
|
+
success: true;
|
|
17
|
+
data: {
|
|
18
|
+
feeMsats: number;
|
|
19
|
+
preimage: string;
|
|
20
|
+
};
|
|
21
|
+
}>;
|
|
13
22
|
subscribeLnClaim(operationId: string, onSuccess?: (state: LnReceiveState) => void, onError?: (error: string) => void): import("../types").CancelFunction;
|
|
14
23
|
subscribeLnPay(operationId: string, onSuccess?: (state: LnPayState) => void, onError?: (error: string) => void): import("../types").CancelFunction;
|
|
24
|
+
waitForPay(operationId: string): Promise<{
|
|
25
|
+
success: false;
|
|
26
|
+
} | {
|
|
27
|
+
success: true;
|
|
28
|
+
data: {
|
|
29
|
+
preimage: string;
|
|
30
|
+
};
|
|
31
|
+
}>;
|
|
15
32
|
subscribeLnReceive(operationId: string, onSuccess?: (state: LnReceiveState) => void, onError?: (error: string) => void): import("../types").CancelFunction;
|
|
16
|
-
waitForReceive(operationId: string): Promise<LnReceiveState>;
|
|
33
|
+
waitForReceive(operationId: string, timeoutMs?: number): Promise<LnReceiveState>;
|
|
17
34
|
getGateway(gatewayId?: string | null, forceInternal?: boolean): Promise<LightningGateway | null>;
|
|
18
35
|
listGateways(): Promise<LightningGateway[]>;
|
|
19
36
|
updateGatewayCache(): Promise<JSONValue>;
|
|
@@ -1 +1 @@
|
|
|
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,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,
|
|
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,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,wBAAwB,EACzB,MAAM,UAAU,CAAA;AAEjB,qBAAa,gBAAgB;IACf,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa;IAClC,WAAW,CAAC,EAAE,WAAW,EACzB,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,oBAAoB,CAAC;IAW1B,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa;IAClC,WAAW,CAAC,EAAE,WAAW,EACzB,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,oBAAoB,CAAC;IAkB1B,qBAAqB,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC;YAQN,sBAAsB;IAM9B,UAAU,CACd,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,EACzB,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,wBAAwB,CAAC;IAS9B,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAc,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CACN;QAAE,OAAO,EAAE,KAAK,CAAA;KAAE,GAClB;QACE,OAAO,EAAE,IAAI,CAAA;QACb,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAC7C,CACJ;IA2BD,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAe,EACrD,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAe;IAe7C,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAe,EACjD,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAe;IAavC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAC1C;QAAE,OAAO,EAAE,KAAK,CAAA;KAAE,GAClB;QACE,OAAO,EAAE,IAAI,CAAA;QACb,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAC3B,CACJ;IA6BD,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,CAClB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAc,GACxB,OAAO,CAAC,cAAc,CAAC;IAyBpB,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"}
|
|
@@ -6,7 +6,7 @@ export declare class MintService {
|
|
|
6
6
|
redeemEcash(notes: string): Promise<void>;
|
|
7
7
|
reissueExternalNotes(oobNotes: string, extraMeta?: JSONObject): Promise<string>;
|
|
8
8
|
subscribeReissueExternalNotes(operationId: string, onSuccess?: (state: JSONValue) => void, onError?: (error: string) => void): import("../types").CancelFunction;
|
|
9
|
-
spendNotes(
|
|
9
|
+
spendNotes(amountMsats: number, tryCancelAfter?: number | Duration, // defaults to 1 day
|
|
10
10
|
includeInvite?: boolean, extraMeta?: JSONValue): Promise<MintSpendNotesResponse>;
|
|
11
11
|
parseNotes(oobNotes: string): Promise<MSats>;
|
|
12
12
|
tryCancelSpendNotes(operationId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
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,KAAK,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,KAAK,EAEN,MAAM,UAAU,CAAA;AAEjB,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,
|
|
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,KAAK,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,KAAK,EAEN,MAAM,UAAU,CAAA;AAEjB,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,WAAW,EAAE,MAAM,EAInB,cAAc,GAAE,MAAM,GAAG,QAAoB,EAAE,oBAAoB;IACnE,aAAa,GAAE,OAAe,EAC9B,SAAS,GAAE,SAAc,GACxB,OAAO,CAAC,sBAAsB,CAAC;IAyB5B,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAM5C,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"}
|
|
@@ -22,8 +22,9 @@ type OutgoingLightningPayment = {
|
|
|
22
22
|
fee: MSats;
|
|
23
23
|
};
|
|
24
24
|
type PayType = {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
lightning: string;
|
|
26
|
+
} | {
|
|
27
|
+
internal: string;
|
|
27
28
|
};
|
|
28
29
|
type LnPayState = 'created' | 'canceled' | {
|
|
29
30
|
funded: {
|
|
@@ -34,7 +35,7 @@ type LnPayState = 'created' | 'canceled' | {
|
|
|
34
35
|
error_reason: string;
|
|
35
36
|
};
|
|
36
37
|
} | 'awaiting_change' | {
|
|
37
|
-
|
|
38
|
+
success: {
|
|
38
39
|
preimage: string;
|
|
39
40
|
};
|
|
40
41
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/types/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEpD,QAAA,MAAM,YAAY,6BAA8B,CAAA;AAChD,KAAK,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/C,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB,IAAI,EAAE,WAAW,CAAA;CAClB,CAAA;AACD,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,QAAQ,CAAA;CACd,CAAA;AAED,KAAK,SAAS,GAAG,EAEhB,CAAA;AAED,KAAK,WAAW,GAAG,EAElB,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,KAAK,CAAA;CACX,CAAA;AAED,KAAK,OAAO,GAAG;
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/types/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEpD,QAAA,MAAM,YAAY,6BAA8B,CAAA;AAChD,KAAK,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/C,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB,IAAI,EAAE,WAAW,CAAA;CAClB,CAAA;AACD,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,QAAQ,CAAA;CACd,CAAA;AAED,KAAK,SAAS,GAAG,EAEhB,CAAA;AAED,KAAK,WAAW,GAAG,EAElB,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,KAAK,CAAA;CACX,CAAA;AAED,KAAK,OAAO,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D,KAAK,UAAU,GACX,SAAS,GACT,UAAU,GACV;IAAE,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACpC;IAAE,kBAAkB,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAChD,iBAAiB,GACjB;IAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjC;IAAE,QAAQ,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACvC;IAAE,gBAAgB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAEnD,KAAK,cAAc,GACf,SAAS,GACT;IAAE,mBAAmB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC7D;IAAE,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAChC,QAAQ,GACR,gBAAgB,GAChB,SAAS,CAAA;AAEb,KAAK,oBAAoB,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,KAAK,CAAA;CACX,CAAA;AAED,KAAK,aAAa,CAAC,CAAC,SAAS,SAAS,IAAI;IACxC,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,KAAK,CAAA;IACZ,GAAG,EAAE,KAAK,CAAA;CACX,CAAA;AAED,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,IACjC,aAAa,CAAC,CAAC,CAAC,GAChB,WAAW,GACX,SAAS,CAAA;AAEb,KAAK,cAAc,GAAG,MAAM,IAAI,CAAA;AAEhC,KAAK,yBAAyB,GAC1B,SAAS,GACT,SAAS,GACT,MAAM,GACN;IAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAEjC,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,OAAO,EACP,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,sBAAsB,GACvB,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -37,8 +37,9 @@ type OutgoingLightningPayment = {
|
|
|
37
37
|
fee: MSats;
|
|
38
38
|
};
|
|
39
39
|
type PayType = {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
lightning: string;
|
|
41
|
+
} | {
|
|
42
|
+
internal: string;
|
|
42
43
|
};
|
|
43
44
|
type LnPayState = 'created' | 'canceled' | {
|
|
44
45
|
funded: {
|
|
@@ -49,7 +50,7 @@ type LnPayState = 'created' | 'canceled' | {
|
|
|
49
50
|
error_reason: string;
|
|
50
51
|
};
|
|
51
52
|
} | 'awaiting_change' | {
|
|
52
|
-
|
|
53
|
+
success: {
|
|
53
54
|
preimage: string;
|
|
54
55
|
};
|
|
55
56
|
} | {
|
|
@@ -155,7 +156,7 @@ declare class MintService {
|
|
|
155
156
|
redeemEcash(notes: string): Promise<void>;
|
|
156
157
|
reissueExternalNotes(oobNotes: string, extraMeta?: JSONObject): Promise<string>;
|
|
157
158
|
subscribeReissueExternalNotes(operationId: string, onSuccess?: (state: JSONValue) => void, onError?: (error: string) => void): CancelFunction;
|
|
158
|
-
spendNotes(
|
|
159
|
+
spendNotes(amountMsats: number, tryCancelAfter?: number | Duration, // defaults to 1 day
|
|
159
160
|
includeInvite?: boolean, extraMeta?: JSONValue): Promise<MintSpendNotesResponse>;
|
|
160
161
|
parseNotes(oobNotes: string): Promise<MSats>;
|
|
161
162
|
tryCancelSpendNotes(operationId: string): Promise<void>;
|
|
@@ -179,7 +180,7 @@ declare class BalanceService {
|
|
|
179
180
|
* const balance = await wallet.balance.getBalance()
|
|
180
181
|
* ```
|
|
181
182
|
*/
|
|
182
|
-
getBalance(): Promise<
|
|
183
|
+
getBalance(): Promise<number>;
|
|
183
184
|
/**
|
|
184
185
|
* Subscribe to the balance of the current wallet in milli-satoshis (MSats)
|
|
185
186
|
*
|
|
@@ -193,23 +194,40 @@ declare class BalanceService {
|
|
|
193
194
|
* unsubscribe()
|
|
194
195
|
* ```
|
|
195
196
|
*/
|
|
196
|
-
subscribeBalance(onSuccess?: (
|
|
197
|
+
subscribeBalance(onSuccess?: (balanceMsats: number) => void, onError?: (error: string) => void): CancelFunction;
|
|
197
198
|
}
|
|
198
199
|
|
|
199
200
|
declare class LightningService {
|
|
200
201
|
private client;
|
|
201
202
|
constructor(client: WorkerClient);
|
|
202
|
-
createInvoice(
|
|
203
|
+
createInvoice(amountMsats: number, description: string, expiryTime?: number, // in seconds
|
|
203
204
|
gatewayInfo?: GatewayInfo, extraMeta?: JSONObject): Promise<CreateBolt11Response>;
|
|
204
|
-
createInvoiceTweaked(
|
|
205
|
+
createInvoiceTweaked(amountMsats: number, description: string, tweakKey: string, index: number, expiryTime?: number, // in seconds
|
|
205
206
|
gatewayInfo?: GatewayInfo, extraMeta?: JSONObject): Promise<CreateBolt11Response>;
|
|
206
207
|
scanReceivesForTweaks(tweakKey: string, indices: number[], extraMeta?: JSONObject): Promise<string[]>;
|
|
207
208
|
private _getDefaultGatewayInfo;
|
|
208
209
|
payInvoice(invoice: string, gatewayInfo?: GatewayInfo, extraMeta?: JSONObject): Promise<OutgoingLightningPayment>;
|
|
210
|
+
payInvoiceSync(invoice: string, timeoutMs?: number, gatewayInfo?: GatewayInfo, extraMeta?: JSONObject): Promise<{
|
|
211
|
+
success: false;
|
|
212
|
+
} | {
|
|
213
|
+
success: true;
|
|
214
|
+
data: {
|
|
215
|
+
feeMsats: number;
|
|
216
|
+
preimage: string;
|
|
217
|
+
};
|
|
218
|
+
}>;
|
|
209
219
|
subscribeLnClaim(operationId: string, onSuccess?: (state: LnReceiveState) => void, onError?: (error: string) => void): CancelFunction;
|
|
210
220
|
subscribeLnPay(operationId: string, onSuccess?: (state: LnPayState) => void, onError?: (error: string) => void): CancelFunction;
|
|
221
|
+
waitForPay(operationId: string): Promise<{
|
|
222
|
+
success: false;
|
|
223
|
+
} | {
|
|
224
|
+
success: true;
|
|
225
|
+
data: {
|
|
226
|
+
preimage: string;
|
|
227
|
+
};
|
|
228
|
+
}>;
|
|
211
229
|
subscribeLnReceive(operationId: string, onSuccess?: (state: LnReceiveState) => void, onError?: (error: string) => void): CancelFunction;
|
|
212
|
-
waitForReceive(operationId: string): Promise<LnReceiveState>;
|
|
230
|
+
waitForReceive(operationId: string, timeoutMs?: number): Promise<LnReceiveState>;
|
|
213
231
|
getGateway(gatewayId?: string | null, forceInternal?: boolean): Promise<LightningGateway | null>;
|
|
214
232
|
listGateways(): Promise<LightningGateway[]>;
|
|
215
233
|
updateGatewayCache(): Promise<JSONValue>;
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=["debug","info","warn","error","none"];const t=new class{constructor(e="none"){this.level=e}setLevel(e){this.level=e}coerceLevel(t){return e.includes(t.toLocaleUpperCase())?t.toLocaleUpperCase():"info"}log(e,t,...i){const n=this.coerceLevel(e);if(!this.shouldLog(n))return;(0,console[n])(`[${n.toUpperCase()}] ${t}`,...i)}debug(e,...t){this.log("debug",e,...t)}info(e,...t){this.log("info",e,...t)}warn(e,...t){this.log("warn",e,...t)}error(e,...t){this.log("error",e,...t)}shouldLog(e){const t=["debug","info","warn","error","none"],i=t.indexOf(e);return t.indexOf(this.level)<=i&&"none"!==this.level&&"none"!==e}};class i{constructor(){this.requestCounter=0,this.requestCallbacks=new Map,this.initPromise=void 0,this.worker=new Worker(new URL("./worker.js",import.meta.url),{type:"module"}),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=this.handleWorkerError.bind(this),t.info("WorkerClient instantiated"),t.debug("WorkerClient",this.worker)}initialize(){return this.initPromise||(this.initPromise=this.sendSingleMessage("init")),this.initPromise}handleWorkerLogs(e){const{type:i,level:n,message:s,...r}=e.data;t.log(n,s,...r)}handleWorkerError(e){t.error("Worker error",e)}handleWorkerMessage(e){const{type:i,requestId:n,...s}=e.data;"log"===i&&this.handleWorkerLogs(e.data);const r=this.requestCallbacks.get(n);t.debug("WorkerClient - handleWorkerMessage",e.data),r?r(s):t.warn("WorkerClient - handleWorkerMessage - received message with no callback",n,e.data)}sendSingleMessage(e,i){return new Promise(((n,s)=>{const r=++this.requestCounter;t.debug("WorkerClient - sendSingleMessage",r,e,i),this.requestCallbacks.set(r,(e=>{this.requestCallbacks.delete(r),t.debug("WorkerClient - sendSingleMessage - response",r,e),e.data?n(e.data):e.error?s(e.error):t.warn("WorkerClient - sendSingleMessage - malformed response",r,e)})),this.worker.postMessage({type:e,payload:i,requestId:r})}))}rpcStream(e,i,n,s,r,a=()=>{}){const o=++this.requestCounter;t.debug("WorkerClient - rpcStream",o,e,i,n);let c=()=>{},l=!1;const u=new Promise((e=>{c=()=>{l?e():setTimeout((()=>c()),0)}}));return this._rpcStreamInner(o,e,i,n,s,r,a,u).then((()=>{l=!0})),c}async _rpcStreamInner(e,t,i,n,s,r,a=()=>{},o){this.requestCallbacks.set(e,(t=>{void 0!==t.error?r(t.error):void 0!==t.data?s(t.data):void 0!==t.end&&(this.requestCallbacks.delete(e),a())})),this.worker.postMessage({type:"rpc",payload:{module:t,method:i,body:n},requestId:e}),o.then((()=>{this.worker?.postMessage({type:"unsubscribe",requestId:e}),this.requestCallbacks.delete(e)}))}rpcSingle(e,i,n){return t.debug("WorkerClient - rpcSingle",e,i,n),new Promise(((t,s)=>{this.rpcStream(e,i,n,t,s)}))}async cleanup(){await this.sendSingleMessage("cleanup"),this.requestCounter=0,this.initPromise=void 0,this.requestCallbacks.clear()}_getRequestCounter(){return this.requestCounter}_getRequestCallbackMap(){return this.requestCallbacks}}class n{constructor(e){this.client=e}async redeemEcash(e){await this.client.rpcSingle("mint","reissue_external_notes",{oob_notes:e,extra_meta:null})}async reissueExternalNotes(e,t={}){return await this.client.rpcSingle("mint","reissue_external_notes",{oob_notes:e,extra_meta:t})}subscribeReissueExternalNotes(e,t=()=>{},i=()=>{}){return this.client.rpcStream("mint","subscribe_reissue_external_notes",{operation_id:e},t,i)}async spendNotes(e,t=86400,i=!1,n={}){const s="number"==typeof t?{nanos:0,secs:t}:t,r=await this.client.rpcSingle("mint","spend_notes",{min_amount:e,try_cancel_after:s,include_invite:i,extra_meta:n});return{notes:r[1],operation_id:r[0]}}async parseNotes(e){return await this.client.rpcSingle("mint","validate_notes",{oob_notes:e})}async tryCancelSpendNotes(e){await this.client.rpcSingle("mint","try_cancel_spend_notes",{operation_id:e})}subscribeSpendNotes(e,t=()=>{},i=()=>{}){return this.client.rpcStream("mint","subscribe_spend_notes",{operation_id:e},(e=>t(e)),i)}async awaitSpendOobRefund(e){return await this.client.rpcSingle("mint","await_spend_oob_refund",{operation_id:e})}}class s{constructor(e){this.client=e}async getBalance(){return await this.client.rpcSingle("","get_balance",{})}subscribeBalance(e=()=>{},t=()=>{}){return this.client.rpcStream("","subscribe_balance_changes",{},(t=>e(parseInt(t))),t)}}class r{constructor(e){this.client=e}async createInvoice(e,t,i,n,s){const r=n??await this._getDefaultGatewayInfo();return await this.client.rpcSingle("ln","create_bolt11_invoice",{amount:e,description:t,expiry_time:i??null,extra_meta:s??{},gateway:r})}async createInvoiceTweaked(e,t,i,n,s,r,a){const o=r??await this._getDefaultGatewayInfo();return await this.client.rpcSingle("ln","create_bolt11_invoice_for_user_tweaked",{amount:e,description:t,expiry_time:s??null,user_key:i,index:n,extra_meta:a??{},gateway:o})}async scanReceivesForTweaks(e,t,i){return await this.client.rpcSingle("ln","scan_receive_for_user_tweaked",{user_key:e,indices:t,extra_meta:i??{}})}async _getDefaultGatewayInfo(){await this.updateGatewayCache();const e=await this.listGateways();return e[0]?.info}async payInvoice(e,t,i){const n=t??await this._getDefaultGatewayInfo();return await this.client.rpcSingle("ln","pay_bolt11_invoice",{maybe_gateway:n,invoice:e,extra_meta:i??{}})}subscribeLnClaim(e,t=()=>{},i=()=>{}){return this.client.rpcStream("ln","subscribe_ln_claim",{operation_id:e},t,i)}subscribeLnPay(e,t=()=>{},i=()=>{}){return this.client.rpcStream("ln","subscribe_ln_pay",{operation_id:e},t,i)}subscribeLnReceive(e,t=()=>{},i=()=>{}){return this.client.rpcStream("ln","subscribe_ln_receive",{operation_id:e},t,i)}async waitForReceive(e){return new Promise(((
|
|
1
|
+
const e=["debug","info","warn","error","none"];const t=new class{constructor(e="none"){this.level=e}setLevel(e){this.level=e}coerceLevel(t){return e.includes(t.toLocaleUpperCase())?t.toLocaleUpperCase():"info"}log(e,t,...i){const n=this.coerceLevel(e);if(!this.shouldLog(n))return;(0,console[n])(`[${n.toUpperCase()}] ${t}`,...i)}debug(e,...t){this.log("debug",e,...t)}info(e,...t){this.log("info",e,...t)}warn(e,...t){this.log("warn",e,...t)}error(e,...t){this.log("error",e,...t)}shouldLog(e){const t=["debug","info","warn","error","none"],i=t.indexOf(e);return t.indexOf(this.level)<=i&&"none"!==this.level&&"none"!==e}};class i{constructor(){this.requestCounter=0,this.requestCallbacks=new Map,this.initPromise=void 0,this.worker=new Worker(new URL("./worker.js",import.meta.url),{type:"module"}),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=this.handleWorkerError.bind(this),t.info("WorkerClient instantiated"),t.debug("WorkerClient",this.worker)}initialize(){return this.initPromise||(this.initPromise=this.sendSingleMessage("init")),this.initPromise}handleWorkerLogs(e){const{type:i,level:n,message:s,...r}=e.data;t.log(n,s,...r)}handleWorkerError(e){t.error("Worker error",e)}handleWorkerMessage(e){const{type:i,requestId:n,...s}=e.data;"log"===i&&this.handleWorkerLogs(e.data);const r=this.requestCallbacks.get(n);t.debug("WorkerClient - handleWorkerMessage",e.data),r?r(s):t.warn("WorkerClient - handleWorkerMessage - received message with no callback",n,e.data)}sendSingleMessage(e,i){return new Promise(((n,s)=>{const r=++this.requestCounter;t.debug("WorkerClient - sendSingleMessage",r,e,i),this.requestCallbacks.set(r,(e=>{this.requestCallbacks.delete(r),t.debug("WorkerClient - sendSingleMessage - response",r,e),e.data?n(e.data):e.error?s(e.error):t.warn("WorkerClient - sendSingleMessage - malformed response",r,e)})),this.worker.postMessage({type:e,payload:i,requestId:r})}))}rpcStream(e,i,n,s,r,a=()=>{}){const o=++this.requestCounter;t.debug("WorkerClient - rpcStream",o,e,i,n);let c=()=>{},l=!1;const u=new Promise((e=>{c=()=>{l?e():setTimeout((()=>c()),0)}}));return this._rpcStreamInner(o,e,i,n,s,r,a,u).then((()=>{l=!0})),c}async _rpcStreamInner(e,t,i,n,s,r,a=()=>{},o){this.requestCallbacks.set(e,(t=>{void 0!==t.error?r(t.error):void 0!==t.data?s(t.data):void 0!==t.end&&(this.requestCallbacks.delete(e),a())})),this.worker.postMessage({type:"rpc",payload:{module:t,method:i,body:n},requestId:e}),o.then((()=>{this.worker?.postMessage({type:"unsubscribe",requestId:e}),this.requestCallbacks.delete(e)}))}rpcSingle(e,i,n){return t.debug("WorkerClient - rpcSingle",e,i,n),new Promise(((t,s)=>{this.rpcStream(e,i,n,t,s)}))}async cleanup(){await this.sendSingleMessage("cleanup"),this.requestCounter=0,this.initPromise=void 0,this.requestCallbacks.clear()}_getRequestCounter(){return this.requestCounter}_getRequestCallbackMap(){return this.requestCallbacks}}class n{constructor(e){this.client=e}async redeemEcash(e){await this.client.rpcSingle("mint","reissue_external_notes",{oob_notes:e,extra_meta:null})}async reissueExternalNotes(e,t={}){return await this.client.rpcSingle("mint","reissue_external_notes",{oob_notes:e,extra_meta:t})}subscribeReissueExternalNotes(e,t=()=>{},i=()=>{}){return this.client.rpcStream("mint","subscribe_reissue_external_notes",{operation_id:e},t,i)}async spendNotes(e,t=86400,i=!1,n={}){const s="number"==typeof t?{nanos:0,secs:t}:t,r=await this.client.rpcSingle("mint","spend_notes",{min_amount:e,try_cancel_after:s,include_invite:i,extra_meta:n});return{notes:r[1],operation_id:r[0]}}async parseNotes(e){return await this.client.rpcSingle("mint","validate_notes",{oob_notes:e})}async tryCancelSpendNotes(e){await this.client.rpcSingle("mint","try_cancel_spend_notes",{operation_id:e})}subscribeSpendNotes(e,t=()=>{},i=()=>{}){return this.client.rpcStream("mint","subscribe_spend_notes",{operation_id:e},(e=>t(e)),i)}async awaitSpendOobRefund(e){return await this.client.rpcSingle("mint","await_spend_oob_refund",{operation_id:e})}}class s{constructor(e){this.client=e}async getBalance(){return await this.client.rpcSingle("","get_balance",{})}subscribeBalance(e=()=>{},t=()=>{}){return this.client.rpcStream("","subscribe_balance_changes",{},(t=>e(parseInt(t))),t)}}class r{constructor(e){this.client=e}async createInvoice(e,t,i,n,s){const r=n??await this._getDefaultGatewayInfo();return await this.client.rpcSingle("ln","create_bolt11_invoice",{amount:e,description:t,expiry_time:i??null,extra_meta:s??{},gateway:r})}async createInvoiceTweaked(e,t,i,n,s,r,a){const o=r??await this._getDefaultGatewayInfo();return await this.client.rpcSingle("ln","create_bolt11_invoice_for_user_tweaked",{amount:e,description:t,expiry_time:s??null,user_key:i,index:n,extra_meta:a??{},gateway:o})}async scanReceivesForTweaks(e,t,i){return await this.client.rpcSingle("ln","scan_receive_for_user_tweaked",{user_key:e,indices:t,extra_meta:i??{}})}async _getDefaultGatewayInfo(){await this.updateGatewayCache();const e=await this.listGateways();return e[0]?.info}async payInvoice(e,t,i){const n=t??await this._getDefaultGatewayInfo();return await this.client.rpcSingle("ln","pay_bolt11_invoice",{maybe_gateway:n,invoice:e,extra_meta:i??{}})}async payInvoiceSync(e,t=1e4,i,n){return new Promise((async(s,r)=>{const{contract_id:a,fee:o}=await this.payInvoice(e,i,n),c=this.subscribeLnPay(a,(e=>{"string"!=typeof e&&"success"in e&&(clearTimeout(l),c(),s({success:!0,data:{feeMsats:o,preimage:e.success.preimage}}))})),l=setTimeout((()=>{c(),r(new Error("Timeout waiting for pay"))}),t)}))}subscribeLnClaim(e,t=()=>{},i=()=>{}){return this.client.rpcStream("ln","subscribe_ln_claim",{operation_id:e},t,i)}subscribeLnPay(e,t=()=>{},i=()=>{}){return this.client.rpcStream("ln","subscribe_ln_pay",{operation_id:e},t,i)}async waitForPay(e){return new Promise(((t,i)=>{let n;const s=setTimeout((()=>{i(new Error("Timeout waiting for receive"))}),15e3);n=this.subscribeLnPay(e,(e=>{"string"!=typeof e&&"success"in e&&(clearTimeout(s),n(),t({success:!0,data:{preimage:e.success.preimage}}))}),(e=>{clearTimeout(s),n(),i(e)}))}))}subscribeLnReceive(e,t=()=>{},i=()=>{}){return this.client.rpcStream("ln","subscribe_ln_receive",{operation_id:e},t,i)}async waitForReceive(e,t=15e3){return new Promise(((i,n)=>{let s;const r=setTimeout((()=>{n(new Error("Timeout waiting for receive"))}),t);s=this.subscribeLnReceive(e,(e=>{"claimed"===e&&(clearTimeout(r),s(),i(e))}),(e=>{clearTimeout(r),s(),n(e)}))}))}async getGateway(e=null,t=!1){return await this.client.rpcSingle("ln","get_gateway",{gateway_id:e,force_internal:t})}async listGateways(){return await this.client.rpcSingle("ln","list_gateways",{})}async updateGatewayCache(){return await this.client.rpcSingle("ln","update_gateway_cache",{})}}class a{constructor(e){this.client=e}async hasPendingRecoveries(){return await this.client.rpcSingle("","has_pending_recoveries",{})}async waitForAllRecoveries(){await this.client.rpcSingle("","wait_for_all_recoveries",{})}subscribeToRecoveryProgress(e,t){return this.client.rpcStream("","subscribe_to_recovery_progress",{},e,t)}}class o{constructor(e){this.client=e}async getConfig(){return await this.client.rpcSingle("","get_config",{})}async getFederationId(){return await this.client.rpcSingle("","get_federation_id",{})}async getInviteCode(e){return await this.client.rpcSingle("","get_invite_code",{peer:e})}async listOperations(){return await this.client.rpcSingle("","list_operations",{})}}const c="fm-default";class l{constructor(e=!1){this._openPromise=void 0,this._resolveOpen=()=>{},this._isOpen=!1,this._openPromise=new Promise((e=>{this._resolveOpen=e})),this._client=new i,this.mint=new n(this._client),this.lightning=new r(this._client),this.balance=new s(this._client),this.federation=new o(this._client),this.recovery=new a(this._client),t.info("FedimintWallet instantiated"),e||this.initialize()}async initialize(){t.info("Initializing WorkerClient"),await this._client.initialize(),t.info("WorkerClient initialized")}async waitForOpen(){return this._isOpen?Promise.resolve():this._openPromise}async open(e=c){if(await this._client.initialize(),this._isOpen)throw new Error("The FedimintWallet is already open.");const{success:t}=await this._client.sendSingleMessage("open",{clientName:e});return t&&(this._isOpen=!!t,this._resolveOpen()),t}async joinFederation(e,i=c){if(await this._client.initialize(),this._isOpen)throw new Error("The FedimintWallet is already open. You can only call `joinFederation` on closed clients.");try{const t=await this._client.sendSingleMessage("join",{inviteCode:e,clientName:i});return t.success&&(this._isOpen=!0,this._resolveOpen()),t.success}catch(e){return t.error("Error joining federation",e),!1}}async cleanup(){this._openPromise=void 0,this._isOpen=!1,await this._client.cleanup()}isOpen(){return this._isOpen}setLogLevel(e){t.setLevel(e),t.info(`Log level set to ${e}.`)}}export{l as FedimintWallet};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/logger.ts","../src/worker/WorkerClient.ts","../src/services/MintService.ts","../src/services/BalanceService.ts","../src/services/LightningService.ts","../src/services/RecoveryService.ts","../src/services/FederationService.ts","../src/FedimintWallet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["logLevels","logger","constructor","level","this","setLevel","coerceLevel","includes","toLocaleUpperCase","log","message","args","logLevel","shouldLog","consoleFn","console","toUpperCase","debug","info","warn","error","messageLevel","levels","messageLevelIndex","indexOf","WorkerClient","requestCounter","requestCallbacks","Map","initPromise","undefined","worker","Worker","URL","url","type","onmessage","handleWorkerMessage","bind","onerror","handleWorkerError","initialize","sendSingleMessage","handleWorkerLogs","event","data","requestId","streamCallback","get","payload","Promise","resolve","reject","set","response","delete","postMessage","rpcStream","module","method","body","onSuccess","onError","onEnd","unsubscribe","isSubscribed","unsubscribePromise","setTimeout","_rpcStreamInner","then","end","rpcSingle","cleanup","clear","_getRequestCounter","_getRequestCallbackMap","MintService","client","redeemEcash","notes","oob_notes","extra_meta","reissueExternalNotes","oobNotes","extraMeta","subscribeReissueExternalNotes","operationId","operation_id","spendNotes","minAmount","tryCancelAfter","includeInvite","duration","nanos","secs","res","min_amount","try_cancel_after","include_invite","parseNotes","tryCancelSpendNotes","subscribeSpendNotes","awaitSpendOobRefund","BalanceService","getBalance","subscribeBalance","parseInt","LightningService","createInvoice","amount","description","expiryTime","gatewayInfo","gateway","_getDefaultGatewayInfo","expiry_time","createInvoiceTweaked","tweakKey","index","user_key","scanReceivesForTweaks","indices","updateGatewayCache","gateways","listGateways","payInvoice","invoice","maybe_gateway","subscribeLnClaim","subscribeLnPay","subscribeLnReceive","waitForReceive","timeoutId","Error","clearTimeout","getGateway","gatewayId","forceInternal","gateway_id","force_internal","RecoveryService","hasPendingRecoveries","waitForAllRecoveries","subscribeToRecoveryProgress","FederationService","getConfig","getFederationId","getInviteCode","peer","listOperations","DEFAULT_CLIENT_NAME","FedimintWallet","lazy","_openPromise","_resolveOpen","_isOpen","_client","mint","lightning","balance","federation","recovery","waitForOpen","open","clientName","success","joinFederation","inviteCode","e","isOpen","setLogLevel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/logger.ts","../src/worker/WorkerClient.ts","../src/services/MintService.ts","../src/services/BalanceService.ts","../src/services/LightningService.ts","../src/services/RecoveryService.ts","../src/services/FederationService.ts","../src/FedimintWallet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["logLevels","logger","constructor","level","this","setLevel","coerceLevel","includes","toLocaleUpperCase","log","message","args","logLevel","shouldLog","consoleFn","console","toUpperCase","debug","info","warn","error","messageLevel","levels","messageLevelIndex","indexOf","WorkerClient","requestCounter","requestCallbacks","Map","initPromise","undefined","worker","Worker","URL","url","type","onmessage","handleWorkerMessage","bind","onerror","handleWorkerError","initialize","sendSingleMessage","handleWorkerLogs","event","data","requestId","streamCallback","get","payload","Promise","resolve","reject","set","response","delete","postMessage","rpcStream","module","method","body","onSuccess","onError","onEnd","unsubscribe","isSubscribed","unsubscribePromise","setTimeout","_rpcStreamInner","then","end","rpcSingle","cleanup","clear","_getRequestCounter","_getRequestCallbackMap","MintService","client","redeemEcash","notes","oob_notes","extra_meta","reissueExternalNotes","oobNotes","extraMeta","subscribeReissueExternalNotes","operationId","operation_id","spendNotes","amountMsats","tryCancelAfter","includeInvite","duration","nanos","secs","res","min_amount","try_cancel_after","include_invite","parseNotes","tryCancelSpendNotes","subscribeSpendNotes","awaitSpendOobRefund","BalanceService","getBalance","subscribeBalance","parseInt","LightningService","createInvoice","description","expiryTime","gatewayInfo","gateway","_getDefaultGatewayInfo","amount","expiry_time","createInvoiceTweaked","tweakKey","index","user_key","scanReceivesForTweaks","indices","updateGatewayCache","gateways","listGateways","payInvoice","invoice","maybe_gateway","payInvoiceSync","timeoutMs","async","contract_id","fee","subscribeLnPay","clearTimeout","timeoutId","success","feeMsats","preimage","Error","subscribeLnClaim","waitForPay","subscribeLnReceive","waitForReceive","getGateway","gatewayId","forceInternal","gateway_id","force_internal","RecoveryService","hasPendingRecoveries","waitForAllRecoveries","subscribeToRecoveryProgress","FederationService","getConfig","getFederationId","getInviteCode","peer","listOperations","DEFAULT_CLIENT_NAME","FedimintWallet","lazy","_openPromise","_resolveOpen","_isOpen","_client","mint","lightning","balance","federation","recovery","waitForOpen","open","clientName","joinFederation","inviteCode","e","isOpen","setLogLevel"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ beforeAll(async () => {
|
|
|
11
11
|
expect(wallet).toBeDefined()
|
|
12
12
|
await expect(
|
|
13
13
|
wallet.joinFederation(wallet.testing.TESTING_INVITE, randomTestingId),
|
|
14
|
-
).resolves.
|
|
14
|
+
).resolves.toBe(true)
|
|
15
15
|
expect(wallet.isOpen()).toBe(true)
|
|
16
16
|
|
|
17
17
|
// Cleanup after all tests
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { MSats } from '../types'
|
|
2
1
|
import { WorkerClient } from '../worker'
|
|
3
2
|
|
|
4
3
|
/**
|
|
@@ -17,7 +16,7 @@ export class BalanceService {
|
|
|
17
16
|
* const balance = await wallet.balance.getBalance()
|
|
18
17
|
* ```
|
|
19
18
|
*/
|
|
20
|
-
async getBalance(): Promise<
|
|
19
|
+
async getBalance(): Promise<number> {
|
|
21
20
|
return await this.client.rpcSingle('', 'get_balance', {})
|
|
22
21
|
}
|
|
23
22
|
|
|
@@ -35,7 +34,7 @@ export class BalanceService {
|
|
|
35
34
|
* ```
|
|
36
35
|
*/
|
|
37
36
|
subscribeBalance(
|
|
38
|
-
onSuccess: (
|
|
37
|
+
onSuccess: (balanceMsats: number) => void = () => {},
|
|
39
38
|
onError: (error: string) => void = () => {},
|
|
40
39
|
) {
|
|
41
40
|
const unsubscribe = this.client.rpcStream<string>(
|
|
@@ -7,7 +7,6 @@ import type {
|
|
|
7
7
|
LightningGateway,
|
|
8
8
|
LnPayState,
|
|
9
9
|
LnReceiveState,
|
|
10
|
-
MSats,
|
|
11
10
|
OutgoingLightningPayment,
|
|
12
11
|
} from '../types'
|
|
13
12
|
|
|
@@ -15,7 +14,7 @@ export class LightningService {
|
|
|
15
14
|
constructor(private client: WorkerClient) {}
|
|
16
15
|
|
|
17
16
|
async createInvoice(
|
|
18
|
-
|
|
17
|
+
amountMsats: number,
|
|
19
18
|
description: string,
|
|
20
19
|
expiryTime?: number, // in seconds
|
|
21
20
|
gatewayInfo?: GatewayInfo,
|
|
@@ -23,7 +22,7 @@ export class LightningService {
|
|
|
23
22
|
): Promise<CreateBolt11Response> {
|
|
24
23
|
const gateway = gatewayInfo ?? (await this._getDefaultGatewayInfo())
|
|
25
24
|
return await this.client.rpcSingle('ln', 'create_bolt11_invoice', {
|
|
26
|
-
amount,
|
|
25
|
+
amount: amountMsats,
|
|
27
26
|
description,
|
|
28
27
|
expiry_time: expiryTime ?? null,
|
|
29
28
|
extra_meta: extraMeta ?? {},
|
|
@@ -32,7 +31,7 @@ export class LightningService {
|
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
async createInvoiceTweaked(
|
|
35
|
-
|
|
34
|
+
amountMsats: number,
|
|
36
35
|
description: string,
|
|
37
36
|
tweakKey: string,
|
|
38
37
|
index: number,
|
|
@@ -45,7 +44,7 @@ export class LightningService {
|
|
|
45
44
|
'ln',
|
|
46
45
|
'create_bolt11_invoice_for_user_tweaked',
|
|
47
46
|
{
|
|
48
|
-
amount,
|
|
47
|
+
amount: amountMsats,
|
|
49
48
|
description,
|
|
50
49
|
expiry_time: expiryTime ?? null,
|
|
51
50
|
user_key: tweakKey,
|
|
@@ -88,6 +87,44 @@ export class LightningService {
|
|
|
88
87
|
})
|
|
89
88
|
}
|
|
90
89
|
|
|
90
|
+
async payInvoiceSync(
|
|
91
|
+
invoice: string,
|
|
92
|
+
timeoutMs: number = 10000,
|
|
93
|
+
gatewayInfo?: GatewayInfo,
|
|
94
|
+
extraMeta?: JSONObject,
|
|
95
|
+
): Promise<
|
|
96
|
+
| { success: false }
|
|
97
|
+
| {
|
|
98
|
+
success: true
|
|
99
|
+
data: { feeMsats: number; preimage: string }
|
|
100
|
+
}
|
|
101
|
+
> {
|
|
102
|
+
return new Promise(async (resolve, reject) => {
|
|
103
|
+
const { contract_id, fee } = await this.payInvoice(
|
|
104
|
+
invoice,
|
|
105
|
+
gatewayInfo,
|
|
106
|
+
extraMeta,
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
const unsubscribe = this.subscribeLnPay(contract_id, (res) => {
|
|
110
|
+
if (typeof res !== 'string' && 'success' in res) {
|
|
111
|
+
clearTimeout(timeoutId)
|
|
112
|
+
unsubscribe()
|
|
113
|
+
resolve({
|
|
114
|
+
success: true,
|
|
115
|
+
data: { feeMsats: fee, preimage: res.success.preimage },
|
|
116
|
+
})
|
|
117
|
+
}
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
const timeoutId = setTimeout(() => {
|
|
121
|
+
unsubscribe()
|
|
122
|
+
reject(new Error('Timeout waiting for pay'))
|
|
123
|
+
}, timeoutMs)
|
|
124
|
+
})
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// TODO: Document
|
|
91
128
|
subscribeLnClaim(
|
|
92
129
|
operationId: string,
|
|
93
130
|
onSuccess: (state: LnReceiveState) => void = () => {},
|
|
@@ -104,6 +141,8 @@ export class LightningService {
|
|
|
104
141
|
return unsubscribe
|
|
105
142
|
}
|
|
106
143
|
|
|
144
|
+
// TODO: Document (for external payments only)
|
|
145
|
+
// TODO: Make this work for BOTH internal and external payments
|
|
107
146
|
subscribeLnPay(
|
|
108
147
|
operationId: string,
|
|
109
148
|
onSuccess: (state: LnPayState) => void = () => {},
|
|
@@ -120,6 +159,41 @@ export class LightningService {
|
|
|
120
159
|
return unsubscribe
|
|
121
160
|
}
|
|
122
161
|
|
|
162
|
+
async waitForPay(operationId: string): Promise<
|
|
163
|
+
| { success: false }
|
|
164
|
+
| {
|
|
165
|
+
success: true
|
|
166
|
+
data: { preimage: string }
|
|
167
|
+
}
|
|
168
|
+
> {
|
|
169
|
+
return new Promise((resolve, reject) => {
|
|
170
|
+
let unsubscribe: () => void
|
|
171
|
+
const timeoutId = setTimeout(() => {
|
|
172
|
+
reject(new Error('Timeout waiting for receive'))
|
|
173
|
+
}, 15000)
|
|
174
|
+
|
|
175
|
+
unsubscribe = this.subscribeLnPay(
|
|
176
|
+
operationId,
|
|
177
|
+
(res) => {
|
|
178
|
+
if (typeof res !== 'string' && 'success' in res) {
|
|
179
|
+
clearTimeout(timeoutId)
|
|
180
|
+
unsubscribe()
|
|
181
|
+
resolve({
|
|
182
|
+
success: true,
|
|
183
|
+
data: { preimage: res.success.preimage },
|
|
184
|
+
})
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
(error) => {
|
|
188
|
+
clearTimeout(timeoutId)
|
|
189
|
+
unsubscribe()
|
|
190
|
+
reject(error)
|
|
191
|
+
},
|
|
192
|
+
)
|
|
193
|
+
})
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// TODO: Document
|
|
123
197
|
subscribeLnReceive(
|
|
124
198
|
operationId: string,
|
|
125
199
|
onSuccess: (state: LnReceiveState) => void = () => {},
|
|
@@ -136,12 +210,15 @@ export class LightningService {
|
|
|
136
210
|
return unsubscribe
|
|
137
211
|
}
|
|
138
212
|
|
|
139
|
-
async waitForReceive(
|
|
213
|
+
async waitForReceive(
|
|
214
|
+
operationId: string,
|
|
215
|
+
timeoutMs: number = 15000,
|
|
216
|
+
): Promise<LnReceiveState> {
|
|
140
217
|
return new Promise((resolve, reject) => {
|
|
141
218
|
let unsubscribe: () => void
|
|
142
219
|
const timeoutId = setTimeout(() => {
|
|
143
220
|
reject(new Error('Timeout waiting for receive'))
|
|
144
|
-
},
|
|
221
|
+
}, timeoutMs)
|
|
145
222
|
|
|
146
223
|
unsubscribe = this.subscribeLnReceive(
|
|
147
224
|
operationId,
|
|
@@ -45,7 +45,7 @@ export class MintService {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
async spendNotes(
|
|
48
|
-
|
|
48
|
+
amountMsats: number,
|
|
49
49
|
// Tells the wallet to automatically try to cancel the spend if it hasn't completed
|
|
50
50
|
// after the specified number of seconds. If the receiver has already redeemed
|
|
51
51
|
// the notes at this time, the notes will not be cancelled.
|
|
@@ -62,7 +62,7 @@ export class MintService {
|
|
|
62
62
|
'mint',
|
|
63
63
|
'spend_notes',
|
|
64
64
|
{
|
|
65
|
-
min_amount:
|
|
65
|
+
min_amount: amountMsats,
|
|
66
66
|
try_cancel_after: duration,
|
|
67
67
|
include_invite: includeInvite,
|
|
68
68
|
extra_meta: extraMeta,
|
package/src/test/fixtures.ts
CHANGED
package/src/types/wallet.ts
CHANGED
|
@@ -30,10 +30,7 @@ type OutgoingLightningPayment = {
|
|
|
30
30
|
fee: MSats
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
type PayType = {
|
|
34
|
-
type: 'Internal' | 'Lightning'
|
|
35
|
-
operation_id: string
|
|
36
|
-
}
|
|
33
|
+
type PayType = { lightning: string } | { internal: string }
|
|
37
34
|
|
|
38
35
|
type LnPayState =
|
|
39
36
|
| 'created'
|
|
@@ -41,7 +38,7 @@ type LnPayState =
|
|
|
41
38
|
| { funded: { block_height: number } }
|
|
42
39
|
| { waiting_for_refund: { error_reason: string } }
|
|
43
40
|
| 'awaiting_change'
|
|
44
|
-
| {
|
|
41
|
+
| { success: { preimage: string } }
|
|
45
42
|
| { refunded: { gateway_error: string } }
|
|
46
43
|
| { unexpected_error: { error_message: string } }
|
|
47
44
|
|