@bitgo-beta/sdk-core 8.2.1-beta.2047 → 8.2.1-beta.2049
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/safe/iSafe.d.ts +5 -0
- package/dist/src/bitgo/safe/iSafe.d.ts.map +1 -1
- package/dist/src/bitgo/safe/iSafe.js +1 -1
- package/dist/src/bitgo/safe/safe.d.ts +5 -1
- package/dist/src/bitgo/safe/safe.d.ts.map +1 -1
- package/dist/src/bitgo/safe/safe.js +12 -5
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +24 -3
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +20 -11
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +18 -5
- package/dist/test/unit/bitgo/safe/safe.js +28 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -10,6 +10,10 @@ import type { Wallet, WalletShare } from '../wallet';
|
|
|
10
10
|
export interface InitializeSafeOptions {
|
|
11
11
|
label: string;
|
|
12
12
|
}
|
|
13
|
+
/** @experimental */
|
|
14
|
+
export interface UpdateSafeOptions {
|
|
15
|
+
label: string;
|
|
16
|
+
}
|
|
13
17
|
/**
|
|
14
18
|
* Phase 3 — the client hands back the 12 key ids it created in Phase 2.
|
|
15
19
|
* @experimental
|
|
@@ -76,6 +80,7 @@ export interface ISafe {
|
|
|
76
80
|
status(): SafeData['status'];
|
|
77
81
|
url(extra?: string): string;
|
|
78
82
|
createWallet(params: CreateSafeWalletOptions): Promise<Wallet>;
|
|
83
|
+
update(params: UpdateSafeOptions): Promise<SafeData>;
|
|
79
84
|
addMember(params: AddSafeMemberOptions): Promise<SafeData>;
|
|
80
85
|
addMemberToWallet(params: AddSafeWalletMemberOptions): Promise<WalletShareData>;
|
|
81
86
|
listShares(params?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iSafe.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/iSafe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAErD,oBAAoB;AACpB,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC;AAI1C,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;CAClC;AAED,UAAU,iBAAiB;IACzB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,gGAAgG;IAChG,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,4EAA4E;AAC5E,MAAM,MAAM,oBAAoB,GAC5B,CAAC,iBAAiB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,GACvD,CAAC,iBAAiB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAE5D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,uGAAuG;IACvG,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,+BAA+B,GAAG,kCAAkC,CAAC;AAE1G;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,IAAI,MAAM,CAAC;IACb,YAAY,IAAI,MAAM,CAAC;IACvB,KAAK,IAAI,MAAM,CAAC;IAChB,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7B,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"iSafe.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/iSafe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaVNhZmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vc2FmZS9pU2FmZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoZSBzYWZlIGNsaWVudCBzdXJmYWNlIGlzIGV4cGVyaW1lbnRhbCBhbmQgbWF5IGNoYW5nZSAoaW5jbHVkaW5nIGJyZWFraW5nXG4gKiBjaGFuZ2VzKSBiZWZvcmUgdGhlIHB1YmxpYyByZWxlYXNlLlxuICovXG4vLyBXaXJlL2RhdGEgc2hhcGVzIGFyZSBvd25lZCBieSBAYml0Z28vcHVibGljLXR5cGVzIOKAlCBpbXBvcnQgdGhlbSB3aGVyZSBuZWVkZWQgcmF0aGVyIHRoYW5cbi8vIHJlLWV4cG9ydGluZyBmcm9tIHNkay1jb3JlLlxuaW1wb3J0IHR5cGUge1xuICBGcmVlemVTYWZlQm9keSxcbiAgU2FmZURhdGEsXG4gIFNhZmVQZXJtaXNzaW9uLFxuICBTYWZlUm9vdEtleXMsXG4gIFNhZmVTaGFyZURhdGEsXG4gIFNhZmVTaGFyZUtleWNoYWluLFxuICBTYWZlU2hhcmVTdGF0ZSxcbn0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQgdHlwZSB7IFdhbGxldCwgV2FsbGV0U2hhcmUgfSBmcm9tICcuLi93YWxsZXQnO1xuXG4vKiogQGV4cGVyaW1lbnRhbCAqL1xuZXhwb3J0IGludGVyZmFjZSBJbml0aWFsaXplU2FmZU9wdGlvbnMge1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG4vKiogQGV4cGVyaW1lbnRhbCAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTYWZlT3B0aW9ucyB7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGhhc2UgMyDigJQgdGhlIGNsaWVudCBoYW5kcyBiYWNrIHRoZSAxMiBrZXkgaWRzIGl0IGNyZWF0ZWQgaW4gUGhhc2UgMi5cbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaW5hbGl6ZVNhZmVPcHRpb25zIHtcbiAgcm9vdEtleXM6IFNhZmVSb290S2V5cztcbn1cblxuLyoqXG4gKiBTaGFyaW5nIE9ORSBzYWZlIHdhbGxldCB3aXRoIGEgbm9uLW1lbWJlciByaWRlcyB0aGUgZXhpc3Rpbmcgd2FsbGV0LXNoYXJlIGhhbmRzaGFrZSxcbiAqIHNvIHRoZSByZXN1bHQgaXMgdGhlIGV4aXN0aW5nIFdhbGxldFNoYXJlIHNoYXBlLlxuICovXG5leHBvcnQgdHlwZSBXYWxsZXRTaGFyZURhdGEgPSBXYWxsZXRTaGFyZTtcblxuLy8gLS0tLSBwZXItc2FmZSBvcGVyYXRpb24gb3B0aW9ucyAtLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU2FmZVdhbGxldE9wdGlvbnMge1xuICBjb2luOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgdHlwZT86ICdob3QnO1xuICAvKipcbiAgICogYG9uY2hhaW5gIChkZWZhdWx0KSBtaW50cyBhIHNlY3AyNTZrMSBtdWx0aXNpZyB3YWxsZXQ7IGB0c3NgIG1pbnRzIGFuIE1QQ1xuICAgKiB3YWxsZXQgYnkgZGVyaXZpbmcgY2hpbGQga2V5cyBmcm9tIHRoZSBzYWZlJ3MgTVBDIHJvb3RzLlxuICAgKi9cbiAgbXVsdGlzaWdUeXBlPzogJ29uY2hhaW4nIHwgJ3Rzcyc7XG59XG5cbmludGVyZmFjZSBBZGRTYWZlTWVtYmVyQmFzZSB7XG4gIHBlcm1pc3Npb25zOiBTYWZlUGVybWlzc2lvbltdO1xuICAvKiogcmVxdWlyZWQgd2hlbiAnc3BlbmQnIGlzIGluY2x1ZGVkIOKAlCB0aGUgNCByb290IHVzZXIga2V5cyBFQ0RILXJlLWVuY3J5cHRlZCB0byB0aGUgaW52aXRlZSAqL1xuICBrZXljaGFpbnM/OiBTYWZlU2hhcmVLZXljaGFpbltdO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICAvKiogd2hlbiB0cnVlLCBzdXBwcmVzcyB0aGUgaW52aXRhdGlvbiBlbWFpbCB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBzZW50IHRvIGBlbWFpbGAgKi9cbiAgZGlzYWJsZUVtYWlsPzogYm9vbGVhbjtcbn1cblxuLyoqIEFkZCBhIG1lbWJlciBieSBlaXRoZXIgYHVzZXJJZGAgb3IgYGVtYWlsYCDigJQgZXhhY3RseSBvbmUgaXMgcmVxdWlyZWQuICovXG5leHBvcnQgdHlwZSBBZGRTYWZlTWVtYmVyT3B0aW9ucyA9XG4gIHwgKEFkZFNhZmVNZW1iZXJCYXNlICYgeyB1c2VySWQ6IHN0cmluZzsgZW1haWw/OiBuZXZlciB9KVxuICB8IChBZGRTYWZlTWVtYmVyQmFzZSAmIHsgZW1haWw6IHN0cmluZzsgdXNlcklkPzogbmV2ZXIgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkU2FmZVdhbGxldE1lbWJlck9wdGlvbnMge1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICAvKiogcmVxdWlyZWQg4oCUIHNoYXJpbmcgcmUtZW5jcnlwdHMgdGhlIHVzZXIga2V5LCB3aGljaCBuZWVkcyBoYXJkZW5lZCBkZXJpdmF0aW9uIGZyb20gdGhlIHBhc3NwaHJhc2UgKi9cbiAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgcGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQWNjZXB0U2FmZVNoYXJlQXNTcGVuZGVyT3B0aW9ucyA9IHtcbiAgc2FmZVNoYXJlSWQ6IHN0cmluZztcbiAgdXNlclBhc3N3b3JkOiBzdHJpbmc7XG4gIG5ld1dhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgQWNjZXB0U2FmZVNoYXJlQXNOb25TcGVuZGVyT3B0aW9ucyA9IHtcbiAgc2FmZVNoYXJlSWQ6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBBY2NlcHRTYWZlU2hhcmVPcHRpb25zID0gQWNjZXB0U2FmZVNoYXJlQXNTcGVuZGVyT3B0aW9ucyB8IEFjY2VwdFNhZmVTaGFyZUFzTm9uU3BlbmRlck9wdGlvbnM7XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTYWZlIHtcbiAgaWQoKTogc3RyaW5nO1xuICBlbnRlcnByaXNlSWQoKTogc3RyaW5nO1xuICBsYWJlbCgpOiBzdHJpbmc7XG4gIHN0YXR1cygpOiBTYWZlRGF0YVsnc3RhdHVzJ107XG4gIHVybChleHRyYT86IHN0cmluZyk6IHN0cmluZztcbiAgY3JlYXRlV2FsbGV0KHBhcmFtczogQ3JlYXRlU2FmZVdhbGxldE9wdGlvbnMpOiBQcm9taXNlPFdhbGxldD47XG4gIHVwZGF0ZShwYXJhbXM6IFVwZGF0ZVNhZmVPcHRpb25zKTogUHJvbWlzZTxTYWZlRGF0YT47XG4gIC8vIHdob2xlLXNhZmU6IHZpZXcvYWRtaW4vc3BlbmQvZGFwcDsgc3BlbmQgb3BlbnMgYSBrZXkgc2hhcmUgKGFsc28gaG93IGEgc3BlbmRlciBzZXJ2aWNlcyBhXG4gIC8vIHNhZmVTaGFyZVJlcXVlc3RzIGVudHJ5IGluIFVNUyBvcmdzKVxuICBhZGRNZW1iZXIocGFyYW1zOiBBZGRTYWZlTWVtYmVyT3B0aW9ucyk6IFByb21pc2U8U2FmZURhdGE+O1xuICAvLyBzaGFyZSBPTkUgc2FmZSB3YWxsZXQsIG5vdCB0aGUgd2hvbGUgc2FmZVxuICBhZGRNZW1iZXJUb1dhbGxldChwYXJhbXM6IEFkZFNhZmVXYWxsZXRNZW1iZXJPcHRpb25zKTogUHJvbWlzZTxXYWxsZXRTaGFyZURhdGE+O1xuICBsaXN0U2hhcmVzKHBhcmFtcz86IHsgc3RhdGU/OiBTYWZlU2hhcmVTdGF0ZSB9KTogUHJvbWlzZTxTYWZlU2hhcmVEYXRhW10+O1xuICBhY2NlcHRTaGFyZShwYXJhbXM6IEFjY2VwdFNhZmVTaGFyZU9wdGlvbnMpOiBQcm9taXNlPFNhZmVTaGFyZURhdGE+O1xuICBmcmVlemUocGFyYW1zPzogRnJlZXplU2FmZUJvZHkpOiBQcm9taXNlPFNhZmVEYXRhPjtcbiAgYXJjaGl2ZSgpOiBQcm9taXNlPFNhZmVEYXRhPjtcbiAgdG9KU09OKCk6IFNhZmVEYXRhO1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FreezeSafeBody, SafeData, SafeShareData, SafeShareState } from '@bitgo/public-types';
|
|
2
2
|
import { BitGoBase } from '../bitgoBase';
|
|
3
3
|
import { Wallet } from '../wallet';
|
|
4
|
-
import { AcceptSafeShareOptions, AddSafeMemberOptions, AddSafeWalletMemberOptions, CreateSafeWalletOptions, ISafe, WalletShareData } from './iSafe';
|
|
4
|
+
import { AcceptSafeShareOptions, AddSafeMemberOptions, AddSafeWalletMemberOptions, CreateSafeWalletOptions, ISafe, UpdateSafeOptions, WalletShareData } from './iSafe';
|
|
5
5
|
/**
|
|
6
6
|
* @experimental
|
|
7
7
|
*/
|
|
@@ -53,6 +53,10 @@ export declare class Safe implements ISafe {
|
|
|
53
53
|
* Accept a safe key share addressed to the caller.
|
|
54
54
|
*/
|
|
55
55
|
acceptShare(params: AcceptSafeShareOptions): Promise<SafeShareData>;
|
|
56
|
+
/**
|
|
57
|
+
* Update the safe label.
|
|
58
|
+
*/
|
|
59
|
+
update(params: UpdateSafeOptions): Promise<SafeData>;
|
|
56
60
|
/**
|
|
57
61
|
* Freeze the safe — blocks withdrawals on all safe wallets. Safe stays 'active'.
|
|
58
62
|
* @param params
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/safe.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAoB,MAAM,qBAAqB,CAAC;AAGhH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,EACL,eAAe,EAChB,MAAM,SAAS,CAAC;AA0EjB;;GAEG;AACH,qBAAa,IAAK,YAAW,KAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,SAAgB,KAAK,EAAE,QAAQ,CAAC;gBAEpB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;IAKhD,EAAE,IAAI,MAAM;IAIZ,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAI5B;;;OAGG;IACH,GAAG,CAAC,KAAK,SAAK,GAAG,MAAM;IAIvB;;;;;;;;;OASG;IACG,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiFpE;;;OAGG;YACW,qBAAqB;YA+CrB,aAAa;IAK3B;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIhE;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC;IAIrF;;OAEG;IACG,UAAU,CAAC,MAAM,GAAE;QAAE,KAAK,CAAC,EAAE,cAAc,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAInF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIzE;;;OAGG;IACG,MAAM,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK5D;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAKlC,MAAM,IAAI,QAAQ;CAGnB"}
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/safe.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAoB,MAAM,qBAAqB,CAAC;AAGhH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,EACL,iBAAiB,EACjB,eAAe,EAChB,MAAM,SAAS,CAAC;AA0EjB;;GAEG;AACH,qBAAa,IAAK,YAAW,KAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,SAAgB,KAAK,EAAE,QAAQ,CAAC;gBAEpB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;IAKhD,EAAE,IAAI,MAAM;IAIZ,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAI5B;;;OAGG;IACH,GAAG,CAAC,KAAK,SAAK,GAAG,MAAM;IAIvB;;;;;;;;;OASG;IACG,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiFpE;;;OAGG;YACW,qBAAqB;YA+CrB,aAAa;IAK3B;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIhE;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC;IAIrF;;OAEG;IACG,UAAU,CAAC,MAAM,GAAE;QAAE,KAAK,CAAC,EAAE,cAAc,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAInF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIzE;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK1D;;;OAGG;IACG,MAAM,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK5D;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAKlC,MAAM,IAAI,QAAQ;CAGnB"}
|
|
@@ -75,7 +75,7 @@ const CreateWalletInSafeBody = t.union([
|
|
|
75
75
|
label: t.string,
|
|
76
76
|
type: t.literal('hot'),
|
|
77
77
|
multisigType: t.literal('tss'),
|
|
78
|
-
keys: t.tuple([t.string, t.string]),
|
|
78
|
+
keys: t.tuple([t.string, t.string, t.string]),
|
|
79
79
|
}),
|
|
80
80
|
]);
|
|
81
81
|
function onchainSlotForCoin(coin) {
|
|
@@ -232,7 +232,7 @@ class Safe {
|
|
|
232
232
|
}
|
|
233
233
|
const userRootMaterial = utils_1.ECDSAUtils.parseVrfKeyEnvelopes(userRootPrv);
|
|
234
234
|
const tssUtils = new utils_1.ECDSAUtils.EcdsaVrfMPCv2Utils(this.bitgo, coin);
|
|
235
|
-
const { userKeychain, backupKeychain } = await tssUtils.createSafeChildKeychains({
|
|
235
|
+
const { userKeychain, backupKeychain, bitgoKeychain } = await tssUtils.createSafeChildKeychains({
|
|
236
236
|
passphrase: params.passphrase,
|
|
237
237
|
enterprise: this.enterpriseId(),
|
|
238
238
|
safeId: this.id(),
|
|
@@ -243,10 +243,10 @@ class Safe {
|
|
|
243
243
|
userRootKeyShare: userRootMaterial.signing,
|
|
244
244
|
userRootVrfKeyShare: userRootMaterial.vrf,
|
|
245
245
|
});
|
|
246
|
-
if (userKeychain.id.length === 0 || backupKeychain.id.length === 0) {
|
|
246
|
+
if (userKeychain.id.length === 0 || backupKeychain.id.length === 0 || bitgoKeychain.id.length === 0) {
|
|
247
247
|
throw new Error('safe child key registration returned an empty id');
|
|
248
248
|
}
|
|
249
|
-
const keys = [userKeychain.id, backupKeychain.id];
|
|
249
|
+
const keys = [userKeychain.id, backupKeychain.id, bitgoKeychain.id];
|
|
250
250
|
const response = await (0, postWithCodec_1.postWithCodec)(this.bitgo, this.url('/wallets'), CreateWalletInSafeBody, {
|
|
251
251
|
coin: params.coin,
|
|
252
252
|
label: params.label,
|
|
@@ -284,6 +284,13 @@ class Safe {
|
|
|
284
284
|
async acceptShare(params) {
|
|
285
285
|
throw new Error('Safe.acceptShare is not yet implemented');
|
|
286
286
|
}
|
|
287
|
+
/**
|
|
288
|
+
* Update the safe label.
|
|
289
|
+
*/
|
|
290
|
+
async update(params) {
|
|
291
|
+
const response = await this.bitgo.put(this.url()).send({ label: params.label }).result();
|
|
292
|
+
return (0, codecs_1.decodeWithCodec)(public_types_1.SafeData, response, 'SafeData');
|
|
293
|
+
}
|
|
287
294
|
/**
|
|
288
295
|
* Freeze the safe — blocks withdrawals on all safe wallets. Safe stays 'active'.
|
|
289
296
|
* @param params
|
|
@@ -305,4 +312,4 @@ class Safe {
|
|
|
305
312
|
}
|
|
306
313
|
}
|
|
307
314
|
exports.Safe = Safe;
|
|
308
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9zYWZlL3NhZmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7O0dBS0c7QUFDSCx5Q0FBMkI7QUFDM0Isc0RBQWdIO0FBQ2hILGlEQUFzRDtBQUd0RCxzQ0FBbUQ7QUFDbkQsMENBQXdEO0FBQ3hELG9DQUFzQztBQUN0Qyw0Q0FBOEQ7QUFDOUQsMERBQXVEO0FBQ3ZELHNDQUFtQztBQUNuQyx5REFBd0U7QUFTeEUscURBSTBCO0FBRTFCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyxDQUFDO0FBRUgsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hDLElBQUksRUFBRSxlQUFlO0lBQ3JCLEtBQUssRUFBRSxJQUFBLG1CQUFVLEVBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztDQUNwRCxDQUFDLENBQUM7QUFFSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNkLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNmLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUN0QixZQUFZLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDMUIsQ0FBQztJQUNGLHlEQUF5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IFRoZSBzYWZlIGNsaWVudCBzdXJmYWNlIGlzIGV4cGVyaW1lbnRhbCBhbmQgbWF5IGNoYW5nZSAoaW5jbHVkaW5nIGJyZWFraW5nXG4gKiBjaGFuZ2VzKSBiZWZvcmUgdGhlIHB1YmxpYyByZWxlYXNlLlxuICovXG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IEZyZWV6ZVNhZmVCb2R5LCBTYWZlRGF0YSwgU2FmZVNoYXJlRGF0YSwgU2FmZVNoYXJlU3RhdGUsIHR5cGUgUm9vdEtleVR5cGUgfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcbmltcG9ydCB7IGNvaW5zLCBLZXlDdXJ2ZSB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgSUJhc2VDb2luIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IEluY29ycmVjdFBhc3N3b3JkRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHsgZGVjcnlwdEtleWNoYWluUHJpdmF0ZUtleSB9IGZyb20gJy4uL2tleWNoYWluJztcbmltcG9ydCB7IEVDRFNBVXRpbHMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBib3VuZGVkSW50LCBkZWNvZGVXaXRoQ29kZWMgfSBmcm9tICcuLi91dGlscy9jb2RlY3MnO1xuaW1wb3J0IHsgcG9zdFdpdGhDb2RlYyB9IGZyb20gJy4uL3V0aWxzL3Bvc3RXaXRoQ29kZWMnO1xuaW1wb3J0IHsgV2FsbGV0IH0gZnJvbSAnLi4vd2FsbGV0JztcbmltcG9ydCB7IEludmFsaWRSb290S2V5Y2hhaW5Tb3VyY2VFcnJvciB9IGZyb20gJy4uL3dhbGxldC9zYWZlS2V5Y2hhaW4nO1xuaW1wb3J0IHtcbiAgQWNjZXB0U2FmZVNoYXJlT3B0aW9ucyxcbiAgQWRkU2FmZU1lbWJlck9wdGlvbnMsXG4gIEFkZFNhZmVXYWxsZXRNZW1iZXJPcHRpb25zLFxuICBDcmVhdGVTYWZlV2FsbGV0T3B0aW9ucyxcbiAgSVNhZmUsXG4gIFdhbGxldFNoYXJlRGF0YSxcbn0gZnJvbSAnLi9pU2FmZSc7XG5pbXBvcnQge1xuICBkZXJpdmVBbmRTZWxmQ2hlY2tTYWZlQ2hpbGRIYXJkZW5lZCxcbiAgZGVyaXZlU2FmZUNoaWxkRWQyNTUxOUhhcmRlbmVkLFxuICBEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGgsXG59IGZyb20gJy4vc2FmZURlcml2YXRpb24nO1xuXG5jb25zdCBTYWZlUm9vdEtleVNsb3QgPSB0LmtleW9mKHtcbiAgc2VjcDI1NmsxTXVsdGlzaWc6IG51bGwsXG4gIGVjZHNhTXBjOiBudWxsLFxuICBlZGRzYU1wYzogbnVsbCxcbiAgZWQyNTUxOU11bHRpc2lnOiBudWxsLFxufSk7XG5cbmNvbnN0IEdldERlcml2YXRpb25JbmRleFJlc3BvbnNlID0gdC50eXBlKHtcbiAgc2xvdDogU2FmZVJvb3RLZXlTbG90LFxuICBpbmRleDogYm91bmRlZEludCgwLCAweDdmZmZmZmZmLCAnZGVyaXZhdGlvbkluZGV4JyksXG59KTtcblxuY29uc3QgQ3JlYXRlV2FsbGV0SW5TYWZlQm9keSA9IHQudW5pb24oW1xuICB0LnN0cmljdCh7XG4gICAgY29pbjogdC5zdHJpbmcsXG4gICAgbGFiZWw6IHQuc3RyaW5nLFxuICAgIHR5cGU6IHQubGl0ZXJhbCgnaG90JyksXG4gICAgbXVsdGlzaWdUeXBlOiB0LmxpdGVyYWwoJ29uY2hhaW4nKSxcbiAgICBrZXlzOiB0LnR1cGxlKFt0LnN0cmluZ10pLFxuICB9KSxcbiAgLy8gVFNTIG1pbnQgdXNlcyBvcmRlcmVkIHVzZXIgYW5kIGJhY2t1cCBjaGlsZCBkb2N1bWVudHMuXG4gIHQuc3RyaWN0KHtcbiAgICBjb2luOiB0LnN0cmluZyxcbiAgICBsYWJlbDogdC5zdHJpbmcsXG4gICAgdHlwZTogdC5saXRlcmFsKCdob3QnKSxcbiAgICBtdWx0aXNpZ1R5cGU6IHQubGl0ZXJhbCgndHNzJyksXG4gICAga2V5czogdC50dXBsZShbdC5zdHJpbmcsIHQuc3RyaW5nXSksXG4gIH0pLFxuXSk7XG5cbmZ1bmN0aW9uIG9uY2hhaW5TbG90Rm9yQ29pbihjb2luOiBJQmFzZUNvaW4pOiBFeHRyYWN0PFJvb3RLZXlUeXBlLCAnc2VjcDI1NmsxTXVsdGlzaWcnIHwgJ2VkMjU1MTlNdWx0aXNpZyc+IHtcbiAgaWYgKGNvaW4uZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpID09PSAndHNzJykge1xuICAgIHRocm93IG5ldyBFcnJvcignTVBDIHNhZmUgd2FsbGV0IG1pbnRpbmcgcmVxdWlyZXMgbXVsdGlzaWdUeXBlIFwidHNzXCI7IHVzZSBcIm9uY2hhaW5cIiBmb3Igbm9uLU1QQyBtaW50aW5nJyk7XG4gIH1cbiAgY29uc3QgY3VydmUgPSBjb2lucy5nZXQoY29pbi5nZXRDaGFpbigpKS5wcmltYXJ5S2V5Q3VydmU7XG4gIGlmIChjdXJ2ZSA9PT0gS2V5Q3VydmUuU2VjcDI1NmsxKSB7XG4gICAgcmV0dXJuICdzZWNwMjU2azFNdWx0aXNpZyc7XG4gIH1cbiAgaWYgKGN1cnZlID09PSBLZXlDdXJ2ZS5FZDI1NTE5KSB7XG4gICAgcmV0dXJuICdlZDI1NTE5TXVsdGlzaWcnO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgQ29pbiAnJHtjb2luLmdldENoYWluKCl9JyBpcyBub3Qgc3VwcG9ydGVkIGZvciBzYWZlIHdhbGxldCBtaW50aW5nYCk7XG59XG5cbmZ1bmN0aW9uIHRzc1Nsb3RGb3JDb2luKGNvaW46IElCYXNlQ29pbik6IEV4dHJhY3Q8Um9vdEtleVR5cGUsICdlY2RzYU1wYyc+IHtcbiAgaWYgKGNvaW4uZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpICE9PSAndHNzJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ29pbiAnJHtjb2luLmdldENoYWluKCl9JyBpcyBub3QgYSBUU1MgY29pbjsgY2Fubm90IG1pbnQgYSB0c3Mgc2FmZSB3YWxsZXQgZm9yIGl0YCk7XG4gIH1cbiAgY29uc3QgY3VydmUgPSBjb2lucy5nZXQoY29pbi5nZXRDaGFpbigpKS5wcmltYXJ5S2V5Q3VydmU7XG4gIGlmIChjdXJ2ZSA9PT0gS2V5Q3VydmUuU2VjcDI1NmsxKSB7XG4gICAgcmV0dXJuICdlY2RzYU1wYyc7XG4gIH1cbiAgaWYgKGN1cnZlID09PSBLZXlDdXJ2ZS5FZDI1NTE5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdlZDI1NTE5IE1QQyBzYWZlIHdhbGxldCBtaW50aW5nIGlzIG5vdCB5ZXQgc3VwcG9ydGVkJyk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBDb2luICcke2NvaW4uZ2V0Q2hhaW4oKX0nIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHNhZmUgd2FsbGV0IG1pbnRpbmdgKTtcbn1cblxuZnVuY3Rpb24gcm9vdElkRnJvbVNhZmUoc2FmZTogU2FmZURhdGEsIHNsb3Q6IFJvb3RLZXlUeXBlLCBwb3NpdGlvbjogMCB8IDEgfCAyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdHJpcGxldCA9IHNhZmUucm9vdEtleXM/LmhvdD8uW3Nsb3RdO1xuICBpZiAoIXRyaXBsZXQgfHwgdHJpcGxldC5sZW5ndGggIT09IDMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJvb3RJZCA9IHRyaXBsZXRbcG9zaXRpb25dO1xuICByZXR1cm4gcm9vdElkLmxlbmd0aCA+IDAgPyByb290SWQgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgY2xhc3MgU2FmZSBpbXBsZW1lbnRzIElTYWZlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuICBwdWJsaWMgcmVhZG9ubHkgX3NhZmU6IFNhZmVEYXRhO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHNhZmVEYXRhOiBTYWZlRGF0YSkge1xuICAgIHRoaXMuYml0Z28gPSBiaXRnbztcbiAgICB0aGlzLl9zYWZlID0gc2FmZURhdGE7XG4gIH1cblxuICBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zYWZlLmlkO1xuICB9XG5cbiAgZW50ZXJwcmlzZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NhZmUuZW50ZXJwcmlzZUlkO1xuICB9XG5cbiAgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc2FmZS5sYWJlbDtcbiAgfVxuXG4gIHN0YXR1cygpOiBTYWZlRGF0YVsnc3RhdHVzJ10ge1xuICAgIHJldHVybiB0aGlzLl9zYWZlLnN0YXR1cztcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRlcnByaXNlLXNjb3BlZCB2MiBVUkwgZm9yIHRoaXMgc2FmZSwgZS5nLiAvYXBpL3YyL2VudGVycHJpc2UvOmVJZC9zYWZlcy86c2FmZUlkXG4gICAqIEBwYXJhbSBleHRyYVxuICAgKi9cbiAgdXJsKGV4dHJhID0gJycpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJpdGdvLnVybChgL2VudGVycHJpc2UvJHt0aGlzLmVudGVycHJpc2VJZCgpfS9zYWZlcy8ke3RoaXMuaWQoKX0ke2V4dHJhfWAsIDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pbnQgYSBjaGlsZCB3YWxsZXQ6IHBlZWsgdGhlIHNlcXVlbnRpYWwgaW5kZXgsIGRlcml2ZSB0aGUgY2hpbGQga2V5cywgcmVnaXN0ZXJcbiAgICogdGhlbSwgdGhlbiBtaW50LlxuICAgKlxuICAgKiBgb25jaGFpbmA6IGhhcmRlbmVkLWRlcml2ZSB0aGUgdXNlciBjaGlsZCAoYG0vPGluZGV4PidgKSwgcmVnaXN0ZXIgaXRcbiAgICogcHVibGljLW9ubHk7IGJhY2t1cCBhbmQgQml0R28gY2hpbGRyZW4gYXJlIHNvZnQtZGVyaXZlZCBvbiB0aGUgc2VydmVyLlxuICAgKlxuICAgKiBgdHNzYDogZGVjcnlwdCB0aGUgdXNlciByb290IGJsb2IsIHJ1biB0aGUgdXNlci9CaXRHbyBoYXJkLWRlcml2ZSBjZXJlbW9ueSxcbiAgICogcmVnaXN0ZXIgdGhlIG9yZGVyZWQgY2hpbGQgZG9jdW1lbnRzLCB0aGVuIG1pbnQuXG4gICAqL1xuICBhc3luYyBjcmVhdGVXYWxsZXQocGFyYW1zOiBDcmVhdGVTYWZlV2FsbGV0T3B0aW9ucyk6IFByb21pc2U8V2FsbGV0PiB7XG4gICAgaWYgKHBhcmFtcy5wYXNzcGhyYXNlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwYXNzcGhyYXNlIGlzIHJlcXVpcmVkIHRvIG1pbnQgYSBzYWZlIHdhbGxldCcpO1xuICAgIH1cbiAgICBpZiAocGFyYW1zLnR5cGUgIT09IHVuZGVmaW5lZCAmJiBwYXJhbXMudHlwZSAhPT0gJ2hvdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2FmZSB3YWxsZXRzIGFyZSBob3Qtb25seSBpbiB2MScpO1xuICAgIH1cbiAgICBjb25zdCBpc1RzcyA9IHBhcmFtcy5tdWx0aXNpZ1R5cGUgPT09ICd0c3MnO1xuXG4gICAgY29uc3QgY29pbiA9IHRoaXMuYml0Z28uY29pbihwYXJhbXMuY29pbik7XG4gICAgY29uc3Qgc2xvdCA9IGlzVHNzID8gdHNzU2xvdEZvckNvaW4oY29pbikgOiBvbmNoYWluU2xvdEZvckNvaW4oY29pbik7XG5cbiAgICBjb25zdCBpbmRleFJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy51cmwoJy9kZXJpdmF0aW9uLWluZGV4JykpLnF1ZXJ5KHsgc2xvdCB9KS5yZXN1bHQoKTtcbiAgICBjb25zdCBwZWVrZWQgPSBkZWNvZGVXaXRoQ29kZWMoR2V0RGVyaXZhdGlvbkluZGV4UmVzcG9uc2UsIGluZGV4UmVzcG9uc2UsICdHZXREZXJpdmF0aW9uSW5kZXhSZXNwb25zZScpO1xuICAgIGlmIChwZWVrZWQuc2xvdCAhPT0gc2xvdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBkZXJpdmF0aW9uLWluZGV4IHJldHVybmVkIHNsb3QgJyR7cGVla2VkLnNsb3R9JywgZXhwZWN0ZWQgJyR7c2xvdH0nYCk7XG4gICAgfVxuICAgIGNvbnN0IHsgaW5kZXggfSA9IHBlZWtlZDtcblxuICAgIGNvbnN0IHNhZmVEYXRhID0gcm9vdElkRnJvbVNhZmUodGhpcy5fc2FmZSwgc2xvdCwgMCkgIT09IHVuZGVmaW5lZCA/IHRoaXMuX3NhZmUgOiBhd2FpdCB0aGlzLmZldGNoU2FmZURhdGEoKTtcbiAgICBjb25zdCB1c2VyUm9vdElkID0gcm9vdElkRnJvbVNhZmUoc2FmZURhdGEsIHNsb3QsIDApO1xuICAgIGlmICh1c2VyUm9vdElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2FmZSAke3RoaXMuaWQoKX0gaXMgbWlzc2luZyByb290S2V5cy5ob3QuJHtzbG90fWApO1xuICAgIH1cblxuICAgIGlmIChpc1Rzcykge1xuICAgICAgY29uc3QgYmFja3VwUm9vdElkID0gcm9vdElkRnJvbVNhZmUoc2FmZURhdGEsIHNsb3QsIDEpO1xuICAgICAgY29uc3QgYml0Z29Sb290SWQgPSByb290SWRGcm9tU2FmZShzYWZlRGF0YSwgc2xvdCwgMik7XG4gICAgICBpZiAoYmFja3VwUm9vdElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTYWZlICR7dGhpcy5pZCgpfSBpcyBtaXNzaW5nIHJvb3RLZXlzLmhvdC4ke3Nsb3R9IGJhY2t1cCBrZXlgKTtcbiAgICAgIH1cbiAgICAgIGlmIChiaXRnb1Jvb3RJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU2FmZSAke3RoaXMuaWQoKX0gaXMgbWlzc2luZyByb290S2V5cy5ob3QuJHtzbG90fSBiaXRnbyBrZXlgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRzc1dhbGxldEluU2FmZShjb2luLCB1c2VyUm9vdElkLCBiYWNrdXBSb290SWQsIGJpdGdvUm9vdElkLCBpbmRleCwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXljaGFpbnMgPSBjb2luLmtleWNoYWlucygpO1xuICAgIGNvbnN0IHJvb3RLZXljaGFpbiA9IGF3YWl0IGtleWNoYWlucy5nZXQoeyBpZDogdXNlclJvb3RJZCB9KTtcbiAgICBpZiAocm9vdEtleWNoYWluLnNvdXJjZSAhPT0gJ3VzZXInKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFJvb3RLZXljaGFpblNvdXJjZUVycm9yKHJvb3RLZXljaGFpbi5pZCwgcm9vdEtleWNoYWluLnNvdXJjZSk7XG4gICAgfVxuICAgIGNvbnN0IHJvb3RQcnYgPSBhd2FpdCBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5KHRoaXMuYml0Z28sIHJvb3RLZXljaGFpbiwgcGFyYW1zLnBhc3NwaHJhc2UpO1xuICAgIGlmICghcm9vdFBydikge1xuICAgICAgdGhyb3cgbmV3IEluY29ycmVjdFBhc3N3b3JkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXJpdmVkID1cbiAgICAgIHNsb3QgPT09ICdlZDI1NTE5TXVsdGlzaWcnXG4gICAgICAgID8gZGVyaXZlU2FmZUNoaWxkRWQyNTUxOUhhcmRlbmVkKHJvb3RQcnYsIGluZGV4KVxuICAgICAgICA6IGRlcml2ZUFuZFNlbGZDaGVja1NhZmVDaGlsZEhhcmRlbmVkKHJvb3RQcnYsIGluZGV4KTtcbiAgICBjb25zdCBkZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGggPSBkZWNvZGVXaXRoQ29kZWMoXG4gICAgICBEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGgsXG4gICAgICBkZXJpdmVkLmRlcml2YXRpb25QYXRoLFxuICAgICAgJ2Rlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCdcbiAgICApO1xuXG4gICAgY29uc3QgY2hpbGQgPSBhd2FpdCBrZXljaGFpbnMuYWRkKHtcbiAgICAgIHB1YjogZGVyaXZlZC5wdWIsXG4gICAgICBzb3VyY2U6ICd1c2VyJyxcbiAgICAgIGtleVR5cGU6ICdpbmRlcGVuZGVudCcsXG4gICAgICBwYXJlbnQ6IHVzZXJSb290SWQsXG4gICAgICBzYWZlSWQ6IHRoaXMuaWQoKSxcbiAgICAgIGRlcml2ZWRGcm9tUGFyZW50V2l0aFBhdGg6IGRlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCxcbiAgICB9KTtcbiAgICBjb25zdCBjaGlsZElkID0gY2hpbGQuaWQ7XG4gICAgaWYgKGNoaWxkSWQubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NhZmUgY2hpbGQga2V5IHJlZ2lzdHJhdGlvbiByZXR1cm5lZCBhbiBlbXB0eSBpZCcpO1xuICAgIH1cbiAgICBjb25zdCBrZXlzOiBbc3RyaW5nXSA9IFtjaGlsZElkXTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdFdpdGhDb2RlYyh0aGlzLmJpdGdvLCB0aGlzLnVybCgnL3dhbGxldHMnKSwgQ3JlYXRlV2FsbGV0SW5TYWZlQm9keSwge1xuICAgICAgY29pbjogcGFyYW1zLmNvaW4sXG4gICAgICBsYWJlbDogcGFyYW1zLmxhYmVsLFxuICAgICAgdHlwZTogJ2hvdCcsXG4gICAgICBtdWx0aXNpZ1R5cGU6ICdvbmNoYWluJyxcbiAgICAgIGtleXMsXG4gICAgfSkucmVzdWx0KCk7XG4gICAgcmV0dXJuIG5ldyBXYWxsZXQodGhpcy5iaXRnbywgY29pbiwgcmVzcG9uc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRTUyB3YWxsZXQgbWludDogZGVjcnlwdCB0aGUgdXNlciByb290IGJsb2IsIHJ1biB0aGUgdXNlci9CaXRHbyBoYXJkLWRlcml2ZVxuICAgKiBjZXJlbW9ueSwgcmVnaXN0ZXIgdGhlIG9yZGVyZWQgY2hpbGQgZG9jdW1lbnRzLCB0aGVuIG1pbnQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVRzc1dhbGxldEluU2FmZShcbiAgICBjb2luOiBJQmFzZUNvaW4sXG4gICAgdXNlclJvb3RJZDogc3RyaW5nLFxuICAgIGJhY2t1cFJvb3RJZDogc3RyaW5nLFxuICAgIGJpdGdvUm9vdElkOiBzdHJpbmcsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBwYXJhbXM6IENyZWF0ZVNhZmVXYWxsZXRPcHRpb25zXG4gICk6IFByb21pc2U8V2FsbGV0PiB7XG4gICAgY29uc3Qga2V5Y2hhaW5zID0gY29pbi5rZXljaGFpbnMoKTtcbiAgICBjb25zdCB1c2VyUm9vdEtleWNoYWluID0gYXdhaXQga2V5Y2hhaW5zLmdldCh7IGlkOiB1c2VyUm9vdElkIH0pO1xuICAgIGlmICh1c2VyUm9vdEtleWNoYWluLnNvdXJjZSAhPT0gJ3VzZXInKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFJvb3RLZXljaGFpblNvdXJjZUVycm9yKHVzZXJSb290S2V5Y2hhaW4uaWQsIHVzZXJSb290S2V5Y2hhaW4uc291cmNlKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyUm9vdFBydiA9IGF3YWl0IGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkodGhpcy5iaXRnbywgdXNlclJvb3RLZXljaGFpbiwgcGFyYW1zLnBhc3NwaHJhc2UpO1xuICAgIGlmICghdXNlclJvb3RQcnYpIHtcbiAgICAgIHRocm93IG5ldyBJbmNvcnJlY3RQYXNzd29yZEVycm9yKCk7XG4gICAgfVxuICAgIGNvbnN0IHVzZXJSb290TWF0ZXJpYWwgPSBFQ0RTQVV0aWxzLnBhcnNlVnJmS2V5RW52ZWxvcGVzKHVzZXJSb290UHJ2KTtcblxuICAgIGNvbnN0IHRzc1V0aWxzID0gbmV3IEVDRFNBVXRpbHMuRWNkc2FWcmZNUEN2MlV0aWxzKHRoaXMuYml0Z28sIGNvaW4pO1xuICAgIGNvbnN0IHsgdXNlcktleWNoYWluLCBiYWNrdXBLZXljaGFpbiB9ID0gYXdhaXQgdHNzVXRpbHMuY3JlYXRlU2FmZUNoaWxkS2V5Y2hhaW5zKHtcbiAgICAgIHBhc3NwaHJhc2U6IHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgICAgZW50ZXJwcmlzZTogdGhpcy5lbnRlcnByaXNlSWQoKSxcbiAgICAgIHNhZmVJZDogdGhpcy5pZCgpLFxuICAgICAgcGFyZW50S2V5SWQ6IGJpdGdvUm9vdElkLFxuICAgICAgZGVyaXZhdGlvbkluZGV4OiBpbmRleCxcbiAgICAgIHVzZXJSb290S2V5SWQ6IHVzZXJSb290SWQsXG4gICAgICBiYWNrdXBSb290S2V5SWQ6IGJhY2t1cFJvb3RJZCxcbiAgICAgIHVzZXJSb290S2V5U2hhcmU6IHVzZXJSb290TWF0ZXJpYWwuc2lnbmluZyxcbiAgICAgIHVzZXJSb290VnJmS2V5U2hhcmU6IHVzZXJSb290TWF0ZXJpYWwudnJmLFxuICAgIH0pO1xuICAgIGlmICh1c2VyS2V5Y2hhaW4uaWQubGVuZ3RoID09PSAwIHx8IGJhY2t1cEtleWNoYWluLmlkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzYWZlIGNoaWxkIGtleSByZWdpc3RyYXRpb24gcmV0dXJuZWQgYW4gZW1wdHkgaWQnKTtcbiAgICB9XG4gICAgY29uc3Qga2V5czogW3N0cmluZywgc3RyaW5nXSA9IFt1c2VyS2V5Y2hhaW4uaWQsIGJhY2t1cEtleWNoYWluLmlkXTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdFdpdGhDb2RlYyh0aGlzLmJpdGdvLCB0aGlzLnVybCgnL3dhbGxldHMnKSwgQ3JlYXRlV2FsbGV0SW5TYWZlQm9keSwge1xuICAgICAgY29pbjogcGFyYW1zLmNvaW4sXG4gICAgICBsYWJlbDogcGFyYW1zLmxhYmVsLFxuICAgICAgdHlwZTogJ2hvdCcsXG4gICAgICBtdWx0aXNpZ1R5cGU6ICd0c3MnLFxuICAgICAga2V5cyxcbiAgICB9KS5yZXN1bHQoKTtcbiAgICByZXR1cm4gbmV3IFdhbGxldCh0aGlzLmJpdGdvLCBjb2luLCByZXNwb25zZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZldGNoU2FmZURhdGEoKTogUHJvbWlzZTxTYWZlRGF0YT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy51cmwoKSkucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZVdpdGhDb2RlYyhTYWZlRGF0YSwgcmVzcG9uc2UsICdTYWZlRGF0YScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG1lbWJlciB0byB0aGUgd2hvbGUgc2FmZSAodmlldy9hZG1pbi9zcGVuZCkuIFNwZW5kIG9wZW5zIGEga2V5IHNoYXJlLlxuICAgKi9cbiAgYXN5bmMgYWRkTWVtYmVyKHBhcmFtczogQWRkU2FmZU1lbWJlck9wdGlvbnMpOiBQcm9taXNlPFNhZmVEYXRhPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTYWZlLmFkZE1lbWJlciBpcyBub3QgeWV0IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogU2hhcmUgT05FIHNhZmUgd2FsbGV0IHdpdGggYSBub24tbWVtYmVyIHZpYSB0aGUgZXhpc3Rpbmcgd2FsbGV0LXNoYXJlIGhhbmRzaGFrZS5cbiAgICovXG4gIGFzeW5jIGFkZE1lbWJlclRvV2FsbGV0KHBhcmFtczogQWRkU2FmZVdhbGxldE1lbWJlck9wdGlvbnMpOiBQcm9taXNlPFdhbGxldFNoYXJlRGF0YT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignU2FmZS5hZGRNZW1iZXJUb1dhbGxldCBpcyBub3QgeWV0IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCB0aGUgc2FmZSBrZXkgc2hhcmVzIHZpc2libGUgdG8gdGhlIGNhbGxlci5cbiAgICovXG4gIGFzeW5jIGxpc3RTaGFyZXMocGFyYW1zOiB7IHN0YXRlPzogU2FmZVNoYXJlU3RhdGUgfSA9IHt9KTogUHJvbWlzZTxTYWZlU2hhcmVEYXRhW10+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NhZmUubGlzdFNoYXJlcyBpcyBub3QgeWV0IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXB0IGEgc2FmZSBrZXkgc2hhcmUgYWRkcmVzc2VkIHRvIHRoZSBjYWxsZXIuXG4gICAqL1xuICBhc3luYyBhY2NlcHRTaGFyZShwYXJhbXM6IEFjY2VwdFNhZmVTaGFyZU9wdGlvbnMpOiBQcm9taXNlPFNhZmVTaGFyZURhdGE+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NhZmUuYWNjZXB0U2hhcmUgaXMgbm90IHlldCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZyZWV6ZSB0aGUgc2FmZSDigJQgYmxvY2tzIHdpdGhkcmF3YWxzIG9uIGFsbCBzYWZlIHdhbGxldHMuIFNhZmUgc3RheXMgJ2FjdGl2ZScuXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIGZyZWV6ZShwYXJhbXM6IEZyZWV6ZVNhZmVCb2R5ID0ge30pOiBQcm9taXNlPFNhZmVEYXRhPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBwb3N0V2l0aENvZGVjKHRoaXMuYml0Z28sIHRoaXMudXJsKCcvZnJlZXplJyksIEZyZWV6ZVNhZmVCb2R5LCBwYXJhbXMpLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVXaXRoQ29kZWMoU2FmZURhdGEsIHJlc3BvbnNlLCAnU2FmZURhdGEnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcmNoaXZlIHRoZSBzYWZlLiBSZXF1aXJlcyBldmVyeSBzYWZlIHdhbGxldCB0byBhbHJlYWR5IGJlIGFyY2hpdmVkOyBhbHNvIHRoZSBhYmFuZG9ubWVudFxuICAgKiBwYXRoIGZvciBhIHN0dWNrICdpbml0aWFsaXppbmcnIHNhZmUuXG4gICAqL1xuICBhc3luYyBhcmNoaXZlKCk6IFByb21pc2U8U2FmZURhdGE+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z28ucG9zdCh0aGlzLnVybCgnL2FyY2hpdmUnKSkuc2VuZCgpLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVXaXRoQ29kZWMoU2FmZURhdGEsIHJlc3BvbnNlLCAnU2FmZURhdGEnKTtcbiAgfVxuXG4gIHRvSlNPTigpOiBTYWZlRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX3NhZmU7XG4gIH1cbn1cbiJdfQ==
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9zYWZlL3NhZmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7O0dBS0c7QUFDSCx5Q0FBMkI7QUFDM0Isc0RBQWdIO0FBQ2hILGlEQUFzRDtBQUd0RCxzQ0FBbUQ7QUFDbkQsMENBQXdEO0FBQ3hELG9DQUFzQztBQUN0Qyw0Q0FBOEQ7QUFDOUQsMERBQXVEO0FBQ3ZELHNDQUFtQztBQUNuQyx5REFBd0U7QUFVeEUscURBSTBCO0FBRTFCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyxDQUFDO0FBRUgsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hDLElBQUksRUFBRSxlQUFlO0lBQ3JCLEtBQUssRUFBRSxJQUFBLG1CQUFVLEVBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztDQUNwRCxDQUFDLENBQUM7QUFFSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNkLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNmLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUN0QixZQUFZLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDMUIsQ0FBQztJQUNGLHlEQUF5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QUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdFLE9BQU8sSUFBQSx3QkFBZSxFQUFDLHVCQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQTdPRCxvQkE2T0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICpcbiAqIEBleHBlcmltZW50YWwgVGhlIHNhZmUgY2xpZW50IHN1cmZhY2UgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgY2hhbmdlIChpbmNsdWRpbmcgYnJlYWtpbmdcbiAqIGNoYW5nZXMpIGJlZm9yZSB0aGUgcHVibGljIHJlbGVhc2UuXG4gKi9cbmltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgRnJlZXplU2FmZUJvZHksIFNhZmVEYXRhLCBTYWZlU2hhcmVEYXRhLCBTYWZlU2hhcmVTdGF0ZSwgdHlwZSBSb290S2V5VHlwZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgY29pbnMsIEtleUN1cnZlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBJQmFzZUNvaW4gfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSW5jb3JyZWN0UGFzc3dvcmRFcnJvciB9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQgeyBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5IH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgRUNEU0FVdGlscyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGJvdW5kZWRJbnQsIGRlY29kZVdpdGhDb2RlYyB9IGZyb20gJy4uL3V0aWxzL2NvZGVjcyc7XG5pbXBvcnQgeyBwb3N0V2l0aENvZGVjIH0gZnJvbSAnLi4vdXRpbHMvcG9zdFdpdGhDb2RlYyc7XG5pbXBvcnQgeyBXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnO1xuaW1wb3J0IHsgSW52YWxpZFJvb3RLZXljaGFpblNvdXJjZUVycm9yIH0gZnJvbSAnLi4vd2FsbGV0L3NhZmVLZXljaGFpbic7XG5pbXBvcnQge1xuICBBY2NlcHRTYWZlU2hhcmVPcHRpb25zLFxuICBBZGRTYWZlTWVtYmVyT3B0aW9ucyxcbiAgQWRkU2FmZVdhbGxldE1lbWJlck9wdGlvbnMsXG4gIENyZWF0ZVNhZmVXYWxsZXRPcHRpb25zLFxuICBJU2FmZSxcbiAgVXBkYXRlU2FmZU9wdGlvbnMsXG4gIFdhbGxldFNoYXJlRGF0YSxcbn0gZnJvbSAnLi9pU2FmZSc7XG5pbXBvcnQge1xuICBkZXJpdmVBbmRTZWxmQ2hlY2tTYWZlQ2hpbGRIYXJkZW5lZCxcbiAgZGVyaXZlU2FmZUNoaWxkRWQyNTUxOUhhcmRlbmVkLFxuICBEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGgsXG59IGZyb20gJy4vc2FmZURlcml2YXRpb24nO1xuXG5jb25zdCBTYWZlUm9vdEtleVNsb3QgPSB0LmtleW9mKHtcbiAgc2VjcDI1NmsxTXVsdGlzaWc6IG51bGwsXG4gIGVjZHNhTXBjOiBudWxsLFxuICBlZGRzYU1wYzogbnVsbCxcbiAgZWQyNTUxOU11bHRpc2lnOiBudWxsLFxufSk7XG5cbmNvbnN0IEdldERlcml2YXRpb25JbmRleFJlc3BvbnNlID0gdC50eXBlKHtcbiAgc2xvdDogU2FmZVJvb3RLZXlTbG90LFxuICBpbmRleDogYm91bmRlZEludCgwLCAweDdmZmZmZmZmLCAnZGVyaXZhdGlvbkluZGV4JyksXG59KTtcblxuY29uc3QgQ3JlYXRlV2FsbGV0SW5TYWZlQm9keSA9IHQudW5pb24oW1xuICB0LnN0cmljdCh7XG4gICAgY29pbjogdC5zdHJpbmcsXG4gICAgbGFiZWw6IHQuc3RyaW5nLFxuICAgIHR5cGU6IHQubGl0ZXJhbCgnaG90JyksXG4gICAgbXVsdGlzaWdUeXBlOiB0LmxpdGVyYWwoJ29uY2hhaW4nKSxcbiAgICBrZXlzOiB0LnR1cGxlKFt0LnN0cmluZ10pLFxuICB9KSxcbiAgLy8gVFNTIG1pbnQgdXNlcyBvcmRlcmVkIHVzZXIgYW5kIGJhY2t1cCBjaGlsZCBkb2N1bWVudHMuXG4gIHQuc3RyaWN0KHtcbiAgICBjb2luOiB0LnN0cmluZyxcbiAgICBsYWJlbDogdC5zdHJpbmcsXG4gICAgdHlwZTogdC5saXRlcmFsKCdob3QnKSxcbiAgICBtdWx0aXNpZ1R5cGU6IHQubGl0ZXJhbCgndHNzJyksXG4gICAga2V5czogdC50dXBsZShbdC5zdHJpbmcsIHQuc3RyaW5nLCB0LnN0cmluZ10pLFxuICB9KSxcbl0pO1xuXG5mdW5jdGlvbiBvbmNoYWluU2xvdEZvckNvaW4oY29pbjogSUJhc2VDb2luKTogRXh0cmFjdDxSb290S2V5VHlwZSwgJ3NlY3AyNTZrMU11bHRpc2lnJyB8ICdlZDI1NTE5TXVsdGlzaWcnPiB7XG4gIGlmIChjb2luLmdldERlZmF1bHRNdWx0aXNpZ1R5cGUoKSA9PT0gJ3RzcycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01QQyBzYWZlIHdhbGxldCBtaW50aW5nIHJlcXVpcmVzIG11bHRpc2lnVHlwZSBcInRzc1wiOyB1c2UgXCJvbmNoYWluXCIgZm9yIG5vbi1NUEMgbWludGluZycpO1xuICB9XG4gIGNvbnN0IGN1cnZlID0gY29pbnMuZ2V0KGNvaW4uZ2V0Q2hhaW4oKSkucHJpbWFyeUtleUN1cnZlO1xuICBpZiAoY3VydmUgPT09IEtleUN1cnZlLlNlY3AyNTZrMSkge1xuICAgIHJldHVybiAnc2VjcDI1NmsxTXVsdGlzaWcnO1xuICB9XG4gIGlmIChjdXJ2ZSA9PT0gS2V5Q3VydmUuRWQyNTUxOSkge1xuICAgIHJldHVybiAnZWQyNTUxOU11bHRpc2lnJztcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYENvaW4gJyR7Y29pbi5nZXRDaGFpbigpfScgaXMgbm90IHN1cHBvcnRlZCBmb3Igc2FmZSB3YWxsZXQgbWludGluZ2ApO1xufVxuXG5mdW5jdGlvbiB0c3NTbG90Rm9yQ29pbihjb2luOiBJQmFzZUNvaW4pOiBFeHRyYWN0PFJvb3RLZXlUeXBlLCAnZWNkc2FNcGMnPiB7XG4gIGlmIChjb2luLmdldERlZmF1bHRNdWx0aXNpZ1R5cGUoKSAhPT0gJ3RzcycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvaW4gJyR7Y29pbi5nZXRDaGFpbigpfScgaXMgbm90IGEgVFNTIGNvaW47IGNhbm5vdCBtaW50IGEgdHNzIHNhZmUgd2FsbGV0IGZvciBpdGApO1xuICB9XG4gIGNvbnN0IGN1cnZlID0gY29pbnMuZ2V0KGNvaW4uZ2V0Q2hhaW4oKSkucHJpbWFyeUtleUN1cnZlO1xuICBpZiAoY3VydmUgPT09IEtleUN1cnZlLlNlY3AyNTZrMSkge1xuICAgIHJldHVybiAnZWNkc2FNcGMnO1xuICB9XG4gIGlmIChjdXJ2ZSA9PT0gS2V5Q3VydmUuRWQyNTUxOSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZWQyNTUxOSBNUEMgc2FmZSB3YWxsZXQgbWludGluZyBpcyBub3QgeWV0IHN1cHBvcnRlZCcpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgQ29pbiAnJHtjb2luLmdldENoYWluKCl9JyBpcyBub3Qgc3VwcG9ydGVkIGZvciBzYWZlIHdhbGxldCBtaW50aW5nYCk7XG59XG5cbmZ1bmN0aW9uIHJvb3RJZEZyb21TYWZlKHNhZmU6IFNhZmVEYXRhLCBzbG90OiBSb290S2V5VHlwZSwgcG9zaXRpb246IDAgfCAxIHwgMik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHRyaXBsZXQgPSBzYWZlLnJvb3RLZXlzPy5ob3Q/LltzbG90XTtcbiAgaWYgKCF0cmlwbGV0IHx8IHRyaXBsZXQubGVuZ3RoICE9PSAzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByb290SWQgPSB0cmlwbGV0W3Bvc2l0aW9uXTtcbiAgcmV0dXJuIHJvb3RJZC5sZW5ndGggPiAwID8gcm9vdElkIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNhZmUgaW1wbGVtZW50cyBJU2FmZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYml0Z286IEJpdEdvQmFzZTtcbiAgcHVibGljIHJlYWRvbmx5IF9zYWZlOiBTYWZlRGF0YTtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzYWZlRGF0YTogU2FmZURhdGEpIHtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gICAgdGhpcy5fc2FmZSA9IHNhZmVEYXRhO1xuICB9XG5cbiAgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc2FmZS5pZDtcbiAgfVxuXG4gIGVudGVycHJpc2VJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zYWZlLmVudGVycHJpc2VJZDtcbiAgfVxuXG4gIGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NhZmUubGFiZWw7XG4gIH1cblxuICBzdGF0dXMoKTogU2FmZURhdGFbJ3N0YXR1cyddIHtcbiAgICByZXR1cm4gdGhpcy5fc2FmZS5zdGF0dXM7XG4gIH1cblxuICAvKipcbiAgICogRW50ZXJwcmlzZS1zY29wZWQgdjIgVVJMIGZvciB0aGlzIHNhZmUsIGUuZy4gL2FwaS92Mi9lbnRlcnByaXNlLzplSWQvc2FmZXMvOnNhZmVJZFxuICAgKiBAcGFyYW0gZXh0cmFcbiAgICovXG4gIHVybChleHRyYSA9ICcnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5iaXRnby51cmwoYC9lbnRlcnByaXNlLyR7dGhpcy5lbnRlcnByaXNlSWQoKX0vc2FmZXMvJHt0aGlzLmlkKCl9JHtleHRyYX1gLCAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNaW50IGEgY2hpbGQgd2FsbGV0OiBwZWVrIHRoZSBzZXF1ZW50aWFsIGluZGV4LCBkZXJpdmUgdGhlIGNoaWxkIGtleXMsIHJlZ2lzdGVyXG4gICAqIHRoZW0sIHRoZW4gbWludC5cbiAgICpcbiAgICogYG9uY2hhaW5gOiBoYXJkZW5lZC1kZXJpdmUgdGhlIHVzZXIgY2hpbGQgKGBtLzxpbmRleD4nYCksIHJlZ2lzdGVyIGl0XG4gICAqIHB1YmxpYy1vbmx5OyBiYWNrdXAgYW5kIEJpdEdvIGNoaWxkcmVuIGFyZSBzb2Z0LWRlcml2ZWQgb24gdGhlIHNlcnZlci5cbiAgICpcbiAgICogYHRzc2A6IGRlY3J5cHQgdGhlIHVzZXIgcm9vdCBibG9iLCBydW4gdGhlIHVzZXIvQml0R28gaGFyZC1kZXJpdmUgY2VyZW1vbnksXG4gICAqIHJlZ2lzdGVyIHRoZSBvcmRlcmVkIGNoaWxkIGRvY3VtZW50cywgdGhlbiBtaW50LlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlV2FsbGV0KHBhcmFtczogQ3JlYXRlU2FmZVdhbGxldE9wdGlvbnMpOiBQcm9taXNlPFdhbGxldD4ge1xuICAgIGlmIChwYXJhbXMucGFzc3BocmFzZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncGFzc3BocmFzZSBpcyByZXF1aXJlZCB0byBtaW50IGEgc2FmZSB3YWxsZXQnKTtcbiAgICB9XG4gICAgaWYgKHBhcmFtcy50eXBlICE9PSB1bmRlZmluZWQgJiYgcGFyYW1zLnR5cGUgIT09ICdob3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NhZmUgd2FsbGV0cyBhcmUgaG90LW9ubHkgaW4gdjEnKTtcbiAgICB9XG4gICAgY29uc3QgaXNUc3MgPSBwYXJhbXMubXVsdGlzaWdUeXBlID09PSAndHNzJztcblxuICAgIGNvbnN0IGNvaW4gPSB0aGlzLmJpdGdvLmNvaW4ocGFyYW1zLmNvaW4pO1xuICAgIGNvbnN0IHNsb3QgPSBpc1RzcyA/IHRzc1Nsb3RGb3JDb2luKGNvaW4pIDogb25jaGFpblNsb3RGb3JDb2luKGNvaW4pO1xuXG4gICAgY29uc3QgaW5kZXhSZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMudXJsKCcvZGVyaXZhdGlvbi1pbmRleCcpKS5xdWVyeSh7IHNsb3QgfSkucmVzdWx0KCk7XG4gICAgY29uc3QgcGVla2VkID0gZGVjb2RlV2l0aENvZGVjKEdldERlcml2YXRpb25JbmRleFJlc3BvbnNlLCBpbmRleFJlc3BvbnNlLCAnR2V0RGVyaXZhdGlvbkluZGV4UmVzcG9uc2UnKTtcbiAgICBpZiAocGVla2VkLnNsb3QgIT09IHNsb3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZGVyaXZhdGlvbi1pbmRleCByZXR1cm5lZCBzbG90ICcke3BlZWtlZC5zbG90fScsIGV4cGVjdGVkICcke3Nsb3R9J2ApO1xuICAgIH1cbiAgICBjb25zdCB7IGluZGV4IH0gPSBwZWVrZWQ7XG5cbiAgICBjb25zdCBzYWZlRGF0YSA9IHJvb3RJZEZyb21TYWZlKHRoaXMuX3NhZmUsIHNsb3QsIDApICE9PSB1bmRlZmluZWQgPyB0aGlzLl9zYWZlIDogYXdhaXQgdGhpcy5mZXRjaFNhZmVEYXRhKCk7XG4gICAgY29uc3QgdXNlclJvb3RJZCA9IHJvb3RJZEZyb21TYWZlKHNhZmVEYXRhLCBzbG90LCAwKTtcbiAgICBpZiAodXNlclJvb3RJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNhZmUgJHt0aGlzLmlkKCl9IGlzIG1pc3Npbmcgcm9vdEtleXMuaG90LiR7c2xvdH1gKTtcbiAgICB9XG5cbiAgICBpZiAoaXNUc3MpIHtcbiAgICAgIGNvbnN0IGJhY2t1cFJvb3RJZCA9IHJvb3RJZEZyb21TYWZlKHNhZmVEYXRhLCBzbG90LCAxKTtcbiAgICAgIGNvbnN0IGJpdGdvUm9vdElkID0gcm9vdElkRnJvbVNhZmUoc2FmZURhdGEsIHNsb3QsIDIpO1xuICAgICAgaWYgKGJhY2t1cFJvb3RJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU2FmZSAke3RoaXMuaWQoKX0gaXMgbWlzc2luZyByb290S2V5cy5ob3QuJHtzbG90fSBiYWNrdXAga2V5YCk7XG4gICAgICB9XG4gICAgICBpZiAoYml0Z29Sb290SWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNhZmUgJHt0aGlzLmlkKCl9IGlzIG1pc3Npbmcgcm9vdEtleXMuaG90LiR7c2xvdH0gYml0Z28ga2V5YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVUc3NXYWxsZXRJblNhZmUoY29pbiwgdXNlclJvb3RJZCwgYmFja3VwUm9vdElkLCBiaXRnb1Jvb3RJZCwgaW5kZXgsIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5Y2hhaW5zID0gY29pbi5rZXljaGFpbnMoKTtcbiAgICBjb25zdCByb290S2V5Y2hhaW4gPSBhd2FpdCBrZXljaGFpbnMuZ2V0KHsgaWQ6IHVzZXJSb290SWQgfSk7XG4gICAgaWYgKHJvb3RLZXljaGFpbi5zb3VyY2UgIT09ICd1c2VyJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRSb290S2V5Y2hhaW5Tb3VyY2VFcnJvcihyb290S2V5Y2hhaW4uaWQsIHJvb3RLZXljaGFpbi5zb3VyY2UpO1xuICAgIH1cbiAgICBjb25zdCByb290UHJ2ID0gYXdhaXQgZGVjcnlwdEtleWNoYWluUHJpdmF0ZUtleSh0aGlzLmJpdGdvLCByb290S2V5Y2hhaW4sIHBhcmFtcy5wYXNzcGhyYXNlKTtcbiAgICBpZiAoIXJvb3RQcnYpIHtcbiAgICAgIHRocm93IG5ldyBJbmNvcnJlY3RQYXNzd29yZEVycm9yKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVyaXZlZCA9XG4gICAgICBzbG90ID09PSAnZWQyNTUxOU11bHRpc2lnJ1xuICAgICAgICA/IGRlcml2ZVNhZmVDaGlsZEVkMjU1MTlIYXJkZW5lZChyb290UHJ2LCBpbmRleClcbiAgICAgICAgOiBkZXJpdmVBbmRTZWxmQ2hlY2tTYWZlQ2hpbGRIYXJkZW5lZChyb290UHJ2LCBpbmRleCk7XG4gICAgY29uc3QgZGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoID0gZGVjb2RlV2l0aENvZGVjKFxuICAgICAgRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoLFxuICAgICAgZGVyaXZlZC5kZXJpdmF0aW9uUGF0aCxcbiAgICAgICdkZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGgnXG4gICAgKTtcblxuICAgIGNvbnN0IGNoaWxkID0gYXdhaXQga2V5Y2hhaW5zLmFkZCh7XG4gICAgICBwdWI6IGRlcml2ZWQucHViLFxuICAgICAgc291cmNlOiAndXNlcicsXG4gICAgICBrZXlUeXBlOiAnaW5kZXBlbmRlbnQnLFxuICAgICAgcGFyZW50OiB1c2VyUm9vdElkLFxuICAgICAgc2FmZUlkOiB0aGlzLmlkKCksXG4gICAgICBkZXJpdmVkRnJvbVBhcmVudFdpdGhQYXRoOiBkZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGgsXG4gICAgfSk7XG4gICAgY29uc3QgY2hpbGRJZCA9IGNoaWxkLmlkO1xuICAgIGlmIChjaGlsZElkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzYWZlIGNoaWxkIGtleSByZWdpc3RyYXRpb24gcmV0dXJuZWQgYW4gZW1wdHkgaWQnKTtcbiAgICB9XG4gICAgY29uc3Qga2V5czogW3N0cmluZ10gPSBbY2hpbGRJZF07XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBvc3RXaXRoQ29kZWModGhpcy5iaXRnbywgdGhpcy51cmwoJy93YWxsZXRzJyksIENyZWF0ZVdhbGxldEluU2FmZUJvZHksIHtcbiAgICAgIGNvaW46IHBhcmFtcy5jb2luLFxuICAgICAgbGFiZWw6IHBhcmFtcy5sYWJlbCxcbiAgICAgIHR5cGU6ICdob3QnLFxuICAgICAgbXVsdGlzaWdUeXBlOiAnb25jaGFpbicsXG4gICAgICBrZXlzLFxuICAgIH0pLnJlc3VsdCgpO1xuICAgIHJldHVybiBuZXcgV2FsbGV0KHRoaXMuYml0Z28sIGNvaW4sIHJlc3BvbnNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUU1Mgd2FsbGV0IG1pbnQ6IGRlY3J5cHQgdGhlIHVzZXIgcm9vdCBibG9iLCBydW4gdGhlIHVzZXIvQml0R28gaGFyZC1kZXJpdmVcbiAgICogY2VyZW1vbnksIHJlZ2lzdGVyIHRoZSBvcmRlcmVkIGNoaWxkIGRvY3VtZW50cywgdGhlbiBtaW50LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVUc3NXYWxsZXRJblNhZmUoXG4gICAgY29pbjogSUJhc2VDb2luLFxuICAgIHVzZXJSb290SWQ6IHN0cmluZyxcbiAgICBiYWNrdXBSb290SWQ6IHN0cmluZyxcbiAgICBiaXRnb1Jvb3RJZDogc3RyaW5nLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgcGFyYW1zOiBDcmVhdGVTYWZlV2FsbGV0T3B0aW9uc1xuICApOiBQcm9taXNlPFdhbGxldD4ge1xuICAgIGNvbnN0IGtleWNoYWlucyA9IGNvaW4ua2V5Y2hhaW5zKCk7XG4gICAgY29uc3QgdXNlclJvb3RLZXljaGFpbiA9IGF3YWl0IGtleWNoYWlucy5nZXQoeyBpZDogdXNlclJvb3RJZCB9KTtcbiAgICBpZiAodXNlclJvb3RLZXljaGFpbi5zb3VyY2UgIT09ICd1c2VyJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRSb290S2V5Y2hhaW5Tb3VyY2VFcnJvcih1c2VyUm9vdEtleWNoYWluLmlkLCB1c2VyUm9vdEtleWNoYWluLnNvdXJjZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdXNlclJvb3RQcnYgPSBhd2FpdCBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5KHRoaXMuYml0Z28sIHVzZXJSb290S2V5Y2hhaW4sIHBhcmFtcy5wYXNzcGhyYXNlKTtcbiAgICBpZiAoIXVzZXJSb290UHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgSW5jb3JyZWN0UGFzc3dvcmRFcnJvcigpO1xuICAgIH1cbiAgICBjb25zdCB1c2VyUm9vdE1hdGVyaWFsID0gRUNEU0FVdGlscy5wYXJzZVZyZktleUVudmVsb3Blcyh1c2VyUm9vdFBydik7XG5cbiAgICBjb25zdCB0c3NVdGlscyA9IG5ldyBFQ0RTQVV0aWxzLkVjZHNhVnJmTVBDdjJVdGlscyh0aGlzLmJpdGdvLCBjb2luKTtcbiAgICBjb25zdCB7IHVzZXJLZXljaGFpbiwgYmFja3VwS2V5Y2hhaW4sIGJpdGdvS2V5Y2hhaW4gfSA9IGF3YWl0IHRzc1V0aWxzLmNyZWF0ZVNhZmVDaGlsZEtleWNoYWlucyh7XG4gICAgICBwYXNzcGhyYXNlOiBwYXJhbXMucGFzc3BocmFzZSxcbiAgICAgIGVudGVycHJpc2U6IHRoaXMuZW50ZXJwcmlzZUlkKCksXG4gICAgICBzYWZlSWQ6IHRoaXMuaWQoKSxcbiAgICAgIHBhcmVudEtleUlkOiBiaXRnb1Jvb3RJZCxcbiAgICAgIGRlcml2YXRpb25JbmRleDogaW5kZXgsXG4gICAgICB1c2VyUm9vdEtleUlkOiB1c2VyUm9vdElkLFxuICAgICAgYmFja3VwUm9vdEtleUlkOiBiYWNrdXBSb290SWQsXG4gICAgICB1c2VyUm9vdEtleVNoYXJlOiB1c2VyUm9vdE1hdGVyaWFsLnNpZ25pbmcsXG4gICAgICB1c2VyUm9vdFZyZktleVNoYXJlOiB1c2VyUm9vdE1hdGVyaWFsLnZyZixcbiAgICB9KTtcbiAgICBpZiAodXNlcktleWNoYWluLmlkLmxlbmd0aCA9PT0gMCB8fCBiYWNrdXBLZXljaGFpbi5pZC5sZW5ndGggPT09IDAgfHwgYml0Z29LZXljaGFpbi5pZC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc2FmZSBjaGlsZCBrZXkgcmVnaXN0cmF0aW9uIHJldHVybmVkIGFuIGVtcHR5IGlkJyk7XG4gICAgfVxuICAgIGNvbnN0IGtleXM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSA9IFt1c2VyS2V5Y2hhaW4uaWQsIGJhY2t1cEtleWNoYWluLmlkLCBiaXRnb0tleWNoYWluLmlkXTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdFdpdGhDb2RlYyh0aGlzLmJpdGdvLCB0aGlzLnVybCgnL3dhbGxldHMnKSwgQ3JlYXRlV2FsbGV0SW5TYWZlQm9keSwge1xuICAgICAgY29pbjogcGFyYW1zLmNvaW4sXG4gICAgICBsYWJlbDogcGFyYW1zLmxhYmVsLFxuICAgICAgdHlwZTogJ2hvdCcsXG4gICAgICBtdWx0aXNpZ1R5cGU6ICd0c3MnLFxuICAgICAga2V5cyxcbiAgICB9KS5yZXN1bHQoKTtcbiAgICByZXR1cm4gbmV3IFdhbGxldCh0aGlzLmJpdGdvLCBjb2luLCByZXNwb25zZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZldGNoU2FmZURhdGEoKTogUHJvbWlzZTxTYWZlRGF0YT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy51cmwoKSkucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZVdpdGhDb2RlYyhTYWZlRGF0YSwgcmVzcG9uc2UsICdTYWZlRGF0YScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG1lbWJlciB0byB0aGUgd2hvbGUgc2FmZSAodmlldy9hZG1pbi9zcGVuZCkuIFNwZW5kIG9wZW5zIGEga2V5IHNoYXJlLlxuICAgKi9cbiAgYXN5bmMgYWRkTWVtYmVyKHBhcmFtczogQWRkU2FmZU1lbWJlck9wdGlvbnMpOiBQcm9taXNlPFNhZmVEYXRhPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTYWZlLmFkZE1lbWJlciBpcyBub3QgeWV0IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogU2hhcmUgT05FIHNhZmUgd2FsbGV0IHdpdGggYSBub24tbWVtYmVyIHZpYSB0aGUgZXhpc3Rpbmcgd2FsbGV0LXNoYXJlIGhhbmRzaGFrZS5cbiAgICovXG4gIGFzeW5jIGFkZE1lbWJlclRvV2FsbGV0KHBhcmFtczogQWRkU2FmZVdhbGxldE1lbWJlck9wdGlvbnMpOiBQcm9taXNlPFdhbGxldFNoYXJlRGF0YT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignU2FmZS5hZGRNZW1iZXJUb1dhbGxldCBpcyBub3QgeWV0IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCB0aGUgc2FmZSBrZXkgc2hhcmVzIHZpc2libGUgdG8gdGhlIGNhbGxlci5cbiAgICovXG4gIGFzeW5jIGxpc3RTaGFyZXMocGFyYW1zOiB7IHN0YXRlPzogU2FmZVNoYXJlU3RhdGUgfSA9IHt9KTogUHJvbWlzZTxTYWZlU2hhcmVEYXRhW10+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NhZmUubGlzdFNoYXJlcyBpcyBub3QgeWV0IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXB0IGEgc2FmZSBrZXkgc2hhcmUgYWRkcmVzc2VkIHRvIHRoZSBjYWxsZXIuXG4gICAqL1xuICBhc3luYyBhY2NlcHRTaGFyZShwYXJhbXM6IEFjY2VwdFNhZmVTaGFyZU9wdGlvbnMpOiBQcm9taXNlPFNhZmVTaGFyZURhdGE+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NhZmUuYWNjZXB0U2hhcmUgaXMgbm90IHlldCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgc2FmZSBsYWJlbC5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZShwYXJhbXM6IFVwZGF0ZVNhZmVPcHRpb25zKTogUHJvbWlzZTxTYWZlRGF0YT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnby5wdXQodGhpcy51cmwoKSkuc2VuZCh7IGxhYmVsOiBwYXJhbXMubGFiZWwgfSkucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZVdpdGhDb2RlYyhTYWZlRGF0YSwgcmVzcG9uc2UsICdTYWZlRGF0YScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZyZWV6ZSB0aGUgc2FmZSDigJQgYmxvY2tzIHdpdGhkcmF3YWxzIG9uIGFsbCBzYWZlIHdhbGxldHMuIFNhZmUgc3RheXMgJ2FjdGl2ZScuXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIGZyZWV6ZShwYXJhbXM6IEZyZWV6ZVNhZmVCb2R5ID0ge30pOiBQcm9taXNlPFNhZmVEYXRhPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBwb3N0V2l0aENvZGVjKHRoaXMuYml0Z28sIHRoaXMudXJsKCcvZnJlZXplJyksIEZyZWV6ZVNhZmVCb2R5LCBwYXJhbXMpLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVXaXRoQ29kZWMoU2FmZURhdGEsIHJlc3BvbnNlLCAnU2FmZURhdGEnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcmNoaXZlIHRoZSBzYWZlLiBSZXF1aXJlcyBldmVyeSBzYWZlIHdhbGxldCB0byBhbHJlYWR5IGJlIGFyY2hpdmVkOyBhbHNvIHRoZSBhYmFuZG9ubWVudFxuICAgKiBwYXRoIGZvciBhIHN0dWNrICdpbml0aWFsaXppbmcnIHNhZmUuXG4gICAqL1xuICBhc3luYyBhcmNoaXZlKCk6IFByb21pc2U8U2FmZURhdGE+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z28ucG9zdCh0aGlzLnVybCgnL2FyY2hpdmUnKSkuc2VuZCgpLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVXaXRoQ29kZWMoU2FmZURhdGEsIHJlc3BvbnNlLCAnU2FmZURhdGEnKTtcbiAgfVxuXG4gIHRvSlNPTigpOiBTYWZlRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX3NhZmU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -33,6 +33,7 @@ export declare class EcdsaMPCv2Utils extends BaseEcdsaUtils {
|
|
|
33
33
|
}, encryptionVersion?: EncryptionVersion, enterprise?: string, safeId?: string, child?: {
|
|
34
34
|
parentKeyId?: string;
|
|
35
35
|
index?: number;
|
|
36
|
+
hardened?: boolean;
|
|
36
37
|
}): Promise<Keychain>;
|
|
37
38
|
/**
|
|
38
39
|
* Converts a User or Backup MPCv1 SigningMaterial to RetrofitData needed by MPCv2 DKG.
|
|
@@ -70,10 +71,30 @@ export declare class EcdsaMPCv2Utils extends BaseEcdsaUtils {
|
|
|
70
71
|
xiList: number[][];
|
|
71
72
|
mpc: Ecdsa;
|
|
72
73
|
}): DklsTypes.RetrofitData;
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
protected addUserKeychain(commonKeychain: string, privateMaterial: Buffer, reducedPrivateMaterial: Buffer, passphrase: string, originalPasscodeEncryptionCode?: string, webauthnInfo?: WebauthnKeyEncryptionInfo, encryptionSession?: {
|
|
75
|
+
encrypt(plaintext: string): Promise<string>;
|
|
76
|
+
decrypt(ciphertext: string): Promise<string>;
|
|
77
|
+
destroy(): void;
|
|
78
|
+
}, encryptionVersion?: EncryptionVersion, enterprise?: string, safeId?: string, child?: {
|
|
79
|
+
parentKeyId?: string;
|
|
80
|
+
index?: number;
|
|
81
|
+
hardened?: boolean;
|
|
82
|
+
}): Promise<Keychain>;
|
|
83
|
+
protected addBackupKeychain(commonKeychain: string, privateMaterial: Buffer | undefined, reducedPrivateMaterial: Buffer | undefined, passphrase: string, originalPasscodeEncryptionCode?: string, encryptionSession?: {
|
|
84
|
+
encrypt(plaintext: string): Promise<string>;
|
|
85
|
+
decrypt(ciphertext: string): Promise<string>;
|
|
86
|
+
destroy(): void;
|
|
87
|
+
}, encryptionVersion?: EncryptionVersion, safeId?: string, child?: {
|
|
88
|
+
parentKeyId?: string;
|
|
89
|
+
index?: number;
|
|
90
|
+
hardened?: boolean;
|
|
91
|
+
}): Promise<Keychain>;
|
|
75
92
|
private getUserAndBackupSession;
|
|
76
|
-
|
|
93
|
+
protected addBitgoKeychain(commonKeychain: string, safeId?: string, child?: {
|
|
94
|
+
parentKeyId?: string;
|
|
95
|
+
index?: number;
|
|
96
|
+
hardened?: boolean;
|
|
97
|
+
}): Promise<Keychain>;
|
|
77
98
|
/**
|
|
78
99
|
* Creates ECDSA MPCv2 keychains using external signer callbacks instead of a passphrase.
|
|
79
100
|
* The external signer holds all private key material; the SDK only coordinates the DKG protocol.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAiD,SAAS,EAAa,MAAM,yBAAyB,CAAC;AAE9G,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EAEzB,eAAe,EACf,4BAA4B,EAG7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAsB,QAAQ,EAAW,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUhD,OAAO,EACL,0CAA0C,EAC1C,0CAA0C,EAC1C,0CAA0C,EAC1C,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAE1B,6BAA6B,EAE7B,SAAS,EAGV,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAA6B,MAAM,0BAA0B,CAAC;AAG7F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,qBAAa,eAAgB,SAAQ,cAAc;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAiC;IACpF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAiC;IACpF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAiC;IAEpF,kBAAkB;IACZ,eAAe,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;QACpC,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;QAEtC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8SvB,yBAAyB,CAC7B,gBAAgB,EAAE,4BAA4B,EAC9C,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,EACxB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,8BAA8B,CAAC,EAAE,MAAM,EACvC,YAAY,CAAC,EAAE,yBAAyB,EACxC,iBAAiB,CAAC,EAAE;QAClB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,IAAI,IAAI,CAAC;KACjB,EACD,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":"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"}
|