@bitgo/abstract-lightning 3.0.0 → 4.0.0
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 +19 -1
- package/dist/src/codecs/api/payment.d.ts +23 -0
- package/dist/src/codecs/api/payment.d.ts.map +1 -1
- package/dist/src/codecs/api/payment.js +25 -2
- package/dist/src/codecs/api/wallet.d.ts +26 -4
- package/dist/src/codecs/api/wallet.d.ts.map +1 -1
- package/dist/src/codecs/api/wallet.js +22 -6
- package/dist/src/wallet/lightning.d.ts +97 -34
- package/dist/src/wallet/lightning.d.ts.map +1 -1
- package/dist/src/wallet/lightning.js +146 -27
- package/package.json +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,25 @@
|
|
|
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
|
-
# [
|
|
6
|
+
# [4.0.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/abstract-lightning@1.2.44...@bitgo/abstract-lightning@4.0.0) (2025-03-04)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **abstract-lightning:** add codecs for more lightning apis ([1b6d238](https://github.com/BitGo/BitGoJS/commit/1b6d238a3538f7059ce773f8bd218ad8b723f17c))
|
|
11
|
+
- **abstract-lightning:** move lnv2 logic from sdk-core ([5c9114d](https://github.com/BitGo/BitGoJS/commit/5c9114d6a4dbdd5a130bde7cb897ff6f1f8132e0))
|
|
12
|
+
- **abstract-lightning:** wire up lnv2 invoices ([dba5411](https://github.com/BitGo/BitGoJS/commit/dba5411dea805ab3bf5e3937736d5c0d6f166e49))
|
|
13
|
+
- add express endpoints for lightning ([97a163d](https://github.com/BitGo/BitGoJS/commit/97a163dc2465fc3b64a8993ca0099431df2583d6))
|
|
14
|
+
- add express endpoints for lightning ([d431322](https://github.com/BitGo/BitGoJS/commit/d431322aa8d76df8f88867c554df61574fd25b7a))
|
|
15
|
+
- add express endpoints for lightning invoice ([01d89de](https://github.com/BitGo/BitGoJS/commit/01d89de0aaa33d47953edd3aede9b8161b734195))
|
|
16
|
+
- add express endpoints for lightning invoice ([563c250](https://github.com/BitGo/BitGoJS/commit/563c250f1c028f10a3a0662c9faae900d6ee137c))
|
|
17
|
+
- add support to create lightning payments ([ffa5e71](https://github.com/BitGo/BitGoJS/commit/ffa5e71f12b640d9e5bffd41fd47cc144858d09d))
|
|
18
|
+
|
|
19
|
+
### BREAKING CHANGES
|
|
20
|
+
|
|
21
|
+
- **abstract-lightning:** Lightning v2
|
|
22
|
+
- **abstract-lightning:** Lightning v2
|
|
23
|
+
|
|
24
|
+
# [3.0.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/abstract-lightning@1.2.44...@bitgo/abstract-lightning@3.0.0) (2025-02-26)
|
|
7
25
|
|
|
8
26
|
### Features
|
|
9
27
|
|
|
@@ -46,4 +46,27 @@ export declare const PaymentQuery: t.PartialC<{
|
|
|
46
46
|
endDate: import("io-ts-types/DateFromISOString").DateFromISOStringC;
|
|
47
47
|
}>;
|
|
48
48
|
export type PaymentQuery = t.TypeOf<typeof PaymentQuery>;
|
|
49
|
+
export declare const SubmitPaymentParams: t.IntersectionC<[t.IntersectionC<[t.TypeC<{
|
|
50
|
+
invoice: t.StringC;
|
|
51
|
+
}>, t.PartialC<{
|
|
52
|
+
amountMsat: import("io-ts-types/BigIntFromString").BigIntFromStringC;
|
|
53
|
+
feeLimitMsat: import("io-ts-types/BigIntFromString").BigIntFromStringC;
|
|
54
|
+
feeLimitRatio: t.NumberC;
|
|
55
|
+
}>]>, t.TypeC<{
|
|
56
|
+
passphrase: t.StringC;
|
|
57
|
+
}>, t.PartialC<{
|
|
58
|
+
sequenceId: t.UnionC<[t.Type<string, string, unknown>, t.UndefinedC]>;
|
|
59
|
+
comment: t.UnionC<[t.Type<string, string, unknown>, t.UndefinedC]>;
|
|
60
|
+
}>]>;
|
|
61
|
+
export type SubmitPaymentParams = t.TypeOf<typeof SubmitPaymentParams>;
|
|
62
|
+
export declare const LndCreatePaymentResponse: t.IntersectionC<[t.TypeC<{
|
|
63
|
+
status: t.UnionC<[t.LiteralC<"in_flight">, t.LiteralC<"settled">, t.LiteralC<"failed">]>;
|
|
64
|
+
paymentHash: t.StringC;
|
|
65
|
+
}>, t.PartialC<{
|
|
66
|
+
paymentPreimage: t.StringC;
|
|
67
|
+
amountMsat: t.StringC;
|
|
68
|
+
feeMsat: t.StringC;
|
|
69
|
+
failureReason: t.UnionC<[t.LiteralC<"TIMEOUT">, t.LiteralC<"NO_ROUTE">, t.LiteralC<"ERROR">, t.LiteralC<"INCORRECT_PAYMENT_DETAILS">, t.LiteralC<"INSUFFICIENT_BALANCE">, t.LiteralC<"INSUFFICIENT_WALLET_BALANCE">, t.LiteralC<"EXCESS_WALLET_BALANCE">, t.LiteralC<"INVOICE_EXPIRED">, t.LiteralC<"CANCELED">]>;
|
|
70
|
+
}>]>;
|
|
71
|
+
export type LndCreatePaymentResponse = t.TypeOf<typeof LndCreatePaymentResponse>;
|
|
49
72
|
//# sourceMappingURL=payment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../../src/codecs/api/payment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../../src/codecs/api/payment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAO3B,eAAO,MAAM,aAAa,kFAQxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAE3D,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,wBAAwB,aAAa,CAAC;AACnD,8BAA8B;AAC9B,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,iCAAiC,8BAA8B,CAAC;AAC7E,6CAA6C;AAC7C,eAAO,MAAM,4CAA4C,yBAAyB,CAAC;AACnF,yEAAyE;AACzE,eAAO,MAAM,2CAA2C,gCAAgC,CAAC;AACzF,mEAAmE;AACnE,eAAO,MAAM,qCAAqC,0BAA0B,CAAC;AAC7E,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AACjE,eAAO,MAAM,wBAAwB,aAAa,CAAC;AAEnD,eAAO,MAAM,oBAAoB,oSAU/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;IAqBvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;EAQxB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AAEzD,eAAO,MAAM,mBAAmB;aAtFZ,EAAG,OAAO;;uBACzB,8BAAa;yBAA8C,8BAAa;mBAEzC,EAAG,OAAO;;;;;;IA4F5C,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;;;;;;;IAcpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -33,10 +33,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.PaymentQuery = exports.PaymentInfo = exports.PaymentFailureReason = exports.PAYMENT_FAILURE_CANCELED = exports.PAYMENT_FAILURE_INVOICE_EXPIRED = exports.PAYMENT_FAILURE_EXCESS_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_CHANNEL_BALANCE = exports.PAYMENT_FAILURE_INCORRECT_DETAILS = exports.PAYMENT_FAILURE_ERROR = exports.PAYMENT_FAILURE_NO_ROUTE = exports.PAYMENT_FAILURE_TIMEOUT = exports.PaymentStatus = void 0;
|
|
36
|
+
exports.LndCreatePaymentResponse = exports.SubmitPaymentParams = exports.PaymentQuery = exports.PaymentInfo = exports.PaymentFailureReason = exports.PAYMENT_FAILURE_CANCELED = exports.PAYMENT_FAILURE_INVOICE_EXPIRED = exports.PAYMENT_FAILURE_EXCESS_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_CHANNEL_BALANCE = exports.PAYMENT_FAILURE_INCORRECT_DETAILS = exports.PAYMENT_FAILURE_ERROR = exports.PAYMENT_FAILURE_NO_ROUTE = exports.PAYMENT_FAILURE_TIMEOUT = exports.PaymentStatus = void 0;
|
|
37
37
|
const t = __importStar(require("io-ts"));
|
|
38
38
|
const BigIntFromString_1 = require("io-ts-types/BigIntFromString");
|
|
39
39
|
const DateFromISOString_1 = require("io-ts-types/DateFromISOString");
|
|
40
|
+
const public_types_1 = require("@bitgo/public-types");
|
|
40
41
|
// codecs for lightning wallet payment related apis
|
|
41
42
|
exports.PaymentStatus = t.union([
|
|
42
43
|
// Initial state when payment is initiated.
|
|
@@ -102,4 +103,26 @@ exports.PaymentQuery = t.partial({
|
|
|
102
103
|
startDate: DateFromISOString_1.DateFromISOString,
|
|
103
104
|
endDate: DateFromISOString_1.DateFromISOString,
|
|
104
105
|
}, 'PaymentQuery');
|
|
105
|
-
|
|
106
|
+
exports.SubmitPaymentParams = t.intersection([
|
|
107
|
+
public_types_1.LightningPaymentRequest,
|
|
108
|
+
t.type({
|
|
109
|
+
passphrase: t.string,
|
|
110
|
+
}),
|
|
111
|
+
t.partial({
|
|
112
|
+
sequenceId: public_types_1.optionalString,
|
|
113
|
+
comment: public_types_1.optionalString,
|
|
114
|
+
}),
|
|
115
|
+
]);
|
|
116
|
+
exports.LndCreatePaymentResponse = t.intersection([
|
|
117
|
+
t.type({
|
|
118
|
+
status: exports.PaymentStatus,
|
|
119
|
+
paymentHash: t.string,
|
|
120
|
+
}),
|
|
121
|
+
t.partial({
|
|
122
|
+
paymentPreimage: t.string,
|
|
123
|
+
amountMsat: t.string,
|
|
124
|
+
feeMsat: t.string,
|
|
125
|
+
failureReason: exports.PaymentFailureReason,
|
|
126
|
+
}),
|
|
127
|
+
], 'LndCreatePaymentResponse');
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2RlY3MvYXBpL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQTJCO0FBQzNCLG1FQUFnRTtBQUNoRSxxRUFBa0U7QUFDbEUsc0RBQThFO0FBRTlFLG1EQUFtRDtBQUV0QyxRQUFBLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25DLDJDQUEyQztJQUMzQyw0REFBNEQ7SUFDNUQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDdEIsZUFBZTtJQUNmLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BCLGVBQWU7SUFDZixDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztDQUNwQixDQUFDLENBQUM7QUFHVSxRQUFBLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztBQUNwQyxRQUFBLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztBQUNuRCw4QkFBOEI7QUFDakIsUUFBQSxxQkFBcUIsR0FBRyxPQUFPLENBQUM7QUFDaEMsUUFBQSxpQ0FBaUMsR0FBRywyQkFBMkIsQ0FBQztBQUM3RSw2Q0FBNkM7QUFDaEMsUUFBQSw0Q0FBNEMsR0FBRyxzQkFBc0IsQ0FBQztBQUNuRix5RUFBeUU7QUFDNUQsUUFBQSwyQ0FBMkMsR0FBRyw2QkFBNkIsQ0FBQztBQUN6RixtRUFBbUU7QUFDdEQsUUFBQSxxQ0FBcUMsR0FBRyx1QkFBdUIsQ0FBQztBQUNoRSxRQUFBLCtCQUErQixHQUFHLGlCQUFpQixDQUFDO0FBQ3BELFFBQUEsd0JBQXdCLEdBQUcsVUFBVSxDQUFDO0FBRXRDLFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDLENBQUMsT0FBTyxDQUFDLCtCQUF1QixDQUFDO0lBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0NBQXdCLENBQUM7SUFDbkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw2QkFBcUIsQ0FBQztJQUNoQyxDQUFDLENBQUMsT0FBTyxDQUFDLHlDQUFpQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxPQUFPLENBQUMsb0RBQTRDLENBQUM7SUFDdkQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtREFBMkMsQ0FBQztJQUN0RCxDQUFDLENBQUMsT0FBTyxDQUFDLDZDQUFxQyxDQUFDO0lBQ2hELENBQUMsQ0FBQyxPQUFPLENBQUMsdUNBQStCLENBQUM7SUFDMUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQ0FBd0IsQ0FBQztDQUNwQyxDQUFDLENBQUM7QUFJSDs7R0FFRztBQUNVLFFBQUEsV0FBVyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQ3ZDO0lBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNMLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNyQixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDbEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ3JCLE1BQU0sRUFBRSxxQkFBYTtRQUNyQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDakIsWUFBWSxFQUFFLG1DQUFnQjtRQUM5QixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDckIsU0FBUyxFQUFFLHFDQUFpQjtRQUM1QixTQUFTLEVBQUUscUNBQWlCO1FBQzVCLFVBQVUsRUFBRSxtQ0FBZ0I7S0FDN0IsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixPQUFPLEVBQUUsbUNBQWdCO1FBQ3pCLGFBQWEsRUFBRSw0QkFBb0I7UUFDbkMsZUFBZSxFQUFFLENBQUMsQ0FBQyxNQUFNO0tBQzFCLENBQUM7Q0FDSCxFQUNELGFBQWEsQ0FDZCxDQUFDO0FBSUY7O0dBRUc7QUFDVSxRQUFBLFlBQVksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUNuQztJQUNFLE1BQU0sRUFBRSxxQkFBYTtJQUNyQixLQUFLLEVBQUUsbUNBQWdCO0lBQ3ZCLFNBQVMsRUFBRSxxQ0FBaUI7SUFDNUIsT0FBTyxFQUFFLHFDQUFpQjtDQUMzQixFQUNELGNBQWMsQ0FDZixDQUFDO0FBR1csUUFBQSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ2hELHNDQUF1QjtJQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNO0tBQ3JCLENBQUM7SUFDRixDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ1IsVUFBVSxFQUFFLDZCQUFjO1FBQzFCLE9BQU8sRUFBRSw2QkFBYztLQUN4QixDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBSVUsUUFBQSx3QkFBd0IsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUNwRDtJQUNFLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDTCxNQUFNLEVBQUUscUJBQWE7UUFDckIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNO0tBQ3RCLENBQUM7SUFDRixDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ1IsZUFBZSxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ3pCLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNwQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDakIsYUFBYSxFQUFFLDRCQUFvQjtLQUNwQyxDQUFDO0NBQ0gsRUFDRCwwQkFBMEIsQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgQmlnSW50RnJvbVN0cmluZyB9IGZyb20gJ2lvLXRzLXR5cGVzL0JpZ0ludEZyb21TdHJpbmcnO1xuaW1wb3J0IHsgRGF0ZUZyb21JU09TdHJpbmcgfSBmcm9tICdpby10cy10eXBlcy9EYXRlRnJvbUlTT1N0cmluZyc7XG5pbXBvcnQgeyBMaWdodG5pbmdQYXltZW50UmVxdWVzdCwgb3B0aW9uYWxTdHJpbmcgfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcblxuLy8gY29kZWNzIGZvciBsaWdodG5pbmcgd2FsbGV0IHBheW1lbnQgcmVsYXRlZCBhcGlzXG5cbmV4cG9ydCBjb25zdCBQYXltZW50U3RhdHVzID0gdC51bmlvbihbXG4gIC8vIEluaXRpYWwgc3RhdGUgd2hlbiBwYXltZW50IGlzIGluaXRpYXRlZC5cbiAgLy8gVHJhbnNpdGlvbnMgdG8gJ3NldHRsZWQnIG9yICdmYWlsZWQnIG9uIExORCBub3RpZmljYXRpb24uXG4gIHQubGl0ZXJhbCgnaW5fZmxpZ2h0JyksXG4gIC8vIEZpbmFsIHN0YXRlLlxuICB0LmxpdGVyYWwoJ3NldHRsZWQnKSxcbiAgLy8gRmluYWwgc3RhdGUuXG4gIHQubGl0ZXJhbCgnZmFpbGVkJyksXG5dKTtcbmV4cG9ydCB0eXBlIFBheW1lbnRTdGF0dXMgPSB0LlR5cGVPZjx0eXBlb2YgUGF5bWVudFN0YXR1cz47XG5cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfVElNRU9VVCA9ICdUSU1FT1VUJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfTk9fUk9VVEUgPSAnTk9fUk9VVEUnO1xuLyoqIEEgbm9uLXJlY292ZXJhYmxlIGVycm9yICovXG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX0VSUk9SID0gJ0VSUk9SJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfSU5DT1JSRUNUX0RFVEFJTFMgPSAnSU5DT1JSRUNUX1BBWU1FTlRfREVUQUlMUyc7XG4vKiogSW5zdWZmaWNpZW50IGNoYW5uZWwgb3V0Ym91bmQgY2FwYWNpdHkgKi9cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX0NIQU5ORUxfQkFMQU5DRSA9ICdJTlNVRkZJQ0lFTlRfQkFMQU5DRSc7XG4vKiogSW5zdWZmaWNpZW50IGN1c3RvZGlhbCBsaWdodG5pbmcgYmFsYW5jZSBmb3IgdGhlIGN1c3RvbWVyJ3Mgd2FsbGV0ICovXG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX0lOU1VGRklDSUVOVF9XQUxMRVRfQkFMQU5DRSA9ICdJTlNVRkZJQ0lFTlRfV0FMTEVUX0JBTEFOQ0UnO1xuLyoqIEV4Y2VzcyBjdXN0b2RpYWwgbGlnaHRuaW5nIGJhbGFuY2UgZm9yIHRoZSBjdXN0b21lcidzIHdhbGxldCAqL1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9FWENFU1NfV0FMTEVUX0JBTEFOQ0UgPSAnRVhDRVNTX1dBTExFVF9CQUxBTkNFJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfSU5WT0lDRV9FWFBJUkVEID0gJ0lOVk9JQ0VfRVhQSVJFRCc7XG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX0NBTkNFTEVEID0gJ0NBTkNFTEVEJztcblxuZXhwb3J0IGNvbnN0IFBheW1lbnRGYWlsdXJlUmVhc29uID0gdC51bmlvbihbXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfVElNRU9VVCksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfTk9fUk9VVEUpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0VSUk9SKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9JTkNPUlJFQ1RfREVUQUlMUyksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX0NIQU5ORUxfQkFMQU5DRSksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX1dBTExFVF9CQUxBTkNFKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9FWENFU1NfV0FMTEVUX0JBTEFOQ0UpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0lOVk9JQ0VfRVhQSVJFRCksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfQ0FOQ0VMRUQpLFxuXSk7XG5cbmV4cG9ydCB0eXBlIFBheW1lbnRGYWlsdXJlUmVhc29uID0gdC5UeXBlT2Y8dHlwZW9mIFBheW1lbnRGYWlsdXJlUmVhc29uPjtcblxuLyoqXG4gKiBPZmYtY2hhaW4gcGF5bWVudCBpbmZvcm1hdGlvblxuICovXG5leHBvcnQgY29uc3QgUGF5bWVudEluZm8gPSB0LmludGVyc2VjdGlvbihcbiAgW1xuICAgIHQudHlwZSh7XG4gICAgICBwYXltZW50SGFzaDogdC5zdHJpbmcsXG4gICAgICB3YWxsZXRJZDogdC5zdHJpbmcsXG4gICAgICB0eFJlcXVlc3RJZDogdC5zdHJpbmcsXG4gICAgICBzdGF0dXM6IFBheW1lbnRTdGF0dXMsXG4gICAgICBpbnZvaWNlOiB0LnN0cmluZyxcbiAgICAgIGZlZUxpbWl0TXNhdDogQmlnSW50RnJvbVN0cmluZyxcbiAgICAgIGRlc3RpbmF0aW9uOiB0LnN0cmluZyxcbiAgICAgIHVwZGF0ZWRBdDogRGF0ZUZyb21JU09TdHJpbmcsXG4gICAgICBjcmVhdGVkQXQ6IERhdGVGcm9tSVNPU3RyaW5nLFxuICAgICAgYW1vdW50TXNhdDogQmlnSW50RnJvbVN0cmluZyxcbiAgICB9KSxcbiAgICB0LnBhcnRpYWwoe1xuICAgICAgZmVlTXNhdDogQmlnSW50RnJvbVN0cmluZyxcbiAgICAgIGZhaWx1cmVSZWFzb246IFBheW1lbnRGYWlsdXJlUmVhc29uLFxuICAgICAgcGF5bWVudFByZWltYWdlOiB0LnN0cmluZyxcbiAgICB9KSxcbiAgXSxcbiAgJ1BheW1lbnRJbmZvJ1xuKTtcblxuZXhwb3J0IHR5cGUgUGF5bWVudEluZm8gPSB0LlR5cGVPZjx0eXBlb2YgUGF5bWVudEluZm8+O1xuXG4vKipcbiAqIFBheW1lbnQgcXVlcnkgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgUGF5bWVudFF1ZXJ5ID0gdC5wYXJ0aWFsKFxuICB7XG4gICAgc3RhdHVzOiBQYXltZW50U3RhdHVzLFxuICAgIGxpbWl0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgIHN0YXJ0RGF0ZTogRGF0ZUZyb21JU09TdHJpbmcsXG4gICAgZW5kRGF0ZTogRGF0ZUZyb21JU09TdHJpbmcsXG4gIH0sXG4gICdQYXltZW50UXVlcnknXG4pO1xuZXhwb3J0IHR5cGUgUGF5bWVudFF1ZXJ5ID0gdC5UeXBlT2Y8dHlwZW9mIFBheW1lbnRRdWVyeT47XG5cbmV4cG9ydCBjb25zdCBTdWJtaXRQYXltZW50UGFyYW1zID0gdC5pbnRlcnNlY3Rpb24oW1xuICBMaWdodG5pbmdQYXltZW50UmVxdWVzdCxcbiAgdC50eXBlKHtcbiAgICBwYXNzcGhyYXNlOiB0LnN0cmluZyxcbiAgfSksXG4gIHQucGFydGlhbCh7XG4gICAgc2VxdWVuY2VJZDogb3B0aW9uYWxTdHJpbmcsXG4gICAgY29tbWVudDogb3B0aW9uYWxTdHJpbmcsXG4gIH0pLFxuXSk7XG5cbmV4cG9ydCB0eXBlIFN1Ym1pdFBheW1lbnRQYXJhbXMgPSB0LlR5cGVPZjx0eXBlb2YgU3VibWl0UGF5bWVudFBhcmFtcz47XG5cbmV4cG9ydCBjb25zdCBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2UgPSB0LmludGVyc2VjdGlvbihcbiAgW1xuICAgIHQudHlwZSh7XG4gICAgICBzdGF0dXM6IFBheW1lbnRTdGF0dXMsXG4gICAgICBwYXltZW50SGFzaDogdC5zdHJpbmcsXG4gICAgfSksXG4gICAgdC5wYXJ0aWFsKHtcbiAgICAgIHBheW1lbnRQcmVpbWFnZTogdC5zdHJpbmcsXG4gICAgICBhbW91bnRNc2F0OiB0LnN0cmluZyxcbiAgICAgIGZlZU1zYXQ6IHQuc3RyaW5nLFxuICAgICAgZmFpbHVyZVJlYXNvbjogUGF5bWVudEZhaWx1cmVSZWFzb24sXG4gICAgfSksXG4gIF0sXG4gICdMbmRDcmVhdGVQYXltZW50UmVzcG9uc2UnXG4pO1xuXG5leHBvcnQgdHlwZSBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2UgPSB0LlR5cGVPZjx0eXBlb2YgTG5kQ3JlYXRlUGF5bWVudFJlc3BvbnNlPjtcbiJdfQ==
|
|
@@ -51,11 +51,26 @@ export declare const WatchOnly: t.TypeC<{
|
|
|
51
51
|
}>>;
|
|
52
52
|
}>;
|
|
53
53
|
export type WatchOnly = t.TypeOf<typeof WatchOnly>;
|
|
54
|
-
export declare const
|
|
54
|
+
export declare const UpdateLightningWalletEncryptedRequest: t.IntersectionC<[t.PartialC<{
|
|
55
|
+
signerHost: t.StringC;
|
|
56
|
+
signerTlsCert: t.StringC;
|
|
57
|
+
watchOnlyAccounts: t.TypeC<{
|
|
58
|
+
master_key_birthday_timestamp: t.StringC;
|
|
59
|
+
master_key_fingerprint: t.StringC;
|
|
60
|
+
accounts: t.ArrayC<t.TypeC<{
|
|
61
|
+
purpose: t.NumberC;
|
|
62
|
+
coin_type: t.NumberC;
|
|
63
|
+
account: t.NumberC;
|
|
64
|
+
xpub: t.StringC;
|
|
65
|
+
}>>;
|
|
66
|
+
}>;
|
|
67
|
+
}>, t.PartialC<{
|
|
55
68
|
encryptedSignerMacaroon: t.StringC;
|
|
56
69
|
encryptedSignerAdminMacaroon: t.StringC;
|
|
57
|
-
signerHost: t.StringC;
|
|
58
70
|
encryptedSignerTlsKey: t.StringC;
|
|
71
|
+
}>]>;
|
|
72
|
+
export declare const UpdateLightningWalletClientRequest: t.IntersectionC<[t.PartialC<{
|
|
73
|
+
signerHost: t.StringC;
|
|
59
74
|
signerTlsCert: t.StringC;
|
|
60
75
|
watchOnlyAccounts: t.TypeC<{
|
|
61
76
|
master_key_birthday_timestamp: t.StringC;
|
|
@@ -67,6 +82,13 @@ export declare const UpdateLightningWalletSignedRequest: t.PartialC<{
|
|
|
67
82
|
xpub: t.StringC;
|
|
68
83
|
}>>;
|
|
69
84
|
}>;
|
|
70
|
-
}
|
|
71
|
-
|
|
85
|
+
}>, t.TypeC<{
|
|
86
|
+
passphrase: t.StringC;
|
|
87
|
+
}>, t.PartialC<{
|
|
88
|
+
signerMacaroon: t.StringC;
|
|
89
|
+
signerAdminMacaroon: t.StringC;
|
|
90
|
+
signerTlsKey: t.StringC;
|
|
91
|
+
}>]>;
|
|
92
|
+
export type UpdateLightningWalletEncryptedRequest = t.TypeOf<typeof UpdateLightningWalletEncryptedRequest>;
|
|
93
|
+
export type UpdateLightningWalletClientRequest = t.TypeOf<typeof UpdateLightningWalletClientRequest>;
|
|
72
94
|
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/codecs/api/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAM3B,eAAO,MAAM,UAAU,4DAAwE,CAAC;AAEhG,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAErD,eAAO,MAAM,iCAAiC;;;;;;;;IAAgD,CAAC;AAE/F,eAAO,MAAM,iBAAiB;;;;;GAQ7B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEnE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;GASjC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE3E,eAAO,MAAM,gBAAgB;;;;;EAK3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEjE,eAAO,MAAM,SAAS;;;;;;;;;EAIpB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/codecs/api/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAM3B,eAAO,MAAM,UAAU,4DAAwE,CAAC;AAEhG,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAErD,eAAO,MAAM,iCAAiC;;;;;;;;IAAgD,CAAC;AAE/F,eAAO,MAAM,iBAAiB;;;;;GAQ7B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEnE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;GASjC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE3E,eAAO,MAAM,gBAAgB;;;;;EAK3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEjE,eAAO,MAAM,SAAS;;;;;;;;;EAIpB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC;AAQnD,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;IAOhD,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;IAU7C,CAAC;AAEH,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAC3G,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kCAAkC,CAAC,CAAC"}
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.UpdateLightningWalletClientRequest = exports.UpdateLightningWalletEncryptedRequest = exports.WatchOnly = exports.WatchOnlyAccount = exports.LightningAuthKeychain = exports.LightningKeychain = exports.LightningAuthKeychainCoinSpecific = exports.KeyPurpose = void 0;
|
|
37
37
|
const t = __importStar(require("io-ts"));
|
|
38
38
|
const io_ts_types_1 = require("io-ts-types");
|
|
39
39
|
const shared_1 = require("../shared");
|
|
@@ -64,12 +64,28 @@ exports.WatchOnly = t.type({
|
|
|
64
64
|
master_key_fingerprint: t.string,
|
|
65
65
|
accounts: t.array(exports.WatchOnlyAccount),
|
|
66
66
|
});
|
|
67
|
-
|
|
68
|
-
encryptedSignerMacaroon: t.string,
|
|
69
|
-
encryptedSignerAdminMacaroon: t.string,
|
|
67
|
+
const CommonLightningUpdateWalletFields = t.partial({
|
|
70
68
|
signerHost: t.string,
|
|
71
|
-
encryptedSignerTlsKey: t.string,
|
|
72
69
|
signerTlsCert: t.string,
|
|
73
70
|
watchOnlyAccounts: exports.WatchOnly,
|
|
74
71
|
});
|
|
75
|
-
|
|
72
|
+
exports.UpdateLightningWalletEncryptedRequest = t.intersection([
|
|
73
|
+
CommonLightningUpdateWalletFields,
|
|
74
|
+
t.partial({
|
|
75
|
+
encryptedSignerMacaroon: t.string,
|
|
76
|
+
encryptedSignerAdminMacaroon: t.string,
|
|
77
|
+
encryptedSignerTlsKey: t.string,
|
|
78
|
+
}),
|
|
79
|
+
]);
|
|
80
|
+
exports.UpdateLightningWalletClientRequest = t.intersection([
|
|
81
|
+
CommonLightningUpdateWalletFields,
|
|
82
|
+
t.type({
|
|
83
|
+
passphrase: t.string,
|
|
84
|
+
}),
|
|
85
|
+
t.partial({
|
|
86
|
+
signerMacaroon: t.string,
|
|
87
|
+
signerAdminMacaroon: t.string,
|
|
88
|
+
signerTlsKey: t.string,
|
|
89
|
+
}),
|
|
90
|
+
]);
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvZGVjcy9hcGkvd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUEyQjtBQUMzQiw2Q0FBNkM7QUFDN0Msc0NBQXlDO0FBRXpDLHVEQUF1RDtBQUUxQyxRQUFBLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFJbkYsUUFBQSxpQ0FBaUMsR0FBRyxJQUFBLHFCQUFZLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxrQkFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWxGLFFBQUEsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FDdkM7SUFDRSxFQUFFLEVBQUUsNEJBQWM7SUFDbEIsR0FBRyxFQUFFLDRCQUFjO0lBQ25CLFlBQVksRUFBRSw0QkFBYztJQUM1QixNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Q0FDMUIsRUFDRCxtQkFBbUIsQ0FDcEIsQ0FBQztBQUlXLFFBQUEscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FDM0M7SUFDRSxFQUFFLEVBQUUsNEJBQWM7SUFDbEIsR0FBRyxFQUFFLDRCQUFjO0lBQ25CLFlBQVksRUFBRSw0QkFBYztJQUM1QixZQUFZLEVBQUUseUNBQWlDO0lBQy9DLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztDQUMxQixFQUNELHVCQUF1QixDQUN4QixDQUFDO0FBSVcsUUFBQSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNqQixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDbkIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2pCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtDQUNmLENBQUMsQ0FBQztBQUlVLFFBQUEsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUIsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDaEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsd0JBQWdCLENBQUM7Q0FDcEMsQ0FBQyxDQUFDO0FBSUgsTUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2xELFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNwQixhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkIsaUJBQWlCLEVBQUUsaUJBQVM7Q0FDN0IsQ0FBQyxDQUFDO0FBRVUsUUFBQSxxQ0FBcUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ2xFLGlDQUFpQztJQUNqQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ1IsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDakMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDdEMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLE1BQU07S0FDaEMsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVVLFFBQUEsa0NBQWtDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUMvRCxpQ0FBaUM7SUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNMLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTTtLQUNyQixDQUFDO0lBQ0YsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNSLGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUN4QixtQkFBbUIsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUM3QixZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU07S0FDdkIsQ0FBQztDQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgTm9uRW1wdHlTdHJpbmcgfSBmcm9tICdpby10cy10eXBlcyc7XG5pbXBvcnQgeyBnZXRDb2RlY1BhaXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuXG4vLyBjb2RlYyBmb3IgbGlnaHRuaW5nIHdhbGxldCBhbmQga2V5Y2hhaW4gcmVsYXRlZCBhcGlzXG5cbmV4cG9ydCBjb25zdCBLZXlQdXJwb3NlID0gdC51bmlvbihbdC5saXRlcmFsKCd1c2VyQXV0aCcpLCB0LmxpdGVyYWwoJ25vZGVBdXRoJyldLCAnS2V5UHVycG9zZScpO1xuXG5leHBvcnQgdHlwZSBLZXlQdXJwb3NlID0gdC5UeXBlT2Y8dHlwZW9mIEtleVB1cnBvc2U+O1xuXG5leHBvcnQgY29uc3QgTGlnaHRuaW5nQXV0aEtleWNoYWluQ29pblNwZWNpZmljID0gZ2V0Q29kZWNQYWlyKHQudHlwZSh7IHB1cnBvc2U6IEtleVB1cnBvc2UgfSkpO1xuXG5leHBvcnQgY29uc3QgTGlnaHRuaW5nS2V5Y2hhaW4gPSB0LnN0cmljdChcbiAge1xuICAgIGlkOiBOb25FbXB0eVN0cmluZyxcbiAgICBwdWI6IE5vbkVtcHR5U3RyaW5nLFxuICAgIGVuY3J5cHRlZFBydjogTm9uRW1wdHlTdHJpbmcsXG4gICAgc291cmNlOiB0LmxpdGVyYWwoJ3VzZXInKSxcbiAgfSxcbiAgJ0xpZ2h0bmluZ0tleWNoYWluJ1xuKTtcblxuZXhwb3J0IHR5cGUgTGlnaHRuaW5nS2V5Y2hhaW4gPSB0LlR5cGVPZjx0eXBlb2YgTGlnaHRuaW5nS2V5Y2hhaW4+O1xuXG5leHBvcnQgY29uc3QgTGlnaHRuaW5nQXV0aEtleWNoYWluID0gdC5zdHJpY3QoXG4gIHtcbiAgICBpZDogTm9uRW1wdHlTdHJpbmcsXG4gICAgcHViOiBOb25FbXB0eVN0cmluZyxcbiAgICBlbmNyeXB0ZWRQcnY6IE5vbkVtcHR5U3RyaW5nLFxuICAgIGNvaW5TcGVjaWZpYzogTGlnaHRuaW5nQXV0aEtleWNoYWluQ29pblNwZWNpZmljLFxuICAgIHNvdXJjZTogdC5saXRlcmFsKCd1c2VyJyksXG4gIH0sXG4gICdMaWdodG5pbmdBdXRoS2V5Y2hhaW4nXG4pO1xuXG5leHBvcnQgdHlwZSBMaWdodG5pbmdBdXRoS2V5Y2hhaW4gPSB0LlR5cGVPZjx0eXBlb2YgTGlnaHRuaW5nQXV0aEtleWNoYWluPjtcblxuZXhwb3J0IGNvbnN0IFdhdGNoT25seUFjY291bnQgPSB0LnR5cGUoe1xuICBwdXJwb3NlOiB0Lm51bWJlcixcbiAgY29pbl90eXBlOiB0Lm51bWJlcixcbiAgYWNjb3VudDogdC5udW1iZXIsXG4gIHhwdWI6IHQuc3RyaW5nLFxufSk7XG5cbmV4cG9ydCB0eXBlIFdhdGNoT25seUFjY291bnQgPSB0LlR5cGVPZjx0eXBlb2YgV2F0Y2hPbmx5QWNjb3VudD47XG5cbmV4cG9ydCBjb25zdCBXYXRjaE9ubHkgPSB0LnR5cGUoe1xuICBtYXN0ZXJfa2V5X2JpcnRoZGF5X3RpbWVzdGFtcDogdC5zdHJpbmcsXG4gIG1hc3Rlcl9rZXlfZmluZ2VycHJpbnQ6IHQuc3RyaW5nLFxuICBhY2NvdW50czogdC5hcnJheShXYXRjaE9ubHlBY2NvdW50KSxcbn0pO1xuXG5leHBvcnQgdHlwZSBXYXRjaE9ubHkgPSB0LlR5cGVPZjx0eXBlb2YgV2F0Y2hPbmx5PjtcblxuY29uc3QgQ29tbW9uTGlnaHRuaW5nVXBkYXRlV2FsbGV0RmllbGRzID0gdC5wYXJ0aWFsKHtcbiAgc2lnbmVySG9zdDogdC5zdHJpbmcsXG4gIHNpZ25lclRsc0NlcnQ6IHQuc3RyaW5nLFxuICB3YXRjaE9ubHlBY2NvdW50czogV2F0Y2hPbmx5LFxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVMaWdodG5pbmdXYWxsZXRFbmNyeXB0ZWRSZXF1ZXN0ID0gdC5pbnRlcnNlY3Rpb24oW1xuICBDb21tb25MaWdodG5pbmdVcGRhdGVXYWxsZXRGaWVsZHMsXG4gIHQucGFydGlhbCh7XG4gICAgZW5jcnlwdGVkU2lnbmVyTWFjYXJvb246IHQuc3RyaW5nLFxuICAgIGVuY3J5cHRlZFNpZ25lckFkbWluTWFjYXJvb246IHQuc3RyaW5nLFxuICAgIGVuY3J5cHRlZFNpZ25lclRsc0tleTogdC5zdHJpbmcsXG4gIH0pLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVMaWdodG5pbmdXYWxsZXRDbGllbnRSZXF1ZXN0ID0gdC5pbnRlcnNlY3Rpb24oW1xuICBDb21tb25MaWdodG5pbmdVcGRhdGVXYWxsZXRGaWVsZHMsXG4gIHQudHlwZSh7XG4gICAgcGFzc3BocmFzZTogdC5zdHJpbmcsXG4gIH0pLFxuICB0LnBhcnRpYWwoe1xuICAgIHNpZ25lck1hY2Fyb29uOiB0LnN0cmluZyxcbiAgICBzaWduZXJBZG1pbk1hY2Fyb29uOiB0LnN0cmluZyxcbiAgICBzaWduZXJUbHNLZXk6IHQuc3RyaW5nLFxuICB9KSxcbl0pO1xuXG5leHBvcnQgdHlwZSBVcGRhdGVMaWdodG5pbmdXYWxsZXRFbmNyeXB0ZWRSZXF1ZXN0ID0gdC5UeXBlT2Y8dHlwZW9mIFVwZGF0ZUxpZ2h0bmluZ1dhbGxldEVuY3J5cHRlZFJlcXVlc3Q+O1xuZXhwb3J0IHR5cGUgVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdCA9IHQuVHlwZU9mPHR5cGVvZiBVcGRhdGVMaWdodG5pbmdXYWxsZXRDbGllbnRSZXF1ZXN0PjtcbiJdfQ==
|
|
@@ -1,32 +1,13 @@
|
|
|
1
1
|
import * as sdkcore from '@bitgo/sdk-core';
|
|
2
|
-
import {
|
|
2
|
+
import { PendingApprovalData, TxRequestState } from '@bitgo/sdk-core';
|
|
3
|
+
import { CreateInvoiceBody, Invoice, InvoiceInfo, InvoiceQuery, LightningAuthKeychain, LightningKeychain, LndCreatePaymentResponse, SubmitPaymentParams, UpdateLightningWalletClientRequest, Transaction, TransactionQuery, PaymentInfo, BackupResponse, PaymentQuery } from '../codecs';
|
|
4
|
+
export type PayInvoiceResponse = {
|
|
5
|
+
txRequestId: string;
|
|
6
|
+
txRequestState: TxRequestState;
|
|
7
|
+
pendingApproval?: PendingApprovalData;
|
|
8
|
+
paymentStatus?: LndCreatePaymentResponse;
|
|
9
|
+
};
|
|
3
10
|
export interface ILightningWallet {
|
|
4
|
-
/**
|
|
5
|
-
* Creates a lightning invoice
|
|
6
|
-
* @param {object} params Invoice parameters
|
|
7
|
-
* @param {bigint} params.valueMsat The value of the invoice in millisatoshis
|
|
8
|
-
* @param {string} [params.memo] A memo or description for the invoice
|
|
9
|
-
* @param {number} [params.expiry] The expiry time of the invoice in seconds
|
|
10
|
-
* @returns {Promise<Invoice>} A promise that resolves to the created invoice
|
|
11
|
-
*/
|
|
12
|
-
createInvoice(params: CreateInvoiceBody): Promise<Invoice>;
|
|
13
|
-
/**
|
|
14
|
-
* Lists current lightning invoices
|
|
15
|
-
* @param {object} params Invoice query parameters
|
|
16
|
-
* @param {string} [params.status] The status of the invoice
|
|
17
|
-
* - open: The invoice is open and awaiting payment
|
|
18
|
-
* - settled: The invoice has been paid
|
|
19
|
-
* - canceled: The invoice has been canceled
|
|
20
|
-
* @param {string} [params.limit] The maximum number of invoices to return
|
|
21
|
-
* @param {Date} [params.startDate] The start date for the query
|
|
22
|
-
* @param {Date} [params.endDate] The end date for the query
|
|
23
|
-
*/
|
|
24
|
-
listInvoices(params: InvoiceQuery): Promise<InvoiceInfo[]>;
|
|
25
|
-
/**
|
|
26
|
-
* Pay a lightning invoice
|
|
27
|
-
* @param params Payment parameters (to be defined)
|
|
28
|
-
*/
|
|
29
|
-
payInvoice(params: unknown): Promise<unknown>;
|
|
30
11
|
/**
|
|
31
12
|
* Get the lightning keychain for the given wallet.
|
|
32
13
|
*/
|
|
@@ -41,31 +22,113 @@ export interface ILightningWallet {
|
|
|
41
22
|
/**
|
|
42
23
|
* Updates the coin-specific configuration for a Lightning Wallet.
|
|
43
24
|
*
|
|
44
|
-
* @param {
|
|
25
|
+
* @param {UpdateLightningWalletClientRequest} params - The parameters containing the updated wallet-specific details.
|
|
45
26
|
* - `encryptedSignerMacaroon` (optional): This macaroon is used by the watch-only node to ask the signer node to sign transactions.
|
|
46
27
|
* Encrypted with ECDH secret key from private key of wallet's user auth key and public key of lightning service.
|
|
47
28
|
* - `encryptedSignerAdminMacaroon` (optional): Generated when initializing the wallet of the signer node.
|
|
48
29
|
* Encrypted with client's wallet passphrase.
|
|
49
30
|
* - `signerHost` (optional): The host address of the Lightning signer node.
|
|
50
31
|
* - `encryptedSignerTlsKey` (optional): The wallet passphrase encrypted TLS key of the signer.
|
|
32
|
+
* - `passphrase` (required): The wallet passphrase.
|
|
51
33
|
* - `signerTlsCert` (optional): The TLS certificate of the signer.
|
|
52
34
|
* - `watchOnlyAccounts` (optional): These are the accounts used to initialize the watch-only wallet.
|
|
53
|
-
* @param {string} passphrase - wallet passphrase.
|
|
54
35
|
* @returns {Promise<unknown>} A promise resolving to the updated wallet response or throwing an error if the update fails.
|
|
55
36
|
*/
|
|
56
|
-
updateWalletCoinSpecific(params:
|
|
37
|
+
updateWalletCoinSpecific(params: UpdateLightningWalletClientRequest): Promise<unknown>;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a lightning invoice
|
|
40
|
+
* @param {object} params Invoice parameters
|
|
41
|
+
* @param {bigint} params.valueMsat The value of the invoice in millisatoshis
|
|
42
|
+
* @param {string} [params.memo] A memo or description for the invoice
|
|
43
|
+
* @param {number} [params.expiry] The expiry time of the invoice in seconds
|
|
44
|
+
* @returns {Promise<Invoice>} A promise that resolves to the created invoice
|
|
45
|
+
*/
|
|
46
|
+
createInvoice(params: CreateInvoiceBody): Promise<Invoice>;
|
|
47
|
+
/**
|
|
48
|
+
* Get invoice details by payment hash
|
|
49
|
+
* @param {string} paymentHash - Payment hash to lookup
|
|
50
|
+
* @returns {Promise<InvoiceInfo>} Invoice details
|
|
51
|
+
* @throws {InvalidPaymentHash} When payment hash is not valid
|
|
52
|
+
*/
|
|
53
|
+
getInvoice(paymentHash: string): Promise<InvoiceInfo>;
|
|
54
|
+
/**
|
|
55
|
+
* Lists current lightning invoices
|
|
56
|
+
* @param {InvoiceQuery} params Query parameters for filtering invoices
|
|
57
|
+
* @param {string} [params.status] The status of the invoice (open, settled, canceled)
|
|
58
|
+
* @param {bigint} [params.limit] The maximum number of invoices to return
|
|
59
|
+
* @param {Date} [params.startDate] The start date for the query
|
|
60
|
+
* @param {Date} [params.endDate] The end date for the query
|
|
61
|
+
* @returns {Promise<InvoiceInfo[]>} List of invoices
|
|
62
|
+
*/
|
|
63
|
+
listInvoices(params: InvoiceQuery): Promise<InvoiceInfo[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Pay a lightning invoice
|
|
66
|
+
* @param {SubmitPaymentParams} params - Payment parameters
|
|
67
|
+
* @param {string} params.invoice - The invoice to pay
|
|
68
|
+
* @param {string} params.amountMsat - The amount to pay in millisatoshis
|
|
69
|
+
* @param {string} params.passphrase - The wallet passphrase
|
|
70
|
+
* @param {string} [params.sequenceId] - Optional sequence ID for the respective payment transfer
|
|
71
|
+
* @param {string} [params.comment] - Optional comment for the respective payment transfer
|
|
72
|
+
* @returns {Promise<PayInvoiceResponse>} Payment result containing transaction request details and payment status
|
|
73
|
+
*/
|
|
74
|
+
payInvoice(params: SubmitPaymentParams): Promise<PayInvoiceResponse>;
|
|
75
|
+
/**
|
|
76
|
+
* Get payment details by payment hash
|
|
77
|
+
* @param {string} paymentHash - Payment hash to lookup
|
|
78
|
+
* @returns {Promise<PaymentInfo>} Payment details
|
|
79
|
+
* @throws {InvalidPaymentHash} When payment hash is not valid
|
|
80
|
+
*/
|
|
81
|
+
getPayment(paymentHash: string): Promise<PaymentInfo>;
|
|
82
|
+
/**
|
|
83
|
+
* List payments for a wallet with optional filtering
|
|
84
|
+
* @param {PaymentQuery} params Query parameters for filtering payments
|
|
85
|
+
* @param {string} [params.status] The status of the payment
|
|
86
|
+
* @param {bigint} [params.limit] The maximum number of payments to return
|
|
87
|
+
* @param {Date} [params.startDate] The start date for the query
|
|
88
|
+
* @param {Date} [params.endDate] The end date for the query
|
|
89
|
+
* @returns {Promise<PaymentInfo[]>} List of payments
|
|
90
|
+
*/
|
|
91
|
+
listPayments(params: PaymentQuery): Promise<PaymentInfo[]>;
|
|
92
|
+
/**
|
|
93
|
+
* Get transaction details by ID
|
|
94
|
+
* @param {string} txId - Transaction ID to lookup
|
|
95
|
+
* @returns {Promise<Transaction>} Transaction details
|
|
96
|
+
* @throws {InvalidTxId} When transaction ID is not valid
|
|
97
|
+
*/
|
|
98
|
+
getTransaction(txId: string): Promise<Transaction>;
|
|
99
|
+
/**
|
|
100
|
+
* List transactions for a wallet with optional filtering
|
|
101
|
+
* @param {TransactionQuery} params Query parameters for filtering transactions
|
|
102
|
+
* @param {bigint} [params.limit] The maximum number of transactions to return
|
|
103
|
+
* @param {Date} [params.startDate] The start date for the query
|
|
104
|
+
* @param {Date} [params.endDate] The end date for the query
|
|
105
|
+
* @returns {Promise<Transaction[]>} List of transactions
|
|
106
|
+
*/
|
|
107
|
+
listTransactions(params: TransactionQuery): Promise<Transaction[]>;
|
|
108
|
+
/**
|
|
109
|
+
* Get the channel backup for the given wallet.
|
|
110
|
+
* @returns {Promise<BackupResponse>} A promise resolving to the channel backup
|
|
111
|
+
*/
|
|
112
|
+
getChannelBackup(): Promise<BackupResponse>;
|
|
57
113
|
}
|
|
58
114
|
export declare class SelfCustodialLightningWallet implements ILightningWallet {
|
|
59
115
|
wallet: sdkcore.IWallet;
|
|
60
116
|
constructor(wallet: sdkcore.IWallet);
|
|
61
|
-
|
|
62
|
-
payInvoice(params: unknown): Promise<unknown>;
|
|
63
|
-
listInvoices(params: InvoiceQuery): Promise<InvoiceInfo[]>;
|
|
117
|
+
private encryptWalletUpdateRequest;
|
|
64
118
|
getLightningKeychain(): Promise<LightningKeychain>;
|
|
65
119
|
getLightningAuthKeychains(): Promise<{
|
|
66
120
|
userAuthKey: LightningAuthKeychain;
|
|
67
121
|
nodeAuthKey: LightningAuthKeychain;
|
|
68
122
|
}>;
|
|
69
|
-
updateWalletCoinSpecific(params:
|
|
123
|
+
updateWalletCoinSpecific(params: UpdateLightningWalletClientRequest): Promise<unknown>;
|
|
124
|
+
createInvoice(params: CreateInvoiceBody): Promise<Invoice>;
|
|
125
|
+
getInvoice(paymentHash: string): Promise<InvoiceInfo>;
|
|
126
|
+
listInvoices(params: InvoiceQuery): Promise<InvoiceInfo[]>;
|
|
127
|
+
payInvoice(params: SubmitPaymentParams): Promise<PayInvoiceResponse>;
|
|
128
|
+
getPayment(paymentHash: string): Promise<PaymentInfo>;
|
|
129
|
+
listPayments(params: PaymentQuery): Promise<PaymentInfo[]>;
|
|
130
|
+
getTransaction(txId: string): Promise<Transaction>;
|
|
131
|
+
listTransactions(params: TransactionQuery): Promise<Transaction[]>;
|
|
132
|
+
getChannelBackup(): Promise<BackupResponse>;
|
|
70
133
|
}
|
|
71
134
|
//# sourceMappingURL=lightning.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../../src/wallet/lightning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../../src/wallet/lightning.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,9 +35,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.SelfCustodialLightningWallet = void 0;
|
|
37
37
|
const sdkcore = __importStar(require("@bitgo/sdk-core"));
|
|
38
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
38
39
|
const t = __importStar(require("io-ts"));
|
|
39
40
|
const lightning_1 = require("../lightning");
|
|
40
41
|
const codecs_1 = require("../codecs");
|
|
42
|
+
const public_types_1 = require("@bitgo/public-types");
|
|
41
43
|
class SelfCustodialLightningWallet {
|
|
42
44
|
constructor(wallet) {
|
|
43
45
|
const coin = wallet.baseCoin;
|
|
@@ -46,28 +48,34 @@ class SelfCustodialLightningWallet {
|
|
|
46
48
|
}
|
|
47
49
|
this.wallet = wallet;
|
|
48
50
|
}
|
|
49
|
-
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
async payInvoice(params) {
|
|
60
|
-
throw new Error('Method not implemented.');
|
|
61
|
-
}
|
|
62
|
-
async listInvoices(params) {
|
|
63
|
-
const returnCodec = t.array(codecs_1.InvoiceInfo);
|
|
64
|
-
const createInvoiceResponse = await this.wallet.bitgo
|
|
65
|
-
.get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/invoice`))
|
|
66
|
-
.query(codecs_1.InvoiceQuery.encode(params))
|
|
67
|
-
.result();
|
|
68
|
-
return sdkcore.decodeOrElse(returnCodec.name, returnCodec, createInvoiceResponse, (error) => {
|
|
69
|
-
throw new Error(`Invalid list invoices response ${error}`);
|
|
51
|
+
encryptWalletUpdateRequest(params, userAuthKey) {
|
|
52
|
+
const coinName = this.wallet.coin();
|
|
53
|
+
const requestWithEncryption = {
|
|
54
|
+
...params,
|
|
55
|
+
};
|
|
56
|
+
const userAuthXprv = this.wallet.bitgo.decrypt({
|
|
57
|
+
password: params.passphrase,
|
|
58
|
+
input: userAuthKey.encryptedPrv,
|
|
70
59
|
});
|
|
60
|
+
if (params.signerTlsKey) {
|
|
61
|
+
requestWithEncryption.encryptedSignerTlsKey = this.wallet.bitgo.encrypt({
|
|
62
|
+
password: params.passphrase,
|
|
63
|
+
input: params.signerTlsKey,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (params.signerAdminMacaroon) {
|
|
67
|
+
requestWithEncryption.encryptedSignerAdminMacaroon = this.wallet.bitgo.encrypt({
|
|
68
|
+
password: params.passphrase,
|
|
69
|
+
input: params.signerAdminMacaroon,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (params.signerMacaroon) {
|
|
73
|
+
requestWithEncryption.encryptedSignerMacaroon = this.wallet.bitgo.encrypt({
|
|
74
|
+
password: (0, lightning_1.deriveLightningServiceSharedSecret)(coinName, userAuthXprv).toString('hex'),
|
|
75
|
+
input: params.signerMacaroon,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return t.exact(codecs_1.UpdateLightningWalletEncryptedRequest).encode(requestWithEncryption);
|
|
71
79
|
}
|
|
72
80
|
async getLightningKeychain() {
|
|
73
81
|
const keyIds = this.wallet.keyIds();
|
|
@@ -101,21 +109,132 @@ class SelfCustodialLightningWallet {
|
|
|
101
109
|
});
|
|
102
110
|
return { userAuthKey, nodeAuthKey };
|
|
103
111
|
}
|
|
104
|
-
async updateWalletCoinSpecific(params
|
|
105
|
-
sdkcore.decodeOrElse(codecs_1.
|
|
112
|
+
async updateWalletCoinSpecific(params) {
|
|
113
|
+
sdkcore.decodeOrElse(codecs_1.UpdateLightningWalletClientRequest.name, codecs_1.UpdateLightningWalletClientRequest, params, (errors) => {
|
|
106
114
|
// DON'T throw errors from decodeOrElse. It could leak sensitive information.
|
|
107
|
-
throw new Error(`Invalid params for lightning specific update wallet
|
|
115
|
+
throw new Error(`Invalid params for lightning specific update wallet`);
|
|
108
116
|
});
|
|
109
117
|
const { userAuthKey } = await this.getLightningAuthKeychains();
|
|
110
|
-
const
|
|
118
|
+
const updateRequestWithEncryption = this.encryptWalletUpdateRequest(params, userAuthKey);
|
|
119
|
+
const signature = (0, lightning_1.createMessageSignature)(updateRequestWithEncryption, this.wallet.bitgo.decrypt({ password: params.passphrase, input: userAuthKey.encryptedPrv }));
|
|
111
120
|
const coinSpecific = {
|
|
112
121
|
[this.wallet.coin()]: {
|
|
113
|
-
signedRequest:
|
|
122
|
+
signedRequest: updateRequestWithEncryption,
|
|
114
123
|
signature,
|
|
115
124
|
},
|
|
116
125
|
};
|
|
117
126
|
return await this.wallet.bitgo.put(this.wallet.url()).send({ coinSpecific }).result();
|
|
118
127
|
}
|
|
128
|
+
async createInvoice(params) {
|
|
129
|
+
const createInvoiceResponse = await this.wallet.bitgo
|
|
130
|
+
.post(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/invoice`))
|
|
131
|
+
.send(t.exact(codecs_1.CreateInvoiceBody).encode(params))
|
|
132
|
+
.result();
|
|
133
|
+
return sdkcore.decodeOrElse(codecs_1.Invoice.name, codecs_1.Invoice, createInvoiceResponse, (error) => {
|
|
134
|
+
// DON'T throw errors from decodeOrElse. It could leak sensitive information.
|
|
135
|
+
throw new Error(`Invalid create invoice response ${error}`);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
async getInvoice(paymentHash) {
|
|
139
|
+
const response = await this.wallet.bitgo
|
|
140
|
+
.get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/invoice/${paymentHash}`))
|
|
141
|
+
.result();
|
|
142
|
+
return (0, sdk_core_1.decodeOrElse)(codecs_1.InvoiceInfo.name, codecs_1.InvoiceInfo, response, (error) => {
|
|
143
|
+
throw new Error(`Invalid get invoice response ${error}`);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async listInvoices(params) {
|
|
147
|
+
const returnCodec = t.array(codecs_1.InvoiceInfo);
|
|
148
|
+
const createInvoiceResponse = await this.wallet.bitgo
|
|
149
|
+
.get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/invoice`))
|
|
150
|
+
.query(codecs_1.InvoiceQuery.encode(params))
|
|
151
|
+
.result();
|
|
152
|
+
return sdkcore.decodeOrElse(returnCodec.name, returnCodec, createInvoiceResponse, (error) => {
|
|
153
|
+
throw new Error(`Invalid list invoices response ${error}`);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
async payInvoice(params) {
|
|
157
|
+
const reqId = new sdk_core_1.RequestTracer();
|
|
158
|
+
this.wallet.bitgo.setRequestTracer(reqId);
|
|
159
|
+
const { userAuthKey } = await this.getLightningAuthKeychains();
|
|
160
|
+
const signature = (0, lightning_1.createMessageSignature)(t.exact(public_types_1.LightningPaymentRequest).encode(params), this.wallet.bitgo.decrypt({ password: params.passphrase, input: userAuthKey.encryptedPrv }));
|
|
161
|
+
const paymentIntent = {
|
|
162
|
+
comment: params.comment,
|
|
163
|
+
sequenceId: params.sequenceId,
|
|
164
|
+
intentType: 'payment',
|
|
165
|
+
signedRequest: {
|
|
166
|
+
invoice: params.invoice,
|
|
167
|
+
amountMsat: params.amountMsat,
|
|
168
|
+
feeLimitMsat: params.feeLimitMsat,
|
|
169
|
+
feeLimitRatio: params.feeLimitRatio,
|
|
170
|
+
},
|
|
171
|
+
signature,
|
|
172
|
+
};
|
|
173
|
+
const transactionRequestCreate = (await this.wallet.bitgo
|
|
174
|
+
.post(this.wallet.bitgo.url('/wallet/' + this.wallet.id() + '/txrequests', 2))
|
|
175
|
+
.send(public_types_1.LightningPaymentIntent.encode(paymentIntent))
|
|
176
|
+
.result());
|
|
177
|
+
if (transactionRequestCreate.state === 'pendingApproval') {
|
|
178
|
+
const pendingApprovals = new sdk_core_1.PendingApprovals(this.wallet.bitgo, this.wallet.baseCoin);
|
|
179
|
+
const pendingApproval = await pendingApprovals.get({ id: transactionRequestCreate.pendingApprovalId });
|
|
180
|
+
return {
|
|
181
|
+
pendingApproval: pendingApproval.toJSON(),
|
|
182
|
+
txRequestId: transactionRequestCreate.txRequestId,
|
|
183
|
+
txRequestState: transactionRequestCreate.state,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
const transactionRequestSend = await sdk_core_1.commonTssMethods.sendTxRequest(this.wallet.bitgo, this.wallet.id(), transactionRequestCreate.txRequestId, sdk_core_1.RequestType.tx, reqId);
|
|
187
|
+
const coinSpecific = transactionRequestSend.transactions?.[0]?.unsignedTx?.coinSpecific;
|
|
188
|
+
return {
|
|
189
|
+
txRequestId: transactionRequestCreate.txRequestId,
|
|
190
|
+
txRequestState: transactionRequestSend.state,
|
|
191
|
+
paymentStatus: coinSpecific
|
|
192
|
+
? t.exact(codecs_1.LndCreatePaymentResponse).encode(coinSpecific)
|
|
193
|
+
: undefined,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
async getPayment(paymentHash) {
|
|
197
|
+
const response = await this.wallet.bitgo
|
|
198
|
+
.get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/payment/${paymentHash}`))
|
|
199
|
+
.result();
|
|
200
|
+
return (0, sdk_core_1.decodeOrElse)(codecs_1.PaymentInfo.name, codecs_1.PaymentInfo, response, (error) => {
|
|
201
|
+
throw new Error(`Invalid payment response: ${error}`);
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
async listPayments(params) {
|
|
205
|
+
const response = await this.wallet.bitgo
|
|
206
|
+
.get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/payment`))
|
|
207
|
+
.query(codecs_1.PaymentQuery.encode(params))
|
|
208
|
+
.result();
|
|
209
|
+
return (0, sdk_core_1.decodeOrElse)(t.array(codecs_1.PaymentInfo).name, t.array(codecs_1.PaymentInfo), response, (error) => {
|
|
210
|
+
throw new Error(`Invalid payment list response: ${error}`);
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
async getTransaction(txId) {
|
|
214
|
+
const response = await this.wallet.bitgo
|
|
215
|
+
.get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/transaction/${txId}`))
|
|
216
|
+
.result();
|
|
217
|
+
return (0, sdk_core_1.decodeOrElse)(codecs_1.Transaction.name, codecs_1.Transaction, response, (error) => {
|
|
218
|
+
throw new Error(`Invalid transaction response: ${error}`);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
async listTransactions(params) {
|
|
222
|
+
const response = await this.wallet.bitgo
|
|
223
|
+
.get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/transaction`))
|
|
224
|
+
.query(codecs_1.TransactionQuery.encode(params))
|
|
225
|
+
.result();
|
|
226
|
+
return (0, sdk_core_1.decodeOrElse)(t.array(codecs_1.Transaction).name, t.array(codecs_1.Transaction), response, (error) => {
|
|
227
|
+
throw new Error(`Invalid transaction list response: ${error}`);
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
async getChannelBackup() {
|
|
231
|
+
const backupResponse = await this.wallet.bitgo
|
|
232
|
+
.get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/backup`))
|
|
233
|
+
.result();
|
|
234
|
+
return sdkcore.decodeOrElse(codecs_1.BackupResponse.name, codecs_1.BackupResponse, backupResponse, (error) => {
|
|
235
|
+
throw new Error(`Invalid backup response: ${error}`);
|
|
236
|
+
});
|
|
237
|
+
}
|
|
119
238
|
}
|
|
120
239
|
exports.SelfCustodialLightningWallet = SelfCustodialLightningWallet;
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dhbGxldC9saWdodG5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQTJDO0FBQzNDLHlDQUEyQjtBQUMzQiw0Q0FBbUY7QUFDbkYsc0NBUW1CO0FBNERuQixNQUFhLDRCQUE0QjtJQUd2QyxZQUFZLE1BQXVCO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBeUI7UUFDM0MsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSzthQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsb0JBQW9CLENBQUMsQ0FBQzthQUMvRSxJQUFJLENBQUMsMEJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3RDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLGdCQUFPLENBQUMsSUFBSSxFQUFFLGdCQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNsRiw2RUFBNkU7WUFDN0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDLENB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WUFDbkIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUU7Z0JBQ3BCLGFBQWEsRUFBRSxNQUFNO2dCQUNyQixTQUFTO2FBQ1Y7U0FDRixDQUFDO1FBQ0YsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN4RixDQUFDO0NBQ0Y7QUFwR0Qsb0VBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc2RrY29yZSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5pbXBvcnQgeyBjcmVhdGVNZXNzYWdlU2lnbmF0dXJlLCB1bndyYXBMaWdodG5pbmdDb2luU3BlY2lmaWMgfSBmcm9tICcuLi9saWdodG5pbmcnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlSW52b2ljZUJvZHksXG4gIEludm9pY2UsXG4gIEludm9pY2VJbmZvLFxuICBJbnZvaWNlUXVlcnksXG4gIExpZ2h0bmluZ0F1dGhLZXljaGFpbixcbiAgTGlnaHRuaW5nS2V5Y2hhaW4sXG4gIFVwZGF0ZUxpZ2h0bmluZ1dhbGxldFNpZ25lZFJlcXVlc3QsXG59IGZyb20gJy4uL2NvZGVjcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxpZ2h0bmluZ1dhbGxldCB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbGlnaHRuaW5nIGludm9pY2VcbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcmFtcyBJbnZvaWNlIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtiaWdpbnR9IHBhcmFtcy52YWx1ZU1zYXQgVGhlIHZhbHVlIG9mIHRoZSBpbnZvaWNlIGluIG1pbGxpc2F0b3NoaXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwYXJhbXMubWVtb10gQSBtZW1vIG9yIGRlc2NyaXB0aW9uIGZvciB0aGUgaW52b2ljZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW3BhcmFtcy5leHBpcnldIFRoZSBleHBpcnkgdGltZSBvZiB0aGUgaW52b2ljZSBpbiBzZWNvbmRzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEludm9pY2U+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgY3JlYXRlZCBpbnZvaWNlXG4gICAqL1xuICBjcmVhdGVJbnZvaWNlKHBhcmFtczogQ3JlYXRlSW52b2ljZUJvZHkpOiBQcm9taXNlPEludm9pY2U+O1xuXG4gIC8qKlxuICAgKiBMaXN0cyBjdXJyZW50IGxpZ2h0bmluZyBpbnZvaWNlc1xuICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zIEludm9pY2UgcXVlcnkgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5zdGF0dXNdIFRoZSBzdGF0dXMgb2YgdGhlIGludm9pY2VcbiAgICogIC0gb3BlbjogVGhlIGludm9pY2UgaXMgb3BlbiBhbmQgYXdhaXRpbmcgcGF5bWVudFxuICAgKiAgLSBzZXR0bGVkOiBUaGUgaW52b2ljZSBoYXMgYmVlbiBwYWlkXG4gICAqICAtIGNhbmNlbGVkOiBUaGUgaW52b2ljZSBoYXMgYmVlbiBjYW5jZWxlZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5saW1pdF0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGludm9pY2VzIHRvIHJldHVyblxuICAgKiBAcGFyYW0ge0RhdGV9IFtwYXJhbXMuc3RhcnREYXRlXSBUaGUgc3RhcnQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5lbmREYXRlXSBUaGUgZW5kIGRhdGUgZm9yIHRoZSBxdWVyeVxuICAgKi9cbiAgbGlzdEludm9pY2VzKHBhcmFtczogSW52b2ljZVF1ZXJ5KTogUHJvbWlzZTxJbnZvaWNlSW5mb1tdPjtcblxuICAvKipcbiAgICogUGF5IGEgbGlnaHRuaW5nIGludm9pY2VcbiAgICogQHBhcmFtIHBhcmFtcyBQYXltZW50IHBhcmFtZXRlcnMgKHRvIGJlIGRlZmluZWQpXG4gICAqL1xuICBwYXlJbnZvaWNlKHBhcmFtczogdW5rbm93bik6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlnaHRuaW5nIGtleWNoYWluIGZvciB0aGUgZ2l2ZW4gd2FsbGV0LlxuICAgKi9cbiAgZ2V0TGlnaHRuaW5nS2V5Y2hhaW4oKTogUHJvbWlzZTxMaWdodG5pbmdLZXljaGFpbj47XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlnaHRuaW5nIGF1dGgga2V5Y2hhaW5zIGZvciB0aGUgZ2l2ZW4gd2FsbGV0LlxuICAgKi9cbiAgZ2V0TGlnaHRuaW5nQXV0aEtleWNoYWlucygpOiBQcm9taXNlPHsgdXNlckF1dGhLZXk6IExpZ2h0bmluZ0F1dGhLZXljaGFpbjsgbm9kZUF1dGhLZXk6IExpZ2h0bmluZ0F1dGhLZXljaGFpbiB9PjtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY29pbi1zcGVjaWZpYyBjb25maWd1cmF0aW9uIGZvciBhIExpZ2h0bmluZyBXYWxsZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7VXBkYXRlTGlnaHRuaW5nV2FsbGV0U2lnbmVkUmVxdWVzdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgY29udGFpbmluZyB0aGUgdXBkYXRlZCB3YWxsZXQtc3BlY2lmaWMgZGV0YWlscy5cbiAgICogICAtIGBlbmNyeXB0ZWRTaWduZXJNYWNhcm9vbmAgKG9wdGlvbmFsKTogVGhpcyBtYWNhcm9vbiBpcyB1c2VkIGJ5IHRoZSB3YXRjaC1vbmx5IG5vZGUgdG8gYXNrIHRoZSBzaWduZXIgbm9kZSB0byBzaWduIHRyYW5zYWN0aW9ucy5cbiAgICogICAgIEVuY3J5cHRlZCB3aXRoIEVDREggc2VjcmV0IGtleSBmcm9tIHByaXZhdGUga2V5IG9mIHdhbGxldCdzIHVzZXIgYXV0aCBrZXkgYW5kIHB1YmxpYyBrZXkgb2YgbGlnaHRuaW5nIHNlcnZpY2UuXG4gICAqICAgLSBgZW5jcnlwdGVkU2lnbmVyQWRtaW5NYWNhcm9vbmAgKG9wdGlvbmFsKTogR2VuZXJhdGVkIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSB3YWxsZXQgb2YgdGhlIHNpZ25lciBub2RlLlxuICAgKiAgICAgRW5jcnlwdGVkIHdpdGggY2xpZW50J3Mgd2FsbGV0IHBhc3NwaHJhc2UuXG4gICAqICAgLSBgc2lnbmVySG9zdGAgKG9wdGlvbmFsKTogVGhlIGhvc3QgYWRkcmVzcyBvZiB0aGUgTGlnaHRuaW5nIHNpZ25lciBub2RlLlxuICAgKiAgIC0gYGVuY3J5cHRlZFNpZ25lclRsc0tleWAgKG9wdGlvbmFsKTogVGhlIHdhbGxldCBwYXNzcGhyYXNlIGVuY3J5cHRlZCBUTFMga2V5IG9mIHRoZSBzaWduZXIuXG4gICAqICAgLSBgc2lnbmVyVGxzQ2VydGAgKG9wdGlvbmFsKTogVGhlIFRMUyBjZXJ0aWZpY2F0ZSBvZiB0aGUgc2lnbmVyLlxuICAgKiAgIC0gYHdhdGNoT25seUFjY291bnRzYCAob3B0aW9uYWwpOiBUaGVzZSBhcmUgdGhlIGFjY291bnRzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgd2F0Y2gtb25seSB3YWxsZXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXNzcGhyYXNlIC0gd2FsbGV0IHBhc3NwaHJhc2UuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIHdhbGxldCByZXNwb25zZSBvciB0aHJvd2luZyBhbiBlcnJvciBpZiB0aGUgdXBkYXRlIGZhaWxzLlxuICAgKi9cbiAgdXBkYXRlV2FsbGV0Q29pblNwZWNpZmljKHBhcmFtczogVXBkYXRlTGlnaHRuaW5nV2FsbGV0U2lnbmVkUmVxdWVzdCwgcGFzc3BocmFzZTogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPjtcbn1cblxuZXhwb3J0IGNsYXNzIFNlbGZDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQgaW1wbGVtZW50cyBJTGlnaHRuaW5nV2FsbGV0IHtcbiAgcHVibGljIHdhbGxldDogc2RrY29yZS5JV2FsbGV0O1xuXG4gIGNvbnN0cnVjdG9yKHdhbGxldDogc2RrY29yZS5JV2FsbGV0KSB7XG4gICAgY29uc3QgY29pbiA9IHdhbGxldC5iYXNlQ29pbjtcbiAgICBpZiAoY29pbi5nZXRGYW1pbHkoKSAhPT0gJ2xuYnRjJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvaW4gdG8gdXBkYXRlIGxpZ2h0bmluZyB3YWxsZXQ6ICR7Y29pbi5nZXRGYW1pbHkoKX1gKTtcbiAgICB9XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gIH1cblxuICBhc3luYyBjcmVhdGVJbnZvaWNlKHBhcmFtczogQ3JlYXRlSW52b2ljZUJvZHkpOiBQcm9taXNlPEludm9pY2U+IHtcbiAgICBjb25zdCBjcmVhdGVJbnZvaWNlUmVzcG9uc2UgPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLnBvc3QodGhpcy53YWxsZXQuYmFzZUNvaW4udXJsKGAvd2FsbGV0LyR7dGhpcy53YWxsZXQuaWQoKX0vbGlnaHRuaW5nL2ludm9pY2VgKSlcbiAgICAgIC5zZW5kKENyZWF0ZUludm9pY2VCb2R5LmVuY29kZShwYXJhbXMpKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBzZGtjb3JlLmRlY29kZU9yRWxzZShJbnZvaWNlLm5hbWUsIEludm9pY2UsIGNyZWF0ZUludm9pY2VSZXNwb25zZSwgKGVycm9yKSA9PiB7XG4gICAgICAvLyBET04nVCB0aHJvdyBlcnJvcnMgZnJvbSBkZWNvZGVPckVsc2UuIEl0IGNvdWxkIGxlYWsgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNyZWF0ZSBpbnZvaWNlIHJlc3BvbnNlICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBwYXlJbnZvaWNlKHBhcmFtczogdW5rbm93bik6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RJbnZvaWNlcyhwYXJhbXM6IEludm9pY2VRdWVyeSk6IFByb21pc2U8SW52b2ljZUluZm9bXT4ge1xuICAgIGNvbnN0IHJldHVybkNvZGVjID0gdC5hcnJheShJbnZvaWNlSW5mbyk7XG4gICAgY29uc3QgY3JlYXRlSW52b2ljZVJlc3BvbnNlID0gYXdhaXQgdGhpcy53YWxsZXQuYml0Z29cbiAgICAgIC5nZXQodGhpcy53YWxsZXQuYmFzZUNvaW4udXJsKGAvd2FsbGV0LyR7dGhpcy53YWxsZXQuaWQoKX0vbGlnaHRuaW5nL2ludm9pY2VgKSlcbiAgICAgIC5xdWVyeShJbnZvaWNlUXVlcnkuZW5jb2RlKHBhcmFtcykpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIHNka2NvcmUuZGVjb2RlT3JFbHNlKHJldHVybkNvZGVjLm5hbWUsIHJldHVybkNvZGVjLCBjcmVhdGVJbnZvaWNlUmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGxpc3QgaW52b2ljZXMgcmVzcG9uc2UgJHtlcnJvcn1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldExpZ2h0bmluZ0tleWNoYWluKCk6IFByb21pc2U8TGlnaHRuaW5nS2V5Y2hhaW4+IHtcbiAgICBjb25zdCBrZXlJZHMgPSB0aGlzLndhbGxldC5rZXlJZHMoKTtcbiAgICBpZiAoa2V5SWRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG51bWJlciBvZiBrZXkgaW4gbGlnaHRuaW5nIHdhbGxldDogJHtrZXlJZHMubGVuZ3RofWApO1xuICAgIH1cbiAgICBjb25zdCBrZXljaGFpbiA9IGF3YWl0IHRoaXMud2FsbGV0LmJhc2VDb2luLmtleWNoYWlucygpLmdldCh7IGlkOiBrZXlJZHNbMF0gfSk7XG4gICAgcmV0dXJuIHNka2NvcmUuZGVjb2RlT3JFbHNlKExpZ2h0bmluZ0tleWNoYWluLm5hbWUsIExpZ2h0bmluZ0tleWNoYWluLCBrZXljaGFpbiwgKF8pID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB1c2VyIGtleWApO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0TGlnaHRuaW5nQXV0aEtleWNoYWlucygpOiBQcm9taXNlPHtcbiAgICB1c2VyQXV0aEtleTogTGlnaHRuaW5nQXV0aEtleWNoYWluO1xuICAgIG5vZGVBdXRoS2V5OiBMaWdodG5pbmdBdXRoS2V5Y2hhaW47XG4gIH0+IHtcbiAgICBjb25zdCBhdXRoS2V5SWRzID0gdGhpcy53YWxsZXQuY29pblNwZWNpZmljKCk/LmtleXM7XG4gICAgaWYgKGF1dGhLZXlJZHM/Lmxlbmd0aCAhPT0gMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG51bWJlciBvZiBhdXRoIGtleXMgaW4gbGlnaHRuaW5nIHdhbGxldDogJHthdXRoS2V5SWRzPy5sZW5ndGh9YCk7XG4gICAgfVxuICAgIGNvbnN0IGNvaW4gPSB0aGlzLndhbGxldC5iYXNlQ29pbjtcbiAgICBjb25zdCBrZXljaGFpbnMgPSBhd2FpdCBQcm9taXNlLmFsbChhdXRoS2V5SWRzLm1hcCgoaWQpID0+IGNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQgfSkpKTtcbiAgICBjb25zdCBhdXRoS2V5Y2hhaW5zID0ga2V5Y2hhaW5zLm1hcCgoa2V5Y2hhaW4pID0+IHtcbiAgICAgIHJldHVybiBzZGtjb3JlLmRlY29kZU9yRWxzZShMaWdodG5pbmdBdXRoS2V5Y2hhaW4ubmFtZSwgTGlnaHRuaW5nQXV0aEtleWNoYWluLCBrZXljaGFpbiwgKF8pID0+IHtcbiAgICAgICAgLy8gRE9OJ1QgdGhyb3cgZXJyb3JzIGZyb20gZGVjb2RlT3JFbHNlLiBJdCBjb3VsZCBsZWFrIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGxpZ2h0bmluZyBhdXRoIGtleTogJHtrZXljaGFpbj8uaWR9YCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBbdXNlckF1dGhLZXksIG5vZGVBdXRoS2V5XSA9IChbJ3VzZXJBdXRoJywgJ25vZGVBdXRoJ10gYXMgY29uc3QpLm1hcCgocHVycG9zZSkgPT4ge1xuICAgICAgY29uc3Qga2V5Y2hhaW4gPSBhdXRoS2V5Y2hhaW5zLmZpbmQoXG4gICAgICAgIChrKSA9PiB1bndyYXBMaWdodG5pbmdDb2luU3BlY2lmaWMoay5jb2luU3BlY2lmaWMsIGNvaW4uZ2V0Q2hhaW4oKSkucHVycG9zZSA9PT0gcHVycG9zZVxuICAgICAgKTtcbiAgICAgIGlmICgha2V5Y2hhaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nICR7cHVycG9zZX0ga2V5YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ga2V5Y2hhaW47XG4gICAgfSk7XG5cbiAgICByZXR1cm4geyB1c2VyQXV0aEtleSwgbm9kZUF1dGhLZXkgfTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVdhbGxldENvaW5TcGVjaWZpYyhwYXJhbXM6IFVwZGF0ZUxpZ2h0bmluZ1dhbGxldFNpZ25lZFJlcXVlc3QsIHBhc3NwaHJhc2U6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHNka2NvcmUuZGVjb2RlT3JFbHNlKFxuICAgICAgVXBkYXRlTGlnaHRuaW5nV2FsbGV0U2lnbmVkUmVxdWVzdC5uYW1lLFxuICAgICAgVXBkYXRlTGlnaHRuaW5nV2FsbGV0U2lnbmVkUmVxdWVzdCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIChlcnJvcnMpID0+IHtcbiAgICAgICAgLy8gRE9OJ1QgdGhyb3cgZXJyb3JzIGZyb20gZGVjb2RlT3JFbHNlLiBJdCBjb3VsZCBsZWFrIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhcmFtcyBmb3IgbGlnaHRuaW5nIHNwZWNpZmljIHVwZGF0ZSB3YWxsZXQ6ICR7ZXJyb3JzfWApO1xuICAgICAgfVxuICAgICk7XG4gICAgY29uc3QgeyB1c2VyQXV0aEtleSB9ID0gYXdhaXQgdGhpcy5nZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKCk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gY3JlYXRlTWVzc2FnZVNpZ25hdHVyZShcbiAgICAgIHBhcmFtcyxcbiAgICAgIHRoaXMud2FsbGV0LmJpdGdvLmRlY3J5cHQoeyBwYXNzd29yZDogcGFzc3BocmFzZSwgaW5wdXQ6IHVzZXJBdXRoS2V5LmVuY3J5cHRlZFBydiB9KVxuICAgICk7XG4gICAgY29uc3QgY29pblNwZWNpZmljID0ge1xuICAgICAgW3RoaXMud2FsbGV0LmNvaW4oKV06IHtcbiAgICAgICAgc2lnbmVkUmVxdWVzdDogcGFyYW1zLFxuICAgICAgICBzaWduYXR1cmUsXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvLnB1dCh0aGlzLndhbGxldC51cmwoKSkuc2VuZCh7IGNvaW5TcGVjaWZpYyB9KS5yZXN1bHQoKTtcbiAgfVxufVxuIl19
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dhbGxldC9saWdodG5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQTJDO0FBQzNDLDhDQVN5QjtBQUN6Qix5Q0FBMkI7QUFDM0IsNENBQXVIO0FBQ3ZILHNDQWdCbUI7QUFDbkIsc0RBQXNGO0FBc0h0RixNQUFhLDRCQUE0QjtJQUd2QyxZQUFZLE1BQXVCO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVPLDBCQUEwQixDQUNoQyxNQUEwQyxFQUMxQyxXQUFrQztRQUVsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBd0IsQ0FBQztRQUUxRCxNQUFNLHFCQUFxQixHQUF3RjtZQUNqSCxHQUFHLE1BQU07U0FDVixDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQzdDLFFBQVEsRUFBRSxNQUFNLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsV0FBVyxDQUFDLFlBQVk7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIscUJBQXFCLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2dCQUN0RSxRQUFRLEVBQUUsTUFBTSxDQUFD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QyxNQUFNLENBQUMsRUFBRSxFQUFFLG1CQUFtQixDQUFDLENBQUM7YUFDN0UsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsdUJBQWMsQ0FBQyxJQUFJLEVBQUUsdUJBQWMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6RixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBMVBELG9FQTBQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNka2NvcmUgZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIFBlbmRpbmdBcHByb3ZhbERhdGEsXG4gIFBlbmRpbmdBcHByb3ZhbHMsXG4gIFJlcXVlc3RUcmFjZXIsXG4gIFJlcXVlc3RUeXBlLFxuICBUeFJlcXVlc3QsXG4gIGNvbW1vblRzc01ldGhvZHMsXG4gIFR4UmVxdWVzdFN0YXRlLFxuICBkZWNvZGVPckVsc2UsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUsIGRlcml2ZUxpZ2h0bmluZ1NlcnZpY2VTaGFyZWRTZWNyZXQsIHVud3JhcExpZ2h0bmluZ0NvaW5TcGVjaWZpYyB9IGZyb20gJy4uL2xpZ2h0bmluZyc7XG5pbXBvcnQge1xuICBDcmVhdGVJbnZvaWNlQm9keSxcbiAgSW52b2ljZSxcbiAgSW52b2ljZUluZm8sXG4gIEludm9pY2VRdWVyeSxcbiAgTGlnaHRuaW5nQXV0aEtleWNoYWluLFxuICBMaWdodG5pbmdLZXljaGFpbixcbiAgTG5kQ3JlYXRlUGF5bWVudFJlc3BvbnNlLFxuICBTdWJtaXRQYXltZW50UGFyYW1zLFxuICBVcGRhdGVMaWdodG5pbmdXYWxsZXRDbGllbnRSZXF1ZXN0LFxuICBVcGRhdGVMaWdodG5pbmdXYWxsZXRFbmNyeXB0ZWRSZXF1ZXN0LFxuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25RdWVyeSxcbiAgUGF5bWVudEluZm8sXG4gIEJhY2t1cFJlc3BvbnNlLFxuICBQYXltZW50UXVlcnksXG59IGZyb20gJy4uL2NvZGVjcyc7XG5pbXBvcnQgeyBMaWdodG5pbmdQYXltZW50SW50ZW50LCBMaWdodG5pbmdQYXltZW50UmVxdWVzdCB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBQYXlJbnZvaWNlUmVzcG9uc2UgPSB7XG4gIHR4UmVxdWVzdElkOiBzdHJpbmc7XG4gIHR4UmVxdWVzdFN0YXRlOiBUeFJlcXVlc3RTdGF0ZTtcbiAgcGVuZGluZ0FwcHJvdmFsPzogUGVuZGluZ0FwcHJvdmFsRGF0YTtcbiAgLy8gQWJzZW50IGlmIHRoZXJlJ3MgYSBwZW5kaW5nIGFwcHJvdmFsXG4gIHBheW1lbnRTdGF0dXM/OiBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2U7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElMaWdodG5pbmdXYWxsZXQge1xuICAvKipcbiAgICogR2V0IHRoZSBsaWdodG5pbmcga2V5Y2hhaW4gZm9yIHRoZSBnaXZlbiB3YWxsZXQuXG4gICAqL1xuICBnZXRMaWdodG5pbmdLZXljaGFpbigpOiBQcm9taXNlPExpZ2h0bmluZ0tleWNoYWluPjtcblxuICAvKipcbiAgICogR2V0IHRoZSBsaWdodG5pbmcgYXV0aCBrZXljaGFpbnMgZm9yIHRoZSBnaXZlbiB3YWxsZXQuXG4gICAqL1xuICBnZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKCk6IFByb21pc2U8eyB1c2VyQXV0aEtleTogTGlnaHRuaW5nQXV0aEtleWNoYWluOyBub2RlQXV0aEtleTogTGlnaHRuaW5nQXV0aEtleWNoYWluIH0+O1xuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjb2luLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZm9yIGEgTGlnaHRuaW5nIFdhbGxldC5cbiAgICpcbiAgICogQHBhcmFtIHtVcGRhdGVMaWdodG5pbmdXYWxsZXRDbGllbnRSZXF1ZXN0fSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBjb250YWluaW5nIHRoZSB1cGRhdGVkIHdhbGxldC1zcGVjaWZpYyBkZXRhaWxzLlxuICAgKiAgIC0gYGVuY3J5cHRlZFNpZ25lck1hY2Fyb29uYCAob3B0aW9uYWwpOiBUaGlzIG1hY2Fyb29uIGlzIHVzZWQgYnkgdGhlIHdhdGNoLW9ubHkgbm9kZSB0byBhc2sgdGhlIHNpZ25lciBub2RlIHRvIHNpZ24gdHJhbnNhY3Rpb25zLlxuICAgKiAgICAgRW5jcnlwdGVkIHdpdGggRUNESCBzZWNyZXQga2V5IGZyb20gcHJpdmF0ZSBrZXkgb2Ygd2FsbGV0J3MgdXNlciBhdXRoIGtleSBhbmQgcHVibGljIGtleSBvZiBsaWdodG5pbmcgc2VydmljZS5cbiAgICogICAtIGBlbmNyeXB0ZWRTaWduZXJBZG1pbk1hY2Fyb29uYCAob3B0aW9uYWwpOiBHZW5lcmF0ZWQgd2hlbiBpbml0aWFsaXppbmcgdGhlIHdhbGxldCBvZiB0aGUgc2lnbmVyIG5vZGUuXG4gICAqICAgICBFbmNyeXB0ZWQgd2l0aCBjbGllbnQncyB3YWxsZXQgcGFzc3BocmFzZS5cbiAgICogICAtIGBzaWduZXJIb3N0YCAob3B0aW9uYWwpOiBUaGUgaG9zdCBhZGRyZXNzIG9mIHRoZSBMaWdodG5pbmcgc2lnbmVyIG5vZGUuXG4gICAqICAgLSBgZW5jcnlwdGVkU2lnbmVyVGxzS2V5YCAob3B0aW9uYWwpOiBUaGUgd2FsbGV0IHBhc3NwaHJhc2UgZW5jcnlwdGVkIFRMUyBrZXkgb2YgdGhlIHNpZ25lci5cbiAgICogICAtIGBwYXNzcGhyYXNlYCAocmVxdWlyZWQpOiBUaGUgd2FsbGV0IHBhc3NwaHJhc2UuXG4gICAqICAgLSBgc2lnbmVyVGxzQ2VydGAgKG9wdGlvbmFsKTogVGhlIFRMUyBjZXJ0aWZpY2F0ZSBvZiB0aGUgc2lnbmVyLlxuICAgKiAgIC0gYHdhdGNoT25seUFjY291bnRzYCAob3B0aW9uYWwpOiBUaGVzZSBhcmUgdGhlIGFjY291bnRzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgd2F0Y2gtb25seSB3YWxsZXQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIHdhbGxldCByZXNwb25zZSBvciB0aHJvd2luZyBhbiBlcnJvciBpZiB0aGUgdXBkYXRlIGZhaWxzLlxuICAgKi9cbiAgdXBkYXRlV2FsbGV0Q29pblNwZWNpZmljKHBhcmFtczogVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdCk6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBsaWdodG5pbmcgaW52b2ljZVxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zIEludm9pY2UgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge2JpZ2ludH0gcGFyYW1zLnZhbHVlTXNhdCBUaGUgdmFsdWUgb2YgdGhlIGludm9pY2UgaW4gbWlsbGlzYXRvc2hpc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5tZW1vXSBBIG1lbW8gb3IgZGVzY3JpcHRpb24gZm9yIHRoZSBpbnZvaWNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbcGFyYW1zLmV4cGlyeV0gVGhlIGV4cGlyeSB0aW1lIG9mIHRoZSBpbnZvaWNlIGluIHNlY29uZHNcbiAgICogQHJldHVybnMge1Byb21pc2U8SW52b2ljZT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjcmVhdGVkIGludm9pY2VcbiAgICovXG4gIGNyZWF0ZUludm9pY2UocGFyYW1zOiBDcmVhdGVJbnZvaWNlQm9keSk6IFByb21pc2U8SW52b2ljZT47XG4gIC8qKlxuICAgKiBHZXQgaW52b2ljZSBkZXRhaWxzIGJ5IHBheW1lbnQgaGFzaFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF5bWVudEhhc2ggLSBQYXltZW50IGhhc2ggdG8gbG9va3VwXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEludm9pY2VJbmZvPn0gSW52b2ljZSBkZXRhaWxzXG4gICAqIEB0aHJvd3Mge0ludmFsaWRQYXltZW50SGFzaH0gV2hlbiBwYXltZW50IGhhc2ggaXMgbm90IHZhbGlkXG4gICAqL1xuICBnZXRJbnZvaWNlKHBheW1lbnRIYXNoOiBzdHJpbmcpOiBQcm9taXNlPEludm9pY2VJbmZvPjtcbiAgLyoqXG4gICAqIExpc3RzIGN1cnJlbnQgbGlnaHRuaW5nIGludm9pY2VzXG4gICAqIEBwYXJhbSB7SW52b2ljZVF1ZXJ5fSBwYXJhbXMgUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIGludm9pY2VzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyYW1zLnN0YXR1c10gVGhlIHN0YXR1cyBvZiB0aGUgaW52b2ljZSAob3Blbiwgc2V0dGxlZCwgY2FuY2VsZWQpXG4gICAqIEBwYXJhbSB7YmlnaW50fSBbcGFyYW1zLmxpbWl0XSBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW52b2ljZXMgdG8gcmV0dXJuXG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5zdGFydERhdGVdIFRoZSBzdGFydCBkYXRlIGZvciB0aGUgcXVlcnlcbiAgICogQHBhcmFtIHtEYXRlfSBbcGFyYW1zLmVuZERhdGVdIFRoZSBlbmQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEludm9pY2VJbmZvW10+fSBMaXN0IG9mIGludm9pY2VzXG4gICAqL1xuICBsaXN0SW52b2ljZXMocGFyYW1zOiBJbnZvaWNlUXVlcnkpOiBQcm9taXNlPEludm9pY2VJbmZvW10+O1xuXG4gIC8qKlxuICAgKiBQYXkgYSBsaWdodG5pbmcgaW52b2ljZVxuICAgKiBAcGFyYW0ge1N1Ym1pdFBheW1lbnRQYXJhbXN9IHBhcmFtcyAtIFBheW1lbnQgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmludm9pY2UgLSBUaGUgaW52b2ljZSB0byBwYXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5hbW91bnRNc2F0IC0gVGhlIGFtb3VudCB0byBwYXkgaW4gbWlsbGlzYXRvc2hpc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBhc3NwaHJhc2UgLSBUaGUgd2FsbGV0IHBhc3NwaHJhc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwYXJhbXMuc2VxdWVuY2VJZF0gLSBPcHRpb25hbCBzZXF1ZW5jZSBJRCBmb3IgdGhlIHJlc3BlY3RpdmUgcGF5bWVudCB0cmFuc2ZlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5jb21tZW50XSAtIE9wdGlvbmFsIGNvbW1lbnQgZm9yIHRoZSByZXNwZWN0aXZlIHBheW1lbnQgdHJhbnNmZXJcbiAgICogQHJldHVybnMge1Byb21pc2U8UGF5SW52b2ljZVJlc3BvbnNlPn0gUGF5bWVudCByZXN1bHQgY29udGFpbmluZyB0cmFuc2FjdGlvbiByZXF1ZXN0IGRldGFpbHMgYW5kIHBheW1lbnQgc3RhdHVzXG4gICAqL1xuICBwYXlJbnZvaWNlKHBhcmFtczogU3VibWl0UGF5bWVudFBhcmFtcyk6IFByb21pc2U8UGF5SW52b2ljZVJlc3BvbnNlPjtcbiAgLyoqXG4gICAqIEdldCBwYXltZW50IGRldGFpbHMgYnkgcGF5bWVudCBoYXNoXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXltZW50SGFzaCAtIFBheW1lbnQgaGFzaCB0byBsb29rdXBcbiAgICogQHJldHVybnMge1Byb21pc2U8UGF5bWVudEluZm8+fSBQYXltZW50IGRldGFpbHNcbiAgICogQHRocm93cyB7SW52YWxpZFBheW1lbnRIYXNofSBXaGVuIHBheW1lbnQgaGFzaCBpcyBub3QgdmFsaWRcbiAgICovXG4gIGdldFBheW1lbnQocGF5bWVudEhhc2g6IHN0cmluZyk6IFByb21pc2U8UGF5bWVudEluZm8+O1xuICAvKipcbiAgICogTGlzdCBwYXltZW50cyBmb3IgYSB3YWxsZXQgd2l0aCBvcHRpb25hbCBmaWx0ZXJpbmdcbiAgICogQHBhcmFtIHtQYXltZW50UXVlcnl9IHBhcmFtcyBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgcGF5bWVudHNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwYXJhbXMuc3RhdHVzXSBUaGUgc3RhdHVzIG9mIHRoZSBwYXltZW50XG4gICAqIEBwYXJhbSB7YmlnaW50fSBbcGFyYW1zLmxpbWl0XSBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGF5bWVudHMgdG8gcmV0dXJuXG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5zdGFydERhdGVdIFRoZSBzdGFydCBkYXRlIGZvciB0aGUgcXVlcnlcbiAgICogQHBhcmFtIHtEYXRlfSBbcGFyYW1zLmVuZERhdGVdIFRoZSBlbmQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFBheW1lbnRJbmZvW10+fSBMaXN0IG9mIHBheW1lbnRzXG4gICAqL1xuICBsaXN0UGF5bWVudHMocGFyYW1zOiBQYXltZW50UXVlcnkpOiBQcm9taXNlPFBheW1lbnRJbmZvW10+O1xuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9uIGRldGFpbHMgYnkgSURcbiAgICogQHBhcmFtIHtzdHJpbmd9IHR4SWQgLSBUcmFuc2FjdGlvbiBJRCB0byBsb29rdXBcbiAgICogQHJldHVybnMge1Byb21pc2U8VHJhbnNhY3Rpb24+fSBUcmFuc2FjdGlvbiBkZXRhaWxzXG4gICAqIEB0aHJvd3Mge0ludmFsaWRUeElkfSBXaGVuIHRyYW5zYWN0aW9uIElEIGlzIG5vdCB2YWxpZFxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb24odHhJZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbj47XG5cbiAgLyoqXG4gICAqIExpc3QgdHJhbnNhY3Rpb25zIGZvciBhIHdhbGxldCB3aXRoIG9wdGlvbmFsIGZpbHRlcmluZ1xuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uUXVlcnl9IHBhcmFtcyBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB7YmlnaW50fSBbcGFyYW1zLmxpbWl0XSBUaGUgbWF4aW11bSBudW1iZXIgb2YgdHJhbnNhY3Rpb25zIHRvIHJldHVyblxuICAgKiBAcGFyYW0ge0RhdGV9IFtwYXJhbXMuc3RhcnREYXRlXSBUaGUgc3RhcnQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5lbmREYXRlXSBUaGUgZW5kIGRhdGUgZm9yIHRoZSBxdWVyeVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUcmFuc2FjdGlvbltdPn0gTGlzdCBvZiB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGxpc3RUcmFuc2FjdGlvbnMocGFyYW1zOiBUcmFuc2FjdGlvblF1ZXJ5KTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPjtcblxuICAvKipcbiAgICogR2V0IHRoZSBjaGFubmVsIGJhY2t1cCBmb3IgdGhlIGdpdmVuIHdhbGxldC5cbiAgICogQHJldHVybnMge1Byb21pc2U8QmFja3VwUmVzcG9uc2U+fSBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjaGFubmVsIGJhY2t1cFxuICAgKi9cbiAgZ2V0Q2hhbm5lbEJhY2t1cCgpOiBQcm9taXNlPEJhY2t1cFJlc3BvbnNlPjtcbn1cblxuZXhwb3J0IGNsYXNzIFNlbGZDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQgaW1wbGVtZW50cyBJTGlnaHRuaW5nV2FsbGV0IHtcbiAgcHVibGljIHdhbGxldDogc2RrY29yZS5JV2FsbGV0O1xuXG4gIGNvbnN0cnVjdG9yKHdhbGxldDogc2RrY29yZS5JV2FsbGV0KSB7XG4gICAgY29uc3QgY29pbiA9IHdhbGxldC5iYXNlQ29pbjtcbiAgICBpZiAoY29pbi5nZXRGYW1pbHkoKSAhPT0gJ2xuYnRjJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvaW4gdG8gdXBkYXRlIGxpZ2h0bmluZyB3YWxsZXQ6ICR7Y29pbi5nZXRGYW1pbHkoKX1gKTtcbiAgICB9XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gIH1cblxuICBwcml2YXRlIGVuY3J5cHRXYWxsZXRVcGRhdGVSZXF1ZXN0KFxuICAgIHBhcmFtczogVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdCxcbiAgICB1c2VyQXV0aEtleTogTGlnaHRuaW5nQXV0aEtleWNoYWluXG4gICk6IFVwZGF0ZUxpZ2h0bmluZ1dhbGxldEVuY3J5cHRlZFJlcXVlc3Qge1xuICAgIGNvbnN0IGNvaW5OYW1lID0gdGhpcy53YWxsZXQuY29pbigpIGFzICd0bG5idGMnIHwgJ2xuYnRjJztcblxuICAgIGNvbnN0IHJlcXVlc3RXaXRoRW5jcnlwdGlvbjogUGFydGlhbDxVcGRhdGVMaWdodG5pbmdXYWxsZXRDbGllbnRSZXF1ZXN0ICYgVXBkYXRlTGlnaHRuaW5nV2FsbGV0RW5jcnlwdGVkUmVxdWVzdD4gPSB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgfTtcblxuICAgIGNvbnN0IHVzZXJBdXRoWHBydiA9IHRoaXMud2FsbGV0LmJpdGdvLmRlY3J5cHQoe1xuICAgICAgcGFzc3dvcmQ6IHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgICAgaW5wdXQ6IHVzZXJBdXRoS2V5LmVuY3J5cHRlZFBydixcbiAgICB9KTtcblxuICAgIGlmIChwYXJhbXMuc2lnbmVyVGxzS2V5KSB7XG4gICAgICByZXF1ZXN0V2l0aEVuY3J5cHRpb24uZW5jcnlwdGVkU2lnbmVyVGxzS2V5ID0gdGhpcy53YWxsZXQuYml0Z28uZW5jcnlwdCh7XG4gICAgICAgIHBhc3N3b3JkOiBwYXJhbXMucGFzc3BocmFzZSxcbiAgICAgICAgaW5wdXQ6IHBhcmFtcy5zaWduZXJUbHNLZXksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnNpZ25lckFkbWluTWFjYXJvb24pIHtcbiAgICAgIHJlcXVlc3RXaXRoRW5jcnlwdGlvbi5lbmNyeXB0ZWRTaWduZXJBZG1pbk1hY2Fyb29uID0gdGhpcy53YWxsZXQuYml0Z28uZW5jcnlwdCh7XG4gICAgICAgIHBhc3N3b3JkOiBwYXJhbXMucGFzc3BocmFzZSxcbiAgICAgICAgaW5wdXQ6IHBhcmFtcy5zaWduZXJBZG1pbk1hY2Fyb29uLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5zaWduZXJNYWNhcm9vbikge1xuICAgICAgcmVxdWVzdFdpdGhFbmNyeXB0aW9uLmVuY3J5cHRlZFNpZ25lck1hY2Fyb29uID0gdGhpcy53YWxsZXQuYml0Z28uZW5jcnlwdCh7XG4gICAgICAgIHBhc3N3b3JkOiBkZXJpdmVMaWdodG5pbmdTZXJ2aWNlU2hhcmVkU2VjcmV0KGNvaW5OYW1lLCB1c2VyQXV0aFhwcnYpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgaW5wdXQ6IHBhcmFtcy5zaWduZXJNYWNhcm9vbixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0LmV4YWN0KFVwZGF0ZUxpZ2h0bmluZ1dhbGxldEVuY3J5cHRlZFJlcXVlc3QpLmVuY29kZShyZXF1ZXN0V2l0aEVuY3J5cHRpb24pO1xuICB9XG5cbiAgYXN5bmMgZ2V0TGlnaHRuaW5nS2V5Y2hhaW4oKTogUHJvbWlzZTxMaWdodG5pbmdLZXljaGFpbj4ge1xuICAgIGNvbnN0IGtleUlkcyA9IHRoaXMud2FsbGV0LmtleUlkcygpO1xuICAgIGlmIChrZXlJZHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbnVtYmVyIG9mIGtleSBpbiBsaWdodG5pbmcgd2FsbGV0OiAke2tleUlkcy5sZW5ndGh9YCk7XG4gICAgfVxuICAgIGNvbnN0IGtleWNoYWluID0gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IGtleUlkc1swXSB9KTtcbiAgICByZXR1cm4gc2RrY29yZS5kZWNvZGVPckVsc2UoTGlnaHRuaW5nS2V5Y2hhaW4ubmFtZSwgTGlnaHRuaW5nS2V5Y2hhaW4sIGtleWNoYWluLCAoXykgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHVzZXIga2V5YCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKCk6IFByb21pc2U8e1xuICAgIHVzZXJBdXRoS2V5OiBMaWdodG5pbmdBdXRoS2V5Y2hhaW47XG4gICAgbm9kZUF1dGhLZXk6IExpZ2h0bmluZ0F1dGhLZXljaGFpbjtcbiAgfT4ge1xuICAgIGNvbnN0IGF1dGhLZXlJZHMgPSB0aGlzLndhbGxldC5jb2luU3BlY2lmaWMoKT8ua2V5cztcbiAgICBpZiAoYXV0aEtleUlkcz8ubGVuZ3RoICE9PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbnVtYmVyIG9mIGF1dGgga2V5cyBpbiBsaWdodG5pbmcgd2FsbGV0OiAke2F1dGhLZXlJZHM/Lmxlbmd0aH1gKTtcbiAgICB9XG4gICAgY29uc3QgY29pbiA9IHRoaXMud2FsbGV0LmJhc2VDb2luO1xuICAgIGNvbnN0IGtleWNoYWlucyA9IGF3YWl0IFByb21pc2UuYWxsKGF1dGhLZXlJZHMubWFwKChpZCkgPT4gY29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZCB9KSkpO1xuICAgIGNvbnN0IGF1dGhLZXljaGFpbnMgPSBrZXljaGFpbnMubWFwKChrZXljaGFpbikgPT4ge1xuICAgICAgcmV0dXJuIHNka2NvcmUuZGVjb2RlT3JFbHNlKExpZ2h0bmluZ0F1dGhLZXljaGFpbi5uYW1lLCBMaWdodG5pbmdBdXRoS2V5Y2hhaW4sIGtleWNoYWluLCAoXykgPT4ge1xuICAgICAgICAvLyBET04nVCB0aHJvdyBlcnJvcnMgZnJvbSBkZWNvZGVPckVsc2UuIEl0IGNvdWxkIGxlYWsgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGlnaHRuaW5nIGF1dGgga2V5OiAke2tleWNoYWluPy5pZH1gKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IFt1c2VyQXV0aEtleSwgbm9kZUF1dGhLZXldID0gKFsndXNlckF1dGgnLCAnbm9kZUF1dGgnXSBhcyBjb25zdCkubWFwKChwdXJwb3NlKSA9PiB7XG4gICAgICBjb25zdCBrZXljaGFpbiA9IGF1dGhLZXljaGFpbnMuZmluZChcbiAgICAgICAgKGspID0+IHVud3JhcExpZ2h0bmluZ0NvaW5TcGVjaWZpYyhrLmNvaW5TcGVjaWZpYywgY29pbi5nZXRDaGFpbigpKS5wdXJwb3NlID09PSBwdXJwb3NlXG4gICAgICApO1xuICAgICAgaWYgKCFrZXljaGFpbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgJHtwdXJwb3NlfSBrZXlgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBrZXljaGFpbjtcbiAgICB9KTtcblxuICAgIHJldHVybiB7IHVzZXJBdXRoS2V5LCBub2RlQXV0aEtleSB9O1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlV2FsbGV0Q29pblNwZWNpZmljKHBhcmFtczogVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdCk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHNka2NvcmUuZGVjb2RlT3JFbHNlKFxuICAgICAgVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdC5uYW1lLFxuICAgICAgVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIChlcnJvcnMpID0+IHtcbiAgICAgICAgLy8gRE9OJ1QgdGhyb3cgZXJyb3JzIGZyb20gZGVjb2RlT3JFbHNlLiBJdCBjb3VsZCBsZWFrIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhcmFtcyBmb3IgbGlnaHRuaW5nIHNwZWNpZmljIHVwZGF0ZSB3YWxsZXRgKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgeyB1c2VyQXV0aEtleSB9ID0gYXdhaXQgdGhpcy5nZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKCk7XG4gICAgY29uc3QgdXBkYXRlUmVxdWVzdFdpdGhFbmNyeXB0aW9uID0gdGhpcy5lbmNyeXB0V2FsbGV0VXBkYXRlUmVxdWVzdChwYXJhbXMsIHVzZXJBdXRoS2V5KTtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBjcmVhdGVNZXNzYWdlU2lnbmF0dXJlKFxuICAgICAgdXBkYXRlUmVxdWVzdFdpdGhFbmNyeXB0aW9uLFxuICAgICAgdGhpcy53YWxsZXQuYml0Z28uZGVjcnlwdCh7IHBhc3N3b3JkOiBwYXJhbXMucGFzc3BocmFzZSwgaW5wdXQ6IHVzZXJBdXRoS2V5LmVuY3J5cHRlZFBydiB9KVxuICAgICk7XG4gICAgY29uc3QgY29pblNwZWNpZmljID0ge1xuICAgICAgW3RoaXMud2FsbGV0LmNvaW4oKV06IHtcbiAgICAgICAgc2lnbmVkUmVxdWVzdDogdXBkYXRlUmVxdWVzdFdpdGhFbmNyeXB0aW9uLFxuICAgICAgICBzaWduYXR1cmUsXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvLnB1dCh0aGlzLndhbGxldC51cmwoKSkuc2VuZCh7IGNvaW5TcGVjaWZpYyB9KS5yZXN1bHQoKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUludm9pY2UocGFyYW1zOiBDcmVhdGVJbnZvaWNlQm9keSk6IFByb21pc2U8SW52b2ljZT4ge1xuICAgIGNvbnN0IGNyZWF0ZUludm9pY2VSZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAucG9zdCh0aGlzLndhbGxldC5iYXNlQ29pbi51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS9saWdodG5pbmcvaW52b2ljZWApKVxuICAgICAgLnNlbmQodC5leGFjdChDcmVhdGVJbnZvaWNlQm9keSkuZW5jb2RlKHBhcmFtcykpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIHNka2NvcmUuZGVjb2RlT3JFbHNlKEludm9pY2UubmFtZSwgSW52b2ljZSwgY3JlYXRlSW52b2ljZVJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIC8vIERPTidUIHRocm93IGVycm9ycyBmcm9tIGRlY29kZU9yRWxzZS4gSXQgY291bGQgbGVhayBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY3JlYXRlIGludm9pY2UgcmVzcG9uc2UgJHtlcnJvcn1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldEludm9pY2UocGF5bWVudEhhc2g6IHN0cmluZyk6IFByb21pc2U8SW52b2ljZUluZm8+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJhc2VDb2luLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy9pbnZvaWNlLyR7cGF5bWVudEhhc2h9YCkpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShJbnZvaWNlSW5mby5uYW1lLCBJbnZvaWNlSW5mbywgcmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGdldCBpbnZvaWNlIHJlc3BvbnNlICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsaXN0SW52b2ljZXMocGFyYW1zOiBJbnZvaWNlUXVlcnkpOiBQcm9taXNlPEludm9pY2VJbmZvW10+IHtcbiAgICBjb25zdCByZXR1cm5Db2RlYyA9IHQuYXJyYXkoSW52b2ljZUluZm8pO1xuICAgIGNvbnN0IGNyZWF0ZUludm9pY2VSZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJhc2VDb2luLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy9pbnZvaWNlYCkpXG4gICAgICAucXVlcnkoSW52b2ljZVF1ZXJ5LmVuY29kZShwYXJhbXMpKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBzZGtjb3JlLmRlY29kZU9yRWxzZShyZXR1cm5Db2RlYy5uYW1lLCByZXR1cm5Db2RlYywgY3JlYXRlSW52b2ljZVJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsaXN0IGludm9pY2VzIHJlc3BvbnNlICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBwYXlJbnZvaWNlKHBhcmFtczogU3VibWl0UGF5bWVudFBhcmFtcyk6IFByb21pc2U8UGF5SW52b2ljZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxSWQgPSBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIHRoaXMud2FsbGV0LmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxSWQpO1xuXG4gICAgY29uc3QgeyB1c2VyQXV0aEtleSB9ID0gYXdhaXQgdGhpcy5nZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKCk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gY3JlYXRlTWVzc2FnZVNpZ25hdHVyZShcbiAgICAgIHQuZXhhY3QoTGlnaHRuaW5nUGF5bWVudFJlcXVlc3QpLmVuY29kZShwYXJhbXMpLFxuICAgICAgdGhpcy53YWxsZXQuYml0Z28uZGVjcnlwdCh7IHBhc3N3b3JkOiBwYXJhbXMucGFzc3BocmFzZSwgaW5wdXQ6IHVzZXJBdXRoS2V5LmVuY3J5cHRlZFBydiB9KVxuICAgICk7XG5cbiAgICBjb25zdCBwYXltZW50SW50ZW50OiBMaWdodG5pbmdQYXltZW50SW50ZW50ID0ge1xuICAgICAgY29tbWVudDogcGFyYW1zLmNvbW1lbnQsXG4gICAgICBzZXF1ZW5jZUlkOiBwYXJhbXMuc2VxdWVuY2VJZCxcbiAgICAgIGludGVudFR5cGU6ICdwYXltZW50JyxcbiAgICAgIHNpZ25lZFJlcXVlc3Q6IHtcbiAgICAgICAgaW52b2ljZTogcGFyYW1zLmludm9pY2UsXG4gICAgICAgIGFtb3VudE1zYXQ6IHBhcmFtcy5hbW91bnRNc2F0LFxuICAgICAgICBmZWVMaW1pdE1zYXQ6IHBhcmFtcy5mZWVMaW1pdE1zYXQsXG4gICAgICAgIGZlZUxpbWl0UmF0aW86IHBhcmFtcy5mZWVMaW1pdFJhdGlvLFxuICAgICAgfSxcbiAgICAgIHNpZ25hdHVyZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlID0gKGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAucG9zdCh0aGlzLndhbGxldC5iaXRnby51cmwoJy93YWxsZXQvJyArIHRoaXMud2FsbGV0LmlkKCkgKyAnL3R4cmVxdWVzdHMnLCAyKSlcbiAgICAgIC5zZW5kKExpZ2h0bmluZ1BheW1lbnRJbnRlbnQuZW5jb2RlKHBheW1lbnRJbnRlbnQpKVxuICAgICAgLnJlc3VsdCgpKSBhcyBUeFJlcXVlc3Q7XG5cbiAgICBpZiAodHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnN0YXRlID09PSAncGVuZGluZ0FwcHJvdmFsJykge1xuICAgICAgY29uc3QgcGVuZGluZ0FwcHJvdmFscyA9IG5ldyBQZW5kaW5nQXBwcm92YWxzKHRoaXMud2FsbGV0LmJpdGdvLCB0aGlzLndhbGxldC5iYXNlQ29pbik7XG4gICAgICBjb25zdCBwZW5kaW5nQXBwcm92YWwgPSBhd2FpdCBwZW5kaW5nQXBwcm92YWxzLmdldCh7IGlkOiB0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUucGVuZGluZ0FwcHJvdmFsSWQgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwZW5kaW5nQXBwcm92YWw6IHBlbmRpbmdBcHByb3ZhbC50b0pTT04oKSxcbiAgICAgICAgdHhSZXF1ZXN0SWQ6IHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS50eFJlcXVlc3RJZCxcbiAgICAgICAgdHhSZXF1ZXN0U3RhdGU6IHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS5zdGF0ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNhY3Rpb25SZXF1ZXN0U2VuZCA9IGF3YWl0IGNvbW1vblRzc01ldGhvZHMuc2VuZFR4UmVxdWVzdChcbiAgICAgIHRoaXMud2FsbGV0LmJpdGdvLFxuICAgICAgdGhpcy53YWxsZXQuaWQoKSxcbiAgICAgIHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS50eFJlcXVlc3RJZCxcbiAgICAgIFJlcXVlc3RUeXBlLnR4LFxuICAgICAgcmVxSWRcbiAgICApO1xuXG4gICAgY29uc3QgY29pblNwZWNpZmljID0gdHJhbnNhY3Rpb25SZXF1ZXN0U2VuZC50cmFuc2FjdGlvbnM/LlswXT8udW5zaWduZWRUeD8uY29pblNwZWNpZmljO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR4UmVxdWVzdElkOiB0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUudHhSZXF1ZXN0SWQsXG4gICAgICB0eFJlcXVlc3RTdGF0ZTogdHJhbnNhY3Rpb25SZXF1ZXN0U2VuZC5zdGF0ZSxcbiAgICAgIHBheW1lbnRTdGF0dXM6IGNvaW5TcGVjaWZpY1xuICAgICAgICA/IHQuZXhhY3QoTG5kQ3JlYXRlUGF5bWVudFJlc3BvbnNlKS5lbmNvZGUoY29pblNwZWNpZmljIGFzIExuZENyZWF0ZVBheW1lbnRSZXNwb25zZSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGdldFBheW1lbnQocGF5bWVudEhhc2g6IHN0cmluZyk6IFByb21pc2U8UGF5bWVudEluZm8+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJhc2VDb2luLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy9wYXltZW50LyR7cGF5bWVudEhhc2h9YCkpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShQYXltZW50SW5mby5uYW1lLCBQYXltZW50SW5mbywgcmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBheW1lbnQgcmVzcG9uc2U6ICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsaXN0UGF5bWVudHMocGFyYW1zOiBQYXltZW50UXVlcnkpOiBQcm9taXNlPFBheW1lbnRJbmZvW10+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJhc2VDb2luLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy9wYXltZW50YCkpXG4gICAgICAucXVlcnkoUGF5bWVudFF1ZXJ5LmVuY29kZShwYXJhbXMpKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVPckVsc2UodC5hcnJheShQYXltZW50SW5mbykubmFtZSwgdC5hcnJheShQYXltZW50SW5mbyksIHJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYXltZW50IGxpc3QgcmVzcG9uc2U6ICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRUcmFuc2FjdGlvbih0eElkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLmdldCh0aGlzLndhbGxldC5iYXNlQ29pbi51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS9saWdodG5pbmcvdHJhbnNhY3Rpb24vJHt0eElkfWApKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVPckVsc2UoVHJhbnNhY3Rpb24ubmFtZSwgVHJhbnNhY3Rpb24sIHJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0cmFuc2FjdGlvbiByZXNwb25zZTogJHtlcnJvcn1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RUcmFuc2FjdGlvbnMocGFyYW1zOiBUcmFuc2FjdGlvblF1ZXJ5KTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLmdldCh0aGlzLndhbGxldC5iYXNlQ29pbi51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS9saWdodG5pbmcvdHJhbnNhY3Rpb25gKSlcbiAgICAgIC5xdWVyeShUcmFuc2FjdGlvblF1ZXJ5LmVuY29kZShwYXJhbXMpKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVPckVsc2UodC5hcnJheShUcmFuc2FjdGlvbikubmFtZSwgdC5hcnJheShUcmFuc2FjdGlvbiksIHJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0cmFuc2FjdGlvbiBsaXN0IHJlc3BvbnNlOiAke2Vycm9yfWApO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q2hhbm5lbEJhY2t1cCgpOiBQcm9taXNlPEJhY2t1cFJlc3BvbnNlPiB7XG4gICAgY29uc3QgYmFja3VwUmVzcG9uc2UgPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLmdldCh0aGlzLndhbGxldC5iYXNlQ29pbi51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS9saWdodG5pbmcvYmFja3VwYCkpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIHNka2NvcmUuZGVjb2RlT3JFbHNlKEJhY2t1cFJlc3BvbnNlLm5hbWUsIEJhY2t1cFJlc3BvbnNlLCBiYWNrdXBSZXNwb25zZSwgKGVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYmFja3VwIHJlc3BvbnNlOiAke2Vycm9yfWApO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo/abstract-lightning",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "BitGo SDK coin library for base Lightning Network coin implementation",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -39,14 +39,15 @@
|
|
|
39
39
|
]
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@bitgo/
|
|
43
|
-
"@bitgo/
|
|
44
|
-
"@bitgo/
|
|
42
|
+
"@bitgo/public-types": "4.17.0",
|
|
43
|
+
"@bitgo/sdk-core": "^31.0.0",
|
|
44
|
+
"@bitgo/statics": "^51.2.0",
|
|
45
|
+
"@bitgo/utxo-lib": "^11.2.4",
|
|
45
46
|
"bs58check": "^2.1.2",
|
|
46
47
|
"fp-ts": "^2.12.2",
|
|
47
48
|
"io-ts": "npm:@bitgo-forks/io-ts@2.1.4",
|
|
48
49
|
"io-ts-types": "^0.5.16",
|
|
49
50
|
"macaroon": "^3.0.4"
|
|
50
51
|
},
|
|
51
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "52a2157ce9ebd8bb0294609693a5724d6c24b8a9"
|
|
52
53
|
}
|