@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 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
- # [3.0.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/abstract-lightning@1.2.44...@bitgo/abstract-lightning@3.0.0) (2025-02-25)
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;AAM3B,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"}
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2RlY3MvYXBpL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQTJCO0FBQzNCLG1FQUFnRTtBQUNoRSxxRUFBa0U7QUFFbEUsbURBQW1EO0FBRXRDLFFBQUEsYUFBYSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsMkNBQTJDO0lBQzNDLDREQUE0RDtJQUM1RCxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUN0QixlQUFlO0lBQ2YsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDcEIsZUFBZTtJQUNmLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0NBQ3BCLENBQUMsQ0FBQztBQUdVLFFBQUEsdUJBQXVCLEdBQUcsU0FBUyxDQUFDO0FBQ3BDLFFBQUEsd0JBQXdCLEdBQUcsVUFBVSxDQUFDO0FBQ25ELDhCQUE4QjtBQUNqQixRQUFBLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQUNoQyxRQUFBLGlDQUFpQyxHQUFHLDJCQUEyQixDQUFDO0FBQzdFLDZDQUE2QztBQUNoQyxRQUFBLDRDQUE0QyxHQUFHLHNCQUFzQixDQUFDO0FBQ25GLHlFQUF5RTtBQUM1RCxRQUFBLDJDQUEyQyxHQUFHLDZCQUE2QixDQUFDO0FBQ3pGLG1FQUFtRTtBQUN0RCxRQUFBLHFDQUFxQyxHQUFHLHVCQUF1QixDQUFDO0FBQ2hFLFFBQUEsK0JBQStCLEdBQUcsaUJBQWlCLENBQUM7QUFDcEQsUUFBQSx3QkFBd0IsR0FBRyxVQUFVLENBQUM7QUFFdEMsUUFBQSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUMsQ0FBQyxPQUFPLENBQUMsK0JBQXVCLENBQUM7SUFDbEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQ0FBd0IsQ0FBQztJQUNuQyxDQUFDLENBQUMsT0FBTyxDQUFDLDZCQUFxQixDQUFDO0lBQ2hDLENBQUMsQ0FBQyxPQUFPLENBQUMseUNBQWlDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvREFBNEMsQ0FBQztJQUN2RCxDQUFDLENBQUMsT0FBTyxDQUFDLG1EQUEyQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxPQUFPLENBQUMsNkNBQXFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1Q0FBK0IsQ0FBQztJQUMxQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdDQUF3QixDQUFDO0NBQ3BDLENBQUMsQ0FBQztBQUlIOztHQUVHO0FBQ1UsUUFBQSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FDdkM7SUFDRSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ0wsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ3JCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNsQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDckIsTUFBTSxFQUFFLHFCQUFhO1FBQ3JCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixZQUFZLEVBQUUsbUNBQWdCO1FBQzlCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNyQixTQUFTLEVBQUUscUNBQWlCO1FBQzVCLFNBQVMsRUFBRSxxQ0FBaUI7UUFDNUIsVUFBVSxFQUFFLG1DQUFnQjtLQUM3QixDQUFDO0lBQ0YsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNSLE9BQU8sRUFBRSxtQ0FBZ0I7UUFDekIsYUFBYSxFQUFFLDRCQUFvQjtRQUNuQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLE1BQU07S0FDMUIsQ0FBQztDQUNILEVBQ0QsYUFBYSxDQUNkLENBQUM7QUFJRjs7R0FFRztBQUNVLFFBQUEsWUFBWSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQ25DO0lBQ0UsTUFBTSxFQUFFLHFCQUFhO0lBQ3JCLEtBQUssRUFBRSxtQ0FBZ0I7SUFDdkIsU0FBUyxFQUFFLHFDQUFpQjtJQUM1QixPQUFPLEVBQUUscUNBQWlCO0NBQzNCLEVBQ0QsY0FBYyxDQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IEJpZ0ludEZyb21TdHJpbmcgfSBmcm9tICdpby10cy10eXBlcy9CaWdJbnRGcm9tU3RyaW5nJztcbmltcG9ydCB7IERhdGVGcm9tSVNPU3RyaW5nIH0gZnJvbSAnaW8tdHMtdHlwZXMvRGF0ZUZyb21JU09TdHJpbmcnO1xuXG4vLyBjb2RlY3MgZm9yIGxpZ2h0bmluZyB3YWxsZXQgcGF5bWVudCByZWxhdGVkIGFwaXNcblxuZXhwb3J0IGNvbnN0IFBheW1lbnRTdGF0dXMgPSB0LnVuaW9uKFtcbiAgLy8gSW5pdGlhbCBzdGF0ZSB3aGVuIHBheW1lbnQgaXMgaW5pdGlhdGVkLlxuICAvLyBUcmFuc2l0aW9ucyB0byAnc2V0dGxlZCcgb3IgJ2ZhaWxlZCcgb24gTE5EIG5vdGlmaWNhdGlvbi5cbiAgdC5saXRlcmFsKCdpbl9mbGlnaHQnKSxcbiAgLy8gRmluYWwgc3RhdGUuXG4gIHQubGl0ZXJhbCgnc2V0dGxlZCcpLFxuICAvLyBGaW5hbCBzdGF0ZS5cbiAgdC5saXRlcmFsKCdmYWlsZWQnKSxcbl0pO1xuZXhwb3J0IHR5cGUgUGF5bWVudFN0YXR1cyA9IHQuVHlwZU9mPHR5cGVvZiBQYXltZW50U3RhdHVzPjtcblxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9USU1FT1VUID0gJ1RJTUVPVVQnO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9OT19ST1VURSA9ICdOT19ST1VURSc7XG4vKiogQSBub24tcmVjb3ZlcmFibGUgZXJyb3IgKi9cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfRVJST1IgPSAnRVJST1InO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9JTkNPUlJFQ1RfREVUQUlMUyA9ICdJTkNPUlJFQ1RfUEFZTUVOVF9ERVRBSUxTJztcbi8qKiBJbnN1ZmZpY2llbnQgY2hhbm5lbCBvdXRib3VuZCBjYXBhY2l0eSAqL1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9JTlNVRkZJQ0lFTlRfQ0hBTk5FTF9CQUxBTkNFID0gJ0lOU1VGRklDSUVOVF9CQUxBTkNFJztcbi8qKiBJbnN1ZmZpY2llbnQgY3VzdG9kaWFsIGxpZ2h0bmluZyBiYWxhbmNlIGZvciB0aGUgY3VzdG9tZXIncyB3YWxsZXQgKi9cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX1dBTExFVF9CQUxBTkNFID0gJ0lOU1VGRklDSUVOVF9XQUxMRVRfQkFMQU5DRSc7XG4vKiogRXhjZXNzIGN1c3RvZGlhbCBsaWdodG5pbmcgYmFsYW5jZSBmb3IgdGhlIGN1c3RvbWVyJ3Mgd2FsbGV0ICovXG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX0VYQ0VTU19XQUxMRVRfQkFMQU5DRSA9ICdFWENFU1NfV0FMTEVUX0JBTEFOQ0UnO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9JTlZPSUNFX0VYUElSRUQgPSAnSU5WT0lDRV9FWFBJUkVEJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfQ0FOQ0VMRUQgPSAnQ0FOQ0VMRUQnO1xuXG5leHBvcnQgY29uc3QgUGF5bWVudEZhaWx1cmVSZWFzb24gPSB0LnVuaW9uKFtcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9USU1FT1VUKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9OT19ST1VURSksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfRVJST1IpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0lOQ09SUkVDVF9ERVRBSUxTKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9JTlNVRkZJQ0lFTlRfQ0hBTk5FTF9CQUxBTkNFKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9JTlNVRkZJQ0lFTlRfV0FMTEVUX0JBTEFOQ0UpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0VYQ0VTU19XQUxMRVRfQkFMQU5DRSksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfSU5WT0lDRV9FWFBJUkVEKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9DQU5DRUxFRCksXG5dKTtcblxuZXhwb3J0IHR5cGUgUGF5bWVudEZhaWx1cmVSZWFzb24gPSB0LlR5cGVPZjx0eXBlb2YgUGF5bWVudEZhaWx1cmVSZWFzb24+O1xuXG4vKipcbiAqIE9mZi1jaGFpbiBwYXltZW50IGluZm9ybWF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBQYXltZW50SW5mbyA9IHQuaW50ZXJzZWN0aW9uKFxuICBbXG4gICAgdC50eXBlKHtcbiAgICAgIHBheW1lbnRIYXNoOiB0LnN0cmluZyxcbiAgICAgIHdhbGxldElkOiB0LnN0cmluZyxcbiAgICAgIHR4UmVxdWVzdElkOiB0LnN0cmluZyxcbiAgICAgIHN0YXR1czogUGF5bWVudFN0YXR1cyxcbiAgICAgIGludm9pY2U6IHQuc3RyaW5nLFxuICAgICAgZmVlTGltaXRNc2F0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgICAgZGVzdGluYXRpb246IHQuc3RyaW5nLFxuICAgICAgdXBkYXRlZEF0OiBEYXRlRnJvbUlTT1N0cmluZyxcbiAgICAgIGNyZWF0ZWRBdDogRGF0ZUZyb21JU09TdHJpbmcsXG4gICAgICBhbW91bnRNc2F0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgIH0pLFxuICAgIHQucGFydGlhbCh7XG4gICAgICBmZWVNc2F0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgICAgZmFpbHVyZVJlYXNvbjogUGF5bWVudEZhaWx1cmVSZWFzb24sXG4gICAgICBwYXltZW50UHJlaW1hZ2U6IHQuc3RyaW5nLFxuICAgIH0pLFxuICBdLFxuICAnUGF5bWVudEluZm8nXG4pO1xuXG5leHBvcnQgdHlwZSBQYXltZW50SW5mbyA9IHQuVHlwZU9mPHR5cGVvZiBQYXltZW50SW5mbz47XG5cbi8qKlxuICogUGF5bWVudCBxdWVyeSBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBQYXltZW50UXVlcnkgPSB0LnBhcnRpYWwoXG4gIHtcbiAgICBzdGF0dXM6IFBheW1lbnRTdGF0dXMsXG4gICAgbGltaXQ6IEJpZ0ludEZyb21TdHJpbmcsXG4gICAgc3RhcnREYXRlOiBEYXRlRnJvbUlTT1N0cmluZyxcbiAgICBlbmREYXRlOiBEYXRlRnJvbUlTT1N0cmluZyxcbiAgfSxcbiAgJ1BheW1lbnRRdWVyeSdcbik7XG5leHBvcnQgdHlwZSBQYXltZW50UXVlcnkgPSB0LlR5cGVPZjx0eXBlb2YgUGF5bWVudFF1ZXJ5PjtcbiJdfQ==
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 UpdateLightningWalletSignedRequest: t.PartialC<{
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
- export type UpdateLightningWalletSignedRequest = t.TypeOf<typeof UpdateLightningWalletSignedRequest>;
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;AAEnD,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;EAO7C,CAAC;AAEH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kCAAkC,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.UpdateLightningWalletSignedRequest = exports.WatchOnly = exports.WatchOnlyAccount = exports.LightningAuthKeychain = exports.LightningKeychain = exports.LightningAuthKeychainCoinSpecific = exports.KeyPurpose = void 0;
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
- exports.UpdateLightningWalletSignedRequest = t.partial({
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvZGVjcy9hcGkvd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUEyQjtBQUMzQiw2Q0FBNkM7QUFDN0Msc0NBQXlDO0FBRXpDLHVEQUF1RDtBQUUxQyxRQUFBLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFJbkYsUUFBQSxpQ0FBaUMsR0FBRyxJQUFBLHFCQUFZLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxrQkFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWxGLFFBQUEsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FDdkM7SUFDRSxFQUFFLEVBQUUsNEJBQWM7SUFDbEIsR0FBRyxFQUFFLDRCQUFjO0lBQ25CLFlBQVksRUFBRSw0QkFBYztJQUM1QixNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Q0FDMUIsRUFDRCxtQkFBbUIsQ0FDcEIsQ0FBQztBQUlXLFFBQUEscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FDM0M7SUFDRSxFQUFFLEVBQUUsNEJBQWM7SUFDbEIsR0FBRyxFQUFFLDRCQUFjO0lBQ25CLFlBQVksRUFBRSw0QkFBYztJQUM1QixZQUFZLEVBQUUseUNBQWlDO0lBQy9DLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztDQUMxQixFQUNELHVCQUF1QixDQUN4QixDQUFDO0FBSVcsUUFBQSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNqQixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDbkIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2pCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtDQUNmLENBQUMsQ0FBQztBQUlVLFFBQUEsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUIsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDaEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsd0JBQWdCLENBQUM7Q0FDcEMsQ0FBQyxDQUFDO0FBSVUsUUFBQSxrQ0FBa0MsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzFELHVCQUF1QixFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2pDLDRCQUE0QixFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ3RDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNwQixxQkFBcUIsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUMvQixhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkIsaUJBQWlCLEVBQUUsaUJBQVM7Q0FDN0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5pbXBvcnQgeyBOb25FbXB0eVN0cmluZyB9IGZyb20gJ2lvLXRzLXR5cGVzJztcbmltcG9ydCB7IGdldENvZGVjUGFpciB9IGZyb20gJy4uL3NoYXJlZCc7XG5cbi8vIGNvZGVjIGZvciBsaWdodG5pbmcgd2FsbGV0IGFuZCBrZXljaGFpbiByZWxhdGVkIGFwaXNcblxuZXhwb3J0IGNvbnN0IEtleVB1cnBvc2UgPSB0LnVuaW9uKFt0LmxpdGVyYWwoJ3VzZXJBdXRoJyksIHQubGl0ZXJhbCgnbm9kZUF1dGgnKV0sICdLZXlQdXJwb3NlJyk7XG5cbmV4cG9ydCB0eXBlIEtleVB1cnBvc2UgPSB0LlR5cGVPZjx0eXBlb2YgS2V5UHVycG9zZT47XG5cbmV4cG9ydCBjb25zdCBMaWdodG5pbmdBdXRoS2V5Y2hhaW5Db2luU3BlY2lmaWMgPSBnZXRDb2RlY1BhaXIodC50eXBlKHsgcHVycG9zZTogS2V5UHVycG9zZSB9KSk7XG5cbmV4cG9ydCBjb25zdCBMaWdodG5pbmdLZXljaGFpbiA9IHQuc3RyaWN0KFxuICB7XG4gICAgaWQ6IE5vbkVtcHR5U3RyaW5nLFxuICAgIHB1YjogTm9uRW1wdHlTdHJpbmcsXG4gICAgZW5jcnlwdGVkUHJ2OiBOb25FbXB0eVN0cmluZyxcbiAgICBzb3VyY2U6IHQubGl0ZXJhbCgndXNlcicpLFxuICB9LFxuICAnTGlnaHRuaW5nS2V5Y2hhaW4nXG4pO1xuXG5leHBvcnQgdHlwZSBMaWdodG5pbmdLZXljaGFpbiA9IHQuVHlwZU9mPHR5cGVvZiBMaWdodG5pbmdLZXljaGFpbj47XG5cbmV4cG9ydCBjb25zdCBMaWdodG5pbmdBdXRoS2V5Y2hhaW4gPSB0LnN0cmljdChcbiAge1xuICAgIGlkOiBOb25FbXB0eVN0cmluZyxcbiAgICBwdWI6IE5vbkVtcHR5U3RyaW5nLFxuICAgIGVuY3J5cHRlZFBydjogTm9uRW1wdHlTdHJpbmcsXG4gICAgY29pblNwZWNpZmljOiBMaWdodG5pbmdBdXRoS2V5Y2hhaW5Db2luU3BlY2lmaWMsXG4gICAgc291cmNlOiB0LmxpdGVyYWwoJ3VzZXInKSxcbiAgfSxcbiAgJ0xpZ2h0bmluZ0F1dGhLZXljaGFpbidcbik7XG5cbmV4cG9ydCB0eXBlIExpZ2h0bmluZ0F1dGhLZXljaGFpbiA9IHQuVHlwZU9mPHR5cGVvZiBMaWdodG5pbmdBdXRoS2V5Y2hhaW4+O1xuXG5leHBvcnQgY29uc3QgV2F0Y2hPbmx5QWNjb3VudCA9IHQudHlwZSh7XG4gIHB1cnBvc2U6IHQubnVtYmVyLFxuICBjb2luX3R5cGU6IHQubnVtYmVyLFxuICBhY2NvdW50OiB0Lm51bWJlcixcbiAgeHB1YjogdC5zdHJpbmcsXG59KTtcblxuZXhwb3J0IHR5cGUgV2F0Y2hPbmx5QWNjb3VudCA9IHQuVHlwZU9mPHR5cGVvZiBXYXRjaE9ubHlBY2NvdW50PjtcblxuZXhwb3J0IGNvbnN0IFdhdGNoT25seSA9IHQudHlwZSh7XG4gIG1hc3Rlcl9rZXlfYmlydGhkYXlfdGltZXN0YW1wOiB0LnN0cmluZyxcbiAgbWFzdGVyX2tleV9maW5nZXJwcmludDogdC5zdHJpbmcsXG4gIGFjY291bnRzOiB0LmFycmF5KFdhdGNoT25seUFjY291bnQpLFxufSk7XG5cbmV4cG9ydCB0eXBlIFdhdGNoT25seSA9IHQuVHlwZU9mPHR5cGVvZiBXYXRjaE9ubHk+O1xuXG5leHBvcnQgY29uc3QgVXBkYXRlTGlnaHRuaW5nV2FsbGV0U2lnbmVkUmVxdWVzdCA9IHQucGFydGlhbCh7XG4gIGVuY3J5cHRlZFNpZ25lck1hY2Fyb29uOiB0LnN0cmluZyxcbiAgZW5jcnlwdGVkU2lnbmVyQWRtaW5NYWNhcm9vbjogdC5zdHJpbmcsXG4gIHNpZ25lckhvc3Q6IHQuc3RyaW5nLFxuICBlbmNyeXB0ZWRTaWduZXJUbHNLZXk6IHQuc3RyaW5nLFxuICBzaWduZXJUbHNDZXJ0OiB0LnN0cmluZyxcbiAgd2F0Y2hPbmx5QWNjb3VudHM6IFdhdGNoT25seSxcbn0pO1xuXG5leHBvcnQgdHlwZSBVcGRhdGVMaWdodG5pbmdXYWxsZXRTaWduZWRSZXF1ZXN0ID0gdC5UeXBlT2Y8dHlwZW9mIFVwZGF0ZUxpZ2h0bmluZ1dhbGxldFNpZ25lZFJlcXVlc3Q+O1xuIl19
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 { CreateInvoiceBody, Invoice, InvoiceInfo, InvoiceQuery, LightningAuthKeychain, LightningKeychain, UpdateLightningWalletSignedRequest } from '../codecs';
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 {UpdateLightningWalletSignedRequest} params - The parameters containing the updated wallet-specific details.
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: UpdateLightningWalletSignedRequest, passphrase: string): Promise<unknown>;
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
- createInvoice(params: CreateInvoiceBody): Promise<Invoice>;
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: UpdateLightningWalletSignedRequest, passphrase: string): Promise<unknown>;
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;AAG3C,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,kCAAkC,EACnC,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE3D;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C;;OAEG;IACH,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEnD;;OAEG;IACH,yBAAyB,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,qBAAqB,CAAC;QAAC,WAAW,EAAE,qBAAqB,CAAA;KAAE,CAAC,CAAC;IAEjH;;;;;;;;;;;;;;OAcG;IACH,wBAAwB,CAAC,MAAM,EAAE,kCAAkC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5G;AAED,qBAAa,4BAA6B,YAAW,gBAAgB;IAC5D,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC;gBAEnB,MAAM,EAAE,OAAO,CAAC,OAAO;IAQ7B,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1D,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7C,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAW1D,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAWlD,yBAAyB,IAAI,OAAO,CAAC;QACzC,WAAW,EAAE,qBAAqB,CAAC;QACnC,WAAW,EAAE,qBAAqB,CAAC;KACpC,CAAC;IA0BI,wBAAwB,CAAC,MAAM,EAAE,kCAAkC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAuBjH"}
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
- async createInvoice(params) {
50
- const createInvoiceResponse = await this.wallet.bitgo
51
- .post(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/invoice`))
52
- .send(codecs_1.CreateInvoiceBody.encode(params))
53
- .result();
54
- return sdkcore.decodeOrElse(codecs_1.Invoice.name, codecs_1.Invoice, createInvoiceResponse, (error) => {
55
- // DON'T throw errors from decodeOrElse. It could leak sensitive information.
56
- throw new Error(`Invalid create invoice response ${error}`);
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, passphrase) {
105
- sdkcore.decodeOrElse(codecs_1.UpdateLightningWalletSignedRequest.name, codecs_1.UpdateLightningWalletSignedRequest, params, (errors) => {
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: ${errors}`);
115
+ throw new Error(`Invalid params for lightning specific update wallet`);
108
116
  });
109
117
  const { userAuthKey } = await this.getLightningAuthKeychains();
110
- const signature = (0, lightning_1.createMessageSignature)(params, this.wallet.bitgo.decrypt({ password: passphrase, input: userAuthKey.encryptedPrv }));
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: params,
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.0.0",
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/sdk-core": "^30.0.0",
43
- "@bitgo/statics": "^51.1.0",
44
- "@bitgo/utxo-lib": "^11.2.3",
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": "933553319c85a827a8bdbfb2d234b80d26ec9614"
52
+ "gitHead": "52a2157ce9ebd8bb0294609693a5724d6c24b8a9"
52
53
  }