@bitgo/sdk-coin-sui 3.1.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [4.0.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.2.0...@bitgo/sdk-coin-sui@4.0.0) (2023-07-18)
7
+
8
+ ### Features
9
+
10
+ - **sdk-coin-sui:** support stakeMany ([a908565](https://github.com/BitGo/BitGoJS/commit/a908565bf1e1b6d28503836f85ba83fc7472b1cf))
11
+
12
+ ### BREAKING CHANGES
13
+
14
+ - **sdk-coin-sui:** change addStake interface to support stake multiple
15
+ validator
16
+
17
+ # [3.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.1.2...@bitgo/sdk-coin-sui@3.2.0) (2023-06-21)
18
+
19
+ ### Bug Fixes
20
+
21
+ - **sdk-coin-sui:** add output value for unstaking txs ([9430e60](https://github.com/BitGo/BitGoJS/commit/9430e60d8000bb8d76e3057501c04d403458c1e7))
22
+ - **sdk-coin-sui:** fix method name for parsing reserialized tx pair ([a0e052b](https://github.com/BitGo/BitGoJS/commit/a0e052be7153f38de0d9fce57fd0776ef2f4a7d2))
23
+
24
+ ### Features
25
+
26
+ - **sdk-coin-sui:** double-check reserialized transactions ([dc2d672](https://github.com/BitGo/BitGoJS/commit/dc2d6725ee23767533a05e06990169b990104f7e))
27
+
6
28
  ## [3.1.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.1.1...@bitgo/sdk-coin-sui@3.1.2) (2023-06-14)
7
29
 
8
30
  ### Bug Fixes
@@ -1,9 +1,8 @@
1
- import { SuiTransaction } from './iface';
2
1
  export declare function assertEqualTransactionBlocks(a: {
3
- inputs: SuiTransaction['tx']['inputs'];
2
+ inputs: unknown[];
4
3
  transactions: unknown[];
5
4
  }, b: {
6
- inputs: SuiTransaction['tx']['inputs'];
5
+ inputs: unknown[];
7
6
  transactions: unknown[];
8
7
  }): void;
9
8
  //# sourceMappingURL=compareTransactionBlocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compareTransactionBlocks.d.ts","sourceRoot":"","sources":["../../../src/lib/compareTransactionBlocks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE;IAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,EACtE,CAAC,EAAE;IAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,GACrE,IAAI,CAGN"}
1
+ {"version":3,"file":"compareTransactionBlocks.d.ts","sourceRoot":"","sources":["../../../src/lib/compareTransactionBlocks.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE;IAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,EACjD,CAAC,EAAE;IAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,GAChD,IAAI,CAGN"}
@@ -10,4 +10,4 @@ function assertEqualTransactionBlocks(a, b) {
10
10
  assert_1.default.deepStrictEqual(a.transactions, b.transactions, 'Different transactions');
11
11
  }
12
12
  exports.assertEqualTransactionBlocks = assertEqualTransactionBlocks;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZVRyYW5zYWN0aW9uQmxvY2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wYXJlVHJhbnNhY3Rpb25CbG9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRzVCLFNBQWdCLDRCQUE0QixDQUMxQyxDQUFzRSxFQUN0RSxDQUFzRTtJQUV0RSxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUMvRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBTkQsb0VBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBTdWlUcmFuc2FjdGlvbiB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RXF1YWxUcmFuc2FjdGlvbkJsb2NrcyhcbiAgYTogeyBpbnB1dHM6IFN1aVRyYW5zYWN0aW9uWyd0eCddWydpbnB1dHMnXTsgdHJhbnNhY3Rpb25zOiB1bmtub3duW10gfSxcbiAgYjogeyBpbnB1dHM6IFN1aVRyYW5zYWN0aW9uWyd0eCddWydpbnB1dHMnXTsgdHJhbnNhY3Rpb25zOiB1bmtub3duW10gfVxuKTogdm9pZCB7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYS5pbnB1dHMsIGIuaW5wdXRzLCAnRGlmZmVyZW50IGlucHV0cycpO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGEudHJhbnNhY3Rpb25zLCBiLnRyYW5zYWN0aW9ucywgJ0RpZmZlcmVudCB0cmFuc2FjdGlvbnMnKTtcbn1cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZVRyYW5zYWN0aW9uQmxvY2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wYXJlVHJhbnNhY3Rpb25CbG9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLFNBQWdCLDRCQUE0QixDQUMxQyxDQUFpRCxFQUNqRCxDQUFpRDtJQUVqRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUMvRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBTkQsb0VBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRFcXVhbFRyYW5zYWN0aW9uQmxvY2tzKFxuICBhOiB7IGlucHV0czogdW5rbm93bltdOyB0cmFuc2FjdGlvbnM6IHVua25vd25bXSB9LFxuICBiOiB7IGlucHV0czogdW5rbm93bltdOyB0cmFuc2FjdGlvbnM6IHVua25vd25bXSB9XG4pOiB2b2lkIHtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhLmlucHV0cywgYi5pbnB1dHMsICdEaWZmZXJlbnQgaW5wdXRzJyk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYS50cmFuc2FjdGlvbnMsIGIudHJhbnNhY3Rpb25zLCAnRGlmZmVyZW50IHRyYW5zYWN0aW9ucycpO1xufVxuIl19
@@ -1,18 +1,16 @@
1
1
  "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) {
3
- if (!privateMap.has(receiver)) {
4
- throw new TypeError("attempted to get private field on non-instance");
5
- }
6
- return privateMap.get(receiver);
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
7
6
  };
8
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) {
9
- if (!privateMap.has(receiver)) {
10
- throw new TypeError("attempted to set private field on non-instance");
11
- }
12
- privateMap.set(receiver, value);
13
- return value;
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
14
12
  };
15
- var _blockData;
13
+ var _TransactionBlock_blockData;
16
14
  Object.defineProperty(exports, "__esModule", { value: true });
17
15
  exports.TransactionBlock = void 0;
18
16
  const bcs_1 = require("@mysten/bcs");
@@ -77,8 +75,8 @@ const GAS_OVERHEAD_PER_COIN = 10n;
77
75
  */
78
76
  class TransactionBlock {
79
77
  constructor(transaction) {
80
- _blockData.set(this, void 0);
81
- __classPrivateFieldSet(this, _blockData, new TransactionDataBlock_1.TransactionBlockDataBuilder(transaction ? __classPrivateFieldGet(transaction, _blockData) : undefined));
78
+ _TransactionBlock_blockData.set(this, void 0);
79
+ __classPrivateFieldSet(this, _TransactionBlock_blockData, new TransactionDataBlock_1.TransactionBlockDataBuilder(transaction ? __classPrivateFieldGet(transaction, _TransactionBlock_blockData, "f") : undefined), "f");
82
80
  }
83
81
  /** Returns `true` if the object is an instance of the Transaction builder class. */
84
82
  static is(obj) {
@@ -90,7 +88,7 @@ class TransactionBlock {
90
88
  */
91
89
  static fromKind(serialized) {
92
90
  const tx = new TransactionBlock();
93
- __classPrivateFieldSet(tx, _blockData, TransactionDataBlock_1.TransactionBlockDataBuilder.fromKindBytes(typeof serialized === 'string' ? bcs_1.fromB64(serialized) : serialized));
91
+ __classPrivateFieldSet(tx, _TransactionBlock_blockData, TransactionDataBlock_1.TransactionBlockDataBuilder.fromKindBytes(typeof serialized === 'string' ? bcs_1.fromB64(serialized) : serialized), "f");
94
92
  return tx;
95
93
  }
96
94
  /**
@@ -103,10 +101,10 @@ class TransactionBlock {
103
101
  const tx = new TransactionBlock();
104
102
  // Check for bytes:
105
103
  if (typeof serialized !== 'string' || !serialized.startsWith('{')) {
106
- __classPrivateFieldSet(tx, _blockData, TransactionDataBlock_1.TransactionBlockDataBuilder.fromBytes(typeof serialized === 'string' ? bcs_1.fromB64(serialized) : serialized));
104
+ __classPrivateFieldSet(tx, _TransactionBlock_blockData, TransactionDataBlock_1.TransactionBlockDataBuilder.fromBytes(typeof serialized === 'string' ? bcs_1.fromB64(serialized) : serialized), "f");
107
105
  }
108
106
  else {
109
- __classPrivateFieldSet(tx, _blockData, TransactionDataBlock_1.TransactionBlockDataBuilder.restore(JSON.parse(serialized)));
107
+ __classPrivateFieldSet(tx, _TransactionBlock_blockData, TransactionDataBlock_1.TransactionBlockDataBuilder.restore(JSON.parse(serialized)), "f");
110
108
  }
111
109
  return tx;
112
110
  }
@@ -119,42 +117,42 @@ class TransactionBlock {
119
117
  return Inputs_1.Inputs;
120
118
  }
121
119
  setSender(sender) {
122
- __classPrivateFieldGet(this, _blockData).sender = sender;
120
+ __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").sender = sender;
123
121
  }
124
122
  /**
125
123
  * Sets the sender only if it has not already been set.
126
124
  * This is useful for sponsored transaction flows where the sender may not be the same as the signer address.
127
125
  */
128
126
  setSenderIfNotSet(sender) {
129
- if (!__classPrivateFieldGet(this, _blockData).sender) {
130
- __classPrivateFieldGet(this, _blockData).sender = sender;
127
+ if (!__classPrivateFieldGet(this, _TransactionBlock_blockData, "f").sender) {
128
+ __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").sender = sender;
131
129
  }
132
130
  }
133
131
  setExpiration(expiration) {
134
- __classPrivateFieldGet(this, _blockData).expiration = expiration;
132
+ __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").expiration = expiration;
135
133
  }
136
134
  setGasPrice(price) {
137
- __classPrivateFieldGet(this, _blockData).gasConfig.price = String(price);
135
+ __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").gasConfig.price = String(price);
138
136
  }
139
137
  setGasBudget(budget) {
140
- __classPrivateFieldGet(this, _blockData).gasConfig.budget = String(budget);
138
+ __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").gasConfig.budget = String(budget);
141
139
  }
142
140
  setGasOwner(owner) {
143
- __classPrivateFieldGet(this, _blockData).gasConfig.owner = owner;
141
+ __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").gasConfig.owner = owner;
144
142
  }
145
143
  setGasPayment(payments) {
146
144
  if (payments.length >= MAX_GAS_OBJECTS) {
147
145
  throw new Error(`Payment objects exceed maximum amount ${MAX_GAS_OBJECTS}`);
148
146
  }
149
- __classPrivateFieldGet(this, _blockData).gasConfig.payment = payments.map((payment) => superstruct_1.mask(payment, types_1.SuiObjectRef));
147
+ __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").gasConfig.payment = payments.map((payment) => superstruct_1.mask(payment, types_1.SuiObjectRef));
150
148
  }
151
149
  /** Get a snapshot of the transaction data, in JSON form: */
152
150
  get blockData() {
153
- return __classPrivateFieldGet(this, _blockData).snapshot();
151
+ return __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").snapshot();
154
152
  }
155
153
  // Used to brand transaction classes so that they can be identified, even between multiple copies
156
154
  // of the builder.
157
- get [(_blockData = new WeakMap(), TRANSACTION_BRAND)]() {
155
+ get [(_TransactionBlock_blockData = new WeakMap(), TRANSACTION_BRAND)]() {
158
156
  return true;
159
157
  }
160
158
  /** Returns an argument for the gas coin, to be used in a transaction. */
@@ -171,7 +169,7 @@ class TransactionBlock {
171
169
  *
172
170
  */
173
171
  input(type, value) {
174
- const index = __classPrivateFieldGet(this, _blockData).inputs.length;
172
+ const index = __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").inputs.length;
175
173
  const input = utils_1.create({
176
174
  kind: 'Input',
177
175
  // bigints can't be serialized to JSON, so just string-convert them here:
@@ -179,7 +177,7 @@ class TransactionBlock {
179
177
  index,
180
178
  type,
181
179
  }, Transactions_1.TransactionBlockInput);
182
- __classPrivateFieldGet(this, _blockData).inputs.push(input);
180
+ __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").inputs.push(input);
183
181
  return input;
184
182
  }
185
183
  /**
@@ -188,7 +186,7 @@ class TransactionBlock {
188
186
  object(value) {
189
187
  const id = Inputs_1.getIdFromCallArg(value);
190
188
  // deduplicate
191
- const inserted = __classPrivateFieldGet(this, _blockData).inputs.find((i) => i.type === 'object' && id === Inputs_1.getIdFromCallArg(i.value));
189
+ const inserted = __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").inputs.find((i) => i.type === 'object' && id === Inputs_1.getIdFromCallArg(i.value));
192
190
  return inserted !== null && inserted !== void 0 ? inserted : this.input('object', value);
193
191
  }
194
192
  /**
@@ -210,7 +208,7 @@ class TransactionBlock {
210
208
  }
211
209
  /** Add a transaction to the transaction block. */
212
210
  add(transaction) {
213
- const index = __classPrivateFieldGet(this, _blockData).transactions.push(transaction);
211
+ const index = __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").transactions.push(transaction);
214
212
  return createTransactionResult(index - 1);
215
213
  }
216
214
  // Method shorthands:
@@ -245,16 +243,16 @@ class TransactionBlock {
245
243
  * and performing a dry run).
246
244
  */
247
245
  serialize() {
248
- return JSON.stringify(__classPrivateFieldGet(this, _blockData).snapshot());
246
+ return JSON.stringify(__classPrivateFieldGet(this, _TransactionBlock_blockData, "f").snapshot());
249
247
  }
250
248
  /** Build the transaction to BCS bytes. */
251
249
  async build({ onlyTransactionKind } = {}) {
252
- return __classPrivateFieldGet(this, _blockData).build({ onlyTransactionKind });
250
+ return __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").build({ onlyTransactionKind });
253
251
  }
254
252
  /** Derive transaction digest */
255
253
  async getDigest() {
256
- return __classPrivateFieldGet(this, _blockData).getDigest();
254
+ return __classPrivateFieldGet(this, _TransactionBlock_blockData, "f").getDigest();
257
255
  }
258
256
  }
259
257
  exports.TransactionBlock = TransactionBlock;
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25CbG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL2J1aWxkZXIvVHJhbnNhY3Rpb25CbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUFzQztBQUN0Qyw2Q0FBdUM7QUFDdkMsb0NBQWtEO0FBQ2xELGlEQUEyRztBQUMzRyxxQ0FBbUY7QUFDbkYsaUVBQTRGO0FBQzVGLG1DQUFpQztBQUlqQyxTQUFTLHVCQUF1QixDQUFDLEtBQWE7SUFDNUMsTUFBTSxVQUFVLEdBQXdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUVsRSxNQUFNLGFBQWEsR0FBMEIsRUFBRSxDQUFDO0lBQ2hELE1BQU0sZUFBZSxHQUFHLENBQUMsV0FBbUIsRUFBdUIsRUFBRTs7UUFDbkUsT0FBQSxPQUFDLGFBQWEsQ0FBQyxXQUFXLHFDQUF6QixhQUFhLENBQUMsV0FBVyxJQUFNO1lBQzlCLElBQUksRUFBRSxjQUFjO1lBQ3BCLEtBQUs7WUFDTCxXQUFXO1NBQ1osRUFBQyxDQUFBO0tBQUEsQ0FBQztJQUVMLE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1FBQzNCLEdBQUc7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHFGQUFxRixDQUFDLENBQUM7UUFDekcsQ0FBQztRQUNELDZFQUE2RTtRQUM3RSw0RUFBNEU7UUFDNUUsbUNBQW1DO1FBQ25DLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUTtZQUNsQix5RUFBeUU7WUFDekUsSUFBSSxRQUFRLElBQUksTUFBTSxFQUFFO2dCQUN0QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1lBRUQseUJBQXlCO1lBQ3pCLElBQUksUUFBUSxLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLE9BQU8sUUFBUSxD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LDJCQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHlDQUFnQixRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLG1CQUFtQixLQUFtQixFQUFFO1FBQ3BELE9BQU8seUNBQWdCLEtBQUssQ0FBQyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLEtBQUssQ0FBQyxTQUFTO1FBQ2IsT0FBTyx5Q0FBZ0IsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBcE5ELDRDQW9OQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21CNjQgfSBmcm9tICdAbXlzdGVuL2Jjcyc7XG5pbXBvcnQgeyBpcywgbWFzayB9IGZyb20gJ3N1cGVyc3RydWN0JztcbmltcG9ydCB7IE9iamVjdElkLCBTdWlPYmplY3RSZWYgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbnMsIFRyYW5zYWN0aW9uQXJndW1lbnQsIFRyYW5zYWN0aW9uVHlwZSwgVHJhbnNhY3Rpb25CbG9ja0lucHV0IH0gZnJvbSAnLi9UcmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQnVpbGRlckNhbGxBcmcsIGdldElkRnJvbUNhbGxBcmcsIElucHV0cywgT2JqZWN0Q2FsbEFyZyB9IGZyb20gJy4vSW5wdXRzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQmxvY2tEYXRhQnVpbGRlciwgVHJhbnNhY3Rpb25FeHBpcmF0aW9uIH0gZnJvbSAnLi9UcmFuc2FjdGlvbkRhdGFCbG9jayc7XG5pbXBvcnQgeyBjcmVhdGUgfSBmcm9tICcuL3V0aWxzJztcblxudHlwZSBUcmFuc2FjdGlvblJlc3VsdCA9IFRyYW5zYWN0aW9uQXJndW1lbnQgJiBUcmFuc2FjdGlvbkFyZ3VtZW50W107XG5cbmZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uUmVzdWx0KGluZGV4OiBudW1iZXIpOiBUcmFuc2FjdGlvblJlc3VsdCB7XG4gIGNvbnN0IGJhc2VSZXN1bHQ6IFRyYW5zYWN0aW9uQXJndW1lbnQgPSB7IGtpbmQ6ICdSZXN1bHQnLCBpbmRleCB9O1xuXG4gIGNvbnN0IG5lc3RlZFJlc3VsdHM6IFRyYW5zYWN0aW9uQXJndW1lbnRbXSA9IFtdO1xuICBjb25zdCBuZXN0ZWRSZXN1bHRGb3IgPSAocmVzdWx0SW5kZXg6IG51bWJlcik6IFRyYW5zYWN0aW9uQXJndW1lbnQgPT5cbiAgICAobmVzdGVkUmVzdWx0c1tyZXN1bHRJbmRleF0gPz89IHtcbiAgICAgIGtpbmQ6ICdOZXN0ZWRSZXN1bHQnLFxuICAgICAgaW5kZXgsXG4gICAgICByZXN1bHRJbmRleCxcbiAgICB9KTtcblxuICByZXR1cm4gbmV3IFByb3h5KGJhc2VSZXN1bHQsIHtcbiAgICBzZXQoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSB0cmFuc2FjdGlvbiByZXN1bHQgaXMgYSBwcm94eSwgYW5kIGRvZXMgbm90IHN1cHBvcnQgc2V0dGluZyBwcm9wZXJ0aWVzIGRpcmVjdGx5Jyk7XG4gICAgfSxcbiAgICAvLyBUT0RPOiBJbnN0ZWFkIG9mIG1ha2luZyB0aGlzIHJldHVybiBhIGNvbmNyZXRlIGFyZ3VtZW50LCB3ZSBzaG91bGQgaWRlYWxseVxuICAgIC8vIG1ha2UgaXQgcmVmZXJlbmNlLWJhc2VkIChzbyB0aGF0IHRoaXMgZ2V0cyByZXNvbHZlZCBhdCBidWlsZC10aW1lKSwgd2hpY2hcbiAgICAvLyBhbGxvd3MgcmUtb3JkZXJpbmcgdHJhbnNhY3Rpb25zLlxuICAgIGdldCh0YXJnZXQsIHByb3BlcnR5KSB7XG4gICAgICAvLyBUaGlzIGFsbG93cyB0aGlzIHRyYW5zYWN0aW9uIGFyZ3VtZW50IHRvIGJlIHVzZWQgaW4gdGhlIHNpbmd1bGFyIGZvcm06XG4gICAgICBpZiAocHJvcGVydHkgaW4gdGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3BlcnR5KTtcbiAgICAgIH1cblxuICAgICAgLy8gU3VwcG9ydCBkZXN0cnVjdHVyaW5nOlxuICAgICAgaWYgKHByb3BlcnR5ID09PSBTeW1ib2wuaXRlcmF0b3IpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICB5aWVsZCBuZXN0ZWRSZXN1bHRGb3IoaSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHByb3BlcnR5ID09PSAnc3ltYm9sJykgcmV0dXJuO1xuXG4gICAgICBjb25zdCByZXN1bHRJbmRleCA9IHBhcnNlSW50KHByb3BlcnR5LCAxMCk7XG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHJlc3VsdEluZGV4KSB8fCByZXN1bHRJbmRleCA8IDApIHJldHVybjtcbiAgICAgIHJldHVybiBuZXN0ZWRSZXN1bHRGb3IocmVzdWx0SW5kZXgpO1xuICAgIH0sXG4gIH0pIGFzIFRyYW5zYWN0aW9uUmVzdWx0O1xufVxuXG5jb25zdCBUUkFOU0FDVElPTl9CUkFORCA9IFN5bWJvbC5mb3IoJ0BteXN0ZW4vdHJhbnNhY3Rpb24nKTtcblxuLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIGdhcyBvYmplY3RzIHRoYXQgY2FuIGJlIHNlbGVjdGVkIGZvciBvbmUgdHJhbnNhY3Rpb24uXG5jb25zdCBNQVhfR0FTX09CSkVDVFMgPSAyNTY7XG5cbi8vIFRoZSBtYXhpbXVtIGdhcyB0aGF0IGlzIGFsbG93ZWQuXG5jb25zdCBNQVhfR0FTID0gMTAwMDAwMDAwMDtcblxuLy8gQSBndWVzcyBhYm91dCBob3cgbXVjaCBvdmVyaGVhZCBlYWNoIGNvaW4gcHJvdmlkZXMgZm9yIGdhcyBjYWxjdWxhdGlvbnMuXG4vLyBAdHMtaWdub3JlXG5jb25zdCBHQVNfT1ZFUkhFQURfUEVSX0NPSU4gPSAxMG47XG5cbmludGVyZmFjZSBCdWlsZE9wdGlvbnMge1xuICBvbmx5VHJhbnNhY3Rpb25LaW5kPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBCdWlsZGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJsb2NrIHtcbiAgLyoqIFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgdGhlIFRyYW5zYWN0aW9uIGJ1aWxkZXIgY2xhc3MuICovXG4gIHN0YXRpYyBpcyhvYmo6IHVua25vd24pOiBvYmogaXMgVHJhbnNhY3Rpb25CbG9jayB7XG4gICAgcmV0dXJuICEhb2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIChvYmogYXMgYW55KVtUUkFOU0FDVElPTl9CUkFORF0gPT09IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgZnJvbSBhIHNlcmlhbGl6ZSB0cmFuc2FjdGlvbiBraW5kIChidWlsdCB3aXRoIGBidWlsZCh7IG9ubHlUcmFuc2FjdGlvbktpbmQ6IHRydWUgfSlgKSB0byBhIGBUcmFuc2FjdGlvbmAgY2xhc3MuXG4gICAqIFN1cHBvcnRzIGVpdGhlciBhIGJ5dGUgYXJyYXksIG9yIGJhc2U2NC1lbmNvZGVkIGJ5dGVzLlxuICAgKi9cbiAgc3RhdGljIGZyb21LaW5kKHNlcmlhbGl6ZWQ6IHN0cmluZyB8IFVpbnQ4QXJyYXkpIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbkJsb2NrKCk7XG5cbiAgICB0eC4jYmxvY2tEYXRhID0gVHJhbnNhY3Rpb25CbG9ja0RhdGFCdWlsZGVyLmZyb21LaW5kQnl0ZXMoXG4gICAgICB0eXBlb2Ygc2VyaWFsaXplZCA9PT0gJ3N0cmluZycgPyBmcm9tQjY0KHNlcmlhbGl6ZWQpIDogc2VyaWFsaXplZFxuICAgICk7XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgZnJvbSBhIHNlcmlhbGl6ZWQgdHJhbnNhY3Rpb24gZm9ybWF0IHRvIGEgYFRyYW5zYWN0aW9uYCBjbGFzcy5cbiAgICogVGhlcmUgYXJlIHR3byBzdXBwb3J0ZWQgc2VyaWFsaXplZCBmb3JtYXRzOlxuICAgKiAtIEEgc3RyaW5nIHJldHVybmVkIGZyb20gYFRyYW5zYWN0aW9uI3NlcmlhbGl6ZWAuIFRoZSBzZXJpYWxpemVkIGZvcm1hdCBtdXN0IGJlIGNvbXBhdGlibGUsIG9yIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IuXG4gICAqIC0gQSBieXRlIGFycmF5IChvciBiYXNlNjQtZW5jb2RlZCBieXRlcykgY29udGFpbmluZyBCQ1MgdHJhbnNhY3Rpb24gZGF0YS5cbiAgICovXG4gIHN0YXRpYyBmcm9tKHNlcmlhbGl6ZWQ6IHN0cmluZyB8IFVpbnQ4QXJyYXkpIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbkJsb2NrKCk7XG5cbiAgICAvLyBDaGVjayBmb3IgYnl0ZXM6XG4gICAgaWYgKHR5cGVvZiBzZXJpYWxpemVkICE9PSAnc3RyaW5nJyB8fCAhc2VyaWFsaXplZC5zdGFydHNXaXRoKCd7JykpIHtcbiAgICAgIHR4LiNibG9ja0RhdGEgPSBUcmFuc2FjdGlvbkJsb2NrRGF0YUJ1aWxkZXIuZnJvbUJ5dGVzKFxuICAgICAgICB0eXBlb2Ygc2VyaWFsaXplZCA9PT0gJ3N0cmluZycgPyBmcm9tQjY0KHNlcmlhbGl6ZWQpIDogc2VyaWFsaXplZFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHguI2Jsb2NrRGF0YSA9IFRyYW5zYWN0aW9uQmxvY2tEYXRhQnVpbGRlci5yZXN0b3JlKEpTT04ucGFyc2Uoc2VyaWFsaXplZCkpO1xuICAgIH1cblxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBBIGhlbHBlciB0byByZXRyaWV2ZSB0aGUgVHJhbnNhY3Rpb24gYnVpbGRlciBgVHJhbnNhY3Rpb25zYCAqL1xuICBzdGF0aWMgZ2V0IFRyYW5zYWN0aW9ucygpIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25zO1xuICB9XG5cbiAgLyoqIEEgaGVscGVyIHRvIHJldHJpZXZlIHRoZSBUcmFuc2FjdGlvbiBidWlsZGVyIGBJbnB1dHNgICovXG4gIHN0YXRpYyBnZXQgSW5wdXRzKCkge1xuICAgIHJldHVybiBJbnB1dHM7XG4gIH1cblxuICBzZXRTZW5kZXIoc2VuZGVyOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNibG9ja0RhdGEuc2VuZGVyID0gc2VuZGVyO1xuICB9XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZW5kZXIgb25seSBpZiBpdCBoYXMgbm90IGFscmVhZHkgYmVlbiBzZXQuXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciBzcG9uc29yZWQgdHJhbnNhY3Rpb24gZmxvd3Mgd2hlcmUgdGhlIHNlbmRlciBtYXkgbm90IGJlIHRoZSBzYW1lIGFzIHRoZSBzaWduZXIgYWRkcmVzcy5cbiAgICovXG4gIHNldFNlbmRlcklmTm90U2V0KHNlbmRlcjogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLiNibG9ja0RhdGEuc2VuZGVyKSB7XG4gICAgICB0aGlzLiNibG9ja0RhdGEuc2VuZGVyID0gc2VuZGVyO1xuICAgIH1cbiAgfVxuICBzZXRFeHBpcmF0aW9uKGV4cGlyYXRpb24/OiBUcmFuc2FjdGlvbkV4cGlyYXRpb24pIHtcbiAgICB0aGlzLiNibG9ja0RhdGEuZXhwaXJhdGlvbiA9IGV4cGlyYXRpb247XG4gIH1cbiAgc2V0R2FzUHJpY2UocHJpY2U6IG51bWJlciB8IGJpZ2ludCkge1xuICAgIHRoaXMuI2Jsb2NrRGF0YS5nYXNDb25maWcucHJpY2UgPSBTdHJpbmcocHJpY2UpO1xuICB9XG4gIHNldEdhc0J1ZGdldChidWRnZXQ6IG51bWJlciB8IGJpZ2ludCkge1xuICAgIHRoaXMuI2Jsb2NrRGF0YS5nYXNDb25maWcuYnVkZ2V0ID0gU3RyaW5nKGJ1ZGdldCk7XG4gIH1cbiAgc2V0R2FzT3duZXIob3duZXI6IHN0cmluZykge1xuICAgIHRoaXMuI2Jsb2NrRGF0YS5nYXNDb25maWcub3duZXIgPSBvd25lcjtcbiAgfVxuICBzZXRHYXNQYXltZW50KHBheW1lbnRzOiBTdWlPYmplY3RSZWZbXSkge1xuICAgIGlmIChwYXltZW50cy5sZW5ndGggPj0gTUFYX0dBU19PQkpFQ1RTKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFBheW1lbnQgb2JqZWN0cyBleGNlZWQgbWF4aW11bSBhbW91bnQgJHtNQVhfR0FTX09CSkVDVFN9YCk7XG4gICAgfVxuICAgIHRoaXMuI2Jsb2NrRGF0YS5nYXNDb25maWcucGF5bWVudCA9IHBheW1lbnRzLm1hcCgocGF5bWVudCkgPT4gbWFzayhwYXltZW50LCBTdWlPYmplY3RSZWYpKTtcbiAgfVxuXG4gICNibG9ja0RhdGE6IFRyYW5zYWN0aW9uQmxvY2tEYXRhQnVpbGRlcjtcbiAgLyoqIEdldCBhIHNuYXBzaG90IG9mIHRoZSB0cmFuc2FjdGlvbiBkYXRhLCBpbiBKU09OIGZvcm06ICovXG4gIGdldCBibG9ja0RhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2Jsb2NrRGF0YS5zbmFwc2hvdCgpO1xuICB9XG5cbiAgLy8gVXNlZCB0byBicmFuZCB0cmFuc2FjdGlvbiBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgaWRlbnRpZmllZCwgZXZlbiBiZXR3ZWVuIG11bHRpcGxlIGNvcGllc1xuICAvLyBvZiB0aGUgYnVpbGRlci5cbiAgZ2V0IFtUUkFOU0FDVElPTl9CUkFORF0oKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcih0cmFuc2FjdGlvbj86IFRyYW5zYWN0aW9uQmxvY2spIHtcbiAgICB0aGlzLiNibG9ja0RhdGEgPSBuZXcgVHJhbnNhY3Rpb25CbG9ja0RhdGFCdWlsZGVyKHRyYW5zYWN0aW9uID8gdHJhbnNhY3Rpb24uI2Jsb2NrRGF0YSA6IHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKiogUmV0dXJucyBhbiBhcmd1bWVudCBmb3IgdGhlIGdhcyBjb2luLCB0byBiZSB1c2VkIGluIGEgdHJhbnNhY3Rpb24uICovXG4gIGdldCBnYXMoKTogVHJhbnNhY3Rpb25Bcmd1bWVudCB7XG4gICAgcmV0dXJuIHsga2luZDogJ0dhc0NvaW4nIH07XG4gIH1cblxuICAvKipcbiAgICogRHluYW1pY2FsbHkgY3JlYXRlIGEgbmV3IGlucHV0LCB3aGljaCBpcyBzZXBhcmF0ZSBmcm9tIHRoZSBgaW5wdXRgLiBUaGlzIGlzIGltcG9ydGFudFxuICAgKiBmb3IgZ2VuZXJhdGVkIGNsaWVudHMgdG8gYmUgYWJsZSB0byBkZWZpbmUgdW5pcXVlIGlucHV0cyB0aGF0IGFyZSBub24tb3ZlcmxhcHBpbmcgd2l0aCB0aGVcbiAgICogZGVmaW5lZCBpbnB1dHMuXG4gICAqXG4gICAqIEZvciBgVWludDhBcnJheWAgdHlwZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnQgdGhlIGlucHV0IGludG8gYSBgUHVyZWAgQ2FsbEFyZywgc2luY2UgdGhpc1xuICAgKiBpcyB0aGUgZm9ybWF0IHJlcXVpcmVkIGZvciBjdXN0b20gc2VyaWFsaXphdGlvbi5cbiAgICpcbiAgICovXG4gIGlucHV0KHR5cGU6ICdvYmplY3QnIHwgJ3B1cmUnLCB2YWx1ZT86IHVua25vd24pIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuI2Jsb2NrRGF0YS5pbnB1dHMubGVuZ3RoO1xuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlKFxuICAgICAge1xuICAgICAgICBraW5kOiAnSW5wdXQnLFxuICAgICAgICAvLyBiaWdpbnRzIGNhbid0IGJlIHNlcmlhbGl6ZWQgdG8gSlNPTiwgc28ganVzdCBzdHJpbmctY29udmVydCB0aGVtIGhlcmU6XG4gICAgICAgIHZhbHVlOiB0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnID8gU3RyaW5nKHZhbHVlKSA6IHZhbHVlLFxuICAgICAgICBpbmRleCxcbiAgICAgICAgdHlwZSxcbiAgICAgIH0sXG4gICAgICBUcmFuc2FjdGlvbkJsb2NrSW5wdXRcbiAgICApO1xuICAgIHRoaXMuI2Jsb2NrRGF0YS5pbnB1dHMucHVzaChpbnB1dCk7XG4gICAgcmV0dXJuIGlucHV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBvYmplY3QgaW5wdXQgdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgb2JqZWN0KHZhbHVlOiBPYmplY3RJZCB8IE9iamVjdENhbGxBcmcpIHtcbiAgICBjb25zdCBpZCA9IGdldElkRnJvbUNhbGxBcmcodmFsdWUpO1xuICAgIC8vIGRlZHVwbGljYXRlXG4gICAgY29uc3QgaW5zZXJ0ZWQgPSB0aGlzLiNibG9ja0RhdGEuaW5wdXRzLmZpbmQoKGkpID0+IGkudHlwZSA9PT0gJ29iamVjdCcgJiYgaWQgPT09IGdldElkRnJvbUNhbGxBcmcoaS52YWx1ZSkpO1xuICAgIHJldHVybiBpbnNlcnRlZCA/PyB0aGlzLmlucHV0KCdvYmplY3QnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IG5vbi1vYmplY3QgaW5wdXQgdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgcHVyZShcbiAgICAvKipcbiAgICAgKiBUaGUgcHVyZSB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCBhcyB0aGUgaW5wdXQgdmFsdWUuIElmIHRoaXMgaXMgYSBVaW50OEFycmF5LCB0aGVuIHRoZSB2YWx1ZVxuICAgICAqIGlzIGFzc3VtZWQgdG8gYmUgcmF3IGJ5dGVzLCBhbmQgd2lsbCBiZSB1c2VkIGRpcmVjdGx5LlxuICAgICAqL1xuICAgIHZhbHVlOiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIFRoZSBCQ1MgdHlwZSB0byBzZXJpYWxpemUgdGhlIHZhbHVlIGludG8uIElmIG5vdCBwcm92aWRlZCwgdGhlIHR5cGUgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGRldGVybWluZWRcbiAgICAgKiBiYXNlZCBvbiBob3cgdGhlIGlucHV0IGlzIHVzZWQuXG4gICAgICovXG4gICAgdHlwZT86IHN0cmluZ1xuICApIHtcbiAgICAvLyBUT0RPOiB3ZSBjYW4gYWxzbyBkbyBzb21lIGRlZHVwbGljYXRpb24gaGVyZVxuICAgIHJldHVybiB0aGlzLmlucHV0KFxuICAgICAgJ3B1cmUnLFxuICAgICAgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5ID8gSW5wdXRzLlB1cmUodmFsdWUpIDogdHlwZSA/IElucHV0cy5QdXJlKHZhbHVlLCB0eXBlKSA6IHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBBZGQgYSB0cmFuc2FjdGlvbiB0byB0aGUgdHJhbnNhY3Rpb24gYmxvY2suICovXG4gIGFkZCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLiNibG9ja0RhdGEudHJhbnNhY3Rpb25zLnB1c2godHJhbnNhY3Rpb24pO1xuICAgIHJldHVybiBjcmVhdGVUcmFuc2FjdGlvblJlc3VsdChpbmRleCAtIDEpO1xuICB9XG5cbiAgLy8gTWV0aG9kIHNob3J0aGFuZHM6XG5cbiAgc3BsaXRDb2lucyguLi5hcmdzOiBQYXJhbWV0ZXJzPCh0eXBlb2YgVHJhbnNhY3Rpb25zKVsnU3BsaXRDb2lucyddPikge1xuICAgIHJldHVybiB0aGlzLmFkZChUcmFuc2FjdGlvbnMuU3BsaXRDb2lucyguLi5hcmdzKSk7XG4gIH1cbiAgbWVyZ2VDb2lucyguLi5hcmdzOiBQYXJhbWV0ZXJzPCh0eXBlb2YgVHJhbnNhY3Rpb25zKVsnTWVyZ2VDb2lucyddPikge1xuICAgIHJldHVybiB0aGlzLmFkZChUcmFuc2FjdGlvbnMuTWVyZ2VDb2lucyguLi5hcmdzKSk7XG4gIH1cbiAgcHVibGlzaCguLi5hcmdzOiBQYXJhbWV0ZXJzPCh0eXBlb2YgVHJhbnNhY3Rpb25zKVsnUHVibGlzaCddPikge1xuICAgIHJldHVybiB0aGlzLmFkZChUcmFuc2FjdGlvbnMuUHVibGlzaCguLi5hcmdzKSk7XG4gIH1cbiAgbW92ZUNhbGwoLi4uYXJnczogUGFyYW1ldGVyczwodHlwZW9mIFRyYW5zYWN0aW9ucylbJ01vdmVDYWxsJ10+KSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkKFRyYW5zYWN0aW9ucy5Nb3ZlQ2FsbCguLi5hcmdzKSk7XG4gIH1cbiAgdHJhbnNmZXJPYmplY3RzKC4uLmFyZ3M6IFBhcmFtZXRlcnM8KHR5cGVvZiBUcmFuc2FjdGlvbnMpWydUcmFuc2Zlck9iamVjdHMnXT4pIHtcbiAgICByZXR1cm4gdGhpcy5hZGQoVHJhbnNhY3Rpb25zLlRyYW5zZmVyT2JqZWN0cyguLi5hcmdzKSk7XG4gIH1cbiAgbWFrZU1vdmVWZWMoLi4uYXJnczogUGFyYW1ldGVyczwodHlwZW9mIFRyYW5zYWN0aW9ucylbJ01ha2VNb3ZlVmVjJ10+KSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkKFRyYW5zYWN0aW9ucy5NYWtlTW92ZVZlYyguLi5hcmdzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSB0cmFuc2FjdGlvbiB0byBhIHN0cmluZyBzbyB0aGF0IGl0IGNhbiBiZSBzZW50IHRvIGEgc2VwYXJhdGUgY29udGV4dC5cbiAgICogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBgYnVpbGRgIGluIHRoYXQgaXQgZG9lcyBub3Qgc2VyaWFsaXplIHRvIEJDUyBieXRlcywgYW5kIGluc3RlYWRcbiAgICogdXNlcyBhIHNlcGFyYXRlIGZvcm1hdCB0aGF0IGlzIHVuaXF1ZSB0byB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlci4gVGhpcyBhbGxvd3NcbiAgICogdXMgdG8gc2VyaWFsaXplIHBhcnRpYWxseS1jb21wbGV0ZSB0cmFuc2FjdGlvbnMsIHRoYXQgY2FuIHRoZW4gYmUgY29tcGxldGVkIGFuZFxuICAgKiBidWlsdCBpbiBhIHNlcGFyYXRlIGNvbnRleHQuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBhIGRhcHAgY2FuIGNvbnN0cnVjdCBhIHRyYW5zYWN0aW9uLCBidXQgbm90IHByb3ZpZGUgZ2FzIG9iamVjdHNcbiAgICogb3IgYSBnYXMgYnVkZ2V0LiBUaGUgdHJhbnNhY3Rpb24gdGhlbiBjYW4gYmUgc2VudCB0byB0aGUgd2FsbGV0LCB3aGVyZSB0aGlzXG4gICAqIGluZm9ybWF0aW9uIGlzIGF1dG9tYXRpY2FsbHkgZmlsbGVkIGluIChlLmcuIGJ5IHF1ZXJ5aW5nIGZvciBjb2luIG9iamVjdHNcbiAgICogYW5kIHBlcmZvcm1pbmcgYSBkcnkgcnVuKS5cbiAgICovXG4gIHNlcmlhbGl6ZSgpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy4jYmxvY2tEYXRhLnNuYXBzaG90KCkpO1xuICB9XG5cbiAgLyoqIEJ1aWxkIHRoZSB0cmFuc2FjdGlvbiB0byBCQ1MgYnl0ZXMuICovXG4gIGFzeW5jIGJ1aWxkKHsgb25seVRyYW5zYWN0aW9uS2luZCB9OiBCdWlsZE9wdGlvbnMgPSB7fSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLiNibG9ja0RhdGEuYnVpbGQoeyBvbmx5VHJhbnNhY3Rpb25LaW5kIH0pO1xuICB9XG5cbiAgLyoqIERlcml2ZSB0cmFuc2FjdGlvbiBkaWdlc3QgKi9cbiAgYXN5bmMgZ2V0RGlnZXN0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuI2Jsb2NrRGF0YS5nZXREaWdlc3QoKTtcbiAgfVxufVxuIl19
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25CbG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL2J1aWxkZXIvVHJhbnNhY3Rpb25CbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxQ0FBc0M7QUFDdEMsNkNBQXVDO0FBQ3ZDLG9DQUFrRDtBQUNsRCxpREFBMkc7QUFDM0cscUNBQW1GO0FBQ25GLGlFQUE0RjtBQUM1RixtQ0FBaUM7QUFJakMsU0FBUyx1QkFBdUIsQ0FBQyxLQUFhO0lBQzVDLE1BQU0sVUFBVSxHQUF3QixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFFbEUsTUFBTSxhQUFhLEdBQTBCLEVBQUUsQ0FBQztJQUNoRCxNQUFNLGVBQWUsR0FBRyxDQUFDLFdBQW1CLEVBQXVCLEVBQUU7O1FBQ25FLE9BQUEsT0FBQyxhQUFhLENBQUMsV0FBVyxxQ0FBekIsYUFBYSxDQUFDLFdBQVcsSUFBTTtZQUM5QixJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLO1lBQ0wsV0FBVztTQUNaLEVBQUMsQ0FBQTtLQUFBLENBQUM7SUFFTCxPQUFPLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtRQUMzQixHQUFHO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRkFBcUYsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFDRCw2RUFBNkU7UUFDN0UsNEVBQTRFO1FBQzVFLG1DQUFtQztRQUNuQyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVE7WUFDbEIseUVBQXlFO1lBQ3pFLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRTtnQkFDdEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQzthQUN0QztZQUVELHlCQUF5QjtZQUN6QixJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxPQUFPLFFBQVEsQ0FB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R0FBRyxDQUFDLDJCQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsZUFBZSxDQUFDLEdBQUcsSUFBMEQ7UUFDM0UsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUFZLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQUcsSUFBc0Q7UUFDbkUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUFBLElBQUksbUNBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLG1CQUFtQixLQUFtQixFQUFFO1FBQ3BELE9BQU8sdUJBQUEsSUFBSSxtQ0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLEtBQUssQ0FBQyxTQUFTO1FBQ2IsT0FBTyx1QkFBQSxJQUFJLG1DQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBcE5ELDRDQW9OQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21CNjQgfSBmcm9tICdAbXlzdGVuL2Jjcyc7XG5pbXBvcnQgeyBpcywgbWFzayB9IGZyb20gJ3N1cGVyc3RydWN0JztcbmltcG9ydCB7IE9iamVjdElkLCBTdWlPYmplY3RSZWYgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbnMsIFRyYW5zYWN0aW9uQXJndW1lbnQsIFRyYW5zYWN0aW9uVHlwZSwgVHJhbnNhY3Rpb25CbG9ja0lucHV0IH0gZnJvbSAnLi9UcmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQnVpbGRlckNhbGxBcmcsIGdldElkRnJvbUNhbGxBcmcsIElucHV0cywgT2JqZWN0Q2FsbEFyZyB9IGZyb20gJy4vSW5wdXRzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQmxvY2tEYXRhQnVpbGRlciwgVHJhbnNhY3Rpb25FeHBpcmF0aW9uIH0gZnJvbSAnLi9UcmFuc2FjdGlvbkRhdGFCbG9jayc7XG5pbXBvcnQgeyBjcmVhdGUgfSBmcm9tICcuL3V0aWxzJztcblxudHlwZSBUcmFuc2FjdGlvblJlc3VsdCA9IFRyYW5zYWN0aW9uQXJndW1lbnQgJiBUcmFuc2FjdGlvbkFyZ3VtZW50W107XG5cbmZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uUmVzdWx0KGluZGV4OiBudW1iZXIpOiBUcmFuc2FjdGlvblJlc3VsdCB7XG4gIGNvbnN0IGJhc2VSZXN1bHQ6IFRyYW5zYWN0aW9uQXJndW1lbnQgPSB7IGtpbmQ6ICdSZXN1bHQnLCBpbmRleCB9O1xuXG4gIGNvbnN0IG5lc3RlZFJlc3VsdHM6IFRyYW5zYWN0aW9uQXJndW1lbnRbXSA9IFtdO1xuICBjb25zdCBuZXN0ZWRSZXN1bHRGb3IgPSAocmVzdWx0SW5kZXg6IG51bWJlcik6IFRyYW5zYWN0aW9uQXJndW1lbnQgPT5cbiAgICAobmVzdGVkUmVzdWx0c1tyZXN1bHRJbmRleF0gPz89IHtcbiAgICAgIGtpbmQ6ICdOZXN0ZWRSZXN1bHQnLFxuICAgICAgaW5kZXgsXG4gICAgICByZXN1bHRJbmRleCxcbiAgICB9KTtcblxuICByZXR1cm4gbmV3IFByb3h5KGJhc2VSZXN1bHQsIHtcbiAgICBzZXQoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSB0cmFuc2FjdGlvbiByZXN1bHQgaXMgYSBwcm94eSwgYW5kIGRvZXMgbm90IHN1cHBvcnQgc2V0dGluZyBwcm9wZXJ0aWVzIGRpcmVjdGx5Jyk7XG4gICAgfSxcbiAgICAvLyBUT0RPOiBJbnN0ZWFkIG9mIG1ha2luZyB0aGlzIHJldHVybiBhIGNvbmNyZXRlIGFyZ3VtZW50LCB3ZSBzaG91bGQgaWRlYWxseVxuICAgIC8vIG1ha2UgaXQgcmVmZXJlbmNlLWJhc2VkIChzbyB0aGF0IHRoaXMgZ2V0cyByZXNvbHZlZCBhdCBidWlsZC10aW1lKSwgd2hpY2hcbiAgICAvLyBhbGxvd3MgcmUtb3JkZXJpbmcgdHJhbnNhY3Rpb25zLlxuICAgIGdldCh0YXJnZXQsIHByb3BlcnR5KSB7XG4gICAgICAvLyBUaGlzIGFsbG93cyB0aGlzIHRyYW5zYWN0aW9uIGFyZ3VtZW50IHRvIGJlIHVzZWQgaW4gdGhlIHNpbmd1bGFyIGZvcm06XG4gICAgICBpZiAocHJvcGVydHkgaW4gdGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3BlcnR5KTtcbiAgICAgIH1cblxuICAgICAgLy8gU3VwcG9ydCBkZXN0cnVjdHVyaW5nOlxuICAgICAgaWYgKHByb3BlcnR5ID09PSBTeW1ib2wuaXRlcmF0b3IpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICB5aWVsZCBuZXN0ZWRSZXN1bHRGb3IoaSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHByb3BlcnR5ID09PSAnc3ltYm9sJykgcmV0dXJuO1xuXG4gICAgICBjb25zdCByZXN1bHRJbmRleCA9IHBhcnNlSW50KHByb3BlcnR5LCAxMCk7XG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHJlc3VsdEluZGV4KSB8fCByZXN1bHRJbmRleCA8IDApIHJldHVybjtcbiAgICAgIHJldHVybiBuZXN0ZWRSZXN1bHRGb3IocmVzdWx0SW5kZXgpO1xuICAgIH0sXG4gIH0pIGFzIFRyYW5zYWN0aW9uUmVzdWx0O1xufVxuXG5jb25zdCBUUkFOU0FDVElPTl9CUkFORCA9IFN5bWJvbC5mb3IoJ0BteXN0ZW4vdHJhbnNhY3Rpb24nKTtcblxuLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIGdhcyBvYmplY3RzIHRoYXQgY2FuIGJlIHNlbGVjdGVkIGZvciBvbmUgdHJhbnNhY3Rpb24uXG5jb25zdCBNQVhfR0FTX09CSkVDVFMgPSAyNTY7XG5cbi8vIFRoZSBtYXhpbXVtIGdhcyB0aGF0IGlzIGFsbG93ZWQuXG5jb25zdCBNQVhfR0FTID0gMTAwMDAwMDAwMDtcblxuLy8gQSBndWVzcyBhYm91dCBob3cgbXVjaCBvdmVyaGVhZCBlYWNoIGNvaW4gcHJvdmlkZXMgZm9yIGdhcyBjYWxjdWxhdGlvbnMuXG4vLyBAdHMtaWdub3JlXG5jb25zdCBHQVNfT1ZFUkhFQURfUEVSX0NPSU4gPSAxMG47XG5cbmludGVyZmFjZSBCdWlsZE9wdGlvbnMge1xuICBvbmx5VHJhbnNhY3Rpb25LaW5kPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBCdWlsZGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJsb2NrIHtcbiAgLyoqIFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgdGhlIFRyYW5zYWN0aW9uIGJ1aWxkZXIgY2xhc3MuICovXG4gIHN0YXRpYyBpcyhvYmo6IHVua25vd24pOiBvYmogaXMgVHJhbnNhY3Rpb25CbG9jayB7XG4gICAgcmV0dXJuICEhb2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIChvYmogYXMgYW55KVtUUkFOU0FDVElPTl9CUkFORF0gPT09IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgZnJvbSBhIHNlcmlhbGl6ZSB0cmFuc2FjdGlvbiBraW5kIChidWlsdCB3aXRoIGBidWlsZCh7IG9ubHlUcmFuc2FjdGlvbktpbmQ6IHRydWUgfSlgKSB0byBhIGBUcmFuc2FjdGlvbmAgY2xhc3MuXG4gICAqIFN1cHBvcnRzIGVpdGhlciBhIGJ5dGUgYXJyYXksIG9yIGJhc2U2NC1lbmNvZGVkIGJ5dGVzLlxuICAgKi9cbiAgc3RhdGljIGZyb21LaW5kKHNlcmlhbGl6ZWQ6IHN0cmluZyB8IFVpbnQ4QXJyYXkpIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbkJsb2NrKCk7XG5cbiAgICB0eC4jYmxvY2tEYXRhID0gVHJhbnNhY3Rpb25CbG9ja0RhdGFCdWlsZGVyLmZyb21LaW5kQnl0ZXMoXG4gICAgICB0eXBlb2Ygc2VyaWFsaXplZCA9PT0gJ3N0cmluZycgPyBmcm9tQjY0KHNlcmlhbGl6ZWQpIDogc2VyaWFsaXplZFxuICAgICk7XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgZnJvbSBhIHNlcmlhbGl6ZWQgdHJhbnNhY3Rpb24gZm9ybWF0IHRvIGEgYFRyYW5zYWN0aW9uYCBjbGFzcy5cbiAgICogVGhlcmUgYXJlIHR3byBzdXBwb3J0ZWQgc2VyaWFsaXplZCBmb3JtYXRzOlxuICAgKiAtIEEgc3RyaW5nIHJldHVybmVkIGZyb20gYFRyYW5zYWN0aW9uI3NlcmlhbGl6ZWAuIFRoZSBzZXJpYWxpemVkIGZvcm1hdCBtdXN0IGJlIGNvbXBhdGlibGUsIG9yIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IuXG4gICAqIC0gQSBieXRlIGFycmF5IChvciBiYXNlNjQtZW5jb2RlZCBieXRlcykgY29udGFpbmluZyBCQ1MgdHJhbnNhY3Rpb24gZGF0YS5cbiAgICovXG4gIHN0YXRpYyBmcm9tKHNlcmlhbGl6ZWQ6IHN0cmluZyB8IFVpbnQ4QXJyYXkpIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbkJsb2NrKCk7XG5cbiAgICAvLyBDaGVjayBmb3IgYnl0ZXM6XG4gICAgaWYgKHR5cGVvZiBzZXJpYWxpemVkICE9PSAnc3RyaW5nJyB8fCAhc2VyaWFsaXplZC5zdGFydHNXaXRoKCd7JykpIHtcbiAgICAgIHR4LiNibG9ja0RhdGEgPSBUcmFuc2FjdGlvbkJsb2NrRGF0YUJ1aWxkZXIuZnJvbUJ5dGVzKFxuICAgICAgICB0eXBlb2Ygc2VyaWFsaXplZCA9PT0gJ3N0cmluZycgPyBmcm9tQjY0KHNlcmlhbGl6ZWQpIDogc2VyaWFsaXplZFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHguI2Jsb2NrRGF0YSA9IFRyYW5zYWN0aW9uQmxvY2tEYXRhQnVpbGRlci5yZXN0b3JlKEpTT04ucGFyc2Uoc2VyaWFsaXplZCkpO1xuICAgIH1cblxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBBIGhlbHBlciB0byByZXRyaWV2ZSB0aGUgVHJhbnNhY3Rpb24gYnVpbGRlciBgVHJhbnNhY3Rpb25zYCAqL1xuICBzdGF0aWMgZ2V0IFRyYW5zYWN0aW9ucygpIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25zO1xuICB9XG5cbiAgLyoqIEEgaGVscGVyIHRvIHJldHJpZXZlIHRoZSBUcmFuc2FjdGlvbiBidWlsZGVyIGBJbnB1dHNgICovXG4gIHN0YXRpYyBnZXQgSW5wdXRzKCkge1xuICAgIHJldHVybiBJbnB1dHM7XG4gIH1cblxuICBzZXRTZW5kZXIoc2VuZGVyOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNibG9ja0RhdGEuc2VuZGVyID0gc2VuZGVyO1xuICB9XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZW5kZXIgb25seSBpZiBpdCBoYXMgbm90IGFscmVhZHkgYmVlbiBzZXQuXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciBzcG9uc29yZWQgdHJhbnNhY3Rpb24gZmxvd3Mgd2hlcmUgdGhlIHNlbmRlciBtYXkgbm90IGJlIHRoZSBzYW1lIGFzIHRoZSBzaWduZXIgYWRkcmVzcy5cbiAgICovXG4gIHNldFNlbmRlcklmTm90U2V0KHNlbmRlcjogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLiNibG9ja0RhdGEuc2VuZGVyKSB7XG4gICAgICB0aGlzLiNibG9ja0RhdGEuc2VuZGVyID0gc2VuZGVyO1xuICAgIH1cbiAgfVxuICBzZXRFeHBpcmF0aW9uKGV4cGlyYXRpb24/OiBUcmFuc2FjdGlvbkV4cGlyYXRpb24pIHtcbiAgICB0aGlzLiNibG9ja0RhdGEuZXhwaXJhdGlvbiA9IGV4cGlyYXRpb247XG4gIH1cbiAgc2V0R2FzUHJpY2UocHJpY2U6IG51bWJlciB8IGJpZ2ludCkge1xuICAgIHRoaXMuI2Jsb2NrRGF0YS5nYXNDb25maWcucHJpY2UgPSBTdHJpbmcocHJpY2UpO1xuICB9XG4gIHNldEdhc0J1ZGdldChidWRnZXQ6IG51bWJlciB8IGJpZ2ludCkge1xuICAgIHRoaXMuI2Jsb2NrRGF0YS5nYXNDb25maWcuYnVkZ2V0ID0gU3RyaW5nKGJ1ZGdldCk7XG4gIH1cbiAgc2V0R2FzT3duZXIob3duZXI6IHN0cmluZykge1xuICAgIHRoaXMuI2Jsb2NrRGF0YS5nYXNDb25maWcub3duZXIgPSBvd25lcjtcbiAgfVxuICBzZXRHYXNQYXltZW50KHBheW1lbnRzOiBTdWlPYmplY3RSZWZbXSkge1xuICAgIGlmIChwYXltZW50cy5sZW5ndGggPj0gTUFYX0dBU19PQkpFQ1RTKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFBheW1lbnQgb2JqZWN0cyBleGNlZWQgbWF4aW11bSBhbW91bnQgJHtNQVhfR0FTX09CSkVDVFN9YCk7XG4gICAgfVxuICAgIHRoaXMuI2Jsb2NrRGF0YS5nYXNDb25maWcucGF5bWVudCA9IHBheW1lbnRzLm1hcCgocGF5bWVudCkgPT4gbWFzayhwYXltZW50LCBTdWlPYmplY3RSZWYpKTtcbiAgfVxuXG4gICNibG9ja0RhdGE6IFRyYW5zYWN0aW9uQmxvY2tEYXRhQnVpbGRlcjtcbiAgLyoqIEdldCBhIHNuYXBzaG90IG9mIHRoZSB0cmFuc2FjdGlvbiBkYXRhLCBpbiBKU09OIGZvcm06ICovXG4gIGdldCBibG9ja0RhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2Jsb2NrRGF0YS5zbmFwc2hvdCgpO1xuICB9XG5cbiAgLy8gVXNlZCB0byBicmFuZCB0cmFuc2FjdGlvbiBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgaWRlbnRpZmllZCwgZXZlbiBiZXR3ZWVuIG11bHRpcGxlIGNvcGllc1xuICAvLyBvZiB0aGUgYnVpbGRlci5cbiAgZ2V0IFtUUkFOU0FDVElPTl9CUkFORF0oKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcih0cmFuc2FjdGlvbj86IFRyYW5zYWN0aW9uQmxvY2spIHtcbiAgICB0aGlzLiNibG9ja0RhdGEgPSBuZXcgVHJhbnNhY3Rpb25CbG9ja0RhdGFCdWlsZGVyKHRyYW5zYWN0aW9uID8gdHJhbnNhY3Rpb24uI2Jsb2NrRGF0YSA6IHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKiogUmV0dXJucyBhbiBhcmd1bWVudCBmb3IgdGhlIGdhcyBjb2luLCB0byBiZSB1c2VkIGluIGEgdHJhbnNhY3Rpb24uICovXG4gIGdldCBnYXMoKTogVHJhbnNhY3Rpb25Bcmd1bWVudCB7XG4gICAgcmV0dXJuIHsga2luZDogJ0dhc0NvaW4nIH07XG4gIH1cblxuICAvKipcbiAgICogRHluYW1pY2FsbHkgY3JlYXRlIGEgbmV3IGlucHV0LCB3aGljaCBpcyBzZXBhcmF0ZSBmcm9tIHRoZSBgaW5wdXRgLiBUaGlzIGlzIGltcG9ydGFudFxuICAgKiBmb3IgZ2VuZXJhdGVkIGNsaWVudHMgdG8gYmUgYWJsZSB0byBkZWZpbmUgdW5pcXVlIGlucHV0cyB0aGF0IGFyZSBub24tb3ZlcmxhcHBpbmcgd2l0aCB0aGVcbiAgICogZGVmaW5lZCBpbnB1dHMuXG4gICAqXG4gICAqIEZvciBgVWludDhBcnJheWAgdHlwZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnQgdGhlIGlucHV0IGludG8gYSBgUHVyZWAgQ2FsbEFyZywgc2luY2UgdGhpc1xuICAgKiBpcyB0aGUgZm9ybWF0IHJlcXVpcmVkIGZvciBjdXN0b20gc2VyaWFsaXphdGlvbi5cbiAgICpcbiAgICovXG4gIGlucHV0KHR5cGU6ICdvYmplY3QnIHwgJ3B1cmUnLCB2YWx1ZT86IHVua25vd24pIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuI2Jsb2NrRGF0YS5pbnB1dHMubGVuZ3RoO1xuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlKFxuICAgICAge1xuICAgICAgICBraW5kOiAnSW5wdXQnLFxuICAgICAgICAvLyBiaWdpbnRzIGNhbid0IGJlIHNlcmlhbGl6ZWQgdG8gSlNPTiwgc28ganVzdCBzdHJpbmctY29udmVydCB0aGVtIGhlcmU6XG4gICAgICAgIHZhbHVlOiB0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnID8gU3RyaW5nKHZhbHVlKSA6IHZhbHVlLFxuICAgICAgICBpbmRleCxcbiAgICAgICAgdHlwZSxcbiAgICAgIH0sXG4gICAgICBUcmFuc2FjdGlvbkJsb2NrSW5wdXRcbiAgICApO1xuICAgIHRoaXMuI2Jsb2NrRGF0YS5pbnB1dHMucHVzaChpbnB1dCk7XG4gICAgcmV0dXJuIGlucHV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBvYmplY3QgaW5wdXQgdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgb2JqZWN0KHZhbHVlOiBPYmplY3RJZCB8IE9iamVjdENhbGxBcmcpIHtcbiAgICBjb25zdCBpZCA9IGdldElkRnJvbUNhbGxBcmcodmFsdWUpO1xuICAgIC8vIGRlZHVwbGljYXRlXG4gICAgY29uc3QgaW5zZXJ0ZWQgPSB0aGlzLiNibG9ja0RhdGEuaW5wdXRzLmZpbmQoKGkpID0+IGkudHlwZSA9PT0gJ29iamVjdCcgJiYgaWQgPT09IGdldElkRnJvbUNhbGxBcmcoaS52YWx1ZSkpO1xuICAgIHJldHVybiBpbnNlcnRlZCA/PyB0aGlzLmlucHV0KCdvYmplY3QnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IG5vbi1vYmplY3QgaW5wdXQgdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgcHVyZShcbiAgICAvKipcbiAgICAgKiBUaGUgcHVyZSB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCBhcyB0aGUgaW5wdXQgdmFsdWUuIElmIHRoaXMgaXMgYSBVaW50OEFycmF5LCB0aGVuIHRoZSB2YWx1ZVxuICAgICAqIGlzIGFzc3VtZWQgdG8gYmUgcmF3IGJ5dGVzLCBhbmQgd2lsbCBiZSB1c2VkIGRpcmVjdGx5LlxuICAgICAqL1xuICAgIHZhbHVlOiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIFRoZSBCQ1MgdHlwZSB0byBzZXJpYWxpemUgdGhlIHZhbHVlIGludG8uIElmIG5vdCBwcm92aWRlZCwgdGhlIHR5cGUgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGRldGVybWluZWRcbiAgICAgKiBiYXNlZCBvbiBob3cgdGhlIGlucHV0IGlzIHVzZWQuXG4gICAgICovXG4gICAgdHlwZT86IHN0cmluZ1xuICApIHtcbiAgICAvLyBUT0RPOiB3ZSBjYW4gYWxzbyBkbyBzb21lIGRlZHVwbGljYXRpb24gaGVyZVxuICAgIHJldHVybiB0aGlzLmlucHV0KFxuICAgICAgJ3B1cmUnLFxuICAgICAgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5ID8gSW5wdXRzLlB1cmUodmFsdWUpIDogdHlwZSA/IElucHV0cy5QdXJlKHZhbHVlLCB0eXBlKSA6IHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBBZGQgYSB0cmFuc2FjdGlvbiB0byB0aGUgdHJhbnNhY3Rpb24gYmxvY2suICovXG4gIGFkZCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLiNibG9ja0RhdGEudHJhbnNhY3Rpb25zLnB1c2godHJhbnNhY3Rpb24pO1xuICAgIHJldHVybiBjcmVhdGVUcmFuc2FjdGlvblJlc3VsdChpbmRleCAtIDEpO1xuICB9XG5cbiAgLy8gTWV0aG9kIHNob3J0aGFuZHM6XG5cbiAgc3BsaXRDb2lucyguLi5hcmdzOiBQYXJhbWV0ZXJzPCh0eXBlb2YgVHJhbnNhY3Rpb25zKVsnU3BsaXRDb2lucyddPikge1xuICAgIHJldHVybiB0aGlzLmFkZChUcmFuc2FjdGlvbnMuU3BsaXRDb2lucyguLi5hcmdzKSk7XG4gIH1cbiAgbWVyZ2VDb2lucyguLi5hcmdzOiBQYXJhbWV0ZXJzPCh0eXBlb2YgVHJhbnNhY3Rpb25zKVsnTWVyZ2VDb2lucyddPikge1xuICAgIHJldHVybiB0aGlzLmFkZChUcmFuc2FjdGlvbnMuTWVyZ2VDb2lucyguLi5hcmdzKSk7XG4gIH1cbiAgcHVibGlzaCguLi5hcmdzOiBQYXJhbWV0ZXJzPCh0eXBlb2YgVHJhbnNhY3Rpb25zKVsnUHVibGlzaCddPikge1xuICAgIHJldHVybiB0aGlzLmFkZChUcmFuc2FjdGlvbnMuUHVibGlzaCguLi5hcmdzKSk7XG4gIH1cbiAgbW92ZUNhbGwoLi4uYXJnczogUGFyYW1ldGVyczwodHlwZW9mIFRyYW5zYWN0aW9ucylbJ01vdmVDYWxsJ10+KSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkKFRyYW5zYWN0aW9ucy5Nb3ZlQ2FsbCguLi5hcmdzKSk7XG4gIH1cbiAgdHJhbnNmZXJPYmplY3RzKC4uLmFyZ3M6IFBhcmFtZXRlcnM8KHR5cGVvZiBUcmFuc2FjdGlvbnMpWydUcmFuc2Zlck9iamVjdHMnXT4pIHtcbiAgICByZXR1cm4gdGhpcy5hZGQoVHJhbnNhY3Rpb25zLlRyYW5zZmVyT2JqZWN0cyguLi5hcmdzKSk7XG4gIH1cbiAgbWFrZU1vdmVWZWMoLi4uYXJnczogUGFyYW1ldGVyczwodHlwZW9mIFRyYW5zYWN0aW9ucylbJ01ha2VNb3ZlVmVjJ10+KSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkKFRyYW5zYWN0aW9ucy5NYWtlTW92ZVZlYyguLi5hcmdzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSB0cmFuc2FjdGlvbiB0byBhIHN0cmluZyBzbyB0aGF0IGl0IGNhbiBiZSBzZW50IHRvIGEgc2VwYXJhdGUgY29udGV4dC5cbiAgICogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBgYnVpbGRgIGluIHRoYXQgaXQgZG9lcyBub3Qgc2VyaWFsaXplIHRvIEJDUyBieXRlcywgYW5kIGluc3RlYWRcbiAgICogdXNlcyBhIHNlcGFyYXRlIGZvcm1hdCB0aGF0IGlzIHVuaXF1ZSB0byB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlci4gVGhpcyBhbGxvd3NcbiAgICogdXMgdG8gc2VyaWFsaXplIHBhcnRpYWxseS1jb21wbGV0ZSB0cmFuc2FjdGlvbnMsIHRoYXQgY2FuIHRoZW4gYmUgY29tcGxldGVkIGFuZFxuICAgKiBidWlsdCBpbiBhIHNlcGFyYXRlIGNvbnRleHQuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBhIGRhcHAgY2FuIGNvbnN0cnVjdCBhIHRyYW5zYWN0aW9uLCBidXQgbm90IHByb3ZpZGUgZ2FzIG9iamVjdHNcbiAgICogb3IgYSBnYXMgYnVkZ2V0LiBUaGUgdHJhbnNhY3Rpb24gdGhlbiBjYW4gYmUgc2VudCB0byB0aGUgd2FsbGV0LCB3aGVyZSB0aGlzXG4gICAqIGluZm9ybWF0aW9uIGlzIGF1dG9tYXRpY2FsbHkgZmlsbGVkIGluIChlLmcuIGJ5IHF1ZXJ5aW5nIGZvciBjb2luIG9iamVjdHNcbiAgICogYW5kIHBlcmZvcm1pbmcgYSBkcnkgcnVuKS5cbiAgICovXG4gIHNlcmlhbGl6ZSgpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy4jYmxvY2tEYXRhLnNuYXBzaG90KCkpO1xuICB9XG5cbiAgLyoqIEJ1aWxkIHRoZSB0cmFuc2FjdGlvbiB0byBCQ1MgYnl0ZXMuICovXG4gIGFzeW5jIGJ1aWxkKHsgb25seVRyYW5zYWN0aW9uS2luZCB9OiBCdWlsZE9wdGlvbnMgPSB7fSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLiNibG9ja0RhdGEuYnVpbGQoeyBvbmx5VHJhbnNhY3Rpb25LaW5kIH0pO1xuICB9XG5cbiAgLyoqIERlcml2ZSB0cmFuc2FjdGlvbiBkaWdlc3QgKi9cbiAgYXN5bmMgZ2V0RGlnZXN0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuI2Jsb2NrRGF0YS5nZXREaWdlc3QoKTtcbiAgfVxufVxuIl19
@@ -5,7 +5,7 @@ import { TransactionBuilder } from './transactionBuilder';
5
5
  import { Transaction } from './transaction';
6
6
  import { TransferTransaction } from './transferTransaction';
7
7
  export declare class StakingBuilder extends TransactionBuilder<StakingProgrammableTransaction> {
8
- protected _addStakeTx: RequestAddStake;
8
+ protected _addStakeTx: RequestAddStake[];
9
9
  protected _withdrawDelegation: RequestWithdrawStakedSui;
10
10
  constructor(_coinConfig: Readonly<CoinConfig>);
11
11
  /**
@@ -28,9 +28,9 @@ export declare class StakingBuilder extends TransactionBuilder<StakingProgrammab
28
28
  /**
29
29
  * Create a new transaction for staking coins ready to be signed and executed.
30
30
  *
31
- * @param {RequestAddStake} request
31
+ * @param {RequestAddStake[]} request: a list of staking request
32
32
  */
33
- stake(request: RequestAddStake): this;
33
+ stake(request: RequestAddStake[]): this;
34
34
  /**
35
35
  * Create a new transaction for withdrawing coins ready to be signed
36
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"stakingBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAkD,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EACL,cAAc,EACd,eAAe,EACf,wBAAwB,EAExB,8BAA8B,EAC/B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAiB5D,qBAAa,cAAe,SAAQ,kBAAkB,CAAC,8BAA8B,CAAC;IACpF,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC;IACvC,SAAS,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;gBAE5C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,cAAc,CAAC,8BAA8B,CAAC;IAYjF;;;;;OAKG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAO3D,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,OAAO;IAKjB;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAYrC;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAMhD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC,8BAA8B,CAAC;IAQjG,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAgB3F;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,8BAA8B,CAAC,GAAG,IAAI;IA2BlE;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,CAAC,8BAA8B,CAAC;CA+ChF"}
1
+ {"version":3,"file":"stakingBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAkD,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EACL,cAAc,EACd,eAAe,EACf,wBAAwB,EAExB,8BAA8B,EAC/B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAgB5D,qBAAa,cAAe,SAAQ,kBAAkB,CAAC,8BAA8B,CAAC;IACpF,SAAS,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC;IACzC,SAAS,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;gBAE5C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,cAAc,CAAC,8BAA8B,CAAC;IAYjF;;;;;OAKG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAO3D,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,OAAO;IAKjB;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI;IAcvC;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAMhD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC,8BAA8B,CAAC;IAQjG,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAgB3F;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,8BAA8B,CAAC,GAAG,IAAI;IAgBlE;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAWjC;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,CAAC,8BAA8B,CAAC;CAiDhF"}
@@ -58,14 +58,16 @@ class StakingBuilder extends transactionBuilder_1.TransactionBuilder {
58
58
  /**
59
59
  * Create a new transaction for staking coins ready to be signed and executed.
60
60
  *
61
- * @param {RequestAddStake} request
61
+ * @param {RequestAddStake[]} request: a list of staking request
62
62
  */
63
63
  stake(request) {
64
- utils_1.default.validateAddress(request.validatorAddress, 'validatorAddress');
65
- assert_1.default(utils_1.default.isValidAmount(request.amount), 'Invalid recipient amount');
66
- if (this._sender === request.validatorAddress) {
67
- throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
68
- }
64
+ request.forEach((req) => {
65
+ utils_1.default.validateAddress(req.validatorAddress, 'validatorAddress');
66
+ assert_1.default(utils_1.default.isValidAmount(req.amount), 'Invalid recipient amount');
67
+ if (this._sender === req.validatorAddress) {
68
+ throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
69
+ }
70
+ });
69
71
  this._addStakeTx = request;
70
72
  return this;
71
73
  }
@@ -114,11 +116,8 @@ class StakingBuilder extends transactionBuilder_1.TransactionBuilder {
114
116
  this.type(iface_1.SuiTransactionType.AddStake);
115
117
  this.sender(txData.sender);
116
118
  this.gasData(txData.gasData);
117
- const amountInputIdx = txData.kind.ProgrammableTransaction.transactions[1].arguments[1].index;
118
- const amount = utils_1.default.getAmount(txData.kind.ProgrammableTransaction.inputs[amountInputIdx]);
119
- const validatorAddressInputIdx = txData.kind.ProgrammableTransaction.transactions[1].arguments[2].index;
120
- const validatorAddress = utils_1.default.getAddress(txData.kind.ProgrammableTransaction.inputs[validatorAddressInputIdx]);
121
- this.stake({ amount, validatorAddress });
119
+ const requests = utils_1.default.getStakeRequests(tx.suiTransaction.tx);
120
+ this.stake(requests);
122
121
  }
123
122
  /**
124
123
  * Validates all fields are defined
@@ -126,8 +125,10 @@ class StakingBuilder extends transactionBuilder_1.TransactionBuilder {
126
125
  validateTransactionFields() {
127
126
  assert_1.default(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
128
127
  assert_1.default(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
129
- assert_1.default(this._addStakeTx.validatorAddress, new sdk_core_1.BuildTransactionError('validator address is required before building'));
130
- assert_1.default(this._addStakeTx.amount, new sdk_core_1.BuildTransactionError('staking amount is required before building'));
128
+ this._addStakeTx.forEach((req) => {
129
+ assert_1.default(req.validatorAddress, new sdk_core_1.BuildTransactionError('validator address is required before building'));
130
+ assert_1.default(req.amount, new sdk_core_1.BuildTransactionError('staking amount is required before building'));
131
+ });
131
132
  assert_1.default(this._gasData, new sdk_core_1.BuildTransactionError('gasData is required before building'));
132
133
  this.validateGasData(this._gasData);
133
134
  }
@@ -143,17 +144,19 @@ class StakingBuilder extends transactionBuilder_1.TransactionBuilder {
143
144
  switch (this._type) {
144
145
  case iface_1.SuiTransactionType.AddStake:
145
146
  // Create a new coin with staking balance, based on the coins used as gas payment.
146
- const coin = programmableTxBuilder.splitCoins(programmableTxBuilder.gas, [
147
- programmableTxBuilder.pure(this._addStakeTx.amount),
148
- ]);
149
- // Stake the split coin to a specific validator address.
150
- programmableTxBuilder.moveCall({
151
- target: `${framework_1.SUI_SYSTEM_ADDRESS}::${framework_1.SUI_SYSTEM_MODULE_NAME}::${framework_1.ADD_STAKE_FUN_NAME}`,
152
- arguments: [
153
- programmableTxBuilder.object(builder_1.Inputs.SharedObjectRef(framework_1.SUI_SYSTEM_STATE_OBJECT)),
154
- coin,
155
- programmableTxBuilder.pure(builder_1.Inputs.Pure(this._addStakeTx.validatorAddress, bcs_1.BCS.ADDRESS)),
156
- ],
147
+ this._addStakeTx.forEach((req) => {
148
+ const coin = programmableTxBuilder.splitCoins(programmableTxBuilder.gas, [
149
+ programmableTxBuilder.pure(req.amount),
150
+ ]);
151
+ // Stake the split coin to a specific validator address.
152
+ programmableTxBuilder.moveCall({
153
+ target: `${framework_1.SUI_SYSTEM_ADDRESS}::${framework_1.SUI_SYSTEM_MODULE_NAME}::${framework_1.ADD_STAKE_FUN_NAME}`,
154
+ arguments: [
155
+ programmableTxBuilder.object(builder_1.Inputs.SharedObjectRef(framework_1.SUI_SYSTEM_STATE_OBJECT)),
156
+ coin,
157
+ programmableTxBuilder.pure(builder_1.Inputs.Pure(req.validatorAddress, bcs_1.BCS.ADDRESS)),
158
+ ],
159
+ });
157
160
  });
158
161
  break;
159
162
  case iface_1.SuiTransactionType.WithdrawStake:
@@ -184,4 +187,4 @@ class StakingBuilder extends transactionBuilder_1.TransactionBuilder {
184
187
  }
185
188
  }
186
189
  exports.StakingBuilder = StakingBuilder;
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDhDQUEyRztBQUMzRyxtQ0FNaUI7QUFDakIsNkRBQTBEO0FBRTFELG9EQUE0QjtBQUM1QixvREFBNEI7QUFFNUIsNkRBQTBEO0FBQzFELGlEQUs2QjtBQUM3QixxREFNK0I7QUFDL0IscUNBQWtDO0FBRWxDLE1BQWEsY0FBZSxTQUFRLHVDQUFrRDtJQUlwRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksdUNBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxxQkFBcUI7UUFDN0IsT0FBTztZQUNMLElBQUksRUFBRSwwQkFBa0IsQ0FBQyxRQUFRO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixFQUFFLEVBQUU7Z0JBQ0YsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLEVBQUU7YUFDakI7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBZ0M7UUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBWTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixF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LGVBQWUsQ0FBQyxtQ0FBdUIsQ0FBQyxDQUFDO3dCQUM3RSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO3FCQUNqRjtpQkFDcUIsQ0FBQyxDQUFDO2dCQUMxQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDbEU7UUFFRCxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7UUFDL0MsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsRUFBRSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsWUFBWSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3ZDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxDQUFDLFFBQVE7YUFDakI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBNU1ELHdDQTRNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5LCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgU3VpVHJhbnNhY3Rpb24sXG4gIFJlcXVlc3RBZGRTdGFrZSxcbiAgUmVxdWVzdFdpdGhkcmF3U3Rha2VkU3VpLFxuICBTdWlUcmFuc2FjdGlvblR5cGUsXG4gIFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgVHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNmZXJUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBTdGFraW5nVHJhbnNhY3Rpb24gfSBmcm9tICcuL3N0YWtpbmdUcmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbkJsb2NrIGFzIFByb2dyYW1taW5nVHJhbnNhY3Rpb25CbG9ja0J1aWxkZXIsXG4gIFRyYW5zYWN0aW9uQmxvY2tJbnB1dCxcbiAgTW92ZUNhbGxUcmFuc2FjdGlvbixcbiAgSW5wdXRzLFxufSBmcm9tICcuL215c3RlbmxhYi9idWlsZGVyJztcbmltcG9ydCB7XG4gIEFERF9TVEFLRV9GVU5fTkFNRSxcbiAgU1VJX1NZU1RFTV9BRERSRVNTLFxuICBTVUlfU1lTVEVNX01PRFVMRV9OQU1FLFxuICBTVUlfU1lTVEVNX1NUQVRFX09CSkVDVCxcbiAgV0lUSERSQVdfU1RBS0VfRlVOX05BTUUsXG59IGZyb20gJy4vbXlzdGVubGFiL2ZyYW1ld29yayc7XG5pbXBvcnQgeyBCQ1MgfSBmcm9tICdAbXlzdGVuL2Jjcyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcjxTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgcHJvdGVjdGVkIF9hZGRTdGFrZVR4OiBSZXF1ZXN0QWRkU3Rha2U7XG4gIHByb3RlY3RlZCBfd2l0aGRyYXdEZWxlZ2F0aW9uOiBSZXF1ZXN0V2l0aGRyYXdTdGFrZWRTdWk7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFN0YWtpbmdUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBNb3ZlQ2FsbCB0cmFuc2FjdGlvbiByZWFkeSB0byBiZSBzaWduZWQgYW5kIGV4ZWN1dGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Qml0R29TdWlUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgU3VpIHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRTdGFrZVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2UsXG4gICAgICBzZW5kZXI6IHRoaXMuX3NlbmRlcixcbiAgICAgIHR4OiB7XG4gICAgICAgIGlucHV0czogW10sXG4gICAgICAgIHRyYW5zYWN0aW9uczogW10sXG4gICAgICB9LFxuICAgICAgZ2FzRGF0YTogdGhpcy5fZ2FzRGF0YSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzdGFraW5nIHRyYW5zYWN0aW9uIHR5cGVcbiAgICpcbiAgICogQHJldHVybiB7VHJhbnNhY3Rpb25UeXBlfVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FkZDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2ZlclRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbi5zdWlUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBzaWduKGtleTogQmFzZUtleSkge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U3VpVHJhbnNhY3Rpb24odGhpcy5idWlsZFN1aVRyYW5zYWN0aW9uKCkpO1xuICAgIHN1cGVyLnNpZ24oa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdHJhbnNhY3Rpb24gZm9yIHN0YWtpbmcgY29pbnMgcmVhZHkgdG8gYmUgc2lnbmVkIGFuZCBleGVjdXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtSZXF1ZXN0QWRkU3Rha2V9IHJlcXVlc3RcbiAgICovXG4gIHN0YWtlKHJlcXVlc3Q6IFJlcXVlc3RBZGRTdGFrZSk6IHRoaXMge1xuICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhyZXF1ZXN0LnZhbGlkYXRvckFkZHJlc3MsICd2YWxpZGF0b3JBZGRyZXNzJyk7XG4gICAgYXNzZXJ0KHV0aWxzLmlzVmFsaWRBbW91bnQocmVxdWVzdC5hbW91bnQpLCAnSW52YWxpZCByZWNpcGllbnQgYW1vdW50Jyk7XG5cbiAgICBpZiAodGhpcy5fc2VuZGVyID09PSByZXF1ZXN0LnZhbGlkYXRvckFkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBhZGRyZXNzIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgU3Rha2luZyBhZGRyZXNzJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fYWRkU3Rha2VUeCA9IHJlcXVlc3Q7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uIGZvciB3aXRoZHJhd2luZyBjb2lucyByZWFkeSB0byBiZSBzaWduZWRcbiAgICpcbiAgICogQHBhcmFtIHtSZXF1ZXN0V2l0aGRyYXdTdGFrZWRTdWl9IHJlcXVlc3RcbiAgICovXG4gIHVuc3Rha2UocmVxdWVzdDogUmVxdWVzdFdpdGhkcmF3U3Rha2VkU3VpKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVN1aU9iamVjdFJlZihyZXF1ZXN0LnN0YWtlZFN1aSwgJ3N0YWtlZFN1aScpO1xuICAgIHRoaXMuX3dpdGhkcmF3RGVsZWdhdGlvbiA9IHJlcXVlc3Q7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgdHggPSBuZXcgU3Rha2luZ1RyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFN1aVRyYW5zYWN0aW9uKHRoaXMuYnVpbGRTdWlUcmFuc2FjdGlvbigpKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG5cbiAgICBpZiAodGhpcy5fc2lnbmVyKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnNpZ24odGhpcy5fc2lnbmVyKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zaWduYXR1cmVzLmZvckVhY2goKHNpZ25hdHVyZSkgPT4ge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUoc2lnbmF0dXJlLnB1YmxpY0tleSwgc2lnbmF0dXJlLnNpZ25hdHVyZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnRyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1N0YWtpbmdUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbjxTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+KTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcblxuICAgIGlmICh0eC5zaWduYXR1cmUgJiYgdHguc2lnbmF0dXJlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbdHguc3VpU2lnbmF0dXJlXTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGEgPSB0eC50b0pzb24oKTtcbiAgICB0aGlzLnR5cGUoU3VpVHJhbnNhY3Rpb25UeXBlLkFkZFN0YWtlKTtcbiAgICB0aGlzLnNlbmRlcih0eERhdGEuc2VuZGVyKTtcbiAgICB0aGlzLmdhc0RhdGEodHhEYXRhLmdhc0RhdGEpO1xuXG4gICAgY29uc3QgYW1vdW50SW5wdXRJZHggPSAoXG4gICAgICAodHhEYXRhLmtpbmQuUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zWzFdIGFzIE1vdmVDYWxsVHJhbnNhY3Rpb24pLmFyZ3VtZW50c1sxXSBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXRcbiAgICApLmluZGV4O1xuICAgIGNvbnN0IGFtb3VudCA9IHV0aWxzLmdldEFtb3VudCh0eERhdGEua2luZC5Qcm9ncmFtbWFibGVUcmFuc2FjdGlvbi5pbnB1dHNbYW1vdW50SW5wdXRJZHhdIGFzIFRyYW5zYWN0aW9uQmxvY2tJbnB1dCk7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JBZGRyZXNzSW5wdXRJZHggPSAoXG4gICAgICAodHhEYXRhLmtpbmQuUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zWzFdIGFzIE1vdmVDYWxsVHJhbnNhY3Rpb24pLmFyZ3VtZW50c1syXSBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXRcbiAgICApLmluZGV4O1xuICAgIGNvbnN0IHZhbGlkYXRvckFkZHJlc3MgPSB1dGlscy5nZXRBZGRyZXNzKFxuICAgICAgdHhEYXRhLmtpbmQuUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24uaW5wdXRzW3ZhbGlkYXRvckFkZHJlc3NJbnB1dElkeF0gYXMgVHJhbnNhY3Rpb25CbG9ja0lucHV0XG4gICAgKTtcblxuICAgIHRoaXMuc3Rha2UoeyBhbW91bnQsIHZhbGlkYXRvckFkZHJlc3MgfSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFsbCBmaWVsZHMgYXJlIGRlZmluZWRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVUcmFuc2FjdGlvbkZpZWxkcygpOiB2b2lkIHtcbiAgICBhc3NlcnQodGhpcy5fdHlwZSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndHlwZSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZGVyIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQoXG4gICAgICB0aGlzLl9hZGRTdGFrZVR4LnZhbGlkYXRvckFkZHJlc3MsXG4gICAgICBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd2YWxpZGF0b3IgYWRkcmVzcyBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKVxuICAgICk7XG4gICAgYXNzZXJ0KHRoaXMuX2FkZFN0YWtlVHguYW1vdW50LCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzdGFraW5nIGFtb3VudCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX2dhc0RhdGEsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhc0RhdGEgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIHRoaXMudmFsaWRhdGVHYXNEYXRhKHRoaXMuX2dhc0RhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIFN1aVRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEByZXR1cm4ge0JpdEdvU3VpVHJhbnNhY3Rpb248TW92ZUNhbGxUeD59XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFN1aVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMudmFsaWRhdGVUcmFuc2FjdGlvbkZpZWxkcygpO1xuXG4gICAgY29uc3QgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyID0gbmV3IFByb2dyYW1taW5nVHJhbnNhY3Rpb25CbG9ja0J1aWxkZXIoKTtcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcbiAgICAgIGNhc2UgU3VpVHJhbnNhY3Rpb25UeXBlLkFkZFN0YWtlOlxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgY29pbiB3aXRoIHN0YWtpbmcgYmFsYW5jZSwgYmFzZWQgb24gdGhlIGNvaW5zIHVzZWQgYXMgZ2FzIHBheW1lbnQuXG4gICAgICAgIGNvbnN0IGNvaW4gPSBwcm9ncmFtbWFibGVUeEJ1aWxkZXIuc3BsaXRDb2lucyhwcm9ncmFtbWFibGVUeEJ1aWxkZXIuZ2FzLCBbXG4gICAgICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLnB1cmUodGhpcy5fYWRkU3Rha2VUeC5hbW91bnQpLFxuICAgICAgICBdKTtcbiAgICAgICAgLy8gU3Rha2UgdGhlIHNwbGl0IGNvaW4gdG8gYSBzcGVjaWZpYyB2YWxpZGF0b3IgYWRkcmVzcy5cbiAgICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLm1vdmVDYWxsKHtcbiAgICAgICAgICB0YXJnZXQ6IGAke1NVSV9TWVNURU1fQUREUkVTU306OiR7U1VJX1NZU1RFTV9NT0RVTEVfTkFNRX06OiR7QUREX1NUQUtFX0ZVTl9OQU1FfWAsXG4gICAgICAgICAgYXJndW1lbnRzOiBbXG4gICAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIub2JqZWN0KElucHV0cy5TaGFyZWRPYmplY3RSZWYoU1VJX1NZU1RFTV9TVEFURV9PQkpFQ1QpKSxcbiAgICAgICAgICAgIGNvaW4sXG4gICAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIucHVyZShJbnB1dHMuUHVyZSh0aGlzLl9hZGRTdGFrZVR4LnZhbGlkYXRvckFkZHJlc3MsIEJDUy5BRERSRVNTKSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSBhcyBNb3ZlQ2FsbFRyYW5zYWN0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlOlxuICAgICAgICAvLyBVbnN0YWtlIHN0YWtlZCBvYmplY3QuXG4gICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5tb3ZlQ2FsbCh7XG4gICAgICAgICAgdGFyZ2V0OiBgJHtTVUlfU1lTVEVNX0FERFJFU1N9Ojoke1NVSV9TWVNURU1fTU9EVUxFX05BTUV9Ojoke1dJVEhEUkFXX1NUQUtFX0ZVTl9OQU1FfWAsXG4gICAgICAgICAgYXJndW1lbnRzOiBbXG4gICAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIub2JqZWN0KElucHV0cy5TaGFyZWRPYmplY3RSZWYoU1VJX1NZU1RFTV9TVEFURV9PQkpFQ1QpKSxcbiAgICAgICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5wdXJlKElucHV0cy5PYmplY3RSZWYodGhpcy5fd2l0aGRyYXdEZWxlZ2F0aW9uLnN0YWtlZFN1aSkpLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0gYXMgTW92ZUNhbGxUcmFuc2FjdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGB1bnN1cHBvcnRlZCB0YXJnZXQgbWV0aG9kYCk7XG4gICAgfVxuXG4gICAgY29uc3QgdHhEYXRhID0gcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLmJsb2NrRGF0YTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdGhpcy5fdHlwZSxcbiAgICAgIHNlbmRlcjogdGhpcy5fc2VuZGVyLFxuICAgICAgdHg6IHtcbiAgICAgICAgaW5wdXRzOiBbLi4udHhEYXRhLmlucHV0c10sXG4gICAgICAgIHRyYW5zYWN0aW9uczogWy4uLnR4RGF0YS50cmFuc2FjdGlvbnNdLFxuICAgICAgfSxcbiAgICAgIGdhc0RhdGE6IHtcbiAgICAgICAgLi4udGhpcy5fZ2FzRGF0YSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDhDQUEyRztBQUMzRyxtQ0FNaUI7QUFDakIsNkRBQTBEO0FBRTFELG9EQUE0QjtBQUM1QixvREFBNEI7QUFFNUIsNkRBQTBEO0FBQzFELGlEQUk2QjtBQUM3QixxREFNK0I7QUFDL0IscUNBQWtDO0FBRWxDLE1BQWEsY0FBZSxTQUFRLHVDQUFrRDtJQUlwRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksdUNBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxxQkFBcUI7UUFDN0IsT0FBTztZQUNMLElBQUksRUFBRSwwQkFBa0IsQ0FBQyxRQUFRO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixFQUFFLEVBQUU7Z0JBQ0YsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLEVBQUU7YUFDakI7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBZ0M7UUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBWTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixF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RUQsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDO1FBQy9DLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLEVBQUUsRUFBRTtnQkFDRixNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQzFCLFlBQVksRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQzthQUN2QztZQUNELE9BQU8sRUFBRTtnQkFDUCxHQUFHLElBQUksQ0FBQyxRQUFRO2FBQ2pCO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBNRCx3Q0FvTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZUtleSwgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIFN1aVRyYW5zYWN0aW9uLFxuICBSZXF1ZXN0QWRkU3Rha2UsXG4gIFJlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aSxcbiAgU3VpVHJhbnNhY3Rpb25UeXBlLFxuICBTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IFRyYW5zZmVyVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zZmVyVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3Rha2luZ1RyYW5zYWN0aW9uIH0gZnJvbSAnLi9zdGFraW5nVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25CbG9jayBhcyBQcm9ncmFtbWluZ1RyYW5zYWN0aW9uQmxvY2tCdWlsZGVyLFxuICBNb3ZlQ2FsbFRyYW5zYWN0aW9uLFxuICBJbnB1dHMsXG59IGZyb20gJy4vbXlzdGVubGFiL2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgQUREX1NUQUtFX0ZVTl9OQU1FLFxuICBTVUlfU1lTVEVNX0FERFJFU1MsXG4gIFNVSV9TWVNURU1fTU9EVUxFX05BTUUsXG4gIFNVSV9TWVNURU1fU1RBVEVfT0JKRUNULFxuICBXSVRIRFJBV19TVEFLRV9GVU5fTkFNRSxcbn0gZnJvbSAnLi9teXN0ZW5sYWIvZnJhbWV3b3JrJztcbmltcG9ydCB7IEJDUyB9IGZyb20gJ0BteXN0ZW4vYmNzJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICBwcm90ZWN0ZWQgX2FkZFN0YWtlVHg6IFJlcXVlc3RBZGRTdGFrZVtdO1xuICBwcm90ZWN0ZWQgX3dpdGhkcmF3RGVsZWdhdGlvbjogUmVxdWVzdFdpdGhkcmF3U3Rha2VkU3VpO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBTdGFraW5nVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgTW92ZUNhbGwgdHJhbnNhY3Rpb24gcmVhZHkgdG8gYmUgc2lnbmVkIGFuZCBleGVjdXRlZC5cbiAgICpcbiAgICogQHJldHVybnMge0JpdEdvU3VpVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIFN1aSB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU3Rha2VUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlLkFkZFN0YWtlLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zZW5kZXIsXG4gICAgICB0eDoge1xuICAgICAgICBpbnB1dHM6IFtdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFtdLFxuICAgICAgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX2dhc0RhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3Rha2luZyB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9uVHlwZX1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBZGQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNmZXJUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24uc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgc2lnbihrZXk6IEJhc2VLZXkpIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFN1aVRyYW5zYWN0aW9uKHRoaXMuYnVpbGRTdWlUcmFuc2FjdGlvbigpKTtcbiAgICBzdXBlci5zaWduKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uIGZvciBzdGFraW5nIGNvaW5zIHJlYWR5IHRvIGJlIHNpZ25lZCBhbmQgZXhlY3V0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVxdWVzdEFkZFN0YWtlW119IHJlcXVlc3Q6IGEgbGlzdCBvZiBzdGFraW5nIHJlcXVlc3RcbiAgICovXG4gIHN0YWtlKHJlcXVlc3Q6IFJlcXVlc3RBZGRTdGFrZVtdKTogdGhpcyB7XG4gICAgcmVxdWVzdC5mb3JFYWNoKChyZXEpID0+IHtcbiAgICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhyZXEudmFsaWRhdG9yQWRkcmVzcywgJ3ZhbGlkYXRvckFkZHJlc3MnKTtcbiAgICAgIGFzc2VydCh1dGlscy5pc1ZhbGlkQW1vdW50KHJlcS5hbW91bnQpLCAnSW52YWxpZCByZWNpcGllbnQgYW1vdW50Jyk7XG5cbiAgICAgIGlmICh0aGlzLl9zZW5kZXIgPT09IHJlcS52YWxpZGF0b3JBZGRyZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBhZGRyZXNzIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgU3Rha2luZyBhZGRyZXNzJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9hZGRTdGFrZVR4ID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdHJhbnNhY3Rpb24gZm9yIHdpdGhkcmF3aW5nIGNvaW5zIHJlYWR5IHRvIGJlIHNpZ25lZFxuICAgKlxuICAgKiBAcGFyYW0ge1JlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aX0gcmVxdWVzdFxuICAgKi9cbiAgdW5zdGFrZShyZXF1ZXN0OiBSZXF1ZXN0V2l0aGRyYXdTdGFrZWRTdWkpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKHJlcXVlc3Quc3Rha2VkU3VpLCAnc3Rha2VkU3VpJyk7XG4gICAgdGhpcy5fd2l0aGRyYXdEZWxlZ2F0aW9uID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbjxTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eCA9IG5ldyBTdGFraW5nVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U3VpVHJhbnNhY3Rpb24odGhpcy5idWlsZFN1aVRyYW5zYWN0aW9uKCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcblxuICAgIGlmICh0aGlzLl9zaWduZXIpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbih0aGlzLl9zaWduZXIpO1xuICAgIH1cblxuICAgIHRoaXMuX3NpZ25hdHVyZXMuZm9yRWFjaCgoc2lnbmF0dXJlKSA9PiB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZFNpZ25hdHVyZShzaWduYXR1cmUucHVibGljS2V5LCBzaWduYXR1cmUuc2lnbmF0dXJlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24ubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7U3Rha2luZ1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuXG4gICAgaWYgKHR4LnNpZ25hdHVyZSAmJiB0eC5zaWduYXR1cmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlcyA9IFt0eC5zdWlTaWduYXR1cmVdO1xuICAgIH1cblxuICAgIGNvbnN0IHR4RGF0YSA9IHR4LnRvSnNvbigpO1xuICAgIHRoaXMudHlwZShTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2UpO1xuICAgIHRoaXMuc2VuZGVyKHR4RGF0YS5zZW5kZXIpO1xuICAgIHRoaXMuZ2FzRGF0YSh0eERhdGEuZ2FzRGF0YSk7XG5cbiAgICBjb25zdCByZXF1ZXN0cyA9IHV0aWxzLmdldFN0YWtlUmVxdWVzdHModHguc3VpVHJhbnNhY3Rpb24udHgpO1xuICAgIHRoaXMuc3Rha2UocmVxdWVzdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbGwgZmllbGRzIGFyZSBkZWZpbmVkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTogdm9pZCB7XG4gICAgYXNzZXJ0KHRoaXMuX3R5cGUsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3R5cGUgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3NlbmRlciBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy5fYWRkU3Rha2VUeC5mb3JFYWNoKChyZXEpID0+IHtcbiAgICAgIGFzc2VydChyZXEudmFsaWRhdG9yQWRkcmVzcywgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndmFsaWRhdG9yIGFkZHJlc3MgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgICAgYXNzZXJ0KHJlcS5hbW91bnQsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3N0YWtpbmcgYW1vdW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICB9KTtcbiAgICBhc3NlcnQodGhpcy5fZ2FzRGF0YSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignZ2FzRGF0YSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy52YWxpZGF0ZUdhc0RhdGEodGhpcy5fZ2FzRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgU3VpVHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHJldHVybiB7Qml0R29TdWlUcmFuc2FjdGlvbjxNb3ZlQ2FsbFR4Pn1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG5cbiAgICBjb25zdCBwcm9ncmFtbWFibGVUeEJ1aWxkZXIgPSBuZXcgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcigpO1xuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xuICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2U6XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBjb2luIHdpdGggc3Rha2luZyBiYWxhbmNlLCBiYXNlZCBvbiB0aGUgY29pbnMgdXNlZCBhcyBnYXMgcGF5bWVudC5cbiAgICAgICAgdGhpcy5fYWRkU3Rha2VUeC5mb3JFYWNoKChyZXEpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2luID0gcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLnNwbGl0Q29pbnMocHJvZ3JhbW1hYmxlVHhCdWlsZGVyLmdhcywgW1xuICAgICAgICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLnB1cmUocmVxLmFtb3VudCksXG4gICAgICAgICAgXSk7XG4gICAgICAgICAgLy8gU3Rha2UgdGhlIHNwbGl0IGNvaW4gdG8gYSBzcGVjaWZpYyB2YWxpZGF0b3IgYWRkcmVzcy5cbiAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIubW92ZUNhbGwoe1xuICAgICAgICAgICAgdGFyZ2V0OiBgJHtTVUlfU1lTVEVNX0FERFJFU1N9Ojoke1NVSV9TWVNURU1fTU9EVUxFX05BTUV9Ojoke0FERF9TVEFLRV9GVU5fTkFNRX1gLFxuICAgICAgICAgICAgYXJndW1lbnRzOiBbXG4gICAgICAgICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5vYmplY3QoSW5wdXRzLlNoYXJlZE9iamVjdFJlZihTVUlfU1lTVEVNX1NUQVRFX09CSkVDVCkpLFxuICAgICAgICAgICAgICBjb2luLFxuICAgICAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIucHVyZShJbnB1dHMuUHVyZShyZXEudmFsaWRhdG9yQWRkcmVzcywgQkNTLkFERFJFU1MpKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSBhcyBNb3ZlQ2FsbFRyYW5zYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuV2l0aGRyYXdTdGFrZTpcbiAgICAgICAgLy8gVW5zdGFrZSBzdGFrZWQgb2JqZWN0LlxuICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIubW92ZUNhbGwoe1xuICAgICAgICAgIHRhcmdldDogYCR7U1VJX1NZU1RFTV9BRERSRVNTfTo6JHtTVUlfU1lTVEVNX01PRFVMRV9OQU1FfTo6JHtXSVRIRFJBV19TVEFLRV9GVU5fTkFNRX1gLFxuICAgICAgICAgIGFyZ3VtZW50czogW1xuICAgICAgICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLm9iamVjdChJbnB1dHMuU2hhcmVkT2JqZWN0UmVmKFNVSV9TWVNURU1fU1RBVEVfT0JKRUNUKSksXG4gICAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIucHVyZShJbnB1dHMuT2JqZWN0UmVmKHRoaXMuX3dpdGhkcmF3RGVsZWdhdGlvbi5zdGFrZWRTdWkpKSxcbiAgICAgICAgICBdLFxuICAgICAgICB9IGFzIE1vdmVDYWxsVHJhbnNhY3Rpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgdW5zdXBwb3J0ZWQgdGFyZ2V0IG1ldGhvZGApO1xuICAgIH1cblxuICAgIGNvbnN0IHR4RGF0YSA9IHByb2dyYW1tYWJsZVR4QnVpbGRlci5ibG9ja0RhdGE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUsXG4gICAgICBzZW5kZXI6IHRoaXMuX3NlbmRlcixcbiAgICAgIHR4OiB7XG4gICAgICAgIGlucHV0czogWy4uLnR4RGF0YS5pbnB1dHNdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFsuLi50eERhdGEudHJhbnNhY3Rpb25zXSxcbiAgICAgIH0sXG4gICAgICBnYXNEYXRhOiB7XG4gICAgICAgIC4uLnRoaXMuX2dhc0RhdGEsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"stakingTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingTransaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EAGP,SAAS,IAAI,aAAa,EAC1B,SAAS,EAET,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,8BAA8B,CAAC;gBACrE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAAC,8BAA8B,CAAC,CAEnE;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,8BAA8B,CAAC,GAAG,IAAI;IAI3E,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAehB,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAmC5C;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAiC5B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAchD;;;;OAIG;IACH,SAAS,IAAI,MAAM;IA0CnB;;;;;;OAMG;IACH,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;CA2BjH"}
1
+ {"version":3,"file":"stakingTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingTransaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EAGP,SAAS,IAAI,aAAa,EAC1B,SAAS,EAET,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,8BAA8B,CAAC;gBACrE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAAC,8BAA8B,CAAC,CAEnE;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,8BAA8B,CAAC,GAAG,IAAI;IAI3E,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAehB,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAmC5C;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAsB5B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAchD;;;;OAIG;IACH,SAAS,IAAI,MAAM;IA0CnB;;;;;;OAMG;IACH,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;CA2BjH"}