@bitgo/account-lib 2.19.0-rc.14 → 2.19.0-rc.17

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 (57) hide show
  1. package/dist/browser/bitgo-account-lib.js +1 -1
  2. package/dist/package.json +3 -3
  3. package/dist/src/coin/hbar/ifaces.d.ts +4 -0
  4. package/dist/src/coin/hbar/ifaces.d.ts.map +1 -1
  5. package/dist/src/coin/hbar/ifaces.js +1 -1
  6. package/dist/src/coin/hbar/utils.d.ts +36 -0
  7. package/dist/src/coin/hbar/utils.d.ts.map +1 -1
  8. package/dist/src/coin/hbar/utils.js +90 -6
  9. package/dist/src/coin/near/constants.d.ts +9 -0
  10. package/dist/src/coin/near/constants.d.ts.map +1 -0
  11. package/dist/src/coin/near/constants.js +12 -0
  12. package/dist/src/coin/near/contractCallWrapper.d.ts +33 -0
  13. package/dist/src/coin/near/contractCallWrapper.d.ts.map +1 -0
  14. package/dist/src/coin/near/contractCallWrapper.js +87 -0
  15. package/dist/src/coin/near/iface.d.ts +13 -1
  16. package/dist/src/coin/near/iface.d.ts.map +1 -1
  17. package/dist/src/coin/near/iface.js +1 -1
  18. package/dist/src/coin/near/stakingActivateBuilder.d.ts +32 -0
  19. package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +1 -0
  20. package/dist/src/coin/near/stakingActivateBuilder.js +159 -0
  21. package/dist/src/coin/near/transaction.d.ts +18 -0
  22. package/dist/src/coin/near/transaction.d.ts.map +1 -1
  23. package/dist/src/coin/near/transaction.js +87 -12
  24. package/dist/src/coin/near/transactionBuilder.d.ts +1 -1
  25. package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -1
  26. package/dist/src/coin/near/transactionBuilder.js +1 -1
  27. package/dist/src/coin/near/transactionBuilderFactory.d.ts +2 -0
  28. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +1 -1
  29. package/dist/src/coin/near/transactionBuilderFactory.js +7 -1
  30. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
  31. package/dist/src/coin/sol/ataInitializationBuilder.js +6 -9
  32. package/dist/src/coin/sol/tokenTransferBuilder.d.ts +1 -1
  33. package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +1 -1
  34. package/dist/src/coin/sol/tokenTransferBuilder.js +6 -9
  35. package/dist/src/coin/sol/utils.d.ts +12 -1
  36. package/dist/src/coin/sol/utils.d.ts.map +1 -1
  37. package/dist/src/coin/sol/utils.js +77 -2
  38. package/dist/src/coin/stx/utils.js +3 -3
  39. package/dist/src/mpc/curves.d.ts +28 -13
  40. package/dist/src/mpc/curves.d.ts.map +1 -1
  41. package/dist/src/mpc/curves.js +56 -59
  42. package/dist/src/mpc/hdTree.d.ts +24 -0
  43. package/dist/src/mpc/hdTree.d.ts.map +1 -0
  44. package/dist/src/mpc/hdTree.js +143 -0
  45. package/dist/src/mpc/shamir.d.ts +25 -6
  46. package/dist/src/mpc/shamir.d.ts.map +1 -1
  47. package/dist/src/mpc/shamir.js +41 -45
  48. package/dist/src/mpc/tss.d.ts +48 -27
  49. package/dist/src/mpc/tss.d.ts.map +1 -1
  50. package/dist/src/mpc/tss.js +242 -175
  51. package/dist/src/mpc/util.d.ts +7 -0
  52. package/dist/src/mpc/util.d.ts.map +1 -0
  53. package/dist/src/mpc/util.js +38 -0
  54. package/package.json +3 -3
  55. package/dist/src/coin/dot/walletInitializationBuilder.d.ts +0 -60
  56. package/dist/src/coin/dot/walletInitializationBuilder.d.ts.map +0 -1
  57. package/dist/src/coin/dot/walletInitializationBuilder.js +0 -144
@@ -1,60 +0,0 @@
1
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import { TransactionBuilder } from './transactionBuilder';
3
- import { Transaction } from './transaction';
4
- import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
5
- import { TransactionType } from '../baseCoin';
6
- import { proxyType } from './iface';
7
- import { BaseAddress } from '../baseCoin/iface';
8
- export declare class WalletInitializationBuilder extends TransactionBuilder {
9
- protected _delegate: string;
10
- protected _proxyType: proxyType;
11
- protected _delay: string;
12
- constructor(_coinConfig: Readonly<CoinConfig>);
13
- /**
14
- * Register a proxy account for the sender that is able to make calls on its behalf.
15
- *
16
- * @returns {UnsignedTransaction} an unsigned Dot transaction
17
- *
18
- * @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
19
- */
20
- protected buildTransaction(): UnsignedTransaction;
21
- protected get transactionType(): TransactionType;
22
- /**
23
- * The account to delegate auth to.
24
- *
25
- * @param {BaseAddress} owner
26
- * @returns {WalletInitializationBuilder} This builder.
27
- *
28
- * @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
29
- */
30
- owner(owner: BaseAddress): this;
31
- /**
32
- * The proxy type to add.
33
- *
34
- * @param {proxyType} proxyType
35
- * @returns {WalletInitializationBuilder} This builder.
36
- *
37
- * @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
38
- */
39
- type(proxyType: proxyType): this;
40
- /**
41
- * The number of blocks that an announcement must be in place for.
42
- * before the corresponding call may be dispatched.
43
- * If zero, then no announcement is needed.
44
- * TODO: move to the validity window method once it has been standardized
45
- *
46
- * @param {string} delay
47
- * @returns {WalletInitializationBuilder} This transfer builder.
48
- *
49
- * @see https://wiki.polkadot.network/docs/learn-proxies#time-delayed-proxies
50
- */
51
- delay(delay: string): this;
52
- /** @inheritdoc */
53
- validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx): void;
54
- /** @inheritdoc */
55
- protected fromImplementation(rawTransaction: string): Transaction;
56
- /** @inheritdoc */
57
- validateTransaction(_: Transaction): void;
58
- private validateFields;
59
- }
60
- //# sourceMappingURL=walletInitializationBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"walletInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/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;AAC5C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACxG,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAA6B,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,2BAA4B,SAAQ,kBAAkB;IACjE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEb,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAajD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAM/B;;;;;;;OAOG;IACH,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKhC;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1B,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAarF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAejE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAavB"}
@@ -1,144 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __importDefault = (this && this.__importDefault) || function (mod) {
18
- return (mod && mod.__esModule) ? mod : { "default": mod };
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.WalletInitializationBuilder = void 0;
22
- var txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
23
- var bignumber_js_1 = __importDefault(require("bignumber.js"));
24
- var errors_1 = require("../baseCoin/errors");
25
- var transactionBuilder_1 = require("./transactionBuilder");
26
- var baseCoin_1 = require("../baseCoin");
27
- var iface_1 = require("./iface");
28
- var txnSchema_1 = require("./txnSchema");
29
- var WalletInitializationBuilder = /** @class */ (function (_super) {
30
- __extends(WalletInitializationBuilder, _super);
31
- function WalletInitializationBuilder(_coinConfig) {
32
- return _super.call(this, _coinConfig) || this;
33
- }
34
- /**
35
- * Register a proxy account for the sender that is able to make calls on its behalf.
36
- *
37
- * @returns {UnsignedTransaction} an unsigned Dot transaction
38
- *
39
- * @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
40
- */
41
- WalletInitializationBuilder.prototype.buildTransaction = function () {
42
- var baseTxInfo = this.createBaseTxInfo();
43
- return txwrapper_polkadot_1.methods.proxy.addProxy({
44
- delegate: this._delegate,
45
- proxyType: this._proxyType,
46
- delay: this._delay,
47
- }, baseTxInfo.baseTxInfo, baseTxInfo.options);
48
- };
49
- Object.defineProperty(WalletInitializationBuilder.prototype, "transactionType", {
50
- get: function () {
51
- return baseCoin_1.TransactionType.WalletInitialization;
52
- },
53
- enumerable: false,
54
- configurable: true
55
- });
56
- /**
57
- * The account to delegate auth to.
58
- *
59
- * @param {BaseAddress} owner
60
- * @returns {WalletInitializationBuilder} This builder.
61
- *
62
- * @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
63
- */
64
- WalletInitializationBuilder.prototype.owner = function (owner) {
65
- this.validateAddress({ address: owner.address });
66
- this._delegate = owner.address;
67
- return this;
68
- };
69
- /**
70
- * The proxy type to add.
71
- *
72
- * @param {proxyType} proxyType
73
- * @returns {WalletInitializationBuilder} This builder.
74
- *
75
- * @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
76
- */
77
- WalletInitializationBuilder.prototype.type = function (proxyType) {
78
- this._proxyType = proxyType;
79
- return this;
80
- };
81
- /**
82
- * The number of blocks that an announcement must be in place for.
83
- * before the corresponding call may be dispatched.
84
- * If zero, then no announcement is needed.
85
- * TODO: move to the validity window method once it has been standardized
86
- *
87
- * @param {string} delay
88
- * @returns {WalletInitializationBuilder} This transfer builder.
89
- *
90
- * @see https://wiki.polkadot.network/docs/learn-proxies#time-delayed-proxies
91
- */
92
- WalletInitializationBuilder.prototype.delay = function (delay) {
93
- this.validateValue(new bignumber_js_1.default(parseInt(delay, 10)));
94
- this._delay = delay;
95
- return this;
96
- };
97
- /** @inheritdoc */
98
- WalletInitializationBuilder.prototype.validateDecodedTransaction = function (decodedTxn) {
99
- var _a;
100
- if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.AddProxy) {
101
- var txMethod = decodedTxn.method.args;
102
- var delegate = txMethod.delegate;
103
- var proxyType = txMethod.proxyType;
104
- var delay = txMethod.delay;
105
- var validationResult = txnSchema_1.WalletInitializationSchema.validate({ delegate: delegate, proxyType: proxyType, delay: delay });
106
- if (validationResult.error) {
107
- throw new errors_1.InvalidTransactionError("Transaction validation failed: " + validationResult.error.message);
108
- }
109
- }
110
- };
111
- /** @inheritdoc */
112
- WalletInitializationBuilder.prototype.fromImplementation = function (rawTransaction) {
113
- var _a, _b;
114
- var tx = _super.prototype.fromImplementation.call(this, rawTransaction);
115
- if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.AddProxy) {
116
- var txMethod = this._method.args;
117
- this.owner({ address: txMethod.delegate });
118
- this.type(txMethod.proxyType);
119
- this.delay(new bignumber_js_1.default(txMethod.delay).toString());
120
- }
121
- else {
122
- throw new errors_1.InvalidTransactionError("Invalid Transaction Type: " + ((_b = this._method) === null || _b === void 0 ? void 0 : _b.name) + ". Expected Wallet initialization");
123
- }
124
- return tx;
125
- };
126
- /** @inheritdoc */
127
- WalletInitializationBuilder.prototype.validateTransaction = function (_) {
128
- _super.prototype.validateTransaction.call(this, _);
129
- this.validateFields(this._delegate, this._proxyType, this._delay);
130
- };
131
- WalletInitializationBuilder.prototype.validateFields = function (delegate, proxyType, delay) {
132
- var validationResult = txnSchema_1.WalletInitializationSchema.validate({
133
- delegate: delegate,
134
- proxyType: proxyType,
135
- delay: delay,
136
- });
137
- if (validationResult.error) {
138
- throw new errors_1.InvalidTransactionError("WalletInitialization Transaction validation failed: " + validationResult.error.message);
139
- }
140
- };
141
- return WalletInitializationBuilder;
142
- }(transactionBuilder_1.TransactionBuilder));
143
- exports.WalletInitializationBuilder = WalletInitializationBuilder;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxvRUFBd0Q7QUFDeEQsOERBQXFDO0FBQ3JDLDZDQUE2RDtBQUM3RCwyREFBMEQ7QUFHMUQsd0NBQThDO0FBQzlDLGlDQUErRDtBQUMvRCx5Q0FBeUQ7QUFHekQ7SUFBaUQsK0NBQWtCO0lBS2pFLHFDQUFZLFdBQWlDO2VBQzNDLGtCQUFNLFdBQVcsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sc0RBQWdCLEdBQTFCO1FBQ0UsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyw0QkFBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQzNCO1lBQ0UsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbkIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFjLHdEQUFlO2FBQTdCO1lBQ0UsT0FBTywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO1FBQzlDLENBQUM7OztPQUFBO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILDJDQUFLLEdBQUwsVUFBTSxLQUFrQjtRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7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QUFDLEtBQUssQ0FBQyxPQUFTLENBQ3hGLENBQUM7U0FDSDtJQUNILENBQUM7SUFDSCxrQ0FBQztBQUFELENBQUMsQUE5SEQsQ0FBaUQsdUNBQWtCLEdBOEhsRTtBQTlIWSxrRUFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQWRkUHJveHlBcmdzLCBNZXRob2ROYW1lcywgcHJveHlUeXBlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBXYWxsZXRJbml0aWFsaXphdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCB7IEJhc2VBZGRyZXNzIH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuXG5leHBvcnQgY2xhc3MgV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9kZWxlZ2F0ZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3Byb3h5VHlwZTogcHJveHlUeXBlO1xuICBwcm90ZWN0ZWQgX2RlbGF5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlciB0aGF0IGlzIGFibGUgdG8gbWFrZSBjYWxscyBvbiBpdHMgYmVoYWxmLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgRG90IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jcHJveHlcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFRyYW5zYWN0aW9uKCk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICByZXR1cm4gbWV0aG9kcy5wcm94eS5hZGRQcm94eShcbiAgICAgIHtcbiAgICAgICAgZGVsZWdhdGU6IHRoaXMuX2RlbGVnYXRlLFxuICAgICAgICBwcm94eVR5cGU6IHRoaXMuX3Byb3h5VHlwZSxcbiAgICAgICAgZGVsYXk6IHRoaXMuX2RlbGF5LFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9ucyxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIGF1dGggdG8uXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZUFkZHJlc3N9IG93bmVyXG4gICAqIEByZXR1cm5zIHtXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjd2h5LXVzZS1hLXByb3h5XG4gICAqL1xuICBvd25lcihvd25lcjogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IG93bmVyLmFkZHJlc3MgfSk7XG4gICAgdGhpcy5fZGVsZWdhdGUgPSBvd25lci5hZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwcm94eSB0eXBlIHRvIGFkZC5cbiAgICpcbiAgICogQHBhcmFtIHtwcm94eVR5cGV9IHByb3h5VHlwZVxuICAgKiBAcmV0dXJucyB7V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyfSBUaGlzIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3Byb3h5LXR5cGVzXG4gICAqL1xuICB0eXBlKHByb3h5VHlwZTogcHJveHlUeXBlKTogdGhpcyB7XG4gICAgdGhpcy5fcHJveHlUeXBlID0gcHJveHlUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgYW4gYW5ub3VuY2VtZW50IG11c3QgYmUgaW4gcGxhY2UgZm9yLlxuICAgKiBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgY2FsbCBtYXkgYmUgZGlzcGF0Y2hlZC5cbiAgICogSWYgemVybywgdGhlbiBubyBhbm5vdW5jZW1lbnQgaXMgbmVlZGVkLlxuICAgKiBUT0RPOiBtb3ZlIHRvIHRoZSB2YWxpZGl0eSB3aW5kb3cgbWV0aG9kIG9uY2UgaXQgaGFzIGJlZW4gc3RhbmRhcmRpemVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZWxheVxuICAgKiBAcmV0dXJucyB7V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3RpbWUtZGVsYXllZC1wcm94aWVzXG4gICAqL1xuICBkZWxheShkZWxheTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIocGFyc2VJbnQoZGVsYXksIDEwKSkpO1xuICAgIHRoaXMuX2RlbGF5ID0gZGVsYXk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4KTogdm9pZCB7XG4gICAgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5BZGRQcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgQWRkUHJveHlBcmdzO1xuICAgICAgY29uc3QgZGVsZWdhdGUgPSB0eE1ldGhvZC5kZWxlZ2F0ZTtcbiAgICAgIGNvbnN0IHByb3h5VHlwZSA9IHR4TWV0aG9kLnByb3h5VHlwZTtcbiAgICAgIGNvbnN0IGRlbGF5ID0gdHhNZXRob2QuZGVsYXk7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gV2FsbGV0SW5pdGlhbGl6YXRpb25TY2hlbWEudmFsaWRhdGUoeyBkZWxlZ2F0ZSwgcHJveHlUeXBlLCBkZWxheSB9KTtcbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLkFkZFByb3h5KSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIEFkZFByb3h5QXJncztcbiAgICAgIHRoaXMub3duZXIoeyBhZGRyZXNzOiB0eE1ldGhvZC5kZWxlZ2F0ZSB9KTtcbiAgICAgIHRoaXMudHlwZSh0eE1ldGhvZC5wcm94eVR5cGUpO1xuICAgICAgdGhpcy5kZWxheShuZXcgQmlnTnVtYmVyKHR4TWV0aG9kLmRlbGF5KS50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIFdhbGxldCBpbml0aWFsaXphdGlvbmAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbihfOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24oXyk7XG4gICAgdGhpcy52YWxpZGF0ZUZpZWxkcyh0aGlzLl9kZWxlZ2F0ZSwgdGhpcy5fcHJveHlUeXBlLCB0aGlzLl9kZWxheSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKGRlbGVnYXRlOiBzdHJpbmcsIHByb3h5VHlwZTogc3RyaW5nLCBkZWxheTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFdhbGxldEluaXRpYWxpemF0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIGRlbGVnYXRlLFxuICAgICAgcHJveHlUeXBlLFxuICAgICAgZGVsYXksXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgV2FsbGV0SW5pdGlhbGl6YXRpb24gVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19