@bitgo-beta/sdk-core 8.2.1-beta.706 → 8.2.1-beta.707
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bitgo/lightning/codecs.d.ts +123 -62
- package/dist/src/bitgo/lightning/codecs.d.ts.map +1 -1
- package/dist/src/bitgo/lightning/codecs.js +29 -25
- package/dist/src/bitgo/lightning/index.d.ts +1 -0
- package/dist/src/bitgo/lightning/index.d.ts.map +1 -1
- package/dist/src/bitgo/lightning/index.js +2 -1
- package/dist/src/bitgo/lightning/lightningWallet.d.ts +18 -0
- package/dist/src/bitgo/lightning/lightningWallet.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/lightningWallet.js +65 -0
- package/dist/src/bitgo/lightning/signature.d.ts +1 -1
- package/dist/src/bitgo/lightning/signature.d.ts.map +1 -1
- package/dist/src/bitgo/lightning/signature.js +3 -3
- package/dist/src/bitgo/wallet/lightning.d.ts +0 -34
- package/dist/src/bitgo/wallet/lightning.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/lightning.js +1 -55
- package/dist/test/unit/bitgo/lightning/codecs.js +25 -13
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { IWallet } from './iWallet';
|
|
2
|
-
import { LightningAuthKeychain, LightningKeychain, UpdateLightningWalletSignedRequest } from '../lightning';
|
|
3
2
|
export interface ILightningWallet {
|
|
4
3
|
/**
|
|
5
4
|
* Creates a lightning invoice
|
|
@@ -11,44 +10,11 @@ export interface ILightningWallet {
|
|
|
11
10
|
* @param params Payment parameters (to be defined)
|
|
12
11
|
*/
|
|
13
12
|
payInvoice(params: unknown): Promise<unknown>;
|
|
14
|
-
/**
|
|
15
|
-
* Get the lightning keychain for the given wallet.
|
|
16
|
-
*/
|
|
17
|
-
getLightningKeychain(): Promise<LightningKeychain>;
|
|
18
|
-
/**
|
|
19
|
-
* Get the lightning auth keychains for the given wallet.
|
|
20
|
-
*/
|
|
21
|
-
getLightningAuthKeychains(): Promise<{
|
|
22
|
-
userAuthKey: LightningAuthKeychain;
|
|
23
|
-
nodeAuthKey: LightningAuthKeychain;
|
|
24
|
-
}>;
|
|
25
|
-
/**
|
|
26
|
-
* Updates the coin-specific configuration for a Lightning Wallet.
|
|
27
|
-
*
|
|
28
|
-
* @param {UpdateLightningWalletSignedRequest} params - The parameters containing the updated wallet-specific details.
|
|
29
|
-
* - `encryptedSignerMacaroon` (optional): This macaroon is used by the watch-only node to ask the signer node to sign transactions.
|
|
30
|
-
* Encrypted with ECDH secret key from private key of wallet's user auth key and public key of lightning service.
|
|
31
|
-
* - `encryptedSignerAdminMacaroon` (optional): Generated when initializing the wallet of the signer node.
|
|
32
|
-
* Encrypted with client's wallet passphrase.
|
|
33
|
-
* - `signerIp` (optional): The IP address of the Lightning signer node.
|
|
34
|
-
* - `encryptedSignerTlsKey` (optional): The wallet passphrase encrypted TLS key of the signer.
|
|
35
|
-
* - `signerTlsCert` (optional): The TLS certificate of the signer.
|
|
36
|
-
* - `watchOnlyAccounts` (optional): These are the accounts used to initialize the watch-only wallet.
|
|
37
|
-
* @param {string} passphrase - wallet passphrase.
|
|
38
|
-
* @returns {Promise<unknown>} A promise resolving to the updated wallet response or throwing an error if the update fails.
|
|
39
|
-
*/
|
|
40
|
-
updateWalletCoinSpecific(params: UpdateLightningWalletSignedRequest, passphrase: string): Promise<unknown>;
|
|
41
13
|
}
|
|
42
14
|
export declare class SelfCustodialLightningWallet implements ILightningWallet {
|
|
43
15
|
wallet: IWallet;
|
|
44
16
|
constructor(wallet: IWallet);
|
|
45
17
|
createInvoice(params: unknown): Promise<unknown>;
|
|
46
18
|
payInvoice(params: unknown): Promise<unknown>;
|
|
47
|
-
getLightningKeychain(): Promise<LightningKeychain>;
|
|
48
|
-
getLightningAuthKeychains(): Promise<{
|
|
49
|
-
userAuthKey: LightningAuthKeychain;
|
|
50
|
-
nodeAuthKey: LightningAuthKeychain;
|
|
51
|
-
}>;
|
|
52
|
-
updateWalletCoinSpecific(params: UpdateLightningWalletSignedRequest, passphrase: string): Promise<unknown>;
|
|
53
19
|
}
|
|
54
20
|
//# sourceMappingURL=lightning.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/lightning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/lightning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,qBAAa,4BAA6B,YAAW,gBAAgB;IAC5D,MAAM,EAAE,OAAO,CAAC;gBAEX,MAAM,EAAE,OAAO;IAIrB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhD,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpD"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SelfCustodialLightningWallet = void 0;
|
|
4
|
-
const lightning_1 = require("../lightning");
|
|
5
|
-
const utils_1 = require("../utils");
|
|
6
4
|
class SelfCustodialLightningWallet {
|
|
7
5
|
constructor(wallet) {
|
|
8
|
-
const coin = wallet.baseCoin;
|
|
9
|
-
if (coin.getFamily() !== 'lnbtc') {
|
|
10
|
-
throw new Error(`Invalid coin to update lightning wallet: ${coin.getFamily()}`);
|
|
11
|
-
}
|
|
12
6
|
this.wallet = wallet;
|
|
13
7
|
}
|
|
14
8
|
async createInvoice(params) {
|
|
@@ -17,54 +11,6 @@ class SelfCustodialLightningWallet {
|
|
|
17
11
|
async payInvoice(params) {
|
|
18
12
|
throw new Error('Method not implemented.');
|
|
19
13
|
}
|
|
20
|
-
async getLightningKeychain() {
|
|
21
|
-
const keyIds = this.wallet.keyIds();
|
|
22
|
-
if (keyIds.length !== 1) {
|
|
23
|
-
throw new Error(`Invalid number of key in lightning wallet: ${keyIds.length}`);
|
|
24
|
-
}
|
|
25
|
-
const keychain = await this.wallet.baseCoin.keychains().get({ id: keyIds[0] });
|
|
26
|
-
return (0, utils_1.decodeOrElse)(lightning_1.LightningKeychain.name, lightning_1.LightningKeychain, keychain, (_) => {
|
|
27
|
-
// DON'T throw errors from decodeOrElse. It could leak sensitive information.
|
|
28
|
-
throw new Error(`Invalid user key`);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
async getLightningAuthKeychains() {
|
|
32
|
-
const authKeyIds = this.wallet.coinSpecific()?.keys;
|
|
33
|
-
if (authKeyIds?.length !== 2) {
|
|
34
|
-
throw new Error(`Invalid number of auth keys in lightning wallet: ${authKeyIds?.length}`);
|
|
35
|
-
}
|
|
36
|
-
const coin = this.wallet.baseCoin;
|
|
37
|
-
const keychains = await Promise.all(authKeyIds.map((id) => coin.keychains().get({ id })));
|
|
38
|
-
const authKeychains = keychains.map((keychain) => {
|
|
39
|
-
return (0, utils_1.decodeOrElse)(lightning_1.LightningAuthKeychain.name, lightning_1.LightningAuthKeychain, keychain, (_) => {
|
|
40
|
-
// DON'T throw errors from decodeOrElse. It could leak sensitive information.
|
|
41
|
-
throw new Error(`Invalid lightning auth key: ${keychain?.id}`);
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
const [userAuthKey, nodeAuthKey] = ['userAuth', 'nodeAuth'].map((purpose) => {
|
|
45
|
-
const keychain = authKeychains.find((k) => (0, lightning_1.unwrapLightningCoinSpecific)(k.coinSpecific, coin.getChain()).purpose === purpose);
|
|
46
|
-
if (!keychain) {
|
|
47
|
-
throw new Error(`Missing ${purpose} key`);
|
|
48
|
-
}
|
|
49
|
-
return keychain;
|
|
50
|
-
});
|
|
51
|
-
return { userAuthKey, nodeAuthKey };
|
|
52
|
-
}
|
|
53
|
-
async updateWalletCoinSpecific(params, passphrase) {
|
|
54
|
-
(0, utils_1.decodeOrElse)(lightning_1.UpdateLightningWalletSignedRequest.name, lightning_1.UpdateLightningWalletSignedRequest, params, (errors) => {
|
|
55
|
-
// DON'T throw errors from decodeOrElse. It could leak sensitive information.
|
|
56
|
-
throw new Error(`Invalid params for lightning specific update wallet: ${errors}`);
|
|
57
|
-
});
|
|
58
|
-
const { userAuthKey } = await this.getLightningAuthKeychains();
|
|
59
|
-
const signature = (0, lightning_1.createMessageSignature)(params, this.wallet.bitgo.decrypt({ password: passphrase, input: userAuthKey.encryptedPrv }));
|
|
60
|
-
const coinSpecific = {
|
|
61
|
-
[this.wallet.coin()]: {
|
|
62
|
-
signedRequest: params,
|
|
63
|
-
signature,
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
return await this.wallet.bitgo.put(this.wallet.url()).send({ coinSpecific }).result();
|
|
67
|
-
}
|
|
68
14
|
}
|
|
69
15
|
exports.SelfCustodialLightningWallet = SelfCustodialLightningWallet;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9saWdodG5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBTXNCO0FBQ3RCLG9DQUF3QztBQTJDeEMsTUFBYSw0QkFBNEI7SUFHdkMsWUFBWSxNQUFlO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBZTtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBZTtRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0I7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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QU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO2dCQUNwQixhQUFhLEVBQUUsTUFBTTtnQkFDckIsU0FBUzthQUNWO1NBQ0YsQ0FBQztRQUNGLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDeEYsQ0FBQztDQUNGO0FBOUVELG9FQThFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuL2lXYWxsZXQnO1xuaW1wb3J0IHtcbiAgY3JlYXRlTWVzc2FnZVNpZ25hdHVyZSxcbiAgTGlnaHRuaW5nQXV0aEtleWNoYWluLFxuICBMaWdodG5pbmdLZXljaGFpbixcbiAgdW53cmFwTGlnaHRuaW5nQ29pblNwZWNpZmljLFxuICBVcGRhdGVMaWdodG5pbmdXYWxsZXRTaWduZWRSZXF1ZXN0LFxufSBmcm9tICcuLi9saWdodG5pbmcnO1xuaW1wb3J0IHsgZGVjb2RlT3JFbHNlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMaWdodG5pbmdXYWxsZXQge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGxpZ2h0bmluZyBpbnZvaWNlXG4gICAqIEBwYXJhbSBwYXJhbXMgSW52b2ljZSBwYXJhbWV0ZXJzICh0byBiZSBkZWZpbmVkKVxuICAgKi9cbiAgY3JlYXRlSW52b2ljZShwYXJhbXM6IHVua25vd24pOiBQcm9taXNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBQYXkgYSBsaWdodG5pbmcgaW52b2ljZVxuICAgKiBAcGFyYW0gcGFyYW1zIFBheW1lbnQgcGFyYW1ldGVycyAodG8gYmUgZGVmaW5lZClcbiAgICovXG4gIHBheUludm9pY2UocGFyYW1zOiB1bmtub3duKTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogR2V0IHRoZSBsaWdodG5pbmcga2V5Y2hhaW4gZm9yIHRoZSBnaXZlbiB3YWxsZXQuXG4gICAqL1xuICBnZXRMaWdodG5pbmdLZXljaGFpbigpOiBQcm9taXNlPExpZ2h0bmluZ0tleWNoYWluPjtcblxuICAvKipcbiAgICogR2V0IHRoZSBsaWdodG5pbmcgYXV0aCBrZXljaGFpbnMgZm9yIHRoZSBnaXZlbiB3YWxsZXQuXG4gICAqL1xuICBnZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKCk6IFByb21pc2U8eyB1c2VyQXV0aEtleTogTGlnaHRuaW5nQXV0aEtleWNoYWluOyBub2RlQXV0aEtleTogTGlnaHRuaW5nQXV0aEtleWNoYWluIH0+O1xuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjb2luLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZm9yIGEgTGlnaHRuaW5nIFdhbGxldC5cbiAgICpcbiAgICogQHBhcmFtIHtVcGRhdGVMaWdodG5pbmdXYWxsZXRTaWduZWRSZXF1ZXN0fSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBjb250YWluaW5nIHRoZSB1cGRhdGVkIHdhbGxldC1zcGVjaWZpYyBkZXRhaWxzLlxuICAgKiAgIC0gYGVuY3J5cHRlZFNpZ25lck1hY2Fyb29uYCAob3B0aW9uYWwpOiBUaGlzIG1hY2Fyb29uIGlzIHVzZWQgYnkgdGhlIHdhdGNoLW9ubHkgbm9kZSB0byBhc2sgdGhlIHNpZ25lciBub2RlIHRvIHNpZ24gdHJhbnNhY3Rpb25zLlxuICAgKiAgICAgRW5jcnlwdGVkIHdpdGggRUNESCBzZWNyZXQga2V5IGZyb20gcHJpdmF0ZSBrZXkgb2Ygd2FsbGV0J3MgdXNlciBhdXRoIGtleSBhbmQgcHVibGljIGtleSBvZiBsaWdodG5pbmcgc2VydmljZS5cbiAgICogICAtIGBlbmNyeXB0ZWRTaWduZXJBZG1pbk1hY2Fyb29uYCAob3B0aW9uYWwpOiBHZW5lcmF0ZWQgd2hlbiBpbml0aWFsaXppbmcgdGhlIHdhbGxldCBvZiB0aGUgc2lnbmVyIG5vZGUuXG4gICAqICAgICBFbmNyeXB0ZWQgd2l0aCBjbGllbnQncyB3YWxsZXQgcGFzc3BocmFzZS5cbiAgICogICAtIGBzaWduZXJJcGAgKG9wdGlvbmFsKTogVGhlIElQIGFkZHJlc3Mgb2YgdGhlIExpZ2h0bmluZyBzaWduZXIgbm9kZS5cbiAgICogICAtIGBlbmNyeXB0ZWRTaWduZXJUbHNLZXlgIChvcHRpb25hbCk6IFRoZSB3YWxsZXQgcGFzc3BocmFzZSBlbmNyeXB0ZWQgVExTIGtleSBvZiB0aGUgc2lnbmVyLlxuICAgKiAgIC0gYHNpZ25lclRsc0NlcnRgIChvcHRpb25hbCk6IFRoZSBUTFMgY2VydGlmaWNhdGUgb2YgdGhlIHNpZ25lci5cbiAgICogICAtIGB3YXRjaE9ubHlBY2NvdW50c2AgKG9wdGlvbmFsKTogVGhlc2UgYXJlIHRoZSBhY2NvdW50cyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHdhdGNoLW9ubHkgd2FsbGV0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFzc3BocmFzZSAtIHdhbGxldCBwYXNzcGhyYXNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gQSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCB3YWxsZXQgcmVzcG9uc2Ugb3IgdGhyb3dpbmcgYW4gZXJyb3IgaWYgdGhlIHVwZGF0ZSBmYWlscy5cbiAgICovXG4gIHVwZGF0ZVdhbGxldENvaW5TcGVjaWZpYyhwYXJhbXM6IFVwZGF0ZUxpZ2h0bmluZ1dhbGxldFNpZ25lZFJlcXVlc3QsIHBhc3NwaHJhc2U6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj47XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxmQ3VzdG9kaWFsTGlnaHRuaW5nV2FsbGV0IGltcGxlbWVudHMgSUxpZ2h0bmluZ1dhbGxldCB7XG4gIHB1YmxpYyB3YWxsZXQ6IElXYWxsZXQ7XG5cbiAgY29uc3RydWN0b3Iod2FsbGV0OiBJV2FsbGV0KSB7XG4gICAgY29uc3QgY29pbiA9IHdhbGxldC5iYXNlQ29pbjtcbiAgICBpZiAoY29pbi5nZXRGYW1pbHkoKSAhPT0gJ2xuYnRjJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvaW4gdG8gdXBkYXRlIGxpZ2h0bmluZyB3YWxsZXQ6ICR7Y29pbi5nZXRGYW1pbHkoKX1gKTtcbiAgICB9XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gIH1cblxuICBhc3luYyBjcmVhdGVJbnZvaWNlKHBhcmFtczogdW5rbm93bik6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGFzeW5jIHBheUludm9pY2UocGFyYW1zOiB1bmtub3duKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgYXN5bmMgZ2V0TGlnaHRuaW5nS2V5Y2hhaW4oKTogUHJvbWlzZTxMaWdodG5pbmdLZXljaGFpbj4ge1xuICAgIGNvbnN0IGtleUlkcyA9IHRoaXMud2FsbGV0LmtleUlkcygpO1xuICAgIGlmIChrZXlJZHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbnVtYmVyIG9mIGtleSBpbiBsaWdodG5pbmcgd2FsbGV0OiAke2tleUlkcy5sZW5ndGh9YCk7XG4gICAgfVxuICAgIGNvbnN0IGtleWNoYWluID0gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IGtleUlkc1swXSB9KTtcbiAgICByZXR1cm4gZGVjb2RlT3JFbHNlKExpZ2h0bmluZ0tleWNoYWluLm5hbWUsIExpZ2h0bmluZ0tleWNoYWluLCBrZXljaGFpbiwgKF8pID0+IHtcbiAgICAgIC8vIERPTidUIHRocm93IGVycm9ycyBmcm9tIGRlY29kZU9yRWxzZS4gSXQgY291bGQgbGVhayBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdXNlciBrZXlgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldExpZ2h0bmluZ0F1dGhLZXljaGFpbnMoKTogUHJvbWlzZTx7XG4gICAgdXNlckF1dGhLZXk6IExpZ2h0bmluZ0F1dGhLZXljaGFpbjtcbiAgICBub2RlQXV0aEtleTogTGlnaHRuaW5nQXV0aEtleWNoYWluO1xuICB9PiB7XG4gICAgY29uc3QgYXV0aEtleUlkcyA9IHRoaXMud2FsbGV0LmNvaW5TcGVjaWZpYygpPy5rZXlzO1xuICAgIGlmIChhdXRoS2V5SWRzPy5sZW5ndGggIT09IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBudW1iZXIgb2YgYXV0aCBrZXlzIGluIGxpZ2h0bmluZyB3YWxsZXQ6ICR7YXV0aEtleUlkcz8ubGVuZ3RofWApO1xuICAgIH1cbiAgICBjb25zdCBjb2luID0gdGhpcy53YWxsZXQuYmFzZUNvaW47XG4gICAgY29uc3Qga2V5Y2hhaW5zID0gYXdhaXQgUHJvbWlzZS5hbGwoYXV0aEtleUlkcy5tYXAoKGlkKSA9PiBjb2luLmtleWNoYWlucygpLmdldCh7IGlkIH0pKSk7XG4gICAgY29uc3QgYXV0aEtleWNoYWlucyA9IGtleWNoYWlucy5tYXAoKGtleWNoYWluKSA9PiB7XG4gICAgICByZXR1cm4gZGVjb2RlT3JFbHNlKExpZ2h0bmluZ0F1dGhLZXljaGFpbi5uYW1lLCBMaWdodG5pbmdBdXRoS2V5Y2hhaW4sIGtleWNoYWluLCAoXykgPT4ge1xuICAgICAgICAvLyBET04nVCB0aHJvdyBlcnJvcnMgZnJvbSBkZWNvZGVPckVsc2UuIEl0IGNvdWxkIGxlYWsgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGlnaHRuaW5nIGF1dGgga2V5OiAke2tleWNoYWluPy5pZH1gKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IFt1c2VyQXV0aEtleSwgbm9kZUF1dGhLZXldID0gKFsndXNlckF1dGgnLCAnbm9kZUF1dGgnXSBhcyBjb25zdCkubWFwKChwdXJwb3NlKSA9PiB7XG4gICAgICBjb25zdCBrZXljaGFpbiA9IGF1dGhLZXljaGFpbnMuZmluZChcbiAgICAgICAgKGspID0+IHVud3JhcExpZ2h0bmluZ0NvaW5TcGVjaWZpYyhrLmNvaW5TcGVjaWZpYywgY29pbi5nZXRDaGFpbigpKS5wdXJwb3NlID09PSBwdXJwb3NlXG4gICAgICApO1xuICAgICAgaWYgKCFrZXljaGFpbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgJHtwdXJwb3NlfSBrZXlgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBrZXljaGFpbjtcbiAgICB9KTtcblxuICAgIHJldHVybiB7IHVzZXJBdXRoS2V5LCBub2RlQXV0aEtleSB9O1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlV2FsbGV0Q29pblNwZWNpZmljKHBhcmFtczogVXBkYXRlTGlnaHRuaW5nV2FsbGV0U2lnbmVkUmVxdWVzdCwgcGFzc3BocmFzZTogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgZGVjb2RlT3JFbHNlKFVwZGF0ZUxpZ2h0bmluZ1dhbGxldFNpZ25lZFJlcXVlc3QubmFtZSwgVXBkYXRlTGlnaHRuaW5nV2FsbGV0U2lnbmVkUmVxdWVzdCwgcGFyYW1zLCAoZXJyb3JzKSA9PiB7XG4gICAgICAvLyBET04nVCB0aHJvdyBlcnJvcnMgZnJvbSBkZWNvZGVPckVsc2UuIEl0IGNvdWxkIGxlYWsgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhcmFtcyBmb3IgbGlnaHRuaW5nIHNwZWNpZmljIHVwZGF0ZSB3YWxsZXQ6ICR7ZXJyb3JzfWApO1xuICAgIH0pO1xuICAgIGNvbnN0IHsgdXNlckF1dGhLZXkgfSA9IGF3YWl0IHRoaXMuZ2V0TGlnaHRuaW5nQXV0aEtleWNoYWlucygpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUoXG4gICAgICBwYXJhbXMsXG4gICAgICB0aGlzLndhbGxldC5iaXRnby5kZWNyeXB0KHsgcGFzc3dvcmQ6IHBhc3NwaHJhc2UsIGlucHV0OiB1c2VyQXV0aEtleS5lbmNyeXB0ZWRQcnYgfSlcbiAgICApO1xuICAgIGNvbnN0IGNvaW5TcGVjaWZpYyA9IHtcbiAgICAgIFt0aGlzLndhbGxldC5jb2luKCldOiB7XG4gICAgICAgIHNpZ25lZFJlcXVlc3Q6IHBhcmFtcyxcbiAgICAgICAgc2lnbmF0dXJlLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLndhbGxldC5iaXRnby5wdXQodGhpcy53YWxsZXQudXJsKCkpLnNlbmQoeyBjb2luU3BlY2lmaWMgfSkucmVzdWx0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9saWdodG5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0JBLE1BQWEsNEJBQTRCO0lBR3ZDLFlBQVksTUFBZTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFlO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFlO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0Y7QUFkRCxvRUFjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuL2lXYWxsZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMaWdodG5pbmdXYWxsZXQge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGxpZ2h0bmluZyBpbnZvaWNlXG4gICAqIEBwYXJhbSBwYXJhbXMgSW52b2ljZSBwYXJhbWV0ZXJzICh0byBiZSBkZWZpbmVkKVxuICAgKi9cbiAgY3JlYXRlSW52b2ljZShwYXJhbXM6IHVua25vd24pOiBQcm9taXNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBQYXkgYSBsaWdodG5pbmcgaW52b2ljZVxuICAgKiBAcGFyYW0gcGFyYW1zIFBheW1lbnQgcGFyYW1ldGVycyAodG8gYmUgZGVmaW5lZClcbiAgICovXG4gIHBheUludm9pY2UocGFyYW1zOiB1bmtub3duKTogUHJvbWlzZTx1bmtub3duPjtcbn1cblxuZXhwb3J0IGNsYXNzIFNlbGZDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQgaW1wbGVtZW50cyBJTGlnaHRuaW5nV2FsbGV0IHtcbiAgcHVibGljIHdhbGxldDogSVdhbGxldDtcblxuICBjb25zdHJ1Y3Rvcih3YWxsZXQ6IElXYWxsZXQpIHtcbiAgICB0aGlzLndhbGxldCA9IHdhbGxldDtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUludm9pY2UocGFyYW1zOiB1bmtub3duKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgYXN5bmMgcGF5SW52b2ljZShwYXJhbXM6IHVua25vd24pOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -113,23 +113,35 @@ describe('Codecs', function () {
|
|
|
113
113
|
encryptedPrv: 'encryptedPrv',
|
|
114
114
|
},
|
|
115
115
|
]);
|
|
116
|
-
describeCodec(src_1.
|
|
116
|
+
describeCodec(src_1.UpdateLightningWallet, [
|
|
117
117
|
{
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
118
|
+
coinSpecific: {
|
|
119
|
+
lnbtc: {
|
|
120
|
+
encryptedSignerAdminMacaroon: 'encryptedSignerAdminMacaroon',
|
|
121
|
+
signerIP: '127.0.0.1',
|
|
122
|
+
signerTlsCert: 'signerTlsCert',
|
|
123
|
+
encryptedSignerTlsKey: 'encryptedSignerTlsKey',
|
|
124
|
+
watchOnly: {
|
|
125
|
+
master_key_birthday_timestamp: 'master_key_birthday_timestamp',
|
|
126
|
+
master_key_fingerprint: 'master_key_fingerprint',
|
|
127
|
+
accounts: [{ purpose: 1, coin_type: 1, account: 1, xpub: 'xpub' }],
|
|
128
|
+
},
|
|
129
|
+
encryptedSignerMacaroon: 'encryptedSignerMacaroon',
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
coinSpecific: {
|
|
135
|
+
tlnbtc: {
|
|
136
|
+
encryptedSignerAdminMacaroon: 'encryptedSignerAdminMacaroon',
|
|
137
|
+
},
|
|
126
138
|
},
|
|
127
|
-
encryptedSignerMacaroon: 'encryptedSignerMacaroon',
|
|
128
139
|
},
|
|
129
140
|
{
|
|
130
|
-
|
|
141
|
+
coinSpecific: {
|
|
142
|
+
tlnbtc: {},
|
|
143
|
+
},
|
|
131
144
|
},
|
|
132
|
-
{},
|
|
133
145
|
], [null, 'abg', 1]);
|
|
134
146
|
});
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2JpdGdvL2xpZ2h0bmluZy9jb2RlY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxvREFBNEI7QUFDNUIsZ0RBQWtDO0FBQ2xDLDZDQUFzQztBQUN0Qyx5Q0FBNkc7QUFFN0csU0FBUyxhQUFhLENBQUMsQ0FBYyxFQUFFLEtBQWdCLEVBQUUsT0FBa0I7SUFDekUsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFO1FBQzFCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRTtZQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xCLGdCQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsd0JBQXdCLEVBQUU7WUFDM0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNwQixnQkFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGlCQUFpQixFQUFFO1lBQ3BCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDbEIsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFJLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDeEQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsUUFBUSxDQUFDLFFBQVEsRUFBRTtJQUNqQixhQUFhLENBQ1gsZUFBUyxFQUNULENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUseUNBQXlDLENBQUMsRUFDaEcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQzlELENBQUM7SUFFRixhQUFhLENBQ1gsdUJBQWlCLEVBQ2pCO1FBQ0U7WUFDRSxFQUFFLEVBQUUsSUFBSTtZQUNSLEdBQUcsRUFBRSxNQUFNO1lBQ1gsWUFBWSxFQUFFLGNBQWM7WUFDNUIsTUFBTSxFQUFFLE1BQU07U0FDZjtLQUNGLEVBQ0Q7UUFDRSxJQUFJO1FBQ0osS0FBSztRQUNMLENBQUM7UUFDRDtZQUNFLEVBQUUsRUFBRSxJQUFJO1lBQ1IsR0FBRyxFQUFFLE1BQU07WUFDWCxZQUFZLEVBQUUsY0FBYztZQUM1QixNQUFNLEVBQUUsUUFBUTtTQUNqQjtLQUNGLENBQ0YsQ0FBQztJQUVGLGFBQWEsQ0FDWCwyQkFBcUIsRUFDckI7UUFDRTtZQUNFLEVBQUUsRUFBRSxJQUFJO1lBQ1IsR0FBRyxFQUFFLE1BQU07WUFDWCxZQUFZLEVBQUUsY0FBYztZQUM1QixNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRTtnQkFDWixLQUFLLEVBQUU7b0JBQ0wsT0FBTyxFQUFFLFVBQVU7aUJBQ3BCO2FBQ0Y7U0FDRjtLQUNGLEVBQ0Q7UUFDRSxJQUFJO1FBQ0osS0FBSztRQUNMLENBQUM7UUFDRDtZQUNFLEVBQUUsRUFBRSxJQUFJO1lBQ1IsR0FBRyxFQUFFLE1BQU07WUFDWCxZQUFZLEVBQUUsY0FBYztZQUM1QixNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRTtnQkFDWixLQUFLLEVBQUU7b0JBQ0wsT0FBTyxFQUFFLE9BQU87aUJBQ2pCO2FBQ0Y7U0FDRjtRQUNEO1lBQ0UsRUFBRSxFQUFFLElBQUk7WUFDUixHQUFHLEVBQUUsTUFBTTtZQUNYLFlBQVksRUFBRSxjQUFjO1NBQzdCO0tBQ0YsQ0FDRixDQUFDO0lBRUYsYUFBYSxDQUNYLDJCQUFxQixFQUNyQjtRQUNFO1lBQ0UsWUFBWSxFQUFFO2dCQUNaLEtBQUssRUFBRTtvQkFDTCw0QkFBNEIsRUFBRSw4QkFBOEI7b0JBQzVELFFBQVEsRUFBRSxXQUFXO29CQUNyQixhQUFhLEVBQUUsZUFBZTtvQkFDOUIscUJBQXFCLEVBQUUsdUJBQXVCO29CQUM5QyxTQUFTLEVBQUU7d0JBQ1QsNkJBQTZCLEVBQUUsK0JBQStCO3dCQUM5RCxzQkFBc0IsRUFBRSx3QkFBd0I7d0JBQ2hELFFBQVEsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3FCQUNuRTtvQkFDRCx1QkFBdUIsRUFBRSx5QkFBeUI7aUJBQ25EO2FBQ0Y7U0FDRjtRQUNEO1lBQ0UsWUFBWSxFQUFFO2dCQUNaLE1BQU0sRUFBRTtvQkFDTiw0QkFBNEIsRUFBRSw4QkFBOEI7aUJBQzdEO2FBQ0Y7U0FDRjtRQUNEO1lBQ0UsWUFBWSxFQUFFO2dCQUNaLE1BQU0sRUFBRSxFQUFFO2FBQ1g7U0FDRjtLQUNGLEVBQ0QsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUNqQixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIEUgZnJvbSAnZnAtdHMvRWl0aGVyJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdmcC10cy9mdW5jdGlvbic7XG5pbXBvcnQgeyBJUEFkZHJlc3MsIExpZ2h0bmluZ0F1dGhLZXljaGFpbiwgTGlnaHRuaW5nS2V5Y2hhaW4sIFVwZGF0ZUxpZ2h0bmluZ1dhbGxldCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5cbmZ1bmN0aW9uIGRlc2NyaWJlQ29kZWMoYzogdC5UeXBlPGFueT4sIHZhbGlkOiB1bmtub3duW10sIGludmFsaWQ6IHVua25vd25bXSkge1xuICBkZXNjcmliZSgnQ29kZWMgJyArIGMubmFtZSwgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdwYXJzZXMgdmFsaWQgaW5wdXRzJywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFsaWQuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoRS5pc1JpZ2h0KGMuZGVjb2RlKHYpKSwgdHJ1ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWplY3RzIGludmFsaWQgaW5wdXRzJywgZnVuY3Rpb24gKCkge1xuICAgICAgaW52YWxpZC5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChFLmlzUmlnaHQoYy5kZWNvZGUodikpLCBmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdlbmNvZGUg4oiYIGRlY29kZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhbGlkLmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgY29uc3Qgcm91bmRUcmlwcGVkID0gcGlwZSh2LCBjLmRlY29kZSwgRS5tYXAoYy5lbmNvZGUpKTtcbiAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyb3VuZFRyaXBwZWQsIEUucmlnaHQodikpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5kZXNjcmliZSgnQ29kZWNzJywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZUNvZGVjKFxuICAgIElQQWRkcmVzcyxcbiAgICBbJzEyNy4wLjAuMScsICcwOjA6MDowOjA6MDowOjEnLCAnOjoxJywgJzE3Mi4yMC4wLjInLCAnMjAwMTowMDAwOjEzMEY6MDAwMDowMDAwOjA5QzA6ODc2QToxMzBCJ10sXG4gICAgW251bGwsIHt9LCAnYWJnJywgJzEyNy4wLjAuMjU3JywgJzo6ODk5OTk5OTk5OTknLCAnJywgJ2EnLCAxXVxuICApO1xuXG4gIGRlc2NyaWJlQ29kZWMoXG4gICAgTGlnaHRuaW5nS2V5Y2hhaW4sXG4gICAgW1xuICAgICAge1xuICAgICAgICBpZDogJ2lkJyxcbiAgICAgICAgcHViOiAneHB1YicsXG4gICAgICAgIGVuY3J5cHRlZFBydjogJ2VuY3J5cHRlZFBydicsXG4gICAgICAgIHNvdXJjZTogJ3VzZXInLFxuICAgICAgfSxcbiAgICBdLFxuICAgIFtcbiAgICAgIG51bGwsXG4gICAgICAnYWJnJyxcbiAgICAgIDEsXG4gICAgICB7XG4gICAgICAgIGlkOiAnaWQnLFxuICAgICAgICBwdWI6ICd4cHViJyxcbiAgICAgICAgZW5jcnlwdGVkUHJ2OiAnZW5jcnlwdGVkUHJ2JyxcbiAgICAgICAgc291cmNlOiAnYmFja3VwJyxcbiAgICAgIH0sXG4gICAgXVxuICApO1xuXG4gIGRlc2NyaWJlQ29kZWMoXG4gICAgTGlnaHRuaW5nQXV0aEtleWNoYWluLFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdpZCcsXG4gICAgICAgIHB1YjogJ3hwdWInLFxuICAgICAgICBlbmNyeXB0ZWRQcnY6ICdlbmNyeXB0ZWRQcnYnLFxuICAgICAgICBzb3VyY2U6ICd1c2VyJyxcbiAgICAgICAgY29pblNwZWNpZmljOiB7XG4gICAgICAgICAgbG5idGM6IHtcbiAgICAgICAgICAgIHB1cnBvc2U6ICd1c2VyQXV0aCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbXG4gICAgICBudWxsLFxuICAgICAgJ2FiZycsXG4gICAgICAxLFxuICAgICAge1xuICAgICAgICBpZDogJ2lkJyxcbiAgICAgICAgcHViOiAneHB1YicsXG4gICAgICAgIGVuY3J5cHRlZFBydjogJ2VuY3J5cHRlZFBydicsXG4gICAgICAgIHNvdXJjZTogJ3VzZXInLFxuICAgICAgICBjb2luU3BlY2lmaWM6IHtcbiAgICAgICAgICBsbmJ0Yzoge1xuICAgICAgICAgICAgcHVycG9zZTogJ2R1bW15JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdpZCcsXG4gICAgICAgIHB1YjogJ3hwdWInLFxuICAgICAgICBlbmNyeXB0ZWRQcnY6ICdlbmNyeXB0ZWRQcnYnLFxuICAgICAgfSxcbiAgICBdXG4gICk7XG5cbiAgZGVzY3JpYmVDb2RlYyhcbiAgICBVcGRhdGVMaWdodG5pbmdXYWxsZXQsXG4gICAgW1xuICAgICAge1xuICAgICAgICBjb2luU3BlY2lmaWM6IHtcbiAgICAgICAgICBsbmJ0Yzoge1xuICAgICAgICAgICAgZW5jcnlwdGVkU2lnbmVyQWRtaW5NYWNhcm9vbjogJ2VuY3J5cHRlZFNpZ25lckFkbWluTWFjYXJvb24nLFxuICAgICAgICAgICAgc2lnbmVySVA6ICcxMjcuMC4wLjEnLFxuICAgICAgICAgICAgc2lnbmVyVGxzQ2VydDogJ3NpZ25lclRsc0NlcnQnLFxuICAgICAgICAgICAgZW5jcnlwdGVkU2lnbmVyVGxzS2V5OiAnZW5jcnlwdGVkU2lnbmVyVGxzS2V5JyxcbiAgICAgICAgICAgIHdhdGNoT25seToge1xuICAgICAgICAgICAgICBtYXN0ZXJfa2V5X2JpcnRoZGF5X3RpbWVzdGFtcDogJ21hc3Rlcl9rZXlfYmlydGhkYXlfdGltZXN0YW1wJyxcbiAgICAgICAgICAgICAgbWFzdGVyX2tleV9maW5nZXJwcmludDogJ21hc3Rlcl9rZXlfZmluZ2VycHJpbnQnLFxuICAgICAgICAgICAgICBhY2NvdW50czogW3sgcHVycG9zZTogMSwgY29pbl90eXBlOiAxLCBhY2NvdW50OiAxLCB4cHViOiAneHB1YicgfV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW5jcnlwdGVkU2lnbmVyTWFjYXJvb246ICdlbmNyeXB0ZWRTaWduZXJNYWNhcm9vbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNvaW5TcGVjaWZpYzoge1xuICAgICAgICAgIHRsbmJ0Yzoge1xuICAgICAgICAgICAgZW5jcnlwdGVkU2lnbmVyQWRtaW5NYWNhcm9vbjogJ2VuY3J5cHRlZFNpZ25lckFkbWluTWFjYXJvb24nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2luU3BlY2lmaWM6IHtcbiAgICAgICAgICB0bG5idGM6IHt9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIFtudWxsLCAnYWJnJywgMV1cbiAgKTtcbn0pO1xuIl19
|