@bitgo-beta/sdk-core 8.2.1-beta.475 → 8.2.1-beta.477
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 +11 -0
- package/dist/src/bitgo/lightning/lightningUtils.d.ts +9 -2
- package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +1 -1
- package/dist/src/bitgo/lightning/lightningUtils.js +24 -7
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +9 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +22 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts +43 -0
- package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallet.js +1 -1
- package/dist/src/bitgo/wallet/iWallets.d.ts +19 -1
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +1 -1
- package/dist/src/bitgo/wallet/wallet.d.ts +31 -1
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +109 -2
- package/dist/src/bitgo/wallet/wallets.d.ts +25 -1
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +75 -1
- package/dist/test/unit/bitgo/lightning/lightningUtils.js +38 -23
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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
|
+
# [28.4.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-core@28.3.0...@bitgo/sdk-core@28.4.0) (2024-09-10)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **sdk-core:** generate wallet cleanup ([9cb02bd](https://github.com/BitGo/BitGoJS/commit/9cb02bd60f775da5332fa0fd142db87d2415a2a4))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **express:** add apis to init lnd signer at express ([5c84196](https://github.com/BitGo/BitGoJS/commit/5c84196856194390bfda98cec64058915903da82))
|
|
15
|
+
- **sdk-core:** mark buildSignAndSend and expose buildAndSign ([2ef604d](https://github.com/BitGo/BitGoJS/commit/2ef604df7b337455bd7530575cf089a0eb510301))
|
|
16
|
+
|
|
6
17
|
# [28.3.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-core@28.2.0...@bitgo/sdk-core@28.3.0) (2024-09-03)
|
|
7
18
|
|
|
8
19
|
### Features
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import * as statics from '@bitgo-beta/statics';
|
|
1
3
|
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
4
|
import { WatchOnly } from './codecs';
|
|
3
5
|
export declare const signerMacaroonPermissions: {
|
|
@@ -27,9 +29,9 @@ export declare function isValidLightningNetworkName(networkName: unknown): netwo
|
|
|
27
29
|
*/
|
|
28
30
|
export declare function isValidLightningNetwork(network: unknown): network is utxolib.Network;
|
|
29
31
|
/**
|
|
30
|
-
* Returns the
|
|
32
|
+
* Returns the statics network data for a lightning coin.
|
|
31
33
|
*/
|
|
32
|
-
export declare function
|
|
34
|
+
export declare function getStaticsLightningNetwork(coinName: string): statics.LightningNetwork;
|
|
33
35
|
/**
|
|
34
36
|
* Returns the utxolib network for a lightning coin.
|
|
35
37
|
*/
|
|
@@ -50,4 +52,9 @@ export declare function addIPCaveatToMacaroon(macaroonBase64: string, ip: string
|
|
|
50
52
|
* Creates a watch-only wallet init data from the provided signer root key and network.
|
|
51
53
|
*/
|
|
52
54
|
export declare function createWatchOnly(signerRootKey: string, network: utxolib.Network): WatchOnly;
|
|
55
|
+
/**
|
|
56
|
+
* Derives the shared Elliptic Curve Diffie-Hellman (ECDH) secret between the user's auth extended private key
|
|
57
|
+
* and the Lightning service's public key for secure communication.
|
|
58
|
+
*/
|
|
59
|
+
export declare function deriveLightningServiceSharedSecret(coinName: 'lnbtc' | 'tlnbtc', userAuthXprv: string): Buffer;
|
|
53
60
|
//# sourceMappingURL=lightningUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightningUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/lightning/lightningUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lightningUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/lightning/lightningUtils.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAoB,MAAM,UAAU,CAAC;AAIvD,eAAO,MAAM,yBAAyB;;;GAiBrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,iCAAkC,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,OAAO,GAAG,QAAQ,CAErF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAEtF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAErE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,IAAI,oBAAoB,CAErG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,CAEpF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CASrF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAMnE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,GAAG,EAAE;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC,CAW7G;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAIhF;AAwED;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAS1F;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAI7G"}
|
|
@@ -23,11 +23,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.createWatchOnly = exports.addIPCaveatToMacaroon = exports.unwrapLightningCoinSpecific = exports.getUtxolibNetwork = exports.
|
|
26
|
+
exports.deriveLightningServiceSharedSecret = exports.createWatchOnly = exports.addIPCaveatToMacaroon = exports.unwrapLightningCoinSpecific = exports.getUtxolibNetwork = exports.getStaticsLightningNetwork = exports.isValidLightningNetwork = exports.isValidLightningNetworkName = exports.getLightningCoinName = exports.getLightningNetwork = exports.isLightningCoinName = exports.lightningNetworkName = exports.signerMacaroonPermissions = void 0;
|
|
27
27
|
const statics = __importStar(require("@bitgo-beta/statics"));
|
|
28
28
|
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
29
29
|
const macaroon_1 = require("macaroon");
|
|
30
30
|
const bs58check = __importStar(require("bs58check"));
|
|
31
|
+
const ecdh_1 = require("../ecdh");
|
|
31
32
|
// https://github.com/lightningnetwork/lnd/blob/master/docs/remote-signing.md#the-signer-node
|
|
32
33
|
exports.signerMacaroonPermissions = [
|
|
33
34
|
{
|
|
@@ -84,18 +85,24 @@ function isValidLightningNetwork(network) {
|
|
|
84
85
|
}
|
|
85
86
|
exports.isValidLightningNetwork = isValidLightningNetwork;
|
|
86
87
|
/**
|
|
87
|
-
* Returns the
|
|
88
|
+
* Returns the statics network data for a lightning coin.
|
|
88
89
|
*/
|
|
89
|
-
function
|
|
90
|
+
function getStaticsLightningNetwork(coinName) {
|
|
91
|
+
if (!isLightningCoinName(coinName)) {
|
|
92
|
+
throw new Error(`${coinName} is not a lightning coin`);
|
|
93
|
+
}
|
|
90
94
|
const coin = statics.coins.get(coinName);
|
|
91
|
-
|
|
95
|
+
if (!(coin instanceof statics.LightningCoin)) {
|
|
96
|
+
throw new Error('coin is not a lightning coin');
|
|
97
|
+
}
|
|
98
|
+
return coin.network;
|
|
92
99
|
}
|
|
93
|
-
exports.
|
|
100
|
+
exports.getStaticsLightningNetwork = getStaticsLightningNetwork;
|
|
94
101
|
/**
|
|
95
102
|
* Returns the utxolib network for a lightning coin.
|
|
96
103
|
*/
|
|
97
104
|
function getUtxolibNetwork(coinName) {
|
|
98
|
-
const networkName =
|
|
105
|
+
const networkName = getStaticsLightningNetwork(coinName).utxolibName;
|
|
99
106
|
if (!isValidLightningNetworkName(networkName)) {
|
|
100
107
|
throw new Error('invalid lightning network');
|
|
101
108
|
}
|
|
@@ -194,4 +201,14 @@ function createWatchOnly(signerRootKey, network) {
|
|
|
194
201
|
return { master_key_birthday_timestamp, master_key_fingerprint, accounts };
|
|
195
202
|
}
|
|
196
203
|
exports.createWatchOnly = createWatchOnly;
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGlnaHRuaW5nL2xpZ2h0bmluZ1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBQy9DLDhEQUFnRDtBQUNoRCx1Q0FBeUQ7QUFDekQscURBQXVDO0FBR3ZDLDZGQUE2RjtBQUNoRixRQUFBLHlCQUF5QixHQUFHO0lBQ3ZDO1FBQ0UsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLE9BQU87S0FDaEI7SUFDRDtRQUNFLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE1BQU0sRUFBRSxVQUFVO0tBQ25CO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUUsTUFBTTtLQUNmO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUUsT0FBTztLQUNoQjtDQUNGLENBQUM7QUFFVyxRQUFBLG9CQUFvQixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBVSxDQUFDO0FBR3BFOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsUUFBaUI7SUFDbkQsT0FBTyxRQUFRLEtBQUssT0FBTyxJQUFJLFFBQVEsS0FBSyxRQUFRLENBQUM7QUFDdkQsQ0FBQztBQUZELGtEQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxXQUFpQztJQUNuRSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUZELGtEQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxPQUF3QjtJQUMzRCxPQUFPLE9BQU8sS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDbkUsQ0FBQztBQUZELG9EQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwyQkFBMkIsQ0FBQyxXQUFvQjtJQUM5RCxPQUFPLDRCQUFvQixDQUFDLFFBQVEsQ0FBQyxXQUFtQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUZELGtFQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxPQUFnQjtJQUN0RCxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksMkJBQTJCLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3pHLENBQUM7QUFGRCwwREFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsUUFBZ0I7SUFDcEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsT0FBTyxJQUFJLFlBQVksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUN0RixDQUFDO0FBSEQsc0RBR0M7QUFFRDs7R0FFRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFFBQWdCO0lBQ2hELE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7S0FDOUM7SUFDRCxPQUFPLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFORCw4Q0FNQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUksR0FBaUMsRUFBRSxnQkFBd0I7SUFDeEcsSUFBSSxnQkFBZ0IsS0FBSyxPQUFPLElBQUksZ0JBQWdCLEtBQUssUUFBUSxFQUFFO1FBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLGdCQUFnQixxQkFBcUIsQ0FBQyxDQUFDO0tBQ3BGO0lBQ0QsSUFBSSxnQkFBZ0IsS0FBSyxPQUFPLElBQUksT0FBTyxJQUFJLEdBQUcsRUFBRTtRQUNsRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUM7S0FDbEI7SUFDRCxJQUFJLGdCQUFnQixLQUFLLFFBQVEsSUFBSSxRQUFRLElBQUksR0FBRyxFQUFFO1FBQ3BELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQztLQUNuQjtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBWEQsa0VBV0M7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLGNBQXNCLEVBQUUsRUFBVTtJQUN0RSxNQUFNLFFBQVEsR0FBRyxJQUFBLHlCQUFjLEVBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxPQUFPLElBQUEsd0JBQWEsRUFBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBSkQsc0RBSUM7QUFFRCxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUNqQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFDekIsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBUWhDOztHQUVHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsT0FBMkIsRUFBRSxTQUFrQjtJQUN0RixJQUFJLE9BQU8sS0FBSyxZQUFZLElBQUksT0FBTyxLQUFLLGtCQUFrQixFQUFFO1FBQzlELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBDLElBQUksWUFBb0IsQ0FBQztJQUV6QixRQUFRLE9BQU8sRUFBRTtRQUNmLEtBQUsscUJBQXFCO1lBQ3hCLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtZQUN0SSxNQUFNO1FBQ1IsS0FBSyxhQUFhO1lBQ2hCLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtZQUNqSSxNQUFNO1FBQ1I7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FDMUM7SUFFRCxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLHVCQUF1QixDQUFDLFlBQW9DLEVBQUUsU0FBa0I7SUFDdkYsK0ZBQStGO0lBQy9GLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztLQUN0RDtJQUVELE1BQU0sUUFBUSxHQUFHLENBQUMscUJBQXFCLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBVSxDQUFDO0lBRW5HLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLE9BQU8sS0FBSyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxLQUFLLGtCQUFrQixJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUMzRCxNQUFNLElBQUksR0FBRyxLQUFLLE9BQU8sS0FBSyxRQUFRLEtBQUssT0FBTyxHQUFHLENBQUM7WUFDdEQsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsRCxtRUFBbUU7WUFDbkUsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVDLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFNUUsT0FBTztnQkFDTCxPQUFPO2dCQUNQLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixPQUFPO2dCQUNQLElBQUk7YUFDTCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxhQUFxQixFQUFFLE9BQXdCO0lBQzdFLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RSxNQUFNLHVCQUF1QixHQUFHLEdBQUcsRUFBRTtRQUNuQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztJQUNGLE1BQU0sNkJBQTZCLEdBQUcsdUJBQXVCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzRSxNQUFNLHNCQUFzQixHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sUUFBUSxHQUFHLHVCQUF1QixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbkYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQzdFLENBQUM7QUFURCwwQ0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHN0YXRpY3MgZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGltcG9ydE1hY2Fyb29uLCBieXRlc1RvQmFzZTY0IH0gZnJvbSAnbWFjYXJvb24nO1xuaW1wb3J0ICogYXMgYnM1OGNoZWNrIGZyb20gJ2JzNThjaGVjayc7XG5pbXBvcnQgeyBXYXRjaE9ubHksIFdhdGNoT25seUFjY291bnQgfSBmcm9tICcuL2NvZGVjcyc7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9saWdodG5pbmduZXR3b3JrL2xuZC9ibG9iL21hc3Rlci9kb2NzL3JlbW90ZS1zaWduaW5nLm1kI3RoZS1zaWduZXItbm9kZVxuZXhwb3J0IGNvbnN0IHNpZ25lck1hY2Fyb29uUGVybWlzc2lvbnMgPSBbXG4gIHtcbiAgICBlbnRpdHk6ICdtZXNzYWdlJyxcbiAgICBhY3Rpb246ICd3cml0ZScsXG4gIH0sXG4gIHtcbiAgICBlbnRpdHk6ICdzaWduZXInLFxuICAgIGFjdGlvbjogJ2dlbmVyYXRlJyxcbiAgfSxcbiAge1xuICAgIGVudGl0eTogJ2FkZHJlc3MnLFxuICAgIGFjdGlvbjogJ3JlYWQnLFxuICB9LFxuICB7XG4gICAgZW50aXR5OiAnb25jaGFpbicsXG4gICAgYWN0aW9uOiAnd3JpdGUnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IGxpZ2h0bmluZ05ldHdvcmtOYW1lID0gWydiaXRjb2luJywgJ3Rlc3RuZXQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIExpZ2h0bmluZ05ldHdvcmtOYW1lID0gKHR5cGVvZiBsaWdodG5pbmdOZXR3b3JrTmFtZSlbbnVtYmVyXTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGNvaW4gbmFtZSBpcyBhIGxpZ2h0bmluZyBjb2luIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0xpZ2h0bmluZ0NvaW5OYW1lKGNvaW5OYW1lOiB1bmtub3duKTogY29pbk5hbWUgaXMgJ2xuYnRjJyB8ICd0bG5idGMnIHtcbiAgcmV0dXJuIGNvaW5OYW1lID09PSAnbG5idGMnIHx8IGNvaW5OYW1lID09PSAndGxuYnRjJztcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHV0eG9saWIgbmV0d29yayBmb3IgYSBsaWdodG5pbmcgbmV0d29yay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExpZ2h0bmluZ05ldHdvcmsobmV0d29ya05hbWU6IExpZ2h0bmluZ05ldHdvcmtOYW1lKTogdXR4b2xpYi5OZXR3b3JrIHtcbiAgcmV0dXJuIHV0eG9saWIubmV0d29ya3NbbmV0d29ya05hbWVdO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbGlnaHRuaW5nIGNvaW4gbmFtZSBmb3IgYSB1dHhvbGliIG5ldHdvcmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaWdodG5pbmdDb2luTmFtZShuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBzdHJpbmcge1xuICByZXR1cm4gbmV0d29yayA9PT0gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luID8gJ2xuYnRjJyA6ICd0bG5idGMnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgbmV0d29yayBuYW1lIGlzIGEgdmFsaWQgbGlnaHRuaW5nIG5ldHdvcmsgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZShuZXR3b3JrTmFtZTogdW5rbm93bik6IG5ldHdvcmtOYW1lIGlzIExpZ2h0bmluZ05ldHdvcmtOYW1lIHtcbiAgcmV0dXJuIGxpZ2h0bmluZ05ldHdvcmtOYW1lLmluY2x1ZGVzKG5ldHdvcmtOYW1lIGFzIExpZ2h0bmluZ05ldHdvcmtOYW1lKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIG5ldHdvcmsgaXMgYSB2YWxpZCBsaWdodG5pbmcgbmV0d29yay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrKG5ldHdvcms6IHVua25vd24pOiBuZXR3b3JrIGlzIHV0eG9saWIuTmV0d29yayB7XG4gIHJldHVybiB1dHhvbGliLmlzVmFsaWROZXR3b3JrKG5ldHdvcmspICYmIGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZSh1dHhvbGliLmdldE5ldHdvcmtOYW1lKG5ldHdvcmspKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB1dHhvbGliIG5ldHdvcmsgbmFtZSBmb3IgYSBsaWdodG5pbmcgY29pbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFV0eG9saWJOZXR3b3JrTmFtZShjb2luTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgY29pbiA9IHN0YXRpY3MuY29pbnMuZ2V0KGNvaW5OYW1lKTtcbiAgcmV0dXJuIGNvaW4gaW5zdGFuY2VvZiBzdGF0aWNzLkxpZ2h0bmluZ0NvaW4gPyBjb2luLm5ldHdvcmsudXR4b2xpYk5hbWUgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgdXR4b2xpYiBuZXR3b3JrIGZvciBhIGxpZ2h0bmluZyBjb2luLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXR4b2xpYk5ldHdvcmsoY29pbk5hbWU6IHN0cmluZyk6IHV0eG9saWIuTmV0d29yayB7XG4gIGNvbnN0IG5ldHdvcmtOYW1lID0gZ2V0VXR4b2xpYk5ldHdvcmtOYW1lKGNvaW5OYW1lKTtcbiAgaWYgKCFpc1ZhbGlkTGlnaHRuaW5nTmV0d29ya05hbWUobmV0d29ya05hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGxpZ2h0bmluZyBuZXR3b3JrJyk7XG4gIH1cbiAgcmV0dXJuIGdldExpZ2h0bmluZ05ldHdvcmsobmV0d29ya05hbWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgY29pbiBzcGVjaWZpYyBkYXRhIGZvciBhIGxpZ2h0bmluZyBjb2luLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW53cmFwTGlnaHRuaW5nQ29pblNwZWNpZmljPFY+KG9iajogeyBsbmJ0YzogViB9IHwgeyB0bG5idGM6IFYgfSwgY29pblNwZWNpZmljUGF0aDogc3RyaW5nKTogViB7XG4gIGlmIChjb2luU3BlY2lmaWNQYXRoICE9PSAnbG5idGMnICYmIGNvaW5TcGVjaWZpY1BhdGggIT09ICd0bG5idGMnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGNvaW5TcGVjaWZpY1BhdGggJHtjb2luU3BlY2lmaWNQYXRofSBmb3IgbGlnaHRuaW5nIGNvaW5gKTtcbiAgfVxuICBpZiAoY29pblNwZWNpZmljUGF0aCA9PT0gJ2xuYnRjJyAmJiAnbG5idGMnIGluIG9iaikge1xuICAgIHJldHVybiBvYmoubG5idGM7XG4gIH1cbiAgaWYgKGNvaW5TcGVjaWZpY1BhdGggPT09ICd0bG5idGMnICYmICd0bG5idGMnIGluIG9iaikge1xuICAgIHJldHVybiBvYmoudGxuYnRjO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBsaWdodG5pbmcgY29pbiBzcGVjaWZpYycpO1xufVxuXG4vKipcbiAqIEFkZHMgYW4gSVAgY2F2ZWF0IHRvIGEgbWFjYXJvb24gYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIG1hY2Fyb29uIGFzIGEgQmFzZTY0IHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZElQQ2F2ZWF0VG9NYWNhcm9vbihtYWNhcm9vbkJhc2U2NDogc3RyaW5nLCBpcDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWFjYXJvb24gPSBpbXBvcnRNYWNhcm9vbihtYWNhcm9vbkJhc2U2NCk7XG4gIG1hY2Fyb29uLmFkZEZpcnN0UGFydHlDYXZlYXQoYGlwYWRkciAke2lwfWApO1xuICByZXR1cm4gYnl0ZXNUb0Jhc2U2NChtYWNhcm9vbi5leHBvcnRCaW5hcnkoKSk7XG59XG5cbmNvbnN0IFBVUlBPU0VfV1JBUFBFRF9QMldLSCA9IDQ5O1xuY29uc3QgUFVSUE9TRV9QMldLSCA9IDg0O1xuY29uc3QgUFVSUE9TRV9QMlRSID0gODY7XG5jb25zdCBQVVJQT1NFX0FMTF9PVEhFUlMgPSAxMDE3O1xuXG50eXBlIEV4dGVuZGVkS2V5UHVycG9zZSA9XG4gIHwgdHlwZW9mIFBVUlBPU0VfV1JBUFBFRF9QMldLSFxuICB8IHR5cGVvZiBQVVJQT1NFX1AyV0tIXG4gIHwgdHlwZW9mIFBVUlBPU0VfUDJUUlxuICB8IHR5cGVvZiBQVVJQT1NFX0FMTF9PVEhFUlM7XG5cbi8qKlxuICogQ29udmVydHMgYW4gZXh0ZW5kZWQgcHVibGljIGtleSAoeHB1YikgdG8gdGhlIGFwcHJvcHJpYXRlIHByZWZpeCAoeXB1YiwgdnB1YiwgZXRjLikgYmFzZWQgb24gaXRzIHB1cnBvc2UgYW5kIG5ldHdvcmsuXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRYcHViUHJlZml4KHhwdWI6IHN0cmluZywgcHVycG9zZTogRXh0ZW5kZWRLZXlQdXJwb3NlLCBpc01haW5uZXQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBpZiAocHVycG9zZSA9PT0gUFVSUE9TRV9QMlRSIHx8IHB1cnBvc2UgPT09IFBVUlBPU0VfQUxMX09USEVSUykge1xuICAgIHJldHVybiB4cHViO1xuICB9XG4gIGNvbnN0IGRhdGEgPSBiczU4Y2hlY2suZGVjb2RlKHhwdWIpO1xuXG4gIGxldCB2ZXJzaW9uQnl0ZXM6IEJ1ZmZlcjtcblxuICBzd2l0Y2ggKHB1cnBvc2UpIHtcbiAgICBjYXNlIFBVUlBPU0VfV1JBUFBFRF9QMldLSDpcbiAgICAgIHZlcnNpb25CeXRlcyA9IGlzTWFpbm5ldCA/IEJ1ZmZlci5mcm9tKFsweDA0LCAweDlkLCAweDdjLCAweGIyXSkgOiBCdWZmZXIuZnJvbShbMHgwNCwgMHg0YSwgMHg1MiwgMHg2Ml0pOyAvLyB5cHViL3VwdWIgZm9yIHAyc2gtcDJ3cGtoXG4gICAgICBicmVhaztcbiAgICBjYXNlIFBVUlBPU0VfUDJXS0g6XG4gICAgICB2ZXJzaW9uQnl0ZXMgPSBpc01haW5uZXQgPyBCdWZmZXIuZnJvbShbMHgwNCwgMHhiMiwgMHg0NywgMHg0Nl0pIDogQnVmZmVyLmZyb20oWzB4MDQsIDB4NWYsIDB4MWMsIDB4ZjZdKTsgLy8genB1Yi92cHViIGZvciBwMndwa2hcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHB1cnBvc2UnKTtcbiAgfVxuXG4gIHZlcnNpb25CeXRlcy5jb3B5KGRhdGEsIDAsIDAsIDQpO1xuICByZXR1cm4gYnM1OGNoZWNrLmVuY29kZShkYXRhKTtcbn1cblxuLyoqXG4gKiBEZXJpdmVzIHdhdGNoLW9ubHkgYWNjb3VudHMgZnJvbSB0aGUgbWFzdGVyIEhEIG5vZGUgZm9yIHRoZSBnaXZlbiBwdXJwb3NlcyBhbmQgbmV0d29yay5cbiAqL1xuZnVuY3Rpb24gZGVyaXZlV2F0Y2hPbmx5QWNjb3VudHMobWFzdGVySEROb2RlOiB1dHhvbGliLkJJUDMySW50ZXJmYWNlLCBpc01haW5uZXQ6IGJvb2xlYW4pOiBXYXRjaE9ubHlBY2NvdW50W10ge1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbGlnaHRuaW5nbmV0d29yay9sbmQvYmxvYi9tYXN0ZXIvZG9jcy9yZW1vdGUtc2lnbmluZy5tZCNyZXF1aXJlZC1hY2NvdW50c1xuICBpZiAobWFzdGVySEROb2RlLmlzTmV1dGVyZWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignbWFzdGVySEROb2RlIG11c3Qgbm90IGJlIG5ldXRlcmVkJyk7XG4gIH1cblxuICBjb25zdCBwdXJwb3NlcyA9IFtQVVJQT1NFX1dSQVBQRURfUDJXS0gsIFBVUlBPU0VfUDJXS0gsIFBVUlBPU0VfUDJUUiwgUFVSUE9TRV9BTExfT1RIRVJTXSBhcyBjb25zdDtcblxuICByZXR1cm4gcHVycG9zZXMuZmxhdE1hcCgocHVycG9zZSkgPT4ge1xuICAgIGNvbnN0IG1heEFjY291bnQgPSBwdXJwb3NlID09PSBQVVJQT1NFX0FMTF9PVEhFUlMgPyAyNTUgOiAwO1xuICAgIGNvbnN0IGNvaW5UeXBlID0gcHVycG9zZSAhPT0gUFVSUE9TRV9BTExfT1RIRVJTIHx8IGlzTWFpbm5ldCA/IDAgOiAxO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IG1heEFjY291bnQgKyAxIH0sIChfLCBhY2NvdW50KSA9PiB7XG4gICAgICBjb25zdCBwYXRoID0gYG0vJHtwdXJwb3NlfScvJHtjb2luVHlwZX0nLyR7YWNjb3VudH0nYDtcbiAgICAgIGNvbnN0IGRlcml2ZWROb2RlID0gbWFzdGVySEROb2RlLmRlcml2ZVBhdGgocGF0aCk7XG5cbiAgICAgIC8vIEVuc3VyZSB0aGUgbm9kZSBpcyBuZXV0ZXJlZCAoaS5lLiwgY29udmVydGVkIHRvIHB1YmxpYyBrZXkgb25seSlcbiAgICAgIGNvbnN0IG5ldXRlcmVkTm9kZSA9IGRlcml2ZWROb2RlLm5ldXRlcmVkKCk7XG4gICAgICBjb25zdCB4cHViID0gY29udmVydFhwdWJQcmVmaXgobmV1dGVyZWROb2RlLnRvQmFzZTU4KCksIHB1cnBvc2UsIGlzTWFpbm5ldCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHB1cnBvc2UsXG4gICAgICAgIGNvaW5fdHlwZTogY29pblR5cGUsXG4gICAgICAgIGFjY291bnQsXG4gICAgICAgIHhwdWIsXG4gICAgICB9O1xuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgd2F0Y2gtb25seSB3YWxsZXQgaW5pdCBkYXRhIGZyb20gdGhlIHByb3ZpZGVkIHNpZ25lciByb290IGtleSBhbmQgbmV0d29yay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdhdGNoT25seShzaWduZXJSb290S2V5OiBzdHJpbmcsIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IFdhdGNoT25seSB7XG4gIGNvbnN0IG1hc3RlckhETm9kZSA9IHV0eG9saWIuYmlwMzIuZnJvbUJhc2U1OChzaWduZXJSb290S2V5LCBuZXR3b3JrKTtcbiAgY29uc3QgZ2V0Q3VycmVudFVuaXhUaW1lc3RhbXAgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuICB9O1xuICBjb25zdCBtYXN0ZXJfa2V5X2JpcnRoZGF5X3RpbWVzdGFtcCA9IGdldEN1cnJlbnRVbml4VGltZXN0YW1wKCkudG9TdHJpbmcoKTtcbiAgY29uc3QgbWFzdGVyX2tleV9maW5nZXJwcmludCA9IG1hc3RlckhETm9kZS5maW5nZXJwcmludC50b1N0cmluZygnaGV4Jyk7XG4gIGNvbnN0IGFjY291bnRzID0gZGVyaXZlV2F0Y2hPbmx5QWNjb3VudHMobWFzdGVySEROb2RlLCB1dHhvbGliLmlzTWFpbm5ldChuZXR3b3JrKSk7XG4gIHJldHVybiB7IG1hc3Rlcl9rZXlfYmlydGhkYXlfdGltZXN0YW1wLCBtYXN0ZXJfa2V5X2ZpbmdlcnByaW50LCBhY2NvdW50cyB9O1xufVxuIl19
|
|
204
|
+
/**
|
|
205
|
+
* Derives the shared Elliptic Curve Diffie-Hellman (ECDH) secret between the user's auth extended private key
|
|
206
|
+
* and the Lightning service's public key for secure communication.
|
|
207
|
+
*/
|
|
208
|
+
function deriveLightningServiceSharedSecret(coinName, userAuthXprv) {
|
|
209
|
+
const publicKey = Buffer.from(getStaticsLightningNetwork(coinName).lightningServicePubKey, 'hex');
|
|
210
|
+
const userAuthHdNode = utxolib.bip32.fromBase58(userAuthXprv);
|
|
211
|
+
return (0, ecdh_1.getSharedSecret)(userAuthHdNode, publicKey);
|
|
212
|
+
}
|
|
213
|
+
exports.deriveLightningServiceSharedSecret = deriveLightningServiceSharedSecret;
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGlnaHRuaW5nL2xpZ2h0bmluZ1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBQy9DLDhEQUFnRDtBQUNoRCx1Q0FBeUQ7QUFDekQscURBQXVDO0FBRXZDLGtDQUEwQztBQUUxQyw2RkFBNkY7QUFDaEYsUUFBQSx5QkFBeUIsR0FBRztJQUN2QztRQUNFLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLE1BQU0sRUFBRSxPQUFPO0tBQ2hCO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsUUFBUTtRQUNoQixNQUFNLEVBQUUsVUFBVTtLQUNuQjtJQUNEO1FBQ0UsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLE1BQU07S0FDZjtJQUNEO1FBQ0UsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLE9BQU87S0FDaEI7Q0FDRixDQUFDO0FBRVcsUUFBQSxvQkFBb0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQVUsQ0FBQztBQUdwRTs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLFFBQWlCO0lBQ25ELE9BQU8sUUFBUSxLQUFLLE9BQU8sSUFBSSxRQUFRLEtBQUssUUFBUSxDQUFDO0FBQ3ZELENBQUM7QUFGRCxrREFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsV0FBaUM7SUFDbkUsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFGRCxrREFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsT0FBd0I7SUFDM0QsT0FBTyxPQUFPLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ25FLENB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QUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxFQUFFO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0lBQ0YsTUFBTSw2QkFBNkIsR0FBRyx1QkFBdUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNFLE1BQU0sc0JBQXNCLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsTUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNuRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDN0UsQ0FBQztBQVRELDBDQVNDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isa0NBQWtDLENBQUMsUUFBNEIsRUFBRSxZQUFvQjtJQUNuRyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlELE9BQU8sSUFBQSxzQkFBZSxFQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBSkQsZ0ZBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzdGF0aWNzIGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBpbXBvcnRNYWNhcm9vbiwgYnl0ZXNUb0Jhc2U2NCB9IGZyb20gJ21hY2Fyb29uJztcbmltcG9ydCAqIGFzIGJzNThjaGVjayBmcm9tICdiczU4Y2hlY2snO1xuaW1wb3J0IHsgV2F0Y2hPbmx5LCBXYXRjaE9ubHlBY2NvdW50IH0gZnJvbSAnLi9jb2RlY3MnO1xuaW1wb3J0IHsgZ2V0U2hhcmVkU2VjcmV0IH0gZnJvbSAnLi4vZWNkaCc7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9saWdodG5pbmduZXR3b3JrL2xuZC9ibG9iL21hc3Rlci9kb2NzL3JlbW90ZS1zaWduaW5nLm1kI3RoZS1zaWduZXItbm9kZVxuZXhwb3J0IGNvbnN0IHNpZ25lck1hY2Fyb29uUGVybWlzc2lvbnMgPSBbXG4gIHtcbiAgICBlbnRpdHk6ICdtZXNzYWdlJyxcbiAgICBhY3Rpb246ICd3cml0ZScsXG4gIH0sXG4gIHtcbiAgICBlbnRpdHk6ICdzaWduZXInLFxuICAgIGFjdGlvbjogJ2dlbmVyYXRlJyxcbiAgfSxcbiAge1xuICAgIGVudGl0eTogJ2FkZHJlc3MnLFxuICAgIGFjdGlvbjogJ3JlYWQnLFxuICB9LFxuICB7XG4gICAgZW50aXR5OiAnb25jaGFpbicsXG4gICAgYWN0aW9uOiAnd3JpdGUnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IGxpZ2h0bmluZ05ldHdvcmtOYW1lID0gWydiaXRjb2luJywgJ3Rlc3RuZXQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIExpZ2h0bmluZ05ldHdvcmtOYW1lID0gKHR5cGVvZiBsaWdodG5pbmdOZXR3b3JrTmFtZSlbbnVtYmVyXTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGNvaW4gbmFtZSBpcyBhIGxpZ2h0bmluZyBjb2luIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0xpZ2h0bmluZ0NvaW5OYW1lKGNvaW5OYW1lOiB1bmtub3duKTogY29pbk5hbWUgaXMgJ2xuYnRjJyB8ICd0bG5idGMnIHtcbiAgcmV0dXJuIGNvaW5OYW1lID09PSAnbG5idGMnIHx8IGNvaW5OYW1lID09PSAndGxuYnRjJztcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHV0eG9saWIgbmV0d29yayBmb3IgYSBsaWdodG5pbmcgbmV0d29yay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExpZ2h0bmluZ05ldHdvcmsobmV0d29ya05hbWU6IExpZ2h0bmluZ05ldHdvcmtOYW1lKTogdXR4b2xpYi5OZXR3b3JrIHtcbiAgcmV0dXJuIHV0eG9saWIubmV0d29ya3NbbmV0d29ya05hbWVdO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbGlnaHRuaW5nIGNvaW4gbmFtZSBmb3IgYSB1dHhvbGliIG5ldHdvcmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaWdodG5pbmdDb2luTmFtZShuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBzdHJpbmcge1xuICByZXR1cm4gbmV0d29yayA9PT0gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luID8gJ2xuYnRjJyA6ICd0bG5idGMnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgbmV0d29yayBuYW1lIGlzIGEgdmFsaWQgbGlnaHRuaW5nIG5ldHdvcmsgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZShuZXR3b3JrTmFtZTogdW5rbm93bik6IG5ldHdvcmtOYW1lIGlzIExpZ2h0bmluZ05ldHdvcmtOYW1lIHtcbiAgcmV0dXJuIGxpZ2h0bmluZ05ldHdvcmtOYW1lLmluY2x1ZGVzKG5ldHdvcmtOYW1lIGFzIExpZ2h0bmluZ05ldHdvcmtOYW1lKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIG5ldHdvcmsgaXMgYSB2YWxpZCBsaWdodG5pbmcgbmV0d29yay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrKG5ldHdvcms6IHVua25vd24pOiBuZXR3b3JrIGlzIHV0eG9saWIuTmV0d29yayB7XG4gIHJldHVybiB1dHhvbGliLmlzVmFsaWROZXR3b3JrKG5ldHdvcmspICYmIGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZSh1dHhvbGliLmdldE5ldHdvcmtOYW1lKG5ldHdvcmspKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBzdGF0aWNzIG5ldHdvcmsgZGF0YSBmb3IgYSBsaWdodG5pbmcgY29pbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRpY3NMaWdodG5pbmdOZXR3b3JrKGNvaW5OYW1lOiBzdHJpbmcpOiBzdGF0aWNzLkxpZ2h0bmluZ05ldHdvcmsge1xuICBpZiAoIWlzTGlnaHRuaW5nQ29pbk5hbWUoY29pbk5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2NvaW5OYW1lfSBpcyBub3QgYSBsaWdodG5pbmcgY29pbmApO1xuICB9XG4gIGNvbnN0IGNvaW4gPSBzdGF0aWNzLmNvaW5zLmdldChjb2luTmFtZSk7XG4gIGlmICghKGNvaW4gaW5zdGFuY2VvZiBzdGF0aWNzLkxpZ2h0bmluZ0NvaW4pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjb2luIGlzIG5vdCBhIGxpZ2h0bmluZyBjb2luJyk7XG4gIH1cbiAgcmV0dXJuIGNvaW4ubmV0d29yaztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB1dHhvbGliIG5ldHdvcmsgZm9yIGEgbGlnaHRuaW5nIGNvaW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRVdHhvbGliTmV0d29yayhjb2luTmFtZTogc3RyaW5nKTogdXR4b2xpYi5OZXR3b3JrIHtcbiAgY29uc3QgbmV0d29ya05hbWUgPSBnZXRTdGF0aWNzTGlnaHRuaW5nTmV0d29yayhjb2luTmFtZSkudXR4b2xpYk5hbWU7XG4gIGlmICghaXNWYWxpZExpZ2h0bmluZ05ldHdvcmtOYW1lKG5ldHdvcmtOYW1lKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBsaWdodG5pbmcgbmV0d29yaycpO1xuICB9XG4gIHJldHVybiBnZXRMaWdodG5pbmdOZXR3b3JrKG5ldHdvcmtOYW1lKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGNvaW4gc3BlY2lmaWMgZGF0YSBmb3IgYSBsaWdodG5pbmcgY29pbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcExpZ2h0bmluZ0NvaW5TcGVjaWZpYzxWPihvYmo6IHsgbG5idGM6IFYgfSB8IHsgdGxuYnRjOiBWIH0sIGNvaW5TcGVjaWZpY1BhdGg6IHN0cmluZyk6IFYge1xuICBpZiAoY29pblNwZWNpZmljUGF0aCAhPT0gJ2xuYnRjJyAmJiBjb2luU3BlY2lmaWNQYXRoICE9PSAndGxuYnRjJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBjb2luU3BlY2lmaWNQYXRoICR7Y29pblNwZWNpZmljUGF0aH0gZm9yIGxpZ2h0bmluZyBjb2luYCk7XG4gIH1cbiAgaWYgKGNvaW5TcGVjaWZpY1BhdGggPT09ICdsbmJ0YycgJiYgJ2xuYnRjJyBpbiBvYmopIHtcbiAgICByZXR1cm4gb2JqLmxuYnRjO1xuICB9XG4gIGlmIChjb2luU3BlY2lmaWNQYXRoID09PSAndGxuYnRjJyAmJiAndGxuYnRjJyBpbiBvYmopIHtcbiAgICByZXR1cm4gb2JqLnRsbmJ0YztcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgbGlnaHRuaW5nIGNvaW4gc3BlY2lmaWMnKTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIElQIGNhdmVhdCB0byBhIG1hY2Fyb29uIGFuZCByZXR1cm5zIHRoZSBtb2RpZmllZCBtYWNhcm9vbiBhcyBhIEJhc2U2NCBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRJUENhdmVhdFRvTWFjYXJvb24obWFjYXJvb25CYXNlNjQ6IHN0cmluZywgaXA6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1hY2Fyb29uID0gaW1wb3J0TWFjYXJvb24obWFjYXJvb25CYXNlNjQpO1xuICBtYWNhcm9vbi5hZGRGaXJzdFBhcnR5Q2F2ZWF0KGBpcGFkZHIgJHtpcH1gKTtcbiAgcmV0dXJuIGJ5dGVzVG9CYXNlNjQobWFjYXJvb24uZXhwb3J0QmluYXJ5KCkpO1xufVxuXG5jb25zdCBQVVJQT1NFX1dSQVBQRURfUDJXS0ggPSA0OTtcbmNvbnN0IFBVUlBPU0VfUDJXS0ggPSA4NDtcbmNvbnN0IFBVUlBPU0VfUDJUUiA9IDg2O1xuY29uc3QgUFVSUE9TRV9BTExfT1RIRVJTID0gMTAxNztcblxudHlwZSBFeHRlbmRlZEtleVB1cnBvc2UgPVxuICB8IHR5cGVvZiBQVVJQT1NFX1dSQVBQRURfUDJXS0hcbiAgfCB0eXBlb2YgUFVSUE9TRV9QMldLSFxuICB8IHR5cGVvZiBQVVJQT1NFX1AyVFJcbiAgfCB0eXBlb2YgUFVSUE9TRV9BTExfT1RIRVJTO1xuXG4vKipcbiAqIENvbnZlcnRzIGFuIGV4dGVuZGVkIHB1YmxpYyBrZXkgKHhwdWIpIHRvIHRoZSBhcHByb3ByaWF0ZSBwcmVmaXggKHlwdWIsIHZwdWIsIGV0Yy4pIGJhc2VkIG9uIGl0cyBwdXJwb3NlIGFuZCBuZXR3b3JrLlxuICovXG5mdW5jdGlvbiBjb252ZXJ0WHB1YlByZWZpeCh4cHViOiBzdHJpbmcsIHB1cnBvc2U6IEV4dGVuZGVkS2V5UHVycG9zZSwgaXNNYWlubmV0OiBib29sZWFuKTogc3RyaW5nIHtcbiAgaWYgKHB1cnBvc2UgPT09IFBVUlBPU0VfUDJUUiB8fCBwdXJwb3NlID09PSBQVVJQT1NFX0FMTF9PVEhFUlMpIHtcbiAgICByZXR1cm4geHB1YjtcbiAgfVxuICBjb25zdCBkYXRhID0gYnM1OGNoZWNrLmRlY29kZSh4cHViKTtcblxuICBsZXQgdmVyc2lvbkJ5dGVzOiBCdWZmZXI7XG5cbiAgc3dpdGNoIChwdXJwb3NlKSB7XG4gICAgY2FzZSBQVVJQT1NFX1dSQVBQRURfUDJXS0g6XG4gICAgICB2ZXJzaW9uQnl0ZXMgPSBpc01haW5uZXQgPyBCdWZmZXIuZnJvbShbMHgwNCwgMHg5ZCwgMHg3YywgMHhiMl0pIDogQnVmZmVyLmZyb20oWzB4MDQsIDB4NGEsIDB4NTIsIDB4NjJdKTsgLy8geXB1Yi91cHViIGZvciBwMnNoLXAyd3BraFxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBQVVJQT1NFX1AyV0tIOlxuICAgICAgdmVyc2lvbkJ5dGVzID0gaXNNYWlubmV0ID8gQnVmZmVyLmZyb20oWzB4MDQsIDB4YjIsIDB4NDcsIDB4NDZdKSA6IEJ1ZmZlci5mcm9tKFsweDA0LCAweDVmLCAweDFjLCAweGY2XSk7IC8vIHpwdWIvdnB1YiBmb3IgcDJ3cGtoXG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBwdXJwb3NlJyk7XG4gIH1cblxuICB2ZXJzaW9uQnl0ZXMuY29weShkYXRhLCAwLCAwLCA0KTtcbiAgcmV0dXJuIGJzNThjaGVjay5lbmNvZGUoZGF0YSk7XG59XG5cbi8qKlxuICogRGVyaXZlcyB3YXRjaC1vbmx5IGFjY291bnRzIGZyb20gdGhlIG1hc3RlciBIRCBub2RlIGZvciB0aGUgZ2l2ZW4gcHVycG9zZXMgYW5kIG5ldHdvcmsuXG4gKi9cbmZ1bmN0aW9uIGRlcml2ZVdhdGNoT25seUFjY291bnRzKG1hc3RlckhETm9kZTogdXR4b2xpYi5CSVAzMkludGVyZmFjZSwgaXNNYWlubmV0OiBib29sZWFuKTogV2F0Y2hPbmx5QWNjb3VudFtdIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2xpZ2h0bmluZ25ldHdvcmsvbG5kL2Jsb2IvbWFzdGVyL2RvY3MvcmVtb3RlLXNpZ25pbmcubWQjcmVxdWlyZWQtYWNjb3VudHNcbiAgaWYgKG1hc3RlckhETm9kZS5pc05ldXRlcmVkKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21hc3RlckhETm9kZSBtdXN0IG5vdCBiZSBuZXV0ZXJlZCcpO1xuICB9XG5cbiAgY29uc3QgcHVycG9zZXMgPSBbUFVSUE9TRV9XUkFQUEVEX1AyV0tILCBQVVJQT1NFX1AyV0tILCBQVVJQT1NFX1AyVFIsIFBVUlBPU0VfQUxMX09USEVSU10gYXMgY29uc3Q7XG5cbiAgcmV0dXJuIHB1cnBvc2VzLmZsYXRNYXAoKHB1cnBvc2UpID0+IHtcbiAgICBjb25zdCBtYXhBY2NvdW50ID0gcHVycG9zZSA9PT0gUFVSUE9TRV9BTExfT1RIRVJTID8gMjU1IDogMDtcbiAgICBjb25zdCBjb2luVHlwZSA9IHB1cnBvc2UgIT09IFBVUlBPU0VfQUxMX09USEVSUyB8fCBpc01haW5uZXQgPyAwIDogMTtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBtYXhBY2NvdW50ICsgMSB9LCAoXywgYWNjb3VudCkgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IGBtLyR7cHVycG9zZX0nLyR7Y29pblR5cGV9Jy8ke2FjY291bnR9J2A7XG4gICAgICBjb25zdCBkZXJpdmVkTm9kZSA9IG1hc3RlckhETm9kZS5kZXJpdmVQYXRoKHBhdGgpO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIG5vZGUgaXMgbmV1dGVyZWQgKGkuZS4sIGNvbnZlcnRlZCB0byBwdWJsaWMga2V5IG9ubHkpXG4gICAgICBjb25zdCBuZXV0ZXJlZE5vZGUgPSBkZXJpdmVkTm9kZS5uZXV0ZXJlZCgpO1xuICAgICAgY29uc3QgeHB1YiA9IGNvbnZlcnRYcHViUHJlZml4KG5ldXRlcmVkTm9kZS50b0Jhc2U1OCgpLCBwdXJwb3NlLCBpc01haW5uZXQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBwdXJwb3NlLFxuICAgICAgICBjb2luX3R5cGU6IGNvaW5UeXBlLFxuICAgICAgICBhY2NvdW50LFxuICAgICAgICB4cHViLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHdhdGNoLW9ubHkgd2FsbGV0IGluaXQgZGF0YSBmcm9tIHRoZSBwcm92aWRlZCBzaWduZXIgcm9vdCBrZXkgYW5kIG5ldHdvcmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXYXRjaE9ubHkoc2lnbmVyUm9vdEtleTogc3RyaW5nLCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBXYXRjaE9ubHkge1xuICBjb25zdCBtYXN0ZXJIRE5vZGUgPSB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgoc2lnbmVyUm9vdEtleSwgbmV0d29yayk7XG4gIGNvbnN0IGdldEN1cnJlbnRVbml4VGltZXN0YW1wID0gKCkgPT4ge1xuICAgIHJldHVybiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbiAgfTtcbiAgY29uc3QgbWFzdGVyX2tleV9iaXJ0aGRheV90aW1lc3RhbXAgPSBnZXRDdXJyZW50VW5peFRpbWVzdGFtcCgpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IG1hc3Rlcl9rZXlfZmluZ2VycHJpbnQgPSBtYXN0ZXJIRE5vZGUuZmluZ2VycHJpbnQudG9TdHJpbmcoJ2hleCcpO1xuICBjb25zdCBhY2NvdW50cyA9IGRlcml2ZVdhdGNoT25seUFjY291bnRzKG1hc3RlckhETm9kZSwgdXR4b2xpYi5pc01haW5uZXQobmV0d29yaykpO1xuICByZXR1cm4geyBtYXN0ZXJfa2V5X2JpcnRoZGF5X3RpbWVzdGFtcCwgbWFzdGVyX2tleV9maW5nZXJwcmludCwgYWNjb3VudHMgfTtcbn1cblxuLyoqXG4gKiBEZXJpdmVzIHRoZSBzaGFyZWQgRWxsaXB0aWMgQ3VydmUgRGlmZmllLUhlbGxtYW4gKEVDREgpIHNlY3JldCBiZXR3ZWVuIHRoZSB1c2VyJ3MgYXV0aCBleHRlbmRlZCBwcml2YXRlIGtleVxuICogYW5kIHRoZSBMaWdodG5pbmcgc2VydmljZSdzIHB1YmxpYyBrZXkgZm9yIHNlY3VyZSBjb21tdW5pY2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlTGlnaHRuaW5nU2VydmljZVNoYXJlZFNlY3JldChjb2luTmFtZTogJ2xuYnRjJyB8ICd0bG5idGMnLCB1c2VyQXV0aFhwcnY6IHN0cmluZyk6IEJ1ZmZlciB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IEJ1ZmZlci5mcm9tKGdldFN0YXRpY3NMaWdodG5pbmdOZXR3b3JrKGNvaW5OYW1lKS5saWdodG5pbmdTZXJ2aWNlUHViS2V5LCAnaGV4Jyk7XG4gIGNvbnN0IHVzZXJBdXRoSGROb2RlID0gdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KHVzZXJBdXRoWHBydik7XG4gIHJldHVybiBnZXRTaGFyZWRTZWNyZXQodXNlckF1dGhIZE5vZGUsIHB1YmxpY0tleSk7XG59XG4iXX0=
|
|
@@ -6,6 +6,7 @@ import { MPCv2BroadcastMessage, MPCv2KeyGenRound1Response, MPCv2KeyGenRound2Resp
|
|
|
6
6
|
import { Ecdsa } from '../../../../account-lib';
|
|
7
7
|
import { Keychain } from '../../../keychain';
|
|
8
8
|
import { DecryptedRetrofitPayload } from '../../../keychain/iKeychains';
|
|
9
|
+
import { MPCv2PartiesEnum } from './typesMPCv2';
|
|
9
10
|
import { CustomMPCv2SigningRound1GeneratingFunction, CustomMPCv2SigningRound2GeneratingFunction, CustomMPCv2SigningRound3GeneratingFunction, RequestType, SignatureShareRecord, TSSParams, TSSParamsForMessage, TSSParamsForMessageWithPrv, TSSParamsWithPrv, TxRequest } from '../baseTypes';
|
|
10
11
|
import { BaseEcdsaUtils } from './base';
|
|
11
12
|
export declare class EcdsaMPCv2Utils extends BaseEcdsaUtils {
|
|
@@ -17,6 +18,14 @@ export declare class EcdsaMPCv2Utils extends BaseEcdsaUtils {
|
|
|
17
18
|
retrofit?: DecryptedRetrofitPayload;
|
|
18
19
|
}): Promise<KeychainsTriplet>;
|
|
19
20
|
createParticipantKeychain(participantIndex: MPCv2PartyFromStringOrNumber, commonKeychain: string, privateMaterial?: Buffer, reducedPrivateMaterial?: Buffer, passphrase?: string, originalPasscodeEncryptionCode?: string): Promise<Keychain>;
|
|
21
|
+
/**
|
|
22
|
+
* Converts a User or Backup MPCv1 SigningMaterial to RetrofitData needed by MPCv2 DKG.
|
|
23
|
+
*
|
|
24
|
+
* @param decryptedKeyshare - MPCv1 decrypted signing material for user or backup as a json.stringify string and bitgo's Big Si.
|
|
25
|
+
* @param partyId - The party ID of the MPCv1 keyshare.
|
|
26
|
+
* @returns The retrofit data needed to start an MPCv2 DKG session.
|
|
27
|
+
*/
|
|
28
|
+
getKeyDataForRetrofit(decryptedKeyshare: string, partyId: MPCv2PartiesEnum.BACKUP | MPCv2PartiesEnum.USER): DklsTypes.RetrofitData;
|
|
20
29
|
/**
|
|
21
30
|
* Converts user and backup MPCv1 SigningMaterial to RetrofitData needed by MPCv2 DKG.
|
|
22
31
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":";AAAA,OAAO,EAAiD,SAAS,EAAa,MAAM,yBAAyB,CAAC;AAG9G,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAEL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EAGzB,eAAe,EACf,4BAA4B,EAG7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAsB,QAAQ,EAAW,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":"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"}
|