@bitgo/account-lib 2.20.0-rc.34 → 2.20.0-rc.35

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.
Files changed (102) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/src/coin/polygon/transactionBuilder.d.ts +2 -2
  3. package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -1
  4. package/dist/src/coin/polygon/transactionBuilder.js +3 -3
  5. package/dist/src/index.d.ts +2 -2
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +3 -3
  8. package/dist/tsconfig.tsbuildinfo +16621 -21866
  9. package/package.json +20 -26
  10. package/dist/src/coin/dot/addressInitializationBuilder.d.ts +0 -79
  11. package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +0 -1
  12. package/dist/src/coin/dot/addressInitializationBuilder.js +0 -182
  13. package/dist/src/coin/dot/batchTransactionBuilder.d.ts +0 -47
  14. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +0 -1
  15. package/dist/src/coin/dot/batchTransactionBuilder.js +0 -122
  16. package/dist/src/coin/dot/claimBuilder.d.ts +0 -58
  17. package/dist/src/coin/dot/claimBuilder.d.ts.map +0 -1
  18. package/dist/src/coin/dot/claimBuilder.js +0 -119
  19. package/dist/src/coin/dot/errors.d.ts +0 -8
  20. package/dist/src/coin/dot/errors.d.ts.map +0 -1
  21. package/dist/src/coin/dot/errors.js +0 -19
  22. package/dist/src/coin/dot/iface.d.ts +0 -194
  23. package/dist/src/coin/dot/iface.d.ts.map +0 -1
  24. package/dist/src/coin/dot/iface.js +0 -39
  25. package/dist/src/coin/dot/index.d.ts +0 -17
  26. package/dist/src/coin/dot/index.d.ts.map +0 -1
  27. package/dist/src/coin/dot/index.js +0 -53
  28. package/dist/src/coin/dot/keyPair.d.ts +0 -31
  29. package/dist/src/coin/dot/keyPair.d.ts.map +0 -1
  30. package/dist/src/coin/dot/keyPair.js +0 -70
  31. package/dist/src/coin/dot/singletonRegistry.d.ts +0 -7
  32. package/dist/src/coin/dot/singletonRegistry.d.ts.map +0 -1
  33. package/dist/src/coin/dot/singletonRegistry.js +0 -20
  34. package/dist/src/coin/dot/stakingBuilder.d.ts +0 -58
  35. package/dist/src/coin/dot/stakingBuilder.d.ts.map +0 -1
  36. package/dist/src/coin/dot/stakingBuilder.js +0 -139
  37. package/dist/src/coin/dot/transaction.d.ts +0 -65
  38. package/dist/src/coin/dot/transaction.d.ts.map +0 -1
  39. package/dist/src/coin/dot/transaction.js +0 -396
  40. package/dist/src/coin/dot/transactionBuilder.d.ts +0 -131
  41. package/dist/src/coin/dot/transactionBuilder.d.ts.map +0 -1
  42. package/dist/src/coin/dot/transactionBuilder.js +0 -332
  43. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +0 -26
  44. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +0 -1
  45. package/dist/src/coin/dot/transactionBuilderFactory.js +0 -93
  46. package/dist/src/coin/dot/transferBuilder.d.ts +0 -71
  47. package/dist/src/coin/dot/transferBuilder.d.ts.map +0 -1
  48. package/dist/src/coin/dot/transferBuilder.js +0 -177
  49. package/dist/src/coin/dot/txnSchema.d.ts +0 -14
  50. package/dist/src/coin/dot/txnSchema.d.ts.map +0 -1
  51. package/dist/src/coin/dot/txnSchema.js +0 -104
  52. package/dist/src/coin/dot/unnominateBuilder.d.ts +0 -24
  53. package/dist/src/coin/dot/unnominateBuilder.d.ts.map +0 -1
  54. package/dist/src/coin/dot/unnominateBuilder.js +0 -50
  55. package/dist/src/coin/dot/unstakeBuilder.d.ts +0 -38
  56. package/dist/src/coin/dot/unstakeBuilder.d.ts.map +0 -1
  57. package/dist/src/coin/dot/unstakeBuilder.js +0 -89
  58. package/dist/src/coin/dot/utils.d.ts +0 -145
  59. package/dist/src/coin/dot/utils.d.ts.map +0 -1
  60. package/dist/src/coin/dot/utils.js +0 -283
  61. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +0 -38
  62. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +0 -1
  63. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +0 -90
  64. package/dist/src/coin/hbar/coinTransferBuilder.d.ts +0 -46
  65. package/dist/src/coin/hbar/coinTransferBuilder.d.ts.map +0 -1
  66. package/dist/src/coin/hbar/coinTransferBuilder.js +0 -143
  67. package/dist/src/coin/hbar/constants.d.ts +0 -8
  68. package/dist/src/coin/hbar/constants.d.ts.map +0 -1
  69. package/dist/src/coin/hbar/constants.js +0 -12
  70. package/dist/src/coin/hbar/iface.d.ts +0 -49
  71. package/dist/src/coin/hbar/iface.d.ts.map +0 -1
  72. package/dist/src/coin/hbar/iface.js +0 -3
  73. package/dist/src/coin/hbar/index.d.ts +0 -9
  74. package/dist/src/coin/hbar/index.d.ts.map +0 -1
  75. package/dist/src/coin/hbar/index.js +0 -37
  76. package/dist/src/coin/hbar/keyPair.d.ts +0 -23
  77. package/dist/src/coin/hbar/keyPair.d.ts.map +0 -1
  78. package/dist/src/coin/hbar/keyPair.js +0 -70
  79. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +0 -38
  80. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +0 -1
  81. package/dist/src/coin/hbar/tokenAssociateBuilder.js +0 -126
  82. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts +0 -25
  83. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts.map +0 -1
  84. package/dist/src/coin/hbar/tokenTransferBuilder.js +0 -115
  85. package/dist/src/coin/hbar/transaction.d.ts +0 -106
  86. package/dist/src/coin/hbar/transaction.d.ts.map +0 -1
  87. package/dist/src/coin/hbar/transaction.js +0 -318
  88. package/dist/src/coin/hbar/transactionBuilder.d.ts +0 -111
  89. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +0 -1
  90. package/dist/src/coin/hbar/transactionBuilder.js +0 -270
  91. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +0 -47
  92. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +0 -1
  93. package/dist/src/coin/hbar/transactionBuilderFactory.js +0 -88
  94. package/dist/src/coin/hbar/transferBuilder.d.ts +0 -24
  95. package/dist/src/coin/hbar/transferBuilder.d.ts.map +0 -1
  96. package/dist/src/coin/hbar/transferBuilder.js +0 -74
  97. package/dist/src/coin/hbar/utils.d.ts +0 -193
  98. package/dist/src/coin/hbar/utils.d.ts.map +0 -1
  99. package/dist/src/coin/hbar/utils.js +0 -410
  100. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +0 -28
  101. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +0 -1
  102. package/dist/src/coin/hbar/walletInitializationBuilder.js +0 -110
@@ -1,28 +0,0 @@
1
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import { TransactionBuilder } from './transactionBuilder';
3
- import { Transaction } from './transaction';
4
- export declare class WalletInitializationBuilder extends TransactionBuilder {
5
- private readonly _txBodyData;
6
- private _owners;
7
- constructor(_coinConfig: Readonly<CoinConfig>);
8
- /** @inheritdoc */
9
- protected buildImplementation(): Promise<Transaction>;
10
- /**
11
- *
12
- * @param {boolean} rawKeys - Defines if the owners keys are obtained in raw or protocol default format
13
- * @returns {proto.ThresholdKey} - The wallet threshold keys
14
- */
15
- private buildOwnersKeys;
16
- /** @inheritdoc */
17
- initBuilder(tx: Transaction): void;
18
- private initOwners;
19
- /**
20
- * Set one of the owners of the multisig wallet.
21
- *
22
- * @param {string} address - The public key of the owner's account
23
- * @returns {WalletInitializationBuilder} - This wallet initialization builder
24
- */
25
- owner(address: string): this;
26
- validateMandatoryFields(): void;
27
- }
28
- //# sourceMappingURL=walletInitializationBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"walletInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/walletInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,qBAAa,2BAA4B,SAAQ,kBAAkB;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,OAAO,CAAC,OAAO,CAAgB;gBAEnB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAQ7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAO3D;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAWvB,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAQlC,OAAO,CAAC,UAAU;IAUlB;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAkB5B,uBAAuB,IAAI,IAAI;CAahC"}
@@ -1,110 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.WalletInitializationBuilder = void 0;
23
- const Long = __importStar(require("long"));
24
- const proto = __importStar(require("@hashgraph/proto"));
25
- const sdk_core_1 = require("@bitgo/sdk-core");
26
- const transactionBuilder_1 = require("./transactionBuilder");
27
- const utils_1 = require("./utils");
28
- const _1 = require("./");
29
- const constants_1 = require("./constants");
30
- class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
31
- constructor(_coinConfig) {
32
- super(_coinConfig);
33
- this._owners = [];
34
- this._txBodyData = new proto.CryptoCreateTransactionBody();
35
- this._txBody.cryptoCreateAccount = this._txBodyData;
36
- this._txBodyData.autoRenewPeriod = new proto.Duration({ seconds: Long.fromNumber(7890000) });
37
- }
38
- // region Base Builder
39
- /** @inheritdoc */
40
- async buildImplementation() {
41
- this._txBodyData.key = { thresholdKey: this.buildOwnersKeys() };
42
- this._txBodyData.initialBalance = Long.ZERO;
43
- this.transaction.setTransactionType(sdk_core_1.TransactionType.WalletInitialization);
44
- return await super.buildImplementation();
45
- }
46
- /**
47
- *
48
- * @param {boolean} rawKeys - Defines if the owners keys are obtained in raw or protocol default format
49
- * @returns {proto.ThresholdKey} - The wallet threshold keys
50
- */
51
- buildOwnersKeys(rawKeys = true) {
52
- return this._owners.reduce((tKeys, key) => {
53
- if (tKeys.keys && tKeys.keys.keys) {
54
- tKeys.keys.keys.push({
55
- ed25519: utils_1.toUint8Array(new _1.KeyPair({ pub: key }).getKeys(rawKeys).pub),
56
- });
57
- }
58
- return tKeys;
59
- }, new proto.ThresholdKey({ threshold: 2, keys: { keys: [] } }));
60
- }
61
- /** @inheritdoc */
62
- initBuilder(tx) {
63
- super.initBuilder(tx);
64
- const createAcc = tx.txBody.cryptoCreateAccount;
65
- if (createAcc && createAcc.key && createAcc.key.thresholdKey) {
66
- this.initOwners(createAcc.key.thresholdKey);
67
- }
68
- }
69
- initOwners(keys) {
70
- if (keys.keys && keys.keys.keys) {
71
- keys.keys.keys.forEach((key) => {
72
- this.owner(utils_1.toHex(key.ed25519));
73
- });
74
- }
75
- }
76
- // endregion
77
- // region Common builder methods
78
- /**
79
- * Set one of the owners of the multisig wallet.
80
- *
81
- * @param {string} address - The public key of the owner's account
82
- * @returns {WalletInitializationBuilder} - This wallet initialization builder
83
- */
84
- owner(address) {
85
- if (this._owners.length >= constants_1.DEFAULT_SIGNER_NUMBER) {
86
- throw new sdk_core_1.BuildTransactionError('A maximum of ' + constants_1.DEFAULT_SIGNER_NUMBER + ' owners can be set for a multisig wallet');
87
- }
88
- if (!utils_1.isValidPublicKey(address)) {
89
- throw new sdk_core_1.BuildTransactionError('Invalid address: ' + address);
90
- }
91
- if (this._owners.includes(address)) {
92
- throw new sdk_core_1.BuildTransactionError('Repeated owner address: ' + address);
93
- }
94
- this._owners.push(address);
95
- return this;
96
- }
97
- // endregion
98
- // region Validators
99
- validateMandatoryFields() {
100
- if (this._owners === undefined) {
101
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing wallet owners');
102
- }
103
- if (this._owners.length !== constants_1.DEFAULT_SIGNER_NUMBER) {
104
- throw new sdk_core_1.BuildTransactionError(`Invalid transaction: wrong number of owners -- required: ${constants_1.DEFAULT_SIGNER_NUMBER}, found: ${this._owners.length}`);
105
- }
106
- super.validateMandatoryFields();
107
- }
108
- }
109
- exports.WalletInitializationBuilder = WalletInitializationBuilder;
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vaGJhci93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJDQUE2QjtBQUM3Qix3REFBMEM7QUFDMUMsOENBQXlFO0FBQ3pFLDZEQUEwRDtBQUUxRCxtQ0FBZ0U7QUFDaEUseUJBQTZCO0FBQzdCLDJDQUFvRDtBQUVwRCxNQUFhLDJCQUE0QixTQUFRLHVDQUFrQjtJQUlqRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUhiLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFJN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQywwQkFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUUsT0FBTyxNQUFNLEtBQUssQ0FB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LEVBQUUsQ0FDbkgsQ0FBQztTQUNIO1FBQ0QsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDbEMsQ0FBQztDQUVGO0FBNUZELGtFQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgKiBhcyBMb25nIGZyb20gJ2xvbmcnO1xuaW1wb3J0ICogYXMgcHJvdG8gZnJvbSAnQGhhc2hncmFwaC9wcm90byc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgaXNWYWxpZFB1YmxpY0tleSwgdG9IZXgsIHRvVWludDhBcnJheSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4vJztcbmltcG9ydCB7IERFRkFVTFRfU0lHTkVSX05VTUJFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3R4Qm9keURhdGE6IHByb3RvLkNyeXB0b0NyZWF0ZVRyYW5zYWN0aW9uQm9keTtcbiAgcHJpdmF0ZSBfb3duZXJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90eEJvZHlEYXRhID0gbmV3IHByb3RvLkNyeXB0b0NyZWF0ZVRyYW5zYWN0aW9uQm9keSgpO1xuICAgIHRoaXMuX3R4Qm9keS5jcnlwdG9DcmVhdGVBY2NvdW50ID0gdGhpcy5fdHhCb2R5RGF0YTtcbiAgICB0aGlzLl90eEJvZHlEYXRhLmF1dG9SZW5ld1BlcmlvZCA9IG5ldyBwcm90by5EdXJhdGlvbih7IHNlY29uZHM6IExvbmcuZnJvbU51bWJlcig3ODkwMDAwKSB9KTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBCYXNlIEJ1aWxkZXJcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLl90eEJvZHlEYXRhLmtleSA9IHsgdGhyZXNob2xkS2V5OiB0aGlzLmJ1aWxkT3duZXJzS2V5cygpIH07XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5pbml0aWFsQmFsYW5jZSA9IExvbmcuWkVSTztcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSByYXdLZXlzIC0gRGVmaW5lcyBpZiB0aGUgb3duZXJzIGtleXMgYXJlIG9idGFpbmVkIGluIHJhdyBvciBwcm90b2NvbCBkZWZhdWx0IGZvcm1hdFxuICAgKiBAcmV0dXJucyB7cHJvdG8uVGhyZXNob2xkS2V5fSAtIFRoZSB3YWxsZXQgdGhyZXNob2xkIGtleXNcbiAgICovXG4gIHByaXZhdGUgYnVpbGRPd25lcnNLZXlzKHJhd0tleXMgPSB0cnVlKTogcHJvdG8uVGhyZXNob2xkS2V5IHtcbiAgICByZXR1cm4gdGhpcy5fb3duZXJzLnJlZHVjZSgodEtleXMsIGtleSkgPT4ge1xuICAgICAgaWYgKHRLZXlzLmtleXMgJiYgdEtleXMua2V5cy5rZXlzKSB7XG4gICAgICAgIHRLZXlzLmtleXMua2V5cy5wdXNoKHtcbiAgICAgICAgICBlZDI1NTE5OiB0b1VpbnQ4QXJyYXkobmV3IEtleVBhaXIoeyBwdWI6IGtleSB9KS5nZXRLZXlzKHJhd0tleXMpLnB1YiksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRLZXlzO1xuICAgIH0sIG5ldyBwcm90by5UaHJlc2hvbGRLZXkoeyB0aHJlc2hvbGQ6IDIsIGtleXM6IHsga2V5czogW10gfSB9KSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGNvbnN0IGNyZWF0ZUFjYyA9IHR4LnR4Qm9keS5jcnlwdG9DcmVhdGVBY2NvdW50O1xuICAgIGlmIChjcmVhdGVBY2MgJiYgY3JlYXRlQWNjLmtleSAmJiBjcmVhdGVBY2Mua2V5LnRocmVzaG9sZEtleSkge1xuICAgICAgdGhpcy5pbml0T3duZXJzKGNyZWF0ZUFjYy5rZXkudGhyZXNob2xkS2V5IGFzIHByb3RvLlRocmVzaG9sZEtleSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0T3duZXJzKGtleXM6IHByb3RvLlRocmVzaG9sZEtleSkge1xuICAgIGlmIChrZXlzLmtleXMgJiYga2V5cy5rZXlzLmtleXMpIHtcbiAgICAgIGtleXMua2V5cy5rZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICB0aGlzLm93bmVyKHRvSGV4KGtleS5lZDI1NTE5ISkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBDb21tb24gYnVpbGRlciBtZXRob2RzXG4gIC8qKlxuICAgKiBTZXQgb25lIG9mIHRoZSBvd25lcnMgb2YgdGhlIG11bHRpc2lnIHdhbGxldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgcHVibGljIGtleSBvZiB0aGUgb3duZXIncyBhY2NvdW50XG4gICAqIEByZXR1cm5zIHtXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXJ9IC0gVGhpcyB3YWxsZXQgaW5pdGlhbGl6YXRpb24gYnVpbGRlclxuICAgKi9cbiAgb3duZXIoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKHRoaXMuX293bmVycy5sZW5ndGggPj0gREVGQVVMVF9TSUdORVJfTlVNQkVSKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAnQSBtYXhpbXVtIG9mICcgKyBERUZBVUxUX1NJR05FUl9OVU1CRVIgKyAnIG93bmVycyBjYW4gYmUgc2V0IGZvciBhIG11bHRpc2lnIHdhbGxldCcsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRQdWJsaWNLZXkoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzczogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fb3duZXJzLmluY2x1ZGVzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdSZXBlYXRlZCBvd25lciBhZGRyZXNzOiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIHRoaXMuX293bmVycy5wdXNoKGFkZHJlc3MpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vd25lcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyB3YWxsZXQgb3duZXJzJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX293bmVycy5sZW5ndGggIT09IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgdHJhbnNhY3Rpb246IHdyb25nIG51bWJlciBvZiBvd25lcnMgLS0gcmVxdWlyZWQ6ICR7REVGQVVMVF9TSUdORVJfTlVNQkVSfSwgZm91bmQ6ICR7dGhpcy5fb3duZXJzLmxlbmd0aH1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgc3VwZXIudmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTtcbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==