@bitgo-beta/sdk-core 8.2.1-beta.438 → 8.2.1-beta.439
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/CHANGELOG.md +12 -0
- package/dist/src/bitgo/index.d.ts +1 -1
- package/dist/src/bitgo/index.d.ts.map +1 -1
- package/dist/src/bitgo/index.js +2 -2
- package/dist/src/bitgo/lightning/custodial/iLightning.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/custodial/iLightning.js +110 -0
- package/dist/src/bitgo/lightning/custodial/index.d.ts +5 -0
- package/dist/src/bitgo/lightning/custodial/index.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/custodial/index.js +21 -0
- package/dist/src/bitgo/lightning/{lightning.d.ts → custodial/lightning.d.ts} +2 -2
- package/dist/src/bitgo/lightning/custodial/lightning.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/custodial/lightning.js +111 -0
- package/dist/src/bitgo/lightning/custodial/lightningUtils.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/custodial/lightningUtils.js +137 -0
- package/dist/src/bitgo/lightning/custodial/lnurlCodec.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/custodial/lnurlCodec.js +28 -0
- package/dist/src/bitgo/lightning/index.d.ts +2 -4
- package/dist/src/bitgo/lightning/index.d.ts.map +1 -1
- package/dist/src/bitgo/lightning/index.js +3 -5
- package/dist/src/bitgo/lightning/signableJson.d.ts +17 -0
- package/dist/src/bitgo/lightning/signableJson.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/signableJson.js +30 -0
- package/dist/src/bitgo/lightning/signature.d.ts +22 -0
- package/dist/src/bitgo/lightning/signature.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/signature.js +60 -0
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +39 -45
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +40 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +90 -6
- package/dist/src/bitgo/wallet/iWallet.d.ts +1 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallet.js +1 -1
- package/dist/src/bitgo/wallet/wallet.d.ts +1 -1
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +3 -3
- package/dist/test/unit/bitgo/lightning/signableJson.d.ts +2 -0
- package/dist/test/unit/bitgo/lightning/signableJson.d.ts.map +1 -0
- package/dist/test/unit/bitgo/lightning/signableJson.js +52 -0
- package/dist/test/unit/bitgo/lightning/signature.d.ts +2 -0
- package/dist/test/unit/bitgo/lightning/signature.d.ts.map +1 -0
- package/dist/test/unit/bitgo/lightning/signature.js +81 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
- package/dist/src/bitgo/lightning/iLightning.js +0 -110
- package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
- package/dist/src/bitgo/lightning/lightning.js +0 -111
- package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
- package/dist/src/bitgo/lightning/lightningUtils.js +0 -137
- package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
- package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
- /package/dist/src/bitgo/lightning/{iLightning.d.ts → custodial/iLightning.d.ts} +0 -0
- /package/dist/src/bitgo/lightning/{lightningUtils.d.ts → custodial/lightningUtils.d.ts} +0 -0
- /package/dist/src/bitgo/lightning/{lnurlCodec.d.ts → custodial/lnurlCodec.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [27.8.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-core@27.7.0...@bitgo/sdk-core@27.8.0) (2024-08-07)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **root:** replace MPCv2 SMC types for public-types ([cb4c68f](https://github.com/BitGo/BitGoJS/commit/cb4c68f08035da7742a740ee7e220117a2143805))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **abstract-cosmos:** add dkls support for cosmos hot wallet recovery ([da24a55](https://github.com/BitGo/BitGoJS/commit/da24a559d42ac0f2975fd03ec335f5e72bcd8f49))
|
|
15
|
+
- **sdk-coin-sui:** non-bitgo recovery ([a60531a](https://github.com/BitGo/BitGoJS/commit/a60531aabd0708d7f67226a0c5a4a4ea84f83d66))
|
|
16
|
+
- **sdk-lib-mpc:** support dep injection of dkls wasm in dsg ([a8c09ab](https://github.com/BitGo/BitGoJS/commit/a8c09abbe4feef656d80187969121e845f0c6656))
|
|
17
|
+
|
|
6
18
|
# [27.7.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-core@27.6.0...@bitgo/sdk-core@27.7.0) (2024-07-30)
|
|
7
19
|
|
|
8
20
|
### Bug Fixes
|
|
@@ -14,7 +14,7 @@ export * from './inscriptionBuilder';
|
|
|
14
14
|
export * from './internal';
|
|
15
15
|
export * from './keychain';
|
|
16
16
|
export * as bitcoin from './legacyBitcoin';
|
|
17
|
-
export * from './lightning';
|
|
17
|
+
export * from './lightning/custodial';
|
|
18
18
|
export * from './market';
|
|
19
19
|
export * from './pendingApproval';
|
|
20
20
|
export * from './recovery';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bitgo/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bitgo/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,OAAO,EAAE,GAAG,EAAE,CAAC"}
|
package/dist/src/bitgo/index.js
CHANGED
|
@@ -45,7 +45,7 @@ __exportStar(require("./inscriptionBuilder"), exports);
|
|
|
45
45
|
__exportStar(require("./internal"), exports);
|
|
46
46
|
__exportStar(require("./keychain"), exports);
|
|
47
47
|
exports.bitcoin = __importStar(require("./legacyBitcoin"));
|
|
48
|
-
__exportStar(require("./lightning"), exports);
|
|
48
|
+
__exportStar(require("./lightning/custodial"), exports);
|
|
49
49
|
__exportStar(require("./market"), exports);
|
|
50
50
|
__exportStar(require("./pendingApproval"), exports);
|
|
51
51
|
__exportStar(require("./recovery"), exports);
|
|
@@ -56,4 +56,4 @@ __exportStar(require("./types"), exports);
|
|
|
56
56
|
__exportStar(require("./utils"), exports);
|
|
57
57
|
__exportStar(require("./wallet"), exports);
|
|
58
58
|
__exportStar(require("./webhook"), exports);
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1REFBeUM7QUE0QmhDLGtDQUFXO0FBM0JwQiwyQ0FBNkI7QUE0QnBCLGtCQUFHO0FBMUJaLDZDQUEyQjtBQUMzQiw4Q0FBNEI7QUFDNUIsNENBQTBCO0FBQzFCLDhDQUE0QjtBQUM1QiwyQ0FBeUI7QUFDekIsZ0RBQThCO0FBQzlCLHlDQUF1QjtBQUN2QiwrQ0FBNkI7QUFDN0IsaURBQStCO0FBQy9CLDJDQUF5QjtBQUN6Qix1REFBcUM7QUFDckMsNkNBQTJCO0FBQzNCLDZDQUEyQjtBQUMzQiwyREFBMkM7QUFDM0Msd0RBQXNDO0FBQ3RDLDJDQUF5QjtBQUN6QixvREFBa0M7QUFDbEMsNkNBQTJCO0FBQzNCLDRDQUEwQjtBQUMxQiw0Q0FBMEI7QUFDMUIsd0NBQXNCO0FBQ3RCLDBDQUF3QjtBQUN4QiwwQ0FBd0I7QUFDeEIsMkNBQXlCO0FBQ3pCLDRDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJpdGNvaW5VdGlsIGZyb20gJy4vYml0Y29pbic7XG5pbXBvcnQgKiBhcyB0c3MgZnJvbSAnLi90c3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Jhc2VDb2luJztcbmV4cG9ydCAqIGZyb20gJy4vYmlwMzJ1dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vYml0Y29pbic7XG5leHBvcnQgKiBmcm9tICcuL2JpdGdvQmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2NvaW5GYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vZWNkaCc7XG5leHBvcnQgKiBmcm9tICcuL2VudGVycHJpc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnNjcmlwdGlvbkJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcm5hbCc7XG5leHBvcnQgKiBmcm9tICcuL2tleWNoYWluJztcbmV4cG9ydCAqIGFzIGJpdGNvaW4gZnJvbSAnLi9sZWdhY3lCaXRjb2luJztcbmV4cG9ydCAqIGZyb20gJy4vbGlnaHRuaW5nL2N1c3RvZGlhbCc7XG5leHBvcnQgKiBmcm9tICcuL21hcmtldCc7XG5leHBvcnQgKiBmcm9tICcuL3BlbmRpbmdBcHByb3ZhbCc7XG5leHBvcnQgKiBmcm9tICcuL3JlY292ZXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vc3Rha2luZyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYWRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi90c3MnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vd2FsbGV0JztcbmV4cG9ydCAqIGZyb20gJy4vd2ViaG9vayc7XG5leHBvcnQgeyBiaXRjb2luVXRpbCB9O1xuZXhwb3J0IHsgdHNzIH07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iLightning.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/lightning/custodial/iLightning.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.LnurlPayResponse = exports.GetPaymentsResponse = exports.GetInvoicesResponse = exports.GetBalanceResponse = exports.PayInvoiceResponse = exports.DepositResponse = exports.CreateDepositAddressResponse = exports.CreateInvoiceResponse = exports.WithdrawResponse = exports.WPTransfer = exports.WPTransferEntry = void 0;
|
|
27
|
+
/* eslint-disable no-redeclare */
|
|
28
|
+
const t = __importStar(require("io-ts"));
|
|
29
|
+
exports.WPTransferEntry = t.partial({
|
|
30
|
+
wallet: t.string,
|
|
31
|
+
address: t.string,
|
|
32
|
+
value: t.number,
|
|
33
|
+
valueString: t.string,
|
|
34
|
+
isChange: t.boolean,
|
|
35
|
+
isPayGo: t.boolean,
|
|
36
|
+
token: t.string,
|
|
37
|
+
}, 'WPTransferEntry');
|
|
38
|
+
exports.WPTransfer = t.type({
|
|
39
|
+
entries: t.array(exports.WPTransferEntry),
|
|
40
|
+
id: t.string,
|
|
41
|
+
heightId: t.string,
|
|
42
|
+
type: t.string,
|
|
43
|
+
value: t.number,
|
|
44
|
+
state: t.string,
|
|
45
|
+
}, 'WPTransfer');
|
|
46
|
+
exports.WithdrawResponse = t.strict({
|
|
47
|
+
txid: t.string,
|
|
48
|
+
}, 'CreateWithdrawalResponse');
|
|
49
|
+
exports.CreateInvoiceResponse = t.strict({
|
|
50
|
+
value: t.number,
|
|
51
|
+
memo: t.union([t.string, t.undefined]),
|
|
52
|
+
paymentHash: t.string,
|
|
53
|
+
invoice: t.string,
|
|
54
|
+
walletId: t.string,
|
|
55
|
+
status: t.string,
|
|
56
|
+
expiresAt: t.string,
|
|
57
|
+
}, 'CreateInvoiceResponse');
|
|
58
|
+
exports.CreateDepositAddressResponse = t.strict({
|
|
59
|
+
address: t.string,
|
|
60
|
+
}, 'CreateDepositAddressResponse');
|
|
61
|
+
exports.DepositResponse = t.strict({
|
|
62
|
+
status: t.string,
|
|
63
|
+
transfer: exports.WPTransfer,
|
|
64
|
+
}, 'DepositResponse');
|
|
65
|
+
exports.PayInvoiceResponse = t.strict({
|
|
66
|
+
paymentHash: t.string,
|
|
67
|
+
transfer: exports.WPTransfer,
|
|
68
|
+
status: t.string,
|
|
69
|
+
}, 'PayInvoiceResponse');
|
|
70
|
+
exports.GetBalanceResponse = t.strict({
|
|
71
|
+
balance: t.number,
|
|
72
|
+
availableBalance: t.number,
|
|
73
|
+
maximumBalance: t.number,
|
|
74
|
+
}, 'GetBalanceResponse');
|
|
75
|
+
const InvoiceInfo = t.strict({
|
|
76
|
+
paymentHash: t.string,
|
|
77
|
+
walletId: t.string,
|
|
78
|
+
status: t.union([t.literal('open'), t.literal('settled'), t.literal('canceled')]),
|
|
79
|
+
value: t.number,
|
|
80
|
+
expiresAt: t.string,
|
|
81
|
+
createdAt: t.string,
|
|
82
|
+
updatedAt: t.string,
|
|
83
|
+
amtPaidSats: t.union([t.number, t.undefined]),
|
|
84
|
+
});
|
|
85
|
+
exports.GetInvoicesResponse = t.array(InvoiceInfo);
|
|
86
|
+
const PaymentInfo = t.strict({
|
|
87
|
+
paymentHash: t.string,
|
|
88
|
+
walletId: t.string,
|
|
89
|
+
status: t.union([t.literal('in_flight'), t.literal('settled'), t.literal('failed')]),
|
|
90
|
+
amount: t.union([t.number, t.undefined]),
|
|
91
|
+
invoice: t.string,
|
|
92
|
+
sendQueueId: t.string,
|
|
93
|
+
failureReason: t.union([t.string, t.undefined]),
|
|
94
|
+
fee: t.union([t.number, t.undefined]),
|
|
95
|
+
feeLimit: t.number,
|
|
96
|
+
paymentPreimage: t.union([t.string, t.undefined]),
|
|
97
|
+
destination: t.string,
|
|
98
|
+
});
|
|
99
|
+
exports.GetPaymentsResponse = t.array(PaymentInfo);
|
|
100
|
+
exports.LnurlPayResponse = t.strict({
|
|
101
|
+
tag: t.literal('payRequest'),
|
|
102
|
+
callback: t.string,
|
|
103
|
+
/** The maximum amount in millisatoshis we can pay for this LNRUL request */
|
|
104
|
+
maxSendable: t.number,
|
|
105
|
+
/** The minimum amount in millisatoshis we can pay for this LNRUL request */
|
|
106
|
+
minSendable: t.number,
|
|
107
|
+
/** A json array in string format describing the payment */
|
|
108
|
+
metadata: t.string,
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaUxpZ2h0bmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby9saWdodG5pbmcvY3VzdG9kaWFsL2lMaWdodG5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpQ0FBaUM7QUFDakMseUNBQTJCO0FBOENkLFFBQUEsZUFBZSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQ3RDO0lBQ0UsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNqQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDZixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDckIsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPO0lBQ25CLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztJQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU07Q0FDaEIsRUFDRCxpQkFBaUIsQ0FDbEIsQ0FBQztBQUlXLFFBQUEsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzlCO0lBQ0UsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsdUJBQWUsQ0FBQztJQUNqQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDWixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2QsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2YsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNO0NBQ2hCLEVBQ0QsWUFBWSxDQUNiLENBQUM7QUFJVyxRQUFBLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQ3RDO0lBQ0UsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO0NBQ2YsRUFDRCwwQkFBMEIsQ0FDM0IsQ0FBQztBQUlXLFFBQUEscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FDM0M7SUFDRSxL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LEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2xCLGVBQWUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNO0NBQ3RCLENBQUMsQ0FBQztBQUVVLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUkzQyxRQUFBLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQzVCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNsQiw0RUFBNEU7SUFDNUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ3JCLDRFQUE0RTtJQUM1RSxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDckIsMkRBQTJEO0lBQzNELFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTTtDQUNuQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZWRlY2xhcmUgKi9cbmltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUludm9pY2VQYXJhbXMge1xuICB2YWx1ZTogbnVtYmVyO1xuICBtZW1vPzogc3RyaW5nO1xuICBleHBpcnk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlnaHRuaW5nV2l0aGRyYXdhbFBhcmFtcyB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGRlc3RpbmF0aW9uPzogc3RyaW5nO1xuICBzZXF1ZW5jZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpZ2h0bmluZ0RlcG9zaXRQYXJhbXMge1xuICBhbW91bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXlJbnZvaWNlUGFyYW1zIHtcbiAgaW52b2ljZTogc3RyaW5nO1xuICBzZXF1ZW5jZUlkPzogc3RyaW5nO1xuICBjb21tZW50Pzogc3RyaW5nO1xuICBmZWVMaW1pdFJhdGlvPzogbnVtYmVyO1xuICBmZWVMaW1pdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRJbnZvaWNlc1F1ZXJ5IHtcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbiAgc3RhcnREYXRlPzogc3RyaW5nO1xuICBlbmREYXRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFBheW1lbnRzUXVlcnkge1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xuICBzdGFydERhdGU/OiBzdHJpbmc7XG4gIGVuZERhdGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG51cmxQYXlQYXJhbXMge1xuICBjYWxsYmFjazogc3RyaW5nO1xuICBtaWxsaXNhdEFtb3VudDogc3RyaW5nO1xuICBtZXRhZGF0YTogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgV1BUcmFuc2ZlckVudHJ5ID0gdC5wYXJ0aWFsKFxuICB7XG4gICAgd2FsbGV0OiB0LnN0cmluZyxcbiAgICBhZGRyZXNzOiB0LnN0cmluZyxcbiAgICB2YWx1ZTogdC5udW1iZXIsXG4gICAgdmFsdWVTdHJpbmc6IHQuc3RyaW5nLFxuICAgIGlzQ2hhbmdlOiB0LmJvb2xlYW4sXG4gICAgaXNQYXlHbzogdC5ib29sZWFuLFxuICAgIHRva2VuOiB0LnN0cmluZyxcbiAgfSxcbiAgJ1dQVHJhbnNmZXJFbnRyeSdcbik7XG5cbmV4cG9ydCB0eXBlIFdQVHJhbnNmZXJFbnRyeSA9IHQuVHlwZU9mPHR5cGVvZiBXUFRyYW5zZmVyRW50cnk+O1xuXG5leHBvcnQgY29uc3QgV1BUcmFuc2ZlciA9IHQudHlwZShcbiAge1xuICAgIGVudHJpZXM6IHQuYXJyYXkoV1BUcmFuc2ZlckVudHJ5KSxcbiAgICBpZDogdC5zdHJpbmcsXG4gICAgaGVpZ2h0SWQ6IHQuc3RyaW5nLFxuICAgIHR5cGU6IHQuc3RyaW5nLFxuICAgIHZhbHVlOiB0Lm51bWJlcixcbiAgICBzdGF0ZTogdC5zdHJpbmcsXG4gIH0sXG4gICdXUFRyYW5zZmVyJ1xuKTtcblxuZXhwb3J0IHR5cGUgV1BUcmFuc2ZlciA9IHQuVHlwZU9mPHR5cGVvZiBXUFRyYW5zZmVyPjtcblxuZXhwb3J0IGNvbnN0IFdpdGhkcmF3UmVzcG9uc2UgPSB0LnN0cmljdChcbiAge1xuICAgIHR4aWQ6IHQuc3RyaW5nLFxuICB9LFxuICAnQ3JlYXRlV2l0aGRyYXdhbFJlc3BvbnNlJ1xuKTtcblxuZXhwb3J0IHR5cGUgV2l0aGRyYXdSZXNwb25zZSA9IHQuVHlwZU9mPHR5cGVvZiBXaXRoZHJhd1Jlc3BvbnNlPjtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUludm9pY2VSZXNwb25zZSA9IHQuc3RyaWN0KFxuICB7XG4gICAgdmFsdWU6IHQubnVtYmVyLFxuICAgIG1lbW86IHQudW5pb24oW3Quc3RyaW5nLCB0LnVuZGVmaW5lZF0pLFxuICAgIHBheW1lbnRIYXNoOiB0LnN0cmluZyxcbiAgICBpbnZvaWNlOiB0LnN0cmluZyxcbiAgICB3YWxsZXRJZDogdC5zdHJpbmcsXG4gICAgc3RhdHVzOiB0LnN0cmluZyxcbiAgICBleHBpcmVzQXQ6IHQuc3RyaW5nLFxuICB9LFxuICAnQ3JlYXRlSW52b2ljZVJlc3BvbnNlJ1xuKTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlSW52b2ljZVJlc3BvbnNlID0gdC5UeXBlT2Y8dHlwZW9mIENyZWF0ZUludm9pY2VSZXNwb25zZT47XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVEZXBvc2l0QWRkcmVzc1Jlc3BvbnNlID0gdC5zdHJpY3QoXG4gIHtcbiAgICBhZGRyZXNzOiB0LnN0cmluZyxcbiAgfSxcbiAgJ0NyZWF0ZURlcG9zaXRBZGRyZXNzUmVzcG9uc2UnXG4pO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVEZXBvc2l0QWRkcmVzc1Jlc3BvbnNlID0gdC5UeXBlT2Y8dHlwZW9mIENyZWF0ZURlcG9zaXRBZGRyZXNzUmVzcG9uc2U+O1xuXG5leHBvcnQgY29uc3QgRGVwb3NpdFJlc3BvbnNlID0gdC5zdHJpY3QoXG4gIHtcbiAgICBzdGF0dXM6IHQuc3RyaW5nLFxuICAgIHRyYW5zZmVyOiBXUFRyYW5zZmVyLFxuICB9LFxuICAnRGVwb3NpdFJlc3BvbnNlJ1xuKTtcblxuZXhwb3J0IHR5cGUgRGVwb3NpdFJlc3BvbnNlID0gdC5UeXBlT2Y8dHlwZW9mIERlcG9zaXRSZXNwb25zZT47XG5cbmV4cG9ydCBjb25zdCBQYXlJbnZvaWNlUmVzcG9uc2UgPSB0LnN0cmljdChcbiAge1xuICAgIHBheW1lbnRIYXNoOiB0LnN0cmluZyxcbiAgICB0cmFuc2ZlcjogV1BUcmFuc2ZlcixcbiAgICBzdGF0dXM6IHQuc3RyaW5nLFxuICB9LFxuICAnUGF5SW52b2ljZVJlc3BvbnNlJ1xuKTtcblxuZXhwb3J0IHR5cGUgUGF5SW52b2ljZVJlc3BvbnNlID0gdC5UeXBlT2Y8dHlwZW9mIFBheUludm9pY2VSZXNwb25zZT47XG5cbmV4cG9ydCBjb25zdCBHZXRCYWxhbmNlUmVzcG9uc2UgPSB0LnN0cmljdChcbiAge1xuICAgIGJhbGFuY2U6IHQubnVtYmVyLFxuICAgIGF2YWlsYWJsZUJhbGFuY2U6IHQubnVtYmVyLFxuICAgIG1heGltdW1CYWxhbmNlOiB0Lm51bWJlcixcbiAgfSxcbiAgJ0dldEJhbGFuY2VSZXNwb25zZSdcbik7XG5cbmV4cG9ydCB0eXBlIEdldEJhbGFuY2VSZXNwb25zZSA9IHQuVHlwZU9mPHR5cGVvZiBHZXRCYWxhbmNlUmVzcG9uc2U+O1xuXG5jb25zdCBJbnZvaWNlSW5mbyA9IHQuc3RyaWN0KHtcbiAgcGF5bWVudEhhc2g6IHQuc3RyaW5nLFxuICB3YWxsZXRJZDogdC5zdHJpbmcsXG4gIHN0YXR1czogdC51bmlvbihbdC5saXRlcmFsKCdvcGVuJyksIHQubGl0ZXJhbCgnc2V0dGxlZCcpLCB0LmxpdGVyYWwoJ2NhbmNlbGVkJyldKSxcbiAgdmFsdWU6IHQubnVtYmVyLFxuICBleHBpcmVzQXQ6IHQuc3RyaW5nLFxuICBjcmVhdGVkQXQ6IHQuc3RyaW5nLFxuICB1cGRhdGVkQXQ6IHQuc3RyaW5nLFxuICBhbXRQYWlkU2F0czogdC51bmlvbihbdC5udW1iZXIsIHQudW5kZWZpbmVkXSksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldEludm9pY2VzUmVzcG9uc2UgPSB0LmFycmF5KEludm9pY2VJbmZvKTtcblxuZXhwb3J0IHR5cGUgR2V0SW52b2ljZXNSZXNwb25zZSA9IHQuVHlwZU9mPHR5cGVvZiBHZXRJbnZvaWNlc1Jlc3BvbnNlPjtcblxuY29uc3QgUGF5bWVudEluZm8gPSB0LnN0cmljdCh7XG4gIHBheW1lbnRIYXNoOiB0LnN0cmluZyxcbiAgd2FsbGV0SWQ6IHQuc3RyaW5nLFxuICBzdGF0dXM6IHQudW5pb24oW3QubGl0ZXJhbCgnaW5fZmxpZ2h0JyksIHQubGl0ZXJhbCgnc2V0dGxlZCcpLCB0LmxpdGVyYWwoJ2ZhaWxlZCcpXSksXG4gIGFtb3VudDogdC51bmlvbihbdC5udW1iZXIsIHQudW5kZWZpbmVkXSksXG4gIGludm9pY2U6IHQuc3RyaW5nLFxuICBzZW5kUXVldWVJZDogdC5zdHJpbmcsXG4gIGZhaWx1cmVSZWFzb246IHQudW5pb24oW3Quc3RyaW5nLCB0LnVuZGVmaW5lZF0pLFxuICBmZWU6IHQudW5pb24oW3QubnVtYmVyLCB0LnVuZGVmaW5lZF0pLFxuICBmZWVMaW1pdDogdC5udW1iZXIsXG4gIHBheW1lbnRQcmVpbWFnZTogdC51bmlvbihbdC5zdHJpbmcsIHQudW5kZWZpbmVkXSksXG4gIGRlc3RpbmF0aW9uOiB0LnN0cmluZyxcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0UGF5bWVudHNSZXNwb25zZSA9IHQuYXJyYXkoUGF5bWVudEluZm8pO1xuXG5leHBvcnQgdHlwZSBHZXRQYXltZW50c1Jlc3BvbnNlID0gdC5UeXBlT2Y8dHlwZW9mIEdldFBheW1lbnRzUmVzcG9uc2U+O1xuXG5leHBvcnQgY29uc3QgTG51cmxQYXlSZXNwb25zZSA9IHQuc3RyaWN0KHtcbiAgdGFnOiB0LmxpdGVyYWwoJ3BheVJlcXVlc3QnKSxcbiAgY2FsbGJhY2s6IHQuc3RyaW5nLFxuICAvKiogVGhlIG1heGltdW0gYW1vdW50IGluIG1pbGxpc2F0b3NoaXMgd2UgY2FuIHBheSBmb3IgdGhpcyBMTlJVTCByZXF1ZXN0ICovXG4gIG1heFNlbmRhYmxlOiB0Lm51bWJlcixcbiAgLyoqIFRoZSBtaW5pbXVtIGFtb3VudCBpbiBtaWxsaXNhdG9zaGlzIHdlIGNhbiBwYXkgZm9yIHRoaXMgTE5SVUwgcmVxdWVzdCAqL1xuICBtaW5TZW5kYWJsZTogdC5udW1iZXIsXG4gIC8qKiBBIGpzb24gYXJyYXkgaW4gc3RyaW5nIGZvcm1hdCBkZXNjcmliaW5nIHRoZSBwYXltZW50ICovXG4gIG1ldGFkYXRhOiB0LnN0cmluZyxcbn0pO1xuXG5leHBvcnQgdHlwZSBMbnVybFBheVJlc3BvbnNlID0gdC5UeXBlT2Y8dHlwZW9mIExudXJsUGF5UmVzcG9uc2U+O1xuXG5leHBvcnQgdHlwZSBEZWNvZGVkTG51cmxQYXlSZXF1ZXN0ID0gTG51cmxQYXlSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIEZyb20gaHR0cHM6Ly9naXRodWIuY29tL2ZpYXRqYWYvbG51cmwtcmZjL2Jsb2IvbHVkcy8wNi5tZCNwYXktdG8tc3RhdGljLXFybmZjbGlua1xuICAgKiBhIHBheW1lbnQgZGlhbG9nIG11c3QgaW5jbHVkZTogRG9tYWluIG5hbWUgZXh0cmFjdGVkIGZyb20gTE5VUkwgcXVlcnkgc3RyaW5nLlxuICAgKi9cbiAgZG9tYWluOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElMaWdodG5pbmcge1xuICBjcmVhdGVJbnZvaWNlKHBhcmFtczogQ3JlYXRlSW52b2ljZVBhcmFtcyk6IFByb21pc2U8Q3JlYXRlSW52b2ljZVJlc3BvbnNlPjtcbiAgY3JlYXRlRGVwb3NpdEFkZHJlc3MoKTogUHJvbWlzZTxDcmVhdGVEZXBvc2l0QWRkcmVzc1Jlc3BvbnNlPjtcbiAgcGF5SW52b2ljZShwYXJhbXM6IFBheUludm9pY2VQYXJhbXMpOiBQcm9taXNlPFBheUludm9pY2VSZXNwb25zZT47XG4gIGdldEJhbGFuY2UoKTogUHJvbWlzZTxHZXRCYWxhbmNlUmVzcG9uc2U+O1xuICB3aXRoZHJhdyhwYXJhbXM6IExpZ2h0bmluZ1dpdGhkcmF3YWxQYXJhbXMpOiBQcm9taXNlPFdpdGhkcmF3UmVzcG9uc2U+O1xuICBkZXBvc2l0KHBhcmFtczogTGlnaHRuaW5nRGVwb3NpdFBhcmFtcyk6IFByb21pc2U8RGVwb3NpdFJlc3BvbnNlPjtcbiAgZ2V0SW52b2ljZXMocXVlcnk/OiBHZXRJbnZvaWNlc1F1ZXJ5KTogUHJvbWlzZTxHZXRJbnZvaWNlc1Jlc3BvbnNlPjtcbiAgZGVjb2RlTG51cmxQYXkobG51cmw6IHN0cmluZyk6IFByb21pc2U8RGVjb2RlZExudXJsUGF5UmVxdWVzdD47XG4gIGZldGNoTG51cmxQYXlJbnZvaWNlKHBhcmFtczogTG51cmxQYXlQYXJhbXMpOiBQcm9taXNlPHN0cmluZz47XG4gIGdldFBheW1lbnRzKHF1ZXJ5PzogR2V0UGF5bWVudHNRdWVyeSk6IFByb21pc2U8R2V0UGF5bWVudHNSZXNwb25zZT47XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/lightning/custodial/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./iLightning"), exports);
|
|
18
|
+
__exportStar(require("./lightning"), exports);
|
|
19
|
+
__exportStar(require("./lnurlCodec"), exports);
|
|
20
|
+
__exportStar(require("./lightningUtils"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vbGlnaHRuaW5nL2N1c3RvZGlhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZCO0FBQzdCLDhDQUE0QjtBQUM1QiwrQ0FBNkI7QUFDN0IsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pTGlnaHRuaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vbGlnaHRuaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vbG51cmxDb2RlYyc7XG5leHBvcnQgKiBmcm9tICcuL2xpZ2h0bmluZ1V0aWxzJztcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ILightning, CreateInvoiceParams, PayInvoiceParams, LightningWithdrawalParams, LightningDepositParams, LnurlPayParams, CreateInvoiceResponse, CreateDepositAddressResponse, PayInvoiceResponse, GetBalanceResponse, WithdrawResponse, DepositResponse, GetInvoicesQuery, GetInvoicesResponse, DecodedLnurlPayRequest, GetPaymentsQuery, GetPaymentsResponse } from './iLightning';
|
|
2
|
-
import { BitGoBase } from '
|
|
3
|
-
import { IWallet } from '
|
|
2
|
+
import { BitGoBase } from '../../bitgoBase';
|
|
3
|
+
import { IWallet } from '../../wallet';
|
|
4
4
|
export declare class Lightning implements ILightning {
|
|
5
5
|
private readonly bitgo;
|
|
6
6
|
private readonly wallet;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/lightning/custodial/lightning.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;IAMhC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAW1E,oBAAoB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAO7D,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAWjE,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAOzC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBtE,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;IAWjE,WAAW,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiBhF;;;;OAIG;IACU,WAAW,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgBzE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI9D,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAGrE"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Lightning = void 0;
|
|
4
|
+
const iLightning_1 = require("./iLightning");
|
|
5
|
+
const lightningUtils_1 = require("./lightningUtils");
|
|
6
|
+
const decode_1 = require("../../utils/decode");
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
class Lightning {
|
|
9
|
+
constructor(bitgo, wallet) {
|
|
10
|
+
this.bitgo = bitgo;
|
|
11
|
+
this.wallet = wallet;
|
|
12
|
+
this.url = this.bitgo.url(`/wallet/${this.wallet.id()}/lightning`, 2);
|
|
13
|
+
}
|
|
14
|
+
async createInvoice(params) {
|
|
15
|
+
const body = await this.bitgo
|
|
16
|
+
.post(this.url + '/invoice')
|
|
17
|
+
.send(params)
|
|
18
|
+
.result();
|
|
19
|
+
return (0, decode_1.decodeOrElse)(iLightning_1.CreateInvoiceResponse.name, iLightning_1.CreateInvoiceResponse, body, (errors) => {
|
|
20
|
+
throw new Error(`error(s) parsing response body: ${errors}`);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async createDepositAddress() {
|
|
24
|
+
const body = await this.bitgo.post(this.url + '/address').result();
|
|
25
|
+
return (0, decode_1.decodeOrElse)(iLightning_1.CreateDepositAddressResponse.name, iLightning_1.CreateDepositAddressResponse, body, (errors) => {
|
|
26
|
+
throw new Error(`error(s) parsing response body: ${errors}`);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async payInvoice(params) {
|
|
30
|
+
const body = await this.bitgo
|
|
31
|
+
.post(this.url + '/payment')
|
|
32
|
+
.send(params)
|
|
33
|
+
.result();
|
|
34
|
+
return (0, decode_1.decodeOrElse)(iLightning_1.PayInvoiceResponse.name, iLightning_1.PayInvoiceResponse, body, (errors) => {
|
|
35
|
+
throw new Error(`error(s) parsing response body: ${errors}`);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async getBalance() {
|
|
39
|
+
const body = await this.bitgo.get(this.url + '/balance').result();
|
|
40
|
+
return (0, decode_1.decodeOrElse)(iLightning_1.GetBalanceResponse.name, iLightning_1.GetBalanceResponse, body, (errors) => {
|
|
41
|
+
throw new Error(`error(s) parsing response body: ${errors}`);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
async withdraw(params) {
|
|
45
|
+
const { value } = params;
|
|
46
|
+
let { destination, sequenceId } = params;
|
|
47
|
+
if (destination === undefined) {
|
|
48
|
+
destination = (await this.wallet.createAddress()).address;
|
|
49
|
+
}
|
|
50
|
+
if (sequenceId === undefined) {
|
|
51
|
+
sequenceId = (0, crypto_1.randomBytes)(16).toString('hex');
|
|
52
|
+
}
|
|
53
|
+
const body = await this.bitgo
|
|
54
|
+
.post(this.url + '/withdrawal')
|
|
55
|
+
.send({ value, destination, sequenceId })
|
|
56
|
+
.result();
|
|
57
|
+
return (0, decode_1.decodeOrElse)(iLightning_1.WithdrawResponse.name, iLightning_1.WithdrawResponse, body, (errors) => {
|
|
58
|
+
throw new Error(`error(s) parsing response body: ${errors}`);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async deposit(params) {
|
|
62
|
+
const { amount } = params;
|
|
63
|
+
const address = (await this.createDepositAddress()).address;
|
|
64
|
+
const res = await this.wallet.send({ amount, address });
|
|
65
|
+
return (0, decode_1.decodeOrElse)(iLightning_1.DepositResponse.name, iLightning_1.DepositResponse, res, (errors) => {
|
|
66
|
+
throw new Error(`error(s) parsing response body: ${errors}`);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
async getInvoices(query) {
|
|
70
|
+
const queryParams = {
|
|
71
|
+
status: query === null || query === void 0 ? void 0 : query.status,
|
|
72
|
+
limit: query === null || query === void 0 ? void 0 : query.limit,
|
|
73
|
+
startDate: query === null || query === void 0 ? void 0 : query.startDate,
|
|
74
|
+
endDate: query === null || query === void 0 ? void 0 : query.endDate,
|
|
75
|
+
};
|
|
76
|
+
const body = await this.bitgo
|
|
77
|
+
.get(this.url + '/invoices')
|
|
78
|
+
.query(queryParams)
|
|
79
|
+
.result();
|
|
80
|
+
return (0, decode_1.decodeOrElse)(iLightning_1.GetInvoicesResponse.name, iLightning_1.GetInvoicesResponse, body, (errors) => {
|
|
81
|
+
throw new Error(`error(s) parsing response body: ${errors}`);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* fetches lightning payments by status, limit, startDate and endDate
|
|
86
|
+
* @param query
|
|
87
|
+
* @return {GetPaymentsResponse}
|
|
88
|
+
*/
|
|
89
|
+
async getPayments(query) {
|
|
90
|
+
const queryParams = {};
|
|
91
|
+
queryParams.status = query === null || query === void 0 ? void 0 : query.status;
|
|
92
|
+
queryParams.limit = query === null || query === void 0 ? void 0 : query.limit;
|
|
93
|
+
queryParams.startDate = query === null || query === void 0 ? void 0 : query.startDate;
|
|
94
|
+
queryParams.endDate = query === null || query === void 0 ? void 0 : query.endDate;
|
|
95
|
+
const body = await this.bitgo
|
|
96
|
+
.get(this.url + '/payments')
|
|
97
|
+
.query(queryParams)
|
|
98
|
+
.result();
|
|
99
|
+
return (0, decode_1.decodeOrElse)(iLightning_1.GetPaymentsResponse.name, iLightning_1.GetPaymentsResponse, body, (errors) => {
|
|
100
|
+
throw new Error(`error(s) parsing response body: ${errors}`);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
decodeLnurlPay(lnurl) {
|
|
104
|
+
return (0, lightningUtils_1.decodeLnurlPay)(lnurl);
|
|
105
|
+
}
|
|
106
|
+
fetchLnurlPayInvoice(params) {
|
|
107
|
+
return (0, lightningUtils_1.fetchLnurlPayInvoice)(params);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.Lightning = Lightning;
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2xpZ2h0bmluZy9jdXN0b2RpYWwvbGlnaHRuaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQWtCc0I7QUFDdEIscURBQXdFO0FBR3hFLCtDQUFrRDtBQUNsRCxtQ0FBcUM7QUFFckMsTUFBYSxTQUFTO0lBS3BCLFlBQVksS0FBZ0IsRUFBRSxNQUFlO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBMkI7UUFDcEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSzthQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUM7YUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUNaLE1BQU0sRUFBRSxDQUFDO1FBRVosT0FBTyxJQUFBLHFCQUFZLEVBQUMsa0NBQXFCLENBQUMsSUFBSSxFQUFFLGtDQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3RGLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQjtRQUMvQixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsTUFBTSxF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O1FBQ2pDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsQ0FBQztRQUN6QyxXQUFXLENBQUMsT0FBTyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLENBQUM7UUFFckMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSzthQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7YUFDM0IsS0FBSyxDQUFDLFdBQVcsQ0FBQzthQUNsQixNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sSUFBQSxxQkFBWSxFQUFDLGdDQUFtQixDQUFDLElBQUksRUFBRSxnQ0FBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNsRixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFhO1FBQ2pDLE9BQU8sSUFBQSwrQkFBYyxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUFzQjtRQUNoRCxPQUFPLElBQUEscUNBQW9CLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBNUhELDhCQTRIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElMaWdodG5pbmcsXG4gIENyZWF0ZUludm9pY2VQYXJhbXMsXG4gIFBheUludm9pY2VQYXJhbXMsXG4gIExpZ2h0bmluZ1dpdGhkcmF3YWxQYXJhbXMsXG4gIExpZ2h0bmluZ0RlcG9zaXRQYXJhbXMsXG4gIExudXJsUGF5UGFyYW1zLFxuICBDcmVhdGVJbnZvaWNlUmVzcG9uc2UsXG4gIENyZWF0ZURlcG9zaXRBZGRyZXNzUmVzcG9uc2UsXG4gIFBheUludm9pY2VSZXNwb25zZSxcbiAgR2V0QmFsYW5jZVJlc3BvbnNlLFxuICBXaXRoZHJhd1Jlc3BvbnNlLFxuICBEZXBvc2l0UmVzcG9uc2UsXG4gIEdldEludm9pY2VzUXVlcnksXG4gIEdldEludm9pY2VzUmVzcG9uc2UsXG4gIERlY29kZWRMbnVybFBheVJlcXVlc3QsXG4gIEdldFBheW1lbnRzUXVlcnksXG4gIEdldFBheW1lbnRzUmVzcG9uc2UsXG59IGZyb20gJy4vaUxpZ2h0bmluZyc7XG5pbXBvcnQgeyBkZWNvZGVMbnVybFBheSwgZmV0Y2hMbnVybFBheUludm9pY2UgfSBmcm9tICcuL2xpZ2h0bmluZ1V0aWxzJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vLi4vd2FsbGV0JztcbmltcG9ydCB7IGRlY29kZU9yRWxzZSB9IGZyb20gJy4uLy4uL3V0aWxzL2RlY29kZSc7XG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5cbmV4cG9ydCBjbGFzcyBMaWdodG5pbmcgaW1wbGVtZW50cyBJTGlnaHRuaW5nIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHdhbGxldDogSVdhbGxldDtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB3YWxsZXQ6IElXYWxsZXQpIHtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gICAgdGhpcy51cmwgPSB0aGlzLmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZ2AsIDIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZUludm9pY2UocGFyYW1zOiBDcmVhdGVJbnZvaWNlUGFyYW1zKTogUHJvbWlzZTxDcmVhdGVJbnZvaWNlUmVzcG9uc2U+IHtcbiAgICBjb25zdCBib2R5ID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy51cmwgKyAnL2ludm9pY2UnKVxuICAgICAgLnNlbmQocGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuXG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShDcmVhdGVJbnZvaWNlUmVzcG9uc2UubmFtZSwgQ3JlYXRlSW52b2ljZVJlc3BvbnNlLCBib2R5LCAoZXJyb3JzKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yKHMpIHBhcnNpbmcgcmVzcG9uc2UgYm9keTogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlRGVwb3NpdEFkZHJlc3MoKTogUHJvbWlzZTxDcmVhdGVEZXBvc2l0QWRkcmVzc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHRoaXMuYml0Z28ucG9zdCh0aGlzLnVybCArICcvYWRkcmVzcycpLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVPckVsc2UoQ3JlYXRlRGVwb3NpdEFkZHJlc3NSZXNwb25zZS5uYW1lLCBDcmVhdGVEZXBvc2l0QWRkcmVzc1Jlc3BvbnNlLCBib2R5LCAoZXJyb3JzKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yKHMpIHBhcnNpbmcgcmVzcG9uc2UgYm9keTogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcGF5SW52b2ljZShwYXJhbXM6IFBheUludm9pY2VQYXJhbXMpOiBQcm9taXNlPFBheUludm9pY2VSZXNwb25zZT4ge1xuICAgIGNvbnN0IGJvZHkgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLnVybCArICcvcGF5bWVudCcpXG4gICAgICAuc2VuZChwYXJhbXMpXG4gICAgICAucmVzdWx0KCk7XG5cbiAgICByZXR1cm4gZGVjb2RlT3JFbHNlKFBheUludm9pY2VSZXNwb25zZS5uYW1lLCBQYXlJbnZvaWNlUmVzcG9uc2UsIGJvZHksIChlcnJvcnMpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXJyb3IocykgcGFyc2luZyByZXNwb25zZSBib2R5OiAke2Vycm9yc31gKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKCk6IFByb21pc2U8R2V0QmFsYW5jZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMudXJsICsgJy9iYWxhbmNlJykucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShHZXRCYWxhbmNlUmVzcG9uc2UubmFtZSwgR2V0QmFsYW5jZVJlc3BvbnNlLCBib2R5LCAoZXJyb3JzKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yKHMpIHBhcnNpbmcgcmVzcG9uc2UgYm9keTogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgd2l0aGRyYXcocGFyYW1zOiBMaWdodG5pbmdXaXRoZHJhd2FsUGFyYW1zKTogUHJvbWlzZTxXaXRoZHJhd1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gcGFyYW1zO1xuICAgIGxldCB7IGRlc3RpbmF0aW9uLCBzZXF1ZW5jZUlkIH0gPSBwYXJhbXM7XG5cbiAgICBpZiAoZGVzdGluYXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVzdGluYXRpb24gPSAoYXdhaXQgdGhpcy53YWxsZXQuY3JlYXRlQWRkcmVzcygpKS5hZGRyZXNzO1xuICAgIH1cblxuICAgIGlmIChzZXF1ZW5jZUlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNlcXVlbmNlSWQgPSByYW5kb21CeXRlcygxNikudG9TdHJpbmcoJ2hleCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHkgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLnVybCArICcvd2l0aGRyYXdhbCcpXG4gICAgICAuc2VuZCh7IHZhbHVlLCBkZXN0aW5hdGlvbiwgc2VxdWVuY2VJZCB9KVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVPckVsc2UoV2l0aGRyYXdSZXNwb25zZS5uYW1lLCBXaXRoZHJhd1Jlc3BvbnNlLCBib2R5LCAoZXJyb3JzKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yKHMpIHBhcnNpbmcgcmVzcG9uc2UgYm9keTogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVwb3NpdChwYXJhbXM6IExpZ2h0bmluZ0RlcG9zaXRQYXJhbXMpOiBQcm9taXNlPERlcG9zaXRSZXNwb25zZT4ge1xuICAgIGNvbnN0IHsgYW1vdW50IH0gPSBwYXJhbXM7XG4gICAgY29uc3QgYWRkcmVzcyA9IChhd2FpdCB0aGlzLmNyZWF0ZURlcG9zaXRBZGRyZXNzKCkpLmFkZHJlc3M7XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLndhbGxldC5zZW5kKHsgYW1vdW50LCBhZGRyZXNzIH0pO1xuXG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShEZXBvc2l0UmVzcG9uc2UubmFtZSwgRGVwb3NpdFJlc3BvbnNlLCByZXMsIChlcnJvcnMpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXJyb3IocykgcGFyc2luZyByZXNwb25zZSBib2R5OiAke2Vycm9yc31gKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRJbnZvaWNlcyhxdWVyeT86IEdldEludm9pY2VzUXVlcnkpOiBQcm9taXNlPEdldEludm9pY2VzUmVzcG9uc2U+IHtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgIHN0YXR1czogcXVlcnk/LnN0YXR1cyxcbiAgICAgIGxpbWl0OiBxdWVyeT8ubGltaXQsXG4gICAgICBzdGFydERhdGU6IHF1ZXJ5Py5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBxdWVyeT8uZW5kRGF0ZSxcbiAgICB9O1xuXG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5nZXQodGhpcy51cmwgKyAnL2ludm9pY2VzJylcbiAgICAgIC5xdWVyeShxdWVyeVBhcmFtcylcbiAgICAgIC5yZXN1bHQoKTtcbiAgICByZXR1cm4gZGVjb2RlT3JFbHNlKEdldEludm9pY2VzUmVzcG9uc2UubmFtZSwgR2V0SW52b2ljZXNSZXNwb25zZSwgYm9keSwgKGVycm9ycykgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvcihzKSBwYXJzaW5nIHJlc3BvbnNlIGJvZHk6ICR7ZXJyb3JzfWApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGZldGNoZXMgbGlnaHRuaW5nIHBheW1lbnRzIGJ5IHN0YXR1cywgbGltaXQsIHN0YXJ0RGF0ZSBhbmQgZW5kRGF0ZVxuICAgKiBAcGFyYW0gcXVlcnlcbiAgICogQHJldHVybiB7R2V0UGF5bWVudHNSZXNwb25zZX1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRQYXltZW50cyhxdWVyeT86IEdldFBheW1lbnRzUXVlcnkpOiBQcm9taXNlPEdldFBheW1lbnRzUmVzcG9uc2U+IHtcbiAgICBjb25zdCBxdWVyeVBhcmFtczogeyBzdGF0dXM/OiBzdHJpbmc7IGxpbWl0PzogbnVtYmVyOyBzdGFydERhdGU/OiBzdHJpbmc7IGVuZERhdGU/OiBzdHJpbmcgfSA9IHt9O1xuICAgIHF1ZXJ5UGFyYW1zLnN0YXR1cyA9IHF1ZXJ5Py5zdGF0dXM7XG4gICAgcXVlcnlQYXJhbXMubGltaXQgPSBxdWVyeT8ubGltaXQ7XG4gICAgcXVlcnlQYXJhbXMuc3RhcnREYXRlID0gcXVlcnk/LnN0YXJ0RGF0ZTtcbiAgICBxdWVyeVBhcmFtcy5lbmREYXRlID0gcXVlcnk/LmVuZERhdGU7XG5cbiAgICBjb25zdCBib2R5ID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLnVybCArICcvcGF5bWVudHMnKVxuICAgICAgLnF1ZXJ5KHF1ZXJ5UGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVPckVsc2UoR2V0UGF5bWVudHNSZXNwb25zZS5uYW1lLCBHZXRQYXltZW50c1Jlc3BvbnNlLCBib2R5LCAoZXJyb3JzKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yKHMpIHBhcnNpbmcgcmVzcG9uc2UgYm9keTogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVjb2RlTG51cmxQYXkobG51cmw6IHN0cmluZyk6IFByb21pc2U8RGVjb2RlZExudXJsUGF5UmVxdWVzdD4ge1xuICAgIHJldHVybiBkZWNvZGVMbnVybFBheShsbnVybCk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hMbnVybFBheUludm9pY2UocGFyYW1zOiBMbnVybFBheVBhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGZldGNoTG51cmxQYXlJbnZvaWNlKHBhcmFtcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightningUtils.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/lightning/custodial/lightningUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AAIxF,oBAAY,sBAAsB,GAAG;IACnC;;;OAGG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAYnF;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CASlF;AAoBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAUpH;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,OAAO,GAAG,sBAAsB,CA8BjF"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.parseLightningInvoice = exports.validateLnurlInvoice = exports.fetchLnurlPayInvoice = exports.decodeLnurlPay = void 0;
|
|
27
|
+
const bolt11 = __importStar(require("bolt11"));
|
|
28
|
+
const crypto = __importStar(require("crypto"));
|
|
29
|
+
const request = __importStar(require("superagent"));
|
|
30
|
+
const iLightning_1 = require("./iLightning");
|
|
31
|
+
const lnurlCodec_1 = require("./lnurlCodec");
|
|
32
|
+
const decode_1 = require("../../utils/decode");
|
|
33
|
+
/**
|
|
34
|
+
* Decodes an LNURL-pay request and makes an HTTP request to the decoded url
|
|
35
|
+
* to retrieve details for the requested payment.
|
|
36
|
+
* @param lnurl A bech32 encoded LNURL-pay request string
|
|
37
|
+
* @returns {DecodedLnurlPayRequest} An LNURL-pay request message specifying
|
|
38
|
+
* a min and max amount for the payment, metadata describing what the payment
|
|
39
|
+
* is for, and a callback that can be used to fetch a lightning invoice for
|
|
40
|
+
* the payment.
|
|
41
|
+
*/
|
|
42
|
+
async function decodeLnurlPay(lnurl) {
|
|
43
|
+
const url = (0, lnurlCodec_1.decodeLnurl)(lnurl);
|
|
44
|
+
const { body } = await request.get(url);
|
|
45
|
+
const decodedRes = (0, decode_1.decodeOrElse)(iLightning_1.LnurlPayResponse.name, iLightning_1.LnurlPayResponse, body, (errors) => {
|
|
46
|
+
throw new Error(`error(s) parsing lnurl response: ${errors}`);
|
|
47
|
+
});
|
|
48
|
+
const domain = new URL(url).hostname;
|
|
49
|
+
return {
|
|
50
|
+
...decodedRes,
|
|
51
|
+
domain,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
exports.decodeLnurlPay = decodeLnurlPay;
|
|
55
|
+
/**
|
|
56
|
+
* Fetches a lightning invoice from an LNURL-pay callback server for a specified
|
|
57
|
+
* amount of millisatoshis.
|
|
58
|
+
* @param params {LnurlPayParams} An object specifying an amount and a callback
|
|
59
|
+
* url with which to request a lightning invoice for an LNURL-pay request.
|
|
60
|
+
* @returns {string} A BOLT #11 encoded lightning invoice
|
|
61
|
+
*/
|
|
62
|
+
async function fetchLnurlPayInvoice(params) {
|
|
63
|
+
const { callback, millisatAmount, metadata } = params;
|
|
64
|
+
const { pr: invoice } = callback.includes('?')
|
|
65
|
+
? (await request.get(callback + `&amount=${millisatAmount}`)).body
|
|
66
|
+
: (await request.get(callback).query({ amount: millisatAmount })).body;
|
|
67
|
+
const parsedInvoice = parseLightningInvoice(invoice);
|
|
68
|
+
validateLnurlInvoice(parsedInvoice, millisatAmount, metadata);
|
|
69
|
+
return invoice;
|
|
70
|
+
}
|
|
71
|
+
exports.fetchLnurlPayInvoice = fetchLnurlPayInvoice;
|
|
72
|
+
function getNetworkForInvoice(invoice) {
|
|
73
|
+
if (invoice.startsWith('lntbs')) {
|
|
74
|
+
// signet invoices are not supported by our bolt11 dependency
|
|
75
|
+
// because the `tbs` prefix used for the invoice does not match the `tb`
|
|
76
|
+
// prefix used by on-chain signet addresses
|
|
77
|
+
// see: https://github.com/bitcoinjs/bolt11/pull/58#issuecomment-1106495709
|
|
78
|
+
// we can still decode the invoice however using a custom network
|
|
79
|
+
return {
|
|
80
|
+
bech32: 'tbs',
|
|
81
|
+
pubKeyHash: 0x6f,
|
|
82
|
+
scriptHash: 0xc4,
|
|
83
|
+
validWitnessVersions: [0, 1],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* @param {ParsedLightningInvoice} invoice - a parsed lightning invoice
|
|
90
|
+
* @param {number} amount - amount intended to pay for the invoice
|
|
91
|
+
* @param {string} metadata - metadata that is used to verify the fetched invoice
|
|
92
|
+
* @throws error for invoice that does not match with amount and metadata
|
|
93
|
+
*/
|
|
94
|
+
function validateLnurlInvoice(invoice, millisatAmount, metadata) {
|
|
95
|
+
const { millisatoshis, descriptionHash } = invoice;
|
|
96
|
+
if (millisatoshis !== millisatAmount) {
|
|
97
|
+
throw new Error('amount of invoice does not match with given amount');
|
|
98
|
+
}
|
|
99
|
+
const hash = crypto.createHash('sha256').update(metadata).digest('hex');
|
|
100
|
+
if (descriptionHash !== hash) {
|
|
101
|
+
throw new Error('invoice h tag does not match with hash of metadata');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.validateLnurlInvoice = validateLnurlInvoice;
|
|
105
|
+
/**
|
|
106
|
+
* @param {unknown} invoiceStr - a lightning invoice
|
|
107
|
+
* @return {ParsedLightningInvoice}
|
|
108
|
+
* @throws error for invalid lightning invoice
|
|
109
|
+
*/
|
|
110
|
+
function parseLightningInvoice(invoiceStr) {
|
|
111
|
+
var _a, _b;
|
|
112
|
+
if (typeof invoiceStr !== 'string') {
|
|
113
|
+
throw new Error('invoice is malformed');
|
|
114
|
+
}
|
|
115
|
+
const decodedInvoice = bolt11.decode(invoiceStr, getNetworkForInvoice(invoiceStr));
|
|
116
|
+
if (decodedInvoice.network === undefined) {
|
|
117
|
+
throw new Error('invoice network is invalid');
|
|
118
|
+
}
|
|
119
|
+
const { millisatoshis, tags, payeeNodeKey } = decodedInvoice;
|
|
120
|
+
const paymentHash = (_a = tags.find((tag) => tag.tagName === 'payment_hash')) === null || _a === void 0 ? void 0 : _a.data;
|
|
121
|
+
if (paymentHash === undefined || typeof paymentHash !== 'string') {
|
|
122
|
+
throw new Error('invoice payment hash is invalid');
|
|
123
|
+
}
|
|
124
|
+
if (payeeNodeKey === undefined) {
|
|
125
|
+
throw new Error('invoice payee pub key is invalid');
|
|
126
|
+
}
|
|
127
|
+
if (millisatoshis === undefined) {
|
|
128
|
+
throw new Error('invoice millisatoshis amount is invalid');
|
|
129
|
+
}
|
|
130
|
+
const descriptionHash = (_b = tags.find((tag) => tag.tagName === 'purpose_commit_hash')) === null || _b === void 0 ? void 0 : _b.data;
|
|
131
|
+
if (descriptionHash !== undefined && typeof descriptionHash !== 'string') {
|
|
132
|
+
throw new Error('invoice description hash is invalid');
|
|
133
|
+
}
|
|
134
|
+
return { millisatoshis, paymentHash, payeeNodeKey, descriptionHash };
|
|
135
|
+
}
|
|
136
|
+
exports.parseLightningInvoice = parseLightningInvoice;
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vbGlnaHRuaW5nL2N1c3RvZGlhbC9saWdodG5pbmdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUNqQywrQ0FBaUM7QUFDakMsb0RBQXNDO0FBQ3RDLDZDQUF3RjtBQUN4Riw2Q0FBMkM7QUFDM0MsK0NBQWtEO0FBZ0JsRDs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSxjQUFjLENBQUMsS0FBYTtJQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFBLHdCQUFXLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFBLHFCQUFZLEVBQUMsNkJBQWdCLENBQUMsSUFBSSxFQUFFLDZCQUFnQixFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3hGLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFFckMsT0FBTztRQUNMLEdBQUcsVUFBVTtRQUNiLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQztBQVpELHdDQVlDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLG9CQUFvQixDQUFDLE1BQXNCO0lBQy9ELE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUN0RCxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENB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Q0FBQztLQUM1RDtJQUVELE1BQU0sZUFBZSxHQUFHLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxxQkFBcUIsQ0FBQywwQ0FBRSxJQUFJLENBQUM7SUFDeEYsSUFBSSxlQUFlLEtBQUssU0FBUyxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRTtRQUN4RSxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7S0FDeEQ7SUFFRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLENBQUM7QUFDdkUsQ0FBQztBQTlCRCxzREE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBib2x0MTEgZnJvbSAnYm9sdDExJztcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0ICogYXMgcmVxdWVzdCBmcm9tICdzdXBlcmFnZW50JztcbmltcG9ydCB7IERlY29kZWRMbnVybFBheVJlcXVlc3QsIExudXJsUGF5UGFyYW1zLCBMbnVybFBheVJlc3BvbnNlIH0gZnJvbSAnLi9pTGlnaHRuaW5nJztcbmltcG9ydCB7IGRlY29kZUxudXJsIH0gZnJvbSAnLi9sbnVybENvZGVjJztcbmltcG9ydCB7IGRlY29kZU9yRWxzZSB9IGZyb20gJy4uLy4uL3V0aWxzL2RlY29kZSc7XG5cbmV4cG9ydCB0eXBlIFBhcnNlZExpZ2h0bmluZ0ludm9pY2UgPSB7XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIG1pbGxpc2F0b3NoaSByZXF1ZXN0ZWQgYnkgdGhpcyBpbnZvaWNlLiBJZiBudWxsIHRoZW5cbiAgICogdGhlIGludm9pY2UgZG9lcyBub3Qgc3BlY2lmeSBhbiBhbW91bnQgYW5kIHdpbGwgYWNjZXB0IGFueSBwYXltZW50LlxuICAgKi9cbiAgbWlsbGlzYXRvc2hpczogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRoZSBoZXggZW5jb2RlZCBwYXltZW50IGhhc2ggZm9yIHRoZSBpbnZvaWNlICovXG4gIHBheW1lbnRIYXNoOiBzdHJpbmc7XG4gIC8qKiBUaGUgaGV4IGVuY29kZWQgbm9kZSBwdWIga2V5IG9mIHRoZSBwYXllZSB0aGF0IGNyZWF0ZWQgdGhlIGludm9pY2UgKi9cbiAgcGF5ZWVOb2RlS2V5OiBzdHJpbmc7XG4gIC8qKiBUaGUgaGV4IGVuY29kZWQgU0hBMjU2IGhhc2ggb2YgdGhlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIGludm9pY2UgaXMgZm9yICovXG4gIGRlc2NyaXB0aW9uSGFzaD86IHN0cmluZztcbn07XG5cbi8qKlxuICogRGVjb2RlcyBhbiBMTlVSTC1wYXkgcmVxdWVzdCBhbmQgbWFrZXMgYW4gSFRUUCByZXF1ZXN0IHRvIHRoZSBkZWNvZGVkIHVybFxuICogdG8gcmV0cmlldmUgZGV0YWlscyBmb3IgdGhlIHJlcXVlc3RlZCBwYXltZW50LlxuICogQHBhcmFtIGxudXJsIEEgYmVjaDMyIGVuY29kZWQgTE5VUkwtcGF5IHJlcXVlc3Qgc3RyaW5nXG4gKiBAcmV0dXJucyB7RGVjb2RlZExudXJsUGF5UmVxdWVzdH0gQW4gTE5VUkwtcGF5IHJlcXVlc3QgbWVzc2FnZSBzcGVjaWZ5aW5nXG4gKiBhIG1pbiBhbmQgbWF4IGFtb3VudCBmb3IgdGhlIHBheW1lbnQsIG1ldGFkYXRhIGRlc2NyaWJpbmcgd2hhdCB0aGUgcGF5bWVudFxuICogaXMgZm9yLCBhbmQgYSBjYWxsYmFjayB0aGF0IGNhbiBiZSB1c2VkIHRvIGZldGNoIGEgbGlnaHRuaW5nIGludm9pY2UgZm9yXG4gKiB0aGUgcGF5bWVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlY29kZUxudXJsUGF5KGxudXJsOiBzdHJpbmcpOiBQcm9taXNlPERlY29kZWRMbnVybFBheVJlcXVlc3Q+IHtcbiAgY29uc3QgdXJsID0gZGVjb2RlTG51cmwobG51cmwpO1xuICBjb25zdCB7IGJvZHkgfSA9IGF3YWl0IHJlcXVlc3QuZ2V0KHVybCk7XG4gIGNvbnN0IGRlY29kZWRSZXMgPSBkZWNvZGVPckVsc2UoTG51cmxQYXlSZXNwb25zZS5uYW1lLCBMbnVybFBheVJlc3BvbnNlLCBib2R5LCAoZXJyb3JzKSA9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvcihzKSBwYXJzaW5nIGxudXJsIHJlc3BvbnNlOiAke2Vycm9yc31gKTtcbiAgfSk7XG4gIGNvbnN0IGRvbWFpbiA9IG5ldyBVUkwodXJsKS5ob3N0bmFtZTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRlY29kZWRSZXMsXG4gICAgZG9tYWluLFxuICB9O1xufVxuXG4vKipcbiAqIEZldGNoZXMgYSBsaWdodG5pbmcgaW52b2ljZSBmcm9tIGFuIExOVVJMLXBheSBjYWxsYmFjayBzZXJ2ZXIgZm9yIGEgc3BlY2lmaWVkXG4gKiBhbW91bnQgb2YgbWlsbGlzYXRvc2hpcy5cbiAqIEBwYXJhbSBwYXJhbXMge0xudXJsUGF5UGFyYW1zfSBBbiBvYmplY3Qgc3BlY2lmeWluZyBhbiBhbW91bnQgYW5kIGEgY2FsbGJhY2tcbiAqIHVybCB3aXRoIHdoaWNoIHRvIHJlcXVlc3QgYSBsaWdodG5pbmcgaW52b2ljZSBmb3IgYW4gTE5VUkwtcGF5IHJlcXVlc3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIEJPTFQgIzExIGVuY29kZWQgbGlnaHRuaW5nIGludm9pY2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoTG51cmxQYXlJbnZvaWNlKHBhcmFtczogTG51cmxQYXlQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB7IGNhbGxiYWNrLCBtaWxsaXNhdEFtb3VudCwgbWV0YWRhdGEgfSA9IHBhcmFtcztcbiAgY29uc3QgeyBwcjogaW52b2ljZSB9ID0gY2FsbGJhY2suaW5jbHVkZXMoJz8nKVxuICAgID8gKGF3YWl0IHJlcXVlc3QuZ2V0KGNhbGxiYWNrICsgYCZhbW91bnQ9JHttaWxsaXNhdEFtb3VudH1gKSkuYm9keVxuICAgIDogKGF3YWl0IHJlcXVlc3QuZ2V0KGNhbGxiYWNrKS5xdWVyeSh7IGFtb3VudDogbWlsbGlzYXRBbW91bnQgfSkpLmJvZHk7XG4gIGNvbnN0IHBhcnNlZEludm9pY2UgPSBwYXJzZUxpZ2h0bmluZ0ludm9pY2UoaW52b2ljZSk7XG4gIHZhbGlkYXRlTG51cmxJbnZvaWNlKHBhcnNlZEludm9pY2UsIG1pbGxpc2F0QW1vdW50LCBtZXRhZGF0YSk7XG5cbiAgcmV0dXJuIGludm9pY2U7XG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtGb3JJbnZvaWNlKGludm9pY2U6IHN0cmluZykge1xuICBpZiAoaW52b2ljZS5zdGFydHNXaXRoKCdsbnRicycpKSB7XG4gICAgLy8gc2lnbmV0IGludm9pY2VzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IG91ciBib2x0MTEgZGVwZW5kZW5jeVxuICAgIC8vIGJlY2F1c2UgdGhlIGB0YnNgIHByZWZpeCB1c2VkIGZvciB0aGUgaW52b2ljZSBkb2VzIG5vdCBtYXRjaCB0aGUgYHRiYFxuICAgIC8vIHByZWZpeCB1c2VkIGJ5IG9uLWNoYWluIHNpZ25ldCBhZGRyZXNzZXNcbiAgICAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luanMvYm9sdDExL3B1bGwvNTgjaXNzdWVjb21tZW50LTExMDY0OTU3MDlcbiAgICAvLyB3ZSBjYW4gc3RpbGwgZGVjb2RlIHRoZSBpbnZvaWNlIGhvd2V2ZXIgdXNpbmcgYSBjdXN0b20gbmV0d29ya1xuICAgIHJldHVybiB7XG4gICAgICBiZWNoMzI6ICd0YnMnLFxuICAgICAgcHViS2V5SGFzaDogMHg2ZixcbiAgICAgIHNjcmlwdEhhc2g6IDB4YzQsXG4gICAgICB2YWxpZFdpdG5lc3NWZXJzaW9uczogWzAsIDFdLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UGFyc2VkTGlnaHRuaW5nSW52b2ljZX0gaW52b2ljZSAtIGEgcGFyc2VkIGxpZ2h0bmluZyBpbnZvaWNlXG4gKiBAcGFyYW0ge251bWJlcn0gYW1vdW50IC0gYW1vdW50IGludGVuZGVkIHRvIHBheSBmb3IgdGhlIGludm9pY2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXRhZGF0YSAtIG1ldGFkYXRhIHRoYXQgaXMgdXNlZCB0byB2ZXJpZnkgdGhlIGZldGNoZWQgaW52b2ljZVxuICogQHRocm93cyBlcnJvciBmb3IgaW52b2ljZSB0aGF0IGRvZXMgbm90IG1hdGNoIHdpdGggYW1vdW50IGFuZCBtZXRhZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVMbnVybEludm9pY2UoaW52b2ljZTogUGFyc2VkTGlnaHRuaW5nSW52b2ljZSwgbWlsbGlzYXRBbW91bnQ6IHN0cmluZywgbWV0YWRhdGE6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCB7IG1pbGxpc2F0b3NoaXMsIGRlc2NyaXB0aW9uSGFzaCB9ID0gaW52b2ljZTtcbiAgaWYgKG1pbGxpc2F0b3NoaXMgIT09IG1pbGxpc2F0QW1vdW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdhbW91bnQgb2YgaW52b2ljZSBkb2VzIG5vdCBtYXRjaCB3aXRoIGdpdmVuIGFtb3VudCcpO1xuICB9XG5cbiAgY29uc3QgaGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUobWV0YWRhdGEpLmRpZ2VzdCgnaGV4Jyk7XG4gIGlmIChkZXNjcmlwdGlvbkhhc2ggIT09IGhhc2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludm9pY2UgaCB0YWcgZG9lcyBub3QgbWF0Y2ggd2l0aCBoYXNoIG9mIG1ldGFkYXRhJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3Vua25vd259IGludm9pY2VTdHIgLSBhIGxpZ2h0bmluZyBpbnZvaWNlXG4gKiBAcmV0dXJuIHtQYXJzZWRMaWdodG5pbmdJbnZvaWNlfVxuICogQHRocm93cyBlcnJvciBmb3IgaW52YWxpZCBsaWdodG5pbmcgaW52b2ljZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VMaWdodG5pbmdJbnZvaWNlKGludm9pY2VTdHI6IHVua25vd24pOiBQYXJzZWRMaWdodG5pbmdJbnZvaWNlIHtcbiAgaWYgKHR5cGVvZiBpbnZvaWNlU3RyICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52b2ljZSBpcyBtYWxmb3JtZWQnKTtcbiAgfVxuXG4gIGNvbnN0IGRlY29kZWRJbnZvaWNlID0gYm9sdDExLmRlY29kZShpbnZvaWNlU3RyLCBnZXROZXR3b3JrRm9ySW52b2ljZShpbnZvaWNlU3RyKSk7XG5cbiAgaWYgKGRlY29kZWRJbnZvaWNlLm5ldHdvcmsgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52b2ljZSBuZXR3b3JrIGlzIGludmFsaWQnKTtcbiAgfVxuXG4gIGNvbnN0IHsgbWlsbGlzYXRvc2hpcywgdGFncywgcGF5ZWVOb2RlS2V5IH0gPSBkZWNvZGVkSW52b2ljZTtcblxuICBjb25zdCBwYXltZW50SGFzaCA9IHRhZ3MuZmluZCgodGFnKSA9PiB0YWcudGFnTmFtZSA9PT0gJ3BheW1lbnRfaGFzaCcpPy5kYXRhO1xuICBpZiAocGF5bWVudEhhc2ggPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgcGF5bWVudEhhc2ggIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZvaWNlIHBheW1lbnQgaGFzaCBpcyBpbnZhbGlkJyk7XG4gIH1cbiAgaWYgKHBheWVlTm9kZUtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZvaWNlIHBheWVlIHB1YiBrZXkgaXMgaW52YWxpZCcpO1xuICB9XG4gIGlmIChtaWxsaXNhdG9zaGlzID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludm9pY2UgbWlsbGlzYXRvc2hpcyBhbW91bnQgaXMgaW52YWxpZCcpO1xuICB9XG5cbiAgY29uc3QgZGVzY3JpcHRpb25IYXNoID0gdGFncy5maW5kKCh0YWcpID0+IHRhZy50YWdOYW1lID09PSAncHVycG9zZV9jb21taXRfaGFzaCcpPy5kYXRhO1xuICBpZiAoZGVzY3JpcHRpb25IYXNoICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGRlc2NyaXB0aW9uSGFzaCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludm9pY2UgZGVzY3JpcHRpb24gaGFzaCBpcyBpbnZhbGlkJyk7XG4gIH1cblxuICByZXR1cm4geyBtaWxsaXNhdG9zaGlzLCBwYXltZW50SGFzaCwgcGF5ZWVOb2RlS2V5LCBkZXNjcmlwdGlvbkhhc2ggfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lnurlCodec.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/lightning/custodial/lnurlCodec.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,UAEtC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,UAmBxC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeLnurl = exports.encodeLnurl = void 0;
|
|
4
|
+
const bech32_1 = require("bech32");
|
|
5
|
+
function encodeLnurl(url) {
|
|
6
|
+
return bech32_1.bech32.encode('lnurl', bech32_1.bech32.toWords(Buffer.from(url)));
|
|
7
|
+
}
|
|
8
|
+
exports.encodeLnurl = encodeLnurl;
|
|
9
|
+
function decodeLnurl(lnurl) {
|
|
10
|
+
const splittedLnurl = lnurl.split(':');
|
|
11
|
+
let parsedLnurl;
|
|
12
|
+
if (splittedLnurl.length === 2) {
|
|
13
|
+
if (splittedLnurl[0] !== 'lightning') {
|
|
14
|
+
throw new Error('invalid lnurl');
|
|
15
|
+
}
|
|
16
|
+
parsedLnurl = splittedLnurl[1];
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
parsedLnurl = splittedLnurl[0];
|
|
20
|
+
}
|
|
21
|
+
const { prefix, words } = bech32_1.bech32.decode(parsedLnurl, 2000);
|
|
22
|
+
if (prefix !== 'lnurl') {
|
|
23
|
+
throw new Error('invalid lnurl');
|
|
24
|
+
}
|
|
25
|
+
return Buffer.from(bech32_1.bech32.fromWords(words)).toString();
|
|
26
|
+
}
|
|
27
|
+
exports.decodeLnurl = decodeLnurl;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG51cmxDb2RlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby9saWdodG5pbmcvY3VzdG9kaWFsL2xudXJsQ29kZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWdDO0FBRWhDLFNBQWdCLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLE9BQU8sZUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsZUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRkQsa0NBRUM7QUFFRCxTQUFnQixXQUFXLENBQUMsS0FBYTtJQUN2QyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXZDLElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzlCLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsRUFBRTtZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsV0FBVyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNoQztTQUFNO1FBQ0wsV0FBVyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNoQztJQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsZUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFM0QsSUFBSSxNQUFNLEtBQUssT0FBTyxFQUFFO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDbEM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFuQkQsa0NBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmVjaDMyIH0gZnJvbSAnYmVjaDMyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZUxudXJsKHVybDogc3RyaW5nKSB7XG4gIHJldHVybiBiZWNoMzIuZW5jb2RlKCdsbnVybCcsIGJlY2gzMi50b1dvcmRzKEJ1ZmZlci5mcm9tKHVybCkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUxudXJsKGxudXJsOiBzdHJpbmcpIHtcbiAgY29uc3Qgc3BsaXR0ZWRMbnVybCA9IGxudXJsLnNwbGl0KCc6Jyk7XG5cbiAgbGV0IHBhcnNlZExudXJsOiBzdHJpbmc7XG4gIGlmIChzcGxpdHRlZExudXJsLmxlbmd0aCA9PT0gMikge1xuICAgIGlmIChzcGxpdHRlZExudXJsWzBdICE9PSAnbGlnaHRuaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGxudXJsJyk7XG4gICAgfVxuICAgIHBhcnNlZExudXJsID0gc3BsaXR0ZWRMbnVybFsxXTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZWRMbnVybCA9IHNwbGl0dGVkTG51cmxbMF07XG4gIH1cbiAgY29uc3QgeyBwcmVmaXgsIHdvcmRzIH0gPSBiZWNoMzIuZGVjb2RlKHBhcnNlZExudXJsLCAyMDAwKTtcblxuICBpZiAocHJlZml4ICE9PSAnbG51cmwnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGxudXJsJyk7XG4gIH1cblxuICByZXR1cm4gQnVmZmVyLmZyb20oYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcykpLnRvU3RyaW5nKCk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/lightning/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/lightning/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
|
@@ -14,8 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
|
|
20
|
-
__exportStar(require("./lightningUtils"), exports);
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGlnaHRuaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLCtDQUE2QjtBQUM3QixtREFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lMaWdodG5pbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWdodG5pbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9sbnVybENvZGVjJztcbmV4cG9ydCAqIGZyb20gJy4vbGlnaHRuaW5nVXRpbHMnO1xuIl19
|
|
17
|
+
__exportStar(require("./signableJson"), exports);
|
|
18
|
+
__exportStar(require("./signature"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGlnaHRuaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBK0I7QUFDL0IsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaWduYWJsZUpzb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zaWduYXR1cmUnO1xuIl19
|