@bitgo/account-lib 2.19.0-rc.1 → 2.19.0-rc.10

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 (162) hide show
  1. package/DEVELOPER.md +1 -1
  2. package/dist/browser/bitgo-account-lib.js +1 -1
  3. package/dist/browser/bitgo-account-lib.js.LICENSE.txt +4 -4
  4. package/dist/package.json +10 -10
  5. package/dist/src/coin/algo/ifaces.d.ts +1 -0
  6. package/dist/src/coin/algo/ifaces.d.ts.map +1 -1
  7. package/dist/src/coin/algo/ifaces.js +1 -1
  8. package/dist/src/coin/algo/index.d.ts +2 -0
  9. package/dist/src/coin/algo/index.d.ts.map +1 -1
  10. package/dist/src/coin/algo/index.js +23 -2
  11. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +24 -5
  12. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +1 -1
  13. package/dist/src/coin/algo/keyRegistrationBuilder.js +100 -21
  14. package/dist/src/coin/algo/transaction.d.ts.map +1 -1
  15. package/dist/src/coin/algo/transaction.js +15 -6
  16. package/dist/src/coin/algo/txnSchema.d.ts.map +1 -1
  17. package/dist/src/coin/algo/txnSchema.js +2 -1
  18. package/dist/src/coin/algo/utils.d.ts +5 -0
  19. package/dist/src/coin/algo/utils.d.ts.map +1 -1
  20. package/dist/src/coin/algo/utils.js +19 -2
  21. package/dist/src/coin/avaxc/resources.js +3 -3
  22. package/dist/src/coin/avaxc/transactionBuilder.d.ts +1 -1
  23. package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +1 -1
  24. package/dist/src/coin/avaxc/transactionBuilder.js +1 -1
  25. package/dist/src/coin/baseCoin/blsKeyPair.js +7 -7
  26. package/dist/src/coin/baseCoin/index.d.ts +1 -0
  27. package/dist/src/coin/baseCoin/index.d.ts.map +1 -1
  28. package/dist/src/coin/baseCoin/index.js +4 -2
  29. package/dist/src/coin/celo/stakingBuilder.d.ts +1 -1
  30. package/dist/src/coin/celo/stakingBuilder.d.ts.map +1 -1
  31. package/dist/src/coin/celo/stakingBuilder.js +1 -1
  32. package/dist/src/coin/celo/transactionBuilder.d.ts +1 -1
  33. package/dist/src/coin/celo/transactionBuilder.d.ts.map +1 -1
  34. package/dist/src/coin/celo/transactionBuilder.js +1 -1
  35. package/dist/src/coin/cspr/delegateBuilder.d.ts +1 -1
  36. package/dist/src/coin/cspr/delegateBuilder.d.ts.map +1 -1
  37. package/dist/src/coin/cspr/delegateBuilder.js +1 -1
  38. package/dist/src/coin/cspr/transaction.d.ts +1 -1
  39. package/dist/src/coin/cspr/transaction.d.ts.map +1 -1
  40. package/dist/src/coin/cspr/transaction.js +1 -1
  41. package/dist/src/coin/cspr/transactionBuilder.d.ts +1 -1
  42. package/dist/src/coin/cspr/transactionBuilder.d.ts.map +1 -1
  43. package/dist/src/coin/cspr/transactionBuilder.js +1 -1
  44. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +1 -1
  45. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +1 -1
  46. package/dist/src/coin/cspr/transactionBuilderFactory.js +1 -1
  47. package/dist/src/coin/cspr/transferBuilder.d.ts +1 -1
  48. package/dist/src/coin/cspr/transferBuilder.d.ts.map +1 -1
  49. package/dist/src/coin/cspr/transferBuilder.js +1 -1
  50. package/dist/src/coin/cspr/undelegateBuilder.d.ts +1 -1
  51. package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +1 -1
  52. package/dist/src/coin/cspr/undelegateBuilder.js +1 -1
  53. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +1 -1
  54. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +1 -1
  55. package/dist/src/coin/cspr/walletInitializationBuilder.js +1 -1
  56. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +1 -1
  57. package/dist/src/coin/dot/batchTransactionBuilder.js +1 -1
  58. package/dist/src/coin/dot/iface.d.ts +8 -2
  59. package/dist/src/coin/dot/iface.d.ts.map +1 -1
  60. package/dist/src/coin/dot/iface.js +2 -1
  61. package/dist/src/coin/dot/index.d.ts +2 -0
  62. package/dist/src/coin/dot/index.d.ts.map +1 -1
  63. package/dist/src/coin/dot/index.js +6 -2
  64. package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
  65. package/dist/src/coin/dot/keyPair.js +4 -2
  66. package/dist/src/coin/dot/singletonRegistry.d.ts +7 -0
  67. package/dist/src/coin/dot/singletonRegistry.d.ts.map +1 -0
  68. package/dist/src/coin/dot/singletonRegistry.js +23 -0
  69. package/dist/src/coin/dot/transaction.d.ts +18 -2
  70. package/dist/src/coin/dot/transaction.d.ts.map +1 -1
  71. package/dist/src/coin/dot/transaction.js +66 -66
  72. package/dist/src/coin/dot/transactionBuilder.d.ts +6 -2
  73. package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
  74. package/dist/src/coin/dot/transactionBuilder.js +19 -8
  75. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +2 -1
  76. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
  77. package/dist/src/coin/dot/transactionBuilderFactory.js +6 -7
  78. package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
  79. package/dist/src/coin/dot/transferBuilder.js +4 -3
  80. package/dist/src/coin/dot/txnSchema.d.ts +1 -0
  81. package/dist/src/coin/dot/txnSchema.d.ts.map +1 -1
  82. package/dist/src/coin/dot/txnSchema.js +5 -2
  83. package/dist/src/coin/dot/utils.d.ts +19 -4
  84. package/dist/src/coin/dot/utils.d.ts.map +1 -1
  85. package/dist/src/coin/dot/utils.js +39 -11
  86. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +38 -0
  87. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +1 -0
  88. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +112 -0
  89. package/dist/src/coin/etc/transactionBuilder.d.ts +1 -1
  90. package/dist/src/coin/etc/transactionBuilder.d.ts.map +1 -1
  91. package/dist/src/coin/etc/transactionBuilder.js +1 -1
  92. package/dist/src/coin/eth2/keyPair.js +2 -2
  93. package/dist/src/coin/hbar/transaction.d.ts +1 -1
  94. package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
  95. package/dist/src/coin/hbar/transaction.js +1 -1
  96. package/dist/src/coin/hbar/transactionBuilder.d.ts +1 -1
  97. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
  98. package/dist/src/coin/hbar/transactionBuilder.js +1 -1
  99. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +1 -1
  100. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
  101. package/dist/src/coin/hbar/transactionBuilderFactory.js +1 -1
  102. package/dist/src/coin/hbar/transferBuilder.d.ts +1 -1
  103. package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
  104. package/dist/src/coin/hbar/transferBuilder.js +1 -1
  105. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +1 -1
  106. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
  107. package/dist/src/coin/hbar/walletInitializationBuilder.js +1 -1
  108. package/dist/src/coin/near/iface.d.ts +29 -0
  109. package/dist/src/coin/near/iface.d.ts.map +1 -0
  110. package/dist/src/coin/near/iface.js +8 -0
  111. package/dist/src/coin/near/transaction.d.ts +26 -2
  112. package/dist/src/coin/near/transaction.d.ts.map +1 -1
  113. package/dist/src/coin/near/transaction.js +110 -10
  114. package/dist/src/coin/near/transactionBuilder.d.ts +41 -7
  115. package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -1
  116. package/dist/src/coin/near/transactionBuilder.js +70 -14
  117. package/dist/src/coin/near/transferBuilder.d.ts +14 -0
  118. package/dist/src/coin/near/transferBuilder.d.ts.map +1 -1
  119. package/dist/src/coin/near/transferBuilder.js +52 -2
  120. package/dist/src/coin/near/utils.d.ts +18 -2
  121. package/dist/src/coin/near/utils.d.ts.map +1 -1
  122. package/dist/src/coin/near/utils.js +36 -9
  123. package/dist/src/coin/rbtc/transactionBuilder.d.ts +1 -1
  124. package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +1 -1
  125. package/dist/src/coin/rbtc/transactionBuilder.js +1 -1
  126. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +2 -0
  127. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
  128. package/dist/src/coin/sol/ataInitializationBuilder.js +7 -5
  129. package/dist/src/coin/sol/ataInitializationTransaction.d.ts +14 -0
  130. package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -0
  131. package/dist/src/coin/sol/ataInitializationTransaction.js +104 -0
  132. package/dist/src/coin/sol/iface.d.ts +0 -1
  133. package/dist/src/coin/sol/iface.d.ts.map +1 -1
  134. package/dist/src/coin/sol/iface.js +1 -1
  135. package/dist/src/coin/sol/index.d.ts +2 -1
  136. package/dist/src/coin/sol/index.d.ts.map +1 -1
  137. package/dist/src/coin/sol/index.js +4 -2
  138. package/dist/src/coin/sol/tokenEncodeDecode.d.ts +85 -0
  139. package/dist/src/coin/sol/tokenEncodeDecode.d.ts.map +1 -0
  140. package/dist/src/coin/sol/tokenEncodeDecode.js +162 -0
  141. package/dist/src/coin/sol/transaction.d.ts +5 -2
  142. package/dist/src/coin/sol/transaction.d.ts.map +1 -1
  143. package/dist/src/coin/sol/transaction.js +10 -22
  144. package/dist/src/coin/sol/transactionBuilder.d.ts +1 -1
  145. package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
  146. package/dist/src/coin/sol/transactionBuilder.js +1 -1
  147. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +3 -1
  148. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
  149. package/dist/src/coin/sol/transactionBuilderFactory.js +8 -3
  150. package/dist/src/coin/sol/utils.d.ts.map +1 -1
  151. package/dist/src/coin/sol/utils.js +2 -3
  152. package/dist/src/index.d.ts +2 -0
  153. package/dist/src/index.d.ts.map +1 -1
  154. package/dist/src/index.js +7 -2
  155. package/dist/src/mpc/tss.d.ts +6 -6
  156. package/dist/src/mpc/tss.d.ts.map +1 -1
  157. package/dist/src/mpc/tss.js +3 -2
  158. package/dist/src/utils/crypto.d.ts +15 -0
  159. package/dist/src/utils/crypto.d.ts.map +1 -1
  160. package/dist/src/utils/crypto.js +33 -2
  161. package/dist/tsconfig.tsbuildinfo +1 -0
  162. package/package.json +10 -10
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
17
28
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
29
  if (k2 === undefined) k2 = k;
19
30
  Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
@@ -33,13 +44,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
44
  __setModuleDefault(result, mod);
34
45
  return result;
35
46
  };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
36
50
  Object.defineProperty(exports, "__esModule", { value: true });
37
51
  exports.Transaction = void 0;
38
52
  var baseCoin_1 = require("../baseCoin");
39
53
  var errors_1 = require("../baseCoin/errors");
54
+ var utils_1 = __importDefault(require("./utils"));
40
55
  var keyPair_1 = require("./keyPair");
41
56
  var nearAPI = __importStar(require("near-api-js"));
42
57
  var sha256 = __importStar(require("js-sha256"));
58
+ var bs58_1 = __importDefault(require("bs58"));
43
59
  var Transaction = /** @class */ (function (_super) {
44
60
  __extends(Transaction, _super);
45
61
  function Transaction(coinConfig) {
@@ -51,6 +67,7 @@ var Transaction = /** @class */ (function (_super) {
51
67
  },
52
68
  set: function (tx) {
53
69
  this._nearTransaction = tx;
70
+ this._id = utils_1.default.base58Encode(this.getTransactionHash());
54
71
  },
55
72
  enumerable: false,
56
73
  configurable: true
@@ -81,12 +98,13 @@ var Transaction = /** @class */ (function (_super) {
81
98
  throw new errors_1.InvalidTransactionError('Empty transaction data');
82
99
  }
83
100
  return {
84
- signer_id: this._nearTransaction.signerId,
85
- public_key: this._nearTransaction.publicKey.toString(),
101
+ id: this._id,
102
+ signerId: this._nearTransaction.signerId,
103
+ publicKey: this._nearTransaction.publicKey.toString(),
86
104
  nonce: this._nearTransaction.nonce,
87
- receiver_id: this._nearTransaction.receiverId,
105
+ receiverId: this._nearTransaction.receiverId,
88
106
  actions: this._nearTransaction.actions,
89
- signature: typeof this._nearSignedTransaction === 'undefined' ? '' : this._nearSignedTransaction.signature,
107
+ signature: typeof this._nearSignedTransaction === 'undefined' ? undefined : this._nearSignedTransaction.signature,
90
108
  };
91
109
  };
92
110
  /**
@@ -107,16 +125,18 @@ var Transaction = /** @class */ (function (_super) {
107
125
  var signedTx = nearAPI.utils.serialize.deserialize(nearAPI.transactions.SCHEMA, nearAPI.transactions.SignedTransaction, nearAPI.utils.serialize.base_decode(rawTransaction));
108
126
  this._nearSignedTransaction = signedTx;
109
127
  this._nearTransaction = signedTx.transaction;
128
+ this._id = utils_1.default.base58Encode(this.getTransactionHash());
110
129
  }
111
130
  catch (e) {
112
131
  try {
113
132
  this._nearTransaction = nearAPI.utils.serialize.deserialize(nearAPI.transactions.SCHEMA, nearAPI.transactions.Transaction, nearAPI.utils.serialize.base_decode(rawTransaction));
133
+ this._id = utils_1.default.base58Encode(this.getTransactionHash());
114
134
  }
115
135
  catch (e) {
116
136
  throw new errors_1.InvalidTransactionError('unable to build transaction from raw');
117
137
  }
118
138
  }
119
- this.buildInputAndOutput();
139
+ this.loadInputsAndOutputs();
120
140
  };
121
141
  /**
122
142
  * Sign this transaction
@@ -127,8 +147,7 @@ var Transaction = /** @class */ (function (_super) {
127
147
  if (!this._nearTransaction) {
128
148
  throw new errors_1.InvalidTransactionError('empty transaction to sign');
129
149
  }
130
- var serializedTx = nearAPI.utils.serialize.serialize(nearAPI.transactions.SCHEMA, this._nearTransaction);
131
- var serializedTxHash = new Uint8Array(sha256.sha256.array(serializedTx));
150
+ var serializedTxHash = this.getTransactionHash();
132
151
  var signature = signer.signMessageinUint8Array(serializedTxHash);
133
152
  this._nearSignedTransaction = new nearAPI.transactions.SignedTransaction({
134
153
  transaction: this._nearTransaction,
@@ -137,13 +156,13 @@ var Transaction = /** @class */ (function (_super) {
137
156
  data: signature,
138
157
  }),
139
158
  });
140
- this.buildInputAndOutput();
159
+ this.loadInputsAndOutputs();
141
160
  };
142
161
  /**
143
162
  * Build input and output field for this transaction
144
163
  *
145
164
  */
146
- Transaction.prototype.buildInputAndOutput = function () {
165
+ Transaction.prototype.loadInputsAndOutputs = function () {
147
166
  if (this._nearTransaction.actions.length != 1) {
148
167
  throw new errors_1.InvalidTransactionError('too many actions in raw transaction');
149
168
  }
@@ -173,7 +192,88 @@ var Transaction = /** @class */ (function (_super) {
173
192
  this._outputs = outputs;
174
193
  this._inputs = inputs;
175
194
  };
195
+ /**
196
+ * Returns a complete explanation for a transfer transaction
197
+ * @param {TxData} json The transaction data in json format
198
+ * @param {TransactionExplanation} explanationResult The transaction explanation to be completed
199
+ * @returns {TransactionExplanation}
200
+ */
201
+ Transaction.prototype.explainTransferTransaction = function (json, explanationResult) {
202
+ return __assign(__assign({}, explanationResult), { outputs: [
203
+ {
204
+ address: json.receiverId,
205
+ amount: json.actions[0].transfer.deposit.toString(),
206
+ },
207
+ ] });
208
+ };
209
+ /** @inheritdoc */
210
+ Transaction.prototype.explainTransaction = function () {
211
+ var result = this.toJson();
212
+ var displayOrder = ['outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee', 'type'];
213
+ var outputs = [];
214
+ var explanationResult = {
215
+ // txhash used to identify the transactions
216
+ id: result.id || '',
217
+ displayOrder: displayOrder,
218
+ outputAmount: result.actions[0].transfer.deposit.toString(),
219
+ changeAmount: '0',
220
+ changeOutputs: [],
221
+ outputs: outputs,
222
+ fee: { fee: '' },
223
+ type: this.type,
224
+ };
225
+ switch (this.type) {
226
+ case baseCoin_1.TransactionType.Send:
227
+ return this.explainTransferTransaction(result, explanationResult);
228
+ default:
229
+ throw new errors_1.InvalidTransactionError('Transaction type not supported');
230
+ }
231
+ };
232
+ Transaction.prototype.getTransactionHash = function () {
233
+ var serializedTx = nearAPI.utils.serialize.serialize(nearAPI.transactions.SCHEMA, this._nearTransaction);
234
+ return new Uint8Array(sha256.sha256.array(serializedTx));
235
+ };
236
+ Object.defineProperty(Transaction.prototype, "signablePayload", {
237
+ get: function () {
238
+ if (!this._nearTransaction) {
239
+ throw new errors_1.InvalidTransactionError('empty transaction');
240
+ }
241
+ return Buffer.from(nearAPI.utils.serialize.serialize(nearAPI.transactions.SCHEMA, this._nearTransaction));
242
+ },
243
+ enumerable: false,
244
+ configurable: true
245
+ });
246
+ /**
247
+ * Constructs a signed payload using construct.signTx
248
+ * This method will be called during the build step if a TSS signature
249
+ * is added and will set the signTransaction which is the txHex that will be broadcasted
250
+ * As well as add the signature used to sign to the signature array in hex format
251
+ *
252
+ * @param {Buffer} signature The signature to be added to a dot transaction
253
+ */
254
+ Transaction.prototype.constructSignedPayload = function (signature) {
255
+ this._nearSignedTransaction = new nearAPI.transactions.SignedTransaction({
256
+ transaction: this._nearTransaction,
257
+ signature: new nearAPI.transactions.Signature({
258
+ keyType: this._nearTransaction.publicKey.keyType,
259
+ data: signature,
260
+ }),
261
+ });
262
+ this.loadInputsAndOutputs();
263
+ };
264
+ Object.defineProperty(Transaction.prototype, "signature", {
265
+ /** @inheritdoc **/
266
+ get: function () {
267
+ var signatures = [];
268
+ if (this._nearSignedTransaction) {
269
+ signatures.push(bs58_1.default.encode(this._nearSignedTransaction.signature.data));
270
+ }
271
+ return signatures;
272
+ },
273
+ enumerable: false,
274
+ configurable: true
275
+ });
176
276
  return Transaction;
177
277
  }(baseCoin_1.BaseTransaction));
178
278
  exports.Transaction = Transaction;
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9uZWFyL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBK0Q7QUFFL0QsNkNBQTZEO0FBRTdELHFDQUFvQztBQUNwQyxtREFBdUM7QUFDdkMsZ0RBQW9DO0FBRXBDO0lBQWlDLCtCQUFlO0lBSTlDLHFCQUFZLFVBQWdDO2VBQzFDLGtCQUFNLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBRUQsc0JBQUksd0NBQWU7YUFBbkI7WUFDRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQixDQUFDO2FBRUQsVUFBb0IsRUFBb0M7WUFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM3QixDQUFDOzs7T0FKQTtJQU1ELGtCQUFrQjtJQUNsQiw2QkFBTyxHQUFQLFVBQVEsR0FBWTtRQUNsQixJQUFJO1lBQ0YsSUFBSSxpQkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxXQUFNO1lBQ04sT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsdUNBQWlCLEdBQWpCO1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixNQUFNLElBQUksZ0NBQXVCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUM3RDtRQUNELElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxzQkFBc0I7WUFDN0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0UsQ0FBQyxDQUFDLE9BQU8sQ0FB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LENBQUMsZ0JBQWdCLENBQUMsUUFBUTtvQkFDdkMsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtpQkFDNUIsQ0FBQyxDQUFDO2dCQUNILE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO29CQUN6QyxLQUFLLEVBQUUsTUFBTTtvQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO2lCQUM1QixDQUFDLENBQUM7Z0JBQ0gsTUFBTTtTQUNUO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQXpKRCxDQUFpQywwQkFBZSxHQXlKL0M7QUF6Slksa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJhc2VLZXksIEVudHJ5IH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0ICogYXMgbmVhckFQSSBmcm9tICduZWFyLWFwaS1qcyc7XG5pbXBvcnQgKiBhcyBzaGEyNTYgZnJvbSAnanMtc2hhMjU2JztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfbmVhclRyYW5zYWN0aW9uOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5UcmFuc2FjdGlvbjtcbiAgcHJpdmF0ZSBfbmVhclNpZ25lZFRyYW5zYWN0aW9uOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5TaWduZWRUcmFuc2FjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IG5lYXJUcmFuc2FjdGlvbigpOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5UcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX25lYXJUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCBuZWFyVHJhbnNhY3Rpb24odHg6IG5lYXJBUEkudHJhbnNhY3Rpb25zLlRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fbmVhclRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX25lYXJUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIGNvbnN0IHR4U2VyYWxpemVkID0gdGhpcy5fbmVhclNpZ25lZFRyYW5zYWN0aW9uXG4gICAgICA/IG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmJhc2VfZW5jb2RlKHRoaXMuX25lYXJTaWduZWRUcmFuc2FjdGlvbi5lbmNvZGUoKSlcbiAgICAgIDogbmVhckFQSS51dGlscy5zZXJpYWxpemUuYmFzZV9lbmNvZGUodGhpcy5fbmVhclRyYW5zYWN0aW9uLmVuY29kZSgpKTtcbiAgICByZXR1cm4gdHhTZXJhbGl6ZWQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IGFueSB7XG4gICAgaWYgKCF0aGlzLl9uZWFyVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzaWduZXJfaWQ6IHRoaXMuX25lYXJUcmFuc2FjdGlvbi5zaWduZXJJZCxcbiAgICAgIHB1YmxpY19rZXk6IHRoaXMuX25lYXJUcmFuc2FjdGlvbi5wdWJsaWNLZXkudG9TdHJpbmcoKSxcbiAgICAgIG5vbmNlOiB0aGlzLl9uZWFyVHJhbnNhY3Rpb24ubm9uY2UsXG4gICAgICByZWNlaXZlcl9pZDogdGhpcy5fbmVhclRyYW5zYWN0aW9uLnJlY2VpdmVySWQsXG4gICAgICBhY3Rpb25zOiB0aGlzLl9uZWFyVHJhbnNhY3Rpb24uYWN0aW9ucyxcbiAgICAgIHNpZ25hdHVyZTogdHlwZW9mIHRoaXMuX25lYXJTaWduZWRUcmFuc2FjdGlvbiA9PT0gJ3VuZGVmaW5lZCcgPyAnJyA6IHRoaXMuX25lYXJTaWduZWRUcmFuc2FjdGlvbi5zaWduYXR1cmUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNpZ25lZFR4ID0gbmVhckFQSS51dGlscy5zZXJpYWxpemUuZGVzZXJpYWxpemUoXG4gICAgICAgIG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSxcbiAgICAgICAgbmVhckFQSS50cmFuc2FjdGlvbnMuU2lnbmVkVHJhbnNhY3Rpb24sXG4gICAgICAgIG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmJhc2VfZGVjb2RlKHJhd1RyYW5zYWN0aW9uKSxcbiAgICAgICk7XG4gICAgICB0aGlzLl9uZWFyU2lnbmVkVHJhbnNhY3Rpb24gPSBzaWduZWRUeDtcbiAgICAgIHRoaXMuX25lYXJUcmFuc2FjdGlvbiA9IHNpZ25lZFR4LnRyYW5zYWN0aW9uO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX25lYXJUcmFuc2FjdGlvbiA9IG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmRlc2VyaWFsaXplKFxuICAgICAgICAgIG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSxcbiAgICAgICAgICBuZWFyQVBJLnRyYW5zYWN0aW9ucy5UcmFuc2FjdGlvbixcbiAgICAgICAgICBuZWFyQVBJLnV0aWxzLnNlcmlhbGl6ZS5iYXNlX2RlY29kZShyYXdUcmFuc2FjdGlvbiksXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndW5hYmxlIHRvIGJ1aWxkIHRyYW5zYWN0aW9uIGZyb20gcmF3Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5idWlsZElucHV0QW5kT3V0cHV0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiB0aGlzIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpcn0gc2lnbmVyIGtleVxuICAgKi9cblxuICBzaWduKHNpZ25lcjogS2V5UGFpcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5fbmVhclRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ2VtcHR5IHRyYW5zYWN0aW9uIHRvIHNpZ24nKTtcbiAgICB9XG4gICAgY29uc3Qgc2VyaWFsaXplZFR4ID0gbmVhckFQSS51dGlscy5zZXJpYWxpemUuc2VyaWFsaXplKG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSwgdGhpcy5fbmVhclRyYW5zYWN0aW9uKTtcbiAgICBjb25zdCBzZXJpYWxpemVkVHhIYXNoID0gbmV3IFVpbnQ4QXJyYXkoc2hhMjU2LnNoYTI1Ni5hcnJheShzZXJpYWxpemVkVHgpKTtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBzaWduZXIuc2lnbk1lc3NhZ2VpblVpbnQ4QXJyYXkoc2VyaWFsaXplZFR4SGFzaCk7XG4gICAgdGhpcy5fbmVhclNpZ25lZFRyYW5zYWN0aW9uID0gbmV3IG5lYXJBUEkudHJhbnNhY3Rpb25zLlNpZ25lZFRyYW5zYWN0aW9uKHtcbiAgICAgIHRyYW5zYWN0aW9uOiB0aGlzLl9uZWFyVHJhbnNhY3Rpb24sXG4gICAgICBzaWduYXR1cmU6IG5ldyBuZWFyQVBJLnRyYW5zYWN0aW9ucy5TaWduYXR1cmUoe1xuICAgICAgICBrZXlUeXBlOiB0aGlzLl9uZWFyVHJhbnNhY3Rpb24ucHVibGljS2V5LmtleVR5cGUsXG4gICAgICAgIGRhdGE6IHNpZ25hdHVyZSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIHRoaXMuYnVpbGRJbnB1dEFuZE91dHB1dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGlucHV0IGFuZCBvdXRwdXQgZmllbGQgZm9yIHRoaXMgdHJhbnNhY3Rpb25cbiAgICpcbiAgICovXG5cbiAgYnVpbGRJbnB1dEFuZE91dHB1dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fbmVhclRyYW5zYWN0aW9uLmFjdGlvbnMubGVuZ3RoICE9IDEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndG9vIG1hbnkgYWN0aW9ucyBpbiByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbmVhclRyYW5zYWN0aW9uLmFjdGlvbnNbMF0uZW51bSA9PT0gJ3RyYW5zZmVyJykge1xuICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3Vuc3VwcG9ydGVkIGFjdGlvbiBpbiByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXRzOiBFbnRyeVtdID0gW107XG4gICAgY29uc3QgaW5wdXRzOiBFbnRyeVtdID0gW107XG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgIGNvbnN0IGFtb3VudCA9IG5lYXJBUEkudXRpbHMuZm9ybWF0LmZvcm1hdE5lYXJBbW91bnQoXG4gICAgICAgICAgdGhpcy5fbmVhclRyYW5zYWN0aW9uLmFjdGlvbnNbMF0udHJhbnNmZXIuZGVwb3NpdC50b1N0cmluZygpLFxuICAgICAgICApO1xuXG4gICAgICAgIGlucHV0cy5wdXNoKHtcbiAgICAgICAgICBhZGRyZXNzOiB0aGlzLl9uZWFyVHJhbnNhY3Rpb24uc2lnbmVySWQsXG4gICAgICAgICAgdmFsdWU6IGFtb3VudCxcbiAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgICBvdXRwdXRzLnB1c2goe1xuICAgICAgICAgIGFkZHJlc3M6IHRoaXMuX25lYXJUcmFuc2FjdGlvbi5yZWNlaXZlcklkLFxuICAgICAgICAgIHZhbHVlOiBhbW91bnQsXG4gICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuX291dHB1dHMgPSBvdXRwdXRzO1xuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgfVxufVxuIl19
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9uZWFyL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUErRDtBQUUvRCw2Q0FBNkQ7QUFHN0Qsa0RBQTRCO0FBQzVCLHFDQUFvQztBQUNwQyxtREFBdUM7QUFDdkMsZ0RBQW9DO0FBQ3BDLDhDQUEwQjtBQUUxQjtJQUFpQywrQkFBZTtJQUk5QyxxQkFBWSxVQUFnQztlQUMxQyxrQkFBTSxVQUFVLENBQUM7SUFDbkIsQ0FBQztJQUVELHNCQUFJLHdDQUFlO2FBQW5CO1lBQ0UsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsQ0FBQzthQUVELFVBQW9CLEVBQW9DO1lBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxlQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQzs7O09BTEE7SUFPRCxrQkFBa0I7SUFDbEIsNkJBQU8sR0FBUCxVQUFRLEdBQVk7UUFDbEIsSUFBSTtZQUNGLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQUMsV0FBTTtZQUNOLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHVDQUFpQixHQUFqQjtRQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsTUFBTSxJQUFJLGdDQUF1QixDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDN0Q7UUFDRCxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsc0JBQXNC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TyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDNUcsQ0FBQzs7O09BQUE7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsNENBQXNCLEdBQXRCLFVBQXVCLFNBQWlCO1FBQ3RDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7WUFDdkUsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDbEMsU0FBUyxFQUFFLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7Z0JBQzVDLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE9BQU87Z0JBQ2hELElBQUksRUFBRSxTQUFTO2FBQ2hCLENBQUM7U0FDSCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsc0JBQUksa0NBQVM7UUFEYixtQkFBbUI7YUFDbkI7WUFDRSxJQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7WUFFaEMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQy9CLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDNUU7WUFFRCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDOzs7T0FBQTtJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQS9PRCxDQUFpQywwQkFBZSxHQStPL0M7QUEvT1ksa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJhc2VLZXksIEVudHJ5LCBUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJy4uL2Jhc2VDb2luL2lmYWNlJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0ICogYXMgbmVhckFQSSBmcm9tICduZWFyLWFwaS1qcyc7XG5pbXBvcnQgKiBhcyBzaGEyNTYgZnJvbSAnanMtc2hhMjU2JztcbmltcG9ydCBiYXNlNTggZnJvbSAnYnM1OCc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX25lYXJUcmFuc2FjdGlvbjogbmVhckFQSS50cmFuc2FjdGlvbnMuVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX25lYXJTaWduZWRUcmFuc2FjdGlvbjogbmVhckFQSS50cmFuc2FjdGlvbnMuU2lnbmVkVHJhbnNhY3Rpb247XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBuZWFyVHJhbnNhY3Rpb24oKTogbmVhckFQSS50cmFuc2FjdGlvbnMuVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl9uZWFyVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgbmVhclRyYW5zYWN0aW9uKHR4OiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5UcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX25lYXJUcmFuc2FjdGlvbiA9IHR4O1xuICAgIHRoaXMuX2lkID0gdXRpbHMuYmFzZTU4RW5jb2RlKHRoaXMuZ2V0VHJhbnNhY3Rpb25IYXNoKCkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkua2V5IH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9uZWFyVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICBjb25zdCB0eFNlcmFsaXplZCA9IHRoaXMuX25lYXJTaWduZWRUcmFuc2FjdGlvblxuICAgICAgPyBuZWFyQVBJLnV0aWxzLnNlcmlhbGl6ZS5iYXNlX2VuY29kZSh0aGlzLl9uZWFyU2lnbmVkVHJhbnNhY3Rpb24uZW5jb2RlKCkpXG4gICAgICA6IG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmJhc2VfZW5jb2RlKHRoaXMuX25lYXJUcmFuc2FjdGlvbi5lbmNvZGUoKSk7XG4gICAgcmV0dXJuIHR4U2VyYWxpemVkO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fbmVhclRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgc2lnbmVySWQ6IHRoaXMuX25lYXJUcmFuc2FjdGlvbi5zaWduZXJJZCxcbiAgICAgIHB1YmxpY0tleTogdGhpcy5fbmVhclRyYW5zYWN0aW9uLnB1YmxpY0tleS50b1N0cmluZygpLFxuICAgICAgbm9uY2U6IHRoaXMuX25lYXJUcmFuc2FjdGlvbi5ub25jZSxcbiAgICAgIHJlY2VpdmVySWQ6IHRoaXMuX25lYXJUcmFuc2FjdGlvbi5yZWNlaXZlcklkLFxuICAgICAgYWN0aW9uczogdGhpcy5fbmVhclRyYW5zYWN0aW9uLmFjdGlvbnMsXG4gICAgICBzaWduYXR1cmU6IHR5cGVvZiB0aGlzLl9uZWFyU2lnbmVkVHJhbnNhY3Rpb24gPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogdGhpcy5fbmVhclNpZ25lZFRyYW5zYWN0aW9uLnNpZ25hdHVyZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBwYXlsb2FkXG4gICAqXG4gICAqIEBwYXJhbSByYXdUcmFuc2FjdGlvblxuICAgKi9cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2lnbmVkVHggPSBuZWFyQVBJLnV0aWxzLnNlcmlhbGl6ZS5kZXNlcmlhbGl6ZShcbiAgICAgICAgbmVhckFQSS50cmFuc2FjdGlvbnMuU0NIRU1BLFxuICAgICAgICBuZWFyQVBJLnRyYW5zYWN0aW9ucy5TaWduZWRUcmFuc2FjdGlvbixcbiAgICAgICAgbmVhckFQSS51dGlscy5zZXJpYWxpemUuYmFzZV9kZWNvZGUocmF3VHJhbnNhY3Rpb24pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuX25lYXJTaWduZWRUcmFuc2FjdGlvbiA9IHNpZ25lZFR4O1xuICAgICAgdGhpcy5fbmVhclRyYW5zYWN0aW9uID0gc2lnbmVkVHgudHJhbnNhY3Rpb247XG4gICAgICB0aGlzLl9pZCA9IHV0aWxzLmJhc2U1OEVuY29kZSh0aGlzLmdldFRyYW5zYWN0aW9uSGFzaCgpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLl9uZWFyVHJhbnNhY3Rpb24gPSBuZWFyQVBJLnV0aWxzLnNlcmlhbGl6ZS5kZXNlcmlhbGl6ZShcbiAgICAgICAgICBuZWFyQVBJLnRyYW5zYWN0aW9ucy5TQ0hFTUEsXG4gICAgICAgICAgbmVhckFQSS50cmFuc2FjdGlvbnMuVHJhbnNhY3Rpb24sXG4gICAgICAgICAgbmVhckFQSS51dGlscy5zZXJpYWxpemUuYmFzZV9kZWNvZGUocmF3VHJhbnNhY3Rpb24pLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9pZCA9IHV0aWxzLmJhc2U1OEVuY29kZSh0aGlzLmdldFRyYW5zYWN0aW9uSGFzaCgpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd1bmFibGUgdG8gYnVpbGQgdHJhbnNhY3Rpb24gZnJvbSByYXcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiB0aGlzIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpcn0gc2lnbmVyIGtleVxuICAgKi9cblxuICBzaWduKHNpZ25lcjogS2V5UGFpcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5fbmVhclRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ2VtcHR5IHRyYW5zYWN0aW9uIHRvIHNpZ24nKTtcbiAgICB9XG4gICAgY29uc3Qgc2VyaWFsaXplZFR4SGFzaCA9IHRoaXMuZ2V0VHJhbnNhY3Rpb25IYXNoKCk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gc2lnbmVyLnNpZ25NZXNzYWdlaW5VaW50OEFycmF5KHNlcmlhbGl6ZWRUeEhhc2gpO1xuICAgIHRoaXMuX25lYXJTaWduZWRUcmFuc2FjdGlvbiA9IG5ldyBuZWFyQVBJLnRyYW5zYWN0aW9ucy5TaWduZWRUcmFuc2FjdGlvbih7XG4gICAgICB0cmFuc2FjdGlvbjogdGhpcy5fbmVhclRyYW5zYWN0aW9uLFxuICAgICAgc2lnbmF0dXJlOiBuZXcgbmVhckFQSS50cmFuc2FjdGlvbnMuU2lnbmF0dXJlKHtcbiAgICAgICAga2V5VHlwZTogdGhpcy5fbmVhclRyYW5zYWN0aW9uLnB1YmxpY0tleS5rZXlUeXBlLFxuICAgICAgICBkYXRhOiBzaWduYXR1cmUsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgaW5wdXQgYW5kIG91dHB1dCBmaWVsZCBmb3IgdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKi9cblxuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fbmVhclRyYW5zYWN0aW9uLmFjdGlvbnMubGVuZ3RoICE9IDEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndG9vIG1hbnkgYWN0aW9ucyBpbiByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbmVhclRyYW5zYWN0aW9uLmFjdGlvbnNbMF0uZW51bSA9PT0gJ3RyYW5zZmVyJykge1xuICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3Vuc3VwcG9ydGVkIGFjdGlvbiBpbiByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXRzOiBFbnRyeVtdID0gW107XG4gICAgY29uc3QgaW5wdXRzOiBFbnRyeVtdID0gW107XG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgIGNvbnN0IGFtb3VudCA9IG5lYXJBUEkudXRpbHMuZm9ybWF0LmZvcm1hdE5lYXJBbW91bnQoXG4gICAgICAgICAgdGhpcy5fbmVhclRyYW5zYWN0aW9uLmFjdGlvbnNbMF0udHJhbnNmZXIuZGVwb3NpdC50b1N0cmluZygpLFxuICAgICAgICApO1xuXG4gICAgICAgIGlucHV0cy5wdXNoKHtcbiAgICAgICAgICBhZGRyZXNzOiB0aGlzLl9uZWFyVHJhbnNhY3Rpb24uc2lnbmVySWQsXG4gICAgICAgICAgdmFsdWU6IGFtb3VudCxcbiAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgICBvdXRwdXRzLnB1c2goe1xuICAgICAgICAgIGFkZHJlc3M6IHRoaXMuX25lYXJUcmFuc2FjdGlvbi5yZWNlaXZlcklkLFxuICAgICAgICAgIHZhbHVlOiBhbW91bnQsXG4gICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuX291dHB1dHMgPSBvdXRwdXRzO1xuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29tcGxldGUgZXhwbGFuYXRpb24gZm9yIGEgdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtUeERhdGF9IGpzb24gVGhlIHRyYW5zYWN0aW9uIGRhdGEgaW4ganNvbiBmb3JtYXRcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufSBleHBsYW5hdGlvblJlc3VsdCBUaGUgdHJhbnNhY3Rpb24gZXhwbGFuYXRpb24gdG8gYmUgY29tcGxldGVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufVxuICAgKi9cbiAgZXhwbGFpblRyYW5zZmVyVHJhbnNhY3Rpb24oanNvbjogVHhEYXRhLCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFkZHJlc3M6IGpzb24ucmVjZWl2ZXJJZCxcbiAgICAgICAgICBhbW91bnQ6IGpzb24uYWN0aW9uc1swXS50cmFuc2Zlci5kZXBvc2l0LnRvU3RyaW5nKCksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnLCAndHlwZSddO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcbiAgICBjb25zdCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9IHtcbiAgICAgIC8vIHR4aGFzaCB1c2VkIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2FjdGlvbnNcbiAgICAgIGlkOiByZXN1bHQuaWQgfHwgJycsXG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBvdXRwdXRBbW91bnQ6IHJlc3VsdC5hY3Rpb25zWzBdLnRyYW5zZmVyLmRlcG9zaXQudG9TdHJpbmcoKSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRzLFxuICAgICAgZmVlOiB7IGZlZTogJycgfSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihyZXN1bHQsIGV4cGxhbmF0aW9uUmVzdWx0KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFuc2FjdGlvbkhhc2goKTogVWludDhBcnJheSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZFR4ID0gbmVhckFQSS51dGlscy5zZXJpYWxpemUuc2VyaWFsaXplKG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSwgdGhpcy5fbmVhclRyYW5zYWN0aW9uKTtcbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoc2hhMjU2LnNoYTI1Ni5hcnJheShzZXJpYWxpemVkVHgpKTtcbiAgfVxuXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBpZiAoIXRoaXMuX25lYXJUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmZyb20obmVhckFQSS51dGlscy5zZXJpYWxpemUuc2VyaWFsaXplKG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSwgdGhpcy5fbmVhclRyYW5zYWN0aW9uKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIHNpZ25lZCBwYXlsb2FkIHVzaW5nIGNvbnN0cnVjdC5zaWduVHhcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZHVyaW5nIHRoZSBidWlsZCBzdGVwIGlmIGEgVFNTIHNpZ25hdHVyZVxuICAgKiBpcyBhZGRlZCBhbmQgd2lsbCBzZXQgdGhlIHNpZ25UcmFuc2FjdGlvbiB3aGljaCBpcyB0aGUgdHhIZXggdGhhdCB3aWxsIGJlIGJyb2FkY2FzdGVkXG4gICAqIEFzIHdlbGwgYXMgYWRkIHRoZSBzaWduYXR1cmUgdXNlZCB0byBzaWduIHRvIHRoZSBzaWduYXR1cmUgYXJyYXkgaW4gaGV4IGZvcm1hdFxuICAgKlxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gc2lnbmF0dXJlIFRoZSBzaWduYXR1cmUgdG8gYmUgYWRkZWQgdG8gYSBkb3QgdHJhbnNhY3Rpb25cbiAgICovXG4gIGNvbnN0cnVjdFNpZ25lZFBheWxvYWQoc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9uZWFyU2lnbmVkVHJhbnNhY3Rpb24gPSBuZXcgbmVhckFQSS50cmFuc2FjdGlvbnMuU2lnbmVkVHJhbnNhY3Rpb24oe1xuICAgICAgdHJhbnNhY3Rpb246IHRoaXMuX25lYXJUcmFuc2FjdGlvbixcbiAgICAgIHNpZ25hdHVyZTogbmV3IG5lYXJBUEkudHJhbnNhY3Rpb25zLlNpZ25hdHVyZSh7XG4gICAgICAgIGtleVR5cGU6IHRoaXMuX25lYXJUcmFuc2FjdGlvbi5wdWJsaWNLZXkua2V5VHlwZSxcbiAgICAgICAgZGF0YTogc2lnbmF0dXJlLFxuICAgICAgfSksXG4gICAgfSk7XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG4gIC8qKiBAaW5oZXJpdGRvYyAqKi9cbiAgZ2V0IHNpZ25hdHVyZSgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgc2lnbmF0dXJlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmICh0aGlzLl9uZWFyU2lnbmVkVHJhbnNhY3Rpb24pIHtcbiAgICAgIHNpZ25hdHVyZXMucHVzaChiYXNlNTguZW5jb2RlKHRoaXMuX25lYXJTaWduZWRUcmFuc2FjdGlvbi5zaWduYXR1cmUuZGF0YSkpO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduYXR1cmVzO1xuICB9XG59XG4iXX0=
@@ -1,7 +1,8 @@
1
+ /// <reference types="node" />
1
2
  import BigNumber from 'bignumber.js';
2
3
  import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
4
  import { BaseTransactionBuilder } from '../baseCoin';
4
- import { BaseAddress, BaseKey } from '../baseCoin/iface';
5
+ import { BaseAddress, BaseKey, PublicKey as BasePublicKey } from '../baseCoin/iface';
5
6
  import { Transaction } from './transaction';
6
7
  import * as nearAPI from 'near-api-js';
7
8
  export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
@@ -13,6 +14,7 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
13
14
  private _recentBlockHash;
14
15
  private _actions;
15
16
  private _signer;
17
+ private _signatures;
16
18
  constructor(_coinConfig: Readonly<CoinConfig>);
17
19
  /**
18
20
  * Initialize the transaction builder fields using the decoded transaction data
@@ -40,17 +42,49 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
40
42
  validateTransaction(transaction: Transaction): void;
41
43
  /** @inheritdoc */
42
44
  validateValue(value: BigNumber): void;
43
- sender(value: string): void;
44
- receiverId(value: string): void;
45
- nounce(value: number): void;
46
- recentBlockHash(value: string): void;
47
- actions(value: nearAPI.transactions.Action[]): void;
48
- publicKey(value: string): void;
45
+ /**
46
+ * Sets the public key and the address of the sender of this transaction.
47
+ *
48
+ * @param {string} address the account that is sending this transaction
49
+ * @param {string} pubKey the public key that is sending this transaction
50
+ * @returns {TransactionBuilder} This transaction builder
51
+ */
52
+ sender(address: string, pubKey: string): this;
53
+ /**
54
+ * Sets the account Id of the receiver of this transaction.
55
+ *
56
+ * @param {string} accountId the account id of the account that is receiving this transaction
57
+ * @returns {TransactionBuilder} This transaction builder
58
+ */
59
+ receiverId(accountId: string): this;
60
+ /**
61
+ * Set the nonce
62
+ *
63
+ * @param {number} nonce - number that can be only used once
64
+ * @returns {TransactionBuilder} This transaction builder
65
+ */
66
+ nonce(nonce: number): this;
67
+ /**
68
+ * Sets the blockHash of this transaction.
69
+ *
70
+ * @param {string} blockHash the blockHash of this transaction
71
+ * @returns {TransactionBuilder} This transaction builder
72
+ */
73
+ recentBlockHash(blockHash: string): this;
74
+ /**
75
+ * Sets the list of actions of this transaction.
76
+ *
77
+ * @param {nearAPI.transactions.Action[]} value the the list of actions
78
+ * @returns {TransactionBuilder} This transaction builder
79
+ */
80
+ protected actions(value: nearAPI.transactions.Action[]): this;
49
81
  /**
50
82
  * Builds the NEAR transaction.
51
83
  *
52
84
  * @return {Transaction} near sdk transaction
53
85
  */
54
86
  protected buildNearTransaction(): nearAPI.transactions.Transaction;
87
+ /** @inheritDoc */
88
+ addSignature(publicKey: BasePublicKey, signature: Buffer): void;
55
89
  }
56
90
  //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/near/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AAOvC,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAU;gBAEb,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAWlC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAMjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAS3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAMvD,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAKD,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAQ/B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,GAAG,GAAG,IAAI;IAoBjD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAQnD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAQ9B,MAAM,CAAC,KAAK,EAAE,MAAM;IAIpB,UAAU,CAAC,KAAK,EAAE,MAAM;IAIxB,MAAM,CAAC,KAAK,EAAE,MAAM;IAIpB,eAAe,CAAC,KAAK,EAAE,MAAM;IAI7B,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE;IAI5C,SAAS,CAAC,KAAK,EAAE,MAAM;IAG9B;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,IAAI,OAAO,CAAC,YAAY,CAAC,WAAW;CAenE"}
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/near/transactionBuilder.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAa,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AAOvC,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,WAAW,CAA6B;gBAEpC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAWlC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAMjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAMvD,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAKD,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAQ/B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,GAAG,GAAG,IAAI;IAoBjD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAQnD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAQrC;;;;;;OAMG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYpD;;;;;OAKG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM1C;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjC;;;;;OAKG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ/C;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,IAAI;IAK7D;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,IAAI,OAAO,CAAC,YAAY,CAAC,WAAW;IAgBlE,kBAAkB;IAClB,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAGhE"}
@@ -87,6 +87,7 @@ var TransactionBuilder = /** @class */ (function (_super) {
87
87
  __extends(TransactionBuilder, _super);
88
88
  function TransactionBuilder(_coinConfig) {
89
89
  var _this = _super.call(this, _coinConfig) || this;
90
+ _this._signatures = []; // only support single sig for now
90
91
  _this._transaction = new transaction_1.Transaction(_coinConfig);
91
92
  return _this;
92
93
  }
@@ -113,13 +114,17 @@ var TransactionBuilder = /** @class */ (function (_super) {
113
114
  };
114
115
  /** @inheritdoc */
115
116
  TransactionBuilder.prototype.buildImplementation = function () {
117
+ var _a;
116
118
  return __awaiter(this, void 0, void 0, function () {
117
- return __generator(this, function (_a) {
119
+ return __generator(this, function (_b) {
118
120
  this.transaction.nearTransaction = this.buildNearTransaction();
119
121
  if (this._signer) {
120
122
  this.transaction.sign(this._signer);
121
123
  }
122
- this.transaction.buildInputAndOutput();
124
+ if (((_a = this._signatures) === null || _a === void 0 ? void 0 : _a.length) > 0) {
125
+ this.transaction.constructSignedPayload(this._signatures[0].signature);
126
+ }
127
+ this.transaction.loadInputsAndOutputs();
123
128
  return [2 /*return*/, this.transaction];
124
129
  });
125
130
  });
@@ -188,23 +193,70 @@ var TransactionBuilder = /** @class */ (function (_super) {
188
193
  }
189
194
  };
190
195
  // endregion
191
- TransactionBuilder.prototype.sender = function (value) {
192
- this._sender = value;
196
+ /**
197
+ * Sets the public key and the address of the sender of this transaction.
198
+ *
199
+ * @param {string} address the account that is sending this transaction
200
+ * @param {string} pubKey the public key that is sending this transaction
201
+ * @returns {TransactionBuilder} This transaction builder
202
+ */
203
+ TransactionBuilder.prototype.sender = function (address, pubKey) {
204
+ if (!address || !utils_1.default.isValidAddress(address.toString())) {
205
+ throw new errors_1.BuildTransactionError('Invalid or missing address, got: ' + address);
206
+ }
207
+ if (!pubKey || !utils_1.default.isValidPublicKey(pubKey)) {
208
+ throw new errors_1.BuildTransactionError('Invalid or missing pubKey, got: ' + pubKey);
209
+ }
210
+ this._sender = address;
211
+ this._publicKey = pubKey;
212
+ return this;
193
213
  };
194
- TransactionBuilder.prototype.receiverId = function (value) {
195
- this._receiverId = value;
214
+ /**
215
+ * Sets the account Id of the receiver of this transaction.
216
+ *
217
+ * @param {string} accountId the account id of the account that is receiving this transaction
218
+ * @returns {TransactionBuilder} This transaction builder
219
+ */
220
+ TransactionBuilder.prototype.receiverId = function (accountId) {
221
+ utils_1.default.isValidAddress(accountId);
222
+ this._receiverId = accountId;
223
+ return this;
196
224
  };
197
- TransactionBuilder.prototype.nounce = function (value) {
198
- this._nonce = value;
225
+ /**
226
+ * Set the nonce
227
+ *
228
+ * @param {number} nonce - number that can be only used once
229
+ * @returns {TransactionBuilder} This transaction builder
230
+ */
231
+ TransactionBuilder.prototype.nonce = function (nonce) {
232
+ if (nonce < 0) {
233
+ throw new errors_1.BuildTransactionError("Invalid nonce: " + nonce);
234
+ }
235
+ this._nonce = nonce;
236
+ return this;
199
237
  };
200
- TransactionBuilder.prototype.recentBlockHash = function (value) {
201
- this._recentBlockHash = value;
238
+ /**
239
+ * Sets the blockHash of this transaction.
240
+ *
241
+ * @param {string} blockHash the blockHash of this transaction
242
+ * @returns {TransactionBuilder} This transaction builder
243
+ */
244
+ TransactionBuilder.prototype.recentBlockHash = function (blockHash) {
245
+ if (!utils_1.default.isValidBlockId(blockHash)) {
246
+ throw new errors_1.BuildTransactionError("Invalid blockHash " + blockHash);
247
+ }
248
+ this._recentBlockHash = blockHash;
249
+ return this;
202
250
  };
251
+ /**
252
+ * Sets the list of actions of this transaction.
253
+ *
254
+ * @param {nearAPI.transactions.Action[]} value the the list of actions
255
+ * @returns {TransactionBuilder} This transaction builder
256
+ */
203
257
  TransactionBuilder.prototype.actions = function (value) {
204
258
  this._actions = value;
205
- };
206
- TransactionBuilder.prototype.publicKey = function (value) {
207
- this._publicKey = value;
259
+ return this;
208
260
  };
209
261
  /**
210
262
  * Builds the NEAR transaction.
@@ -217,7 +269,11 @@ var TransactionBuilder = /** @class */ (function (_super) {
217
269
  var tx = nearAPI.transactions.createTransaction(this._sender, nearAPI.utils.PublicKey.fromString(nearAPI.utils.serialize.base_encode(hex.decode(this._publicKey))), this._receiverId, this._nonce, this._actions, nearAPI.utils.serialize.base_decode(this._recentBlockHash));
218
270
  return tx;
219
271
  };
272
+ /** @inheritDoc */
273
+ TransactionBuilder.prototype.addSignature = function (publicKey, signature) {
274
+ this._signatures.push({ publicKey: publicKey, signature: signature });
275
+ };
220
276
  return TransactionBuilder;
221
277
  }(baseCoin_1.BaseTransactionBuilder));
222
278
  exports.TransactionBuilder = TransactionBuilder;
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vbmVhci90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHdDQUFxRDtBQUNyRCw2Q0FBMkQ7QUFFM0QsNkNBQTRDO0FBQzVDLG1EQUF1QztBQUN2Qyx3Q0FBdUQ7QUFDdkQsa0RBQTRCO0FBQzVCLGtEQUE0QjtBQUM1QixxQ0FBb0M7QUFDcEMsa0RBQXNDO0FBRXRDO0lBQWlELHNDQUFzQjtJQVdyRSw0QkFBWSxXQUFpQztRQUE3QyxZQUNFLGtCQUFNLFdBQVcsQ0FBQyxTQUVuQjtRQURDLEtBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDOztJQUNuRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHdDQUFXLEdBQVgsVUFBWSxFQUFlO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENB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Q0FBQztRQUV6RyxJQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUMvQyxJQUFJLENBQUMsT0FBTyxFQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUNwRyxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLEVBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUMzRCxDQUFDO1FBRUYsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBdktELENBQWlELGlDQUFzQixHQXVLdEU7QUF2S3FCLGdEQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IEJhc2VBZGRyZXNzLCBCYXNlS2V5IH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCAqIGFzIG5lYXJBUEkgZnJvbSAnbmVhci1hcGktanMnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL2RvdC9lcnJvcnMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgKiBhcyBoZXggZnJvbSAnQHN0YWJsZWxpYi9oZXgnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjtcblxuICBwcml2YXRlIF9zZW5kZXI6IHN0cmluZztcbiAgcHJpdmF0ZSBfcHVibGljS2V5OiBzdHJpbmc7XG4gIHByaXZhdGUgX3JlY2VpdmVySWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfbm9uY2U6IG51bWJlcjtcbiAgcHJpdmF0ZSBfcmVjZW50QmxvY2tIYXNoOiBzdHJpbmc7XG4gIHByaXZhdGUgX2FjdGlvbnM6IG5lYXJBUEkudHJhbnNhY3Rpb25zLkFjdGlvbltdO1xuICBwcml2YXRlIF9zaWduZXI6IEtleVBhaXI7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIGNvbnN0IG5lYXJUcmFuc2FjdGlvbiA9IHR4Lm5lYXJUcmFuc2FjdGlvbjtcbiAgICB0aGlzLl9zZW5kZXIgPSBuZWFyVHJhbnNhY3Rpb24uc2lnbmVySWQ7XG4gICAgdGhpcy5fbm9uY2UgPSBuZWFyVHJhbnNhY3Rpb24ubm9uY2U7XG4gICAgdGhpcy5fcmVjZWl2ZXJJZCA9IG5lYXJUcmFuc2FjdGlvbi5yZWNlaXZlcklkO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IGhleC5lbmNvZGUobmVhclRyYW5zYWN0aW9uLnB1YmxpY0tleS5kYXRhKTtcbiAgICB0aGlzLl9yZWNlbnRCbG9ja0hhc2ggPSBuZWFyQVBJLnV0aWxzLnNlcmlhbGl6ZS5iYXNlX2VuY29kZShuZWFyVHJhbnNhY3Rpb24uYmxvY2tIYXNoKTtcbiAgICB0aGlzLl9hY3Rpb25zID0gbmVhclRyYW5zYWN0aW9uLmFjdGlvbnM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubmVhclRyYW5zYWN0aW9uID0gdGhpcy5idWlsZE5lYXJUcmFuc2FjdGlvbigpO1xuICAgIGlmICh0aGlzLl9zaWduZXIpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbih0aGlzLl9zaWduZXIpO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zYWN0aW9uLmJ1aWxkSW5wdXRBbmRPdXRwdXQoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLl9zaWduZXIgPSBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvLyByZWdpb24gR2V0dGVycyBhbmQgU2V0dGVyc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUFkZHJlc3MoYWRkcmVzczogQmFzZUFkZHJlc3MsIGFkZHJlc3NGb3JtYXQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBBZGRyZXNzVmFsaWRhdGlvbkVycm9yKGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEtleSB2YWxpZGF0aW9uIGZhaWxlZGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBhbnkpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbmVhckFQSS51dGlscy5zZXJpYWxpemUuZGVzZXJpYWxpemUoXG4gICAgICAgIG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSxcbiAgICAgICAgbmVhckFQSS50cmFuc2FjdGlvbnMuU2lnbmVkVHJhbnNhY3Rpb24sXG4gICAgICAgIHJhd1RyYW5zYWN0aW9uLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmRlc2VyaWFsaXplKFxuICAgICAgICAgIG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSxcbiAgICAgICAgICBuZWFyQVBJLnRyYW5zYWN0aW9ucy5UcmFuc2FjdGlvbixcbiAgICAgICAgICByYXdUcmFuc2FjdGlvbixcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24ubmVhclRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogdHJhbnNhY3Rpb24ubmVhclRyYW5zYWN0aW9uLnNpZ25lcklkIH0pO1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogdHJhbnNhY3Rpb24ubmVhclRyYW5zYWN0aW9uLnJlY2VpdmVySWQgfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxuXG4gIHB1YmxpYyBzZW5kZXIodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3NlbmRlciA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlY2VpdmVySWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3JlY2VpdmVySWQgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBub3VuY2UodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX25vbmNlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVjZW50QmxvY2tIYXNoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9yZWNlbnRCbG9ja0hhc2ggPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBhY3Rpb25zKHZhbHVlOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5BY3Rpb25bXSkge1xuICAgIHRoaXMuX2FjdGlvbnMgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBwdWJsaWNLZXkodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IHZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIE5FQVIgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9ufSBuZWFyIHNkayB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkTmVhclRyYW5zYWN0aW9uKCk6IG5lYXJBUEkudHJhbnNhY3Rpb25zLlRyYW5zYWN0aW9uIHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9yZWNlbnRCbG9ja0hhc2gsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3JlY2VudCBibG9ja2hhc2ggaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuXG4gICAgY29uc3QgdHggPSBuZWFyQVBJLnRyYW5zYWN0aW9ucy5jcmVhdGVUcmFuc2FjdGlvbihcbiAgICAgIHRoaXMuX3NlbmRlcixcbiAgICAgIG5lYXJBUEkudXRpbHMuUHVibGljS2V5LmZyb21TdHJpbmcobmVhckFQSS51dGlscy5zZXJpYWxpemUuYmFzZV9lbmNvZGUoaGV4LmRlY29kZSh0aGlzLl9wdWJsaWNLZXkpKSksXG4gICAgICB0aGlzLl9yZWNlaXZlcklkLFxuICAgICAgdGhpcy5fbm9uY2UsXG4gICAgICB0aGlzLl9hY3Rpb25zLFxuICAgICAgbmVhckFQSS51dGlscy5zZXJpYWxpemUuYmFzZV9kZWNvZGUodGhpcy5fcmVjZW50QmxvY2tIYXNoKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHR4O1xuICB9XG59XG4iXX0=
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vbmVhci90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHdDQUFnRTtBQUNoRSw2Q0FBMkQ7QUFFM0QsNkNBQTRDO0FBQzVDLG1EQUF1QztBQUN2Qyx3Q0FBdUQ7QUFDdkQsa0RBQTRCO0FBQzVCLGtEQUE0QjtBQUM1QixxQ0FBb0M7QUFDcEMsa0RBQXNDO0FBRXRDO0lBQWlELHNDQUFzQjtJQWFyRSw0QkFBWSxXQUFpQztRQUE3QyxZQUNFLGtCQUFNLFdBQVcsQ0FBQyxTQUVuQjtRQUxPLGlCQUFXLEdBQTBCLEVBQUUsQ0FBQyxDQUFDLGtDQUFrQztRQUlqRixLQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7SUFDbkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx3Q0FBVyxHQUFYLFVBQVksRUFBZTtRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFNB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QUMvQyxJQUFJLENBQUMsT0FBTyxFQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUNwRyxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLEVBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUMzRCxDQUFDO1FBRUYsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHlDQUFZLEdBQVosVUFBYSxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxXQUFBLEVBQUUsU0FBUyxXQUFBLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDSCx5QkFBQztBQUFELENBQUMsQUFoT0QsQ0FBaUQsaUNBQXNCLEdBZ090RTtBQWhPcUIsZ0RBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsIEludGVyZmFjZSB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJy4uL2Jhc2VDb2luL2Vycm9ycyc7XG5pbXBvcnQgeyBCYXNlQWRkcmVzcywgQmFzZUtleSwgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXkgfSBmcm9tICcuLi9iYXNlQ29pbi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0ICogYXMgbmVhckFQSSBmcm9tICduZWFyLWFwaS1qcyc7XG5pbXBvcnQgeyBBZGRyZXNzVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vZG90L2Vycm9ycyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCAqIGFzIGhleCBmcm9tICdAc3RhYmxlbGliL2hleCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuXG4gIHByaXZhdGUgX3NlbmRlcjogc3RyaW5nO1xuICBwcml2YXRlIF9wdWJsaWNLZXk6IHN0cmluZztcbiAgcHJpdmF0ZSBfcmVjZWl2ZXJJZDogc3RyaW5nO1xuICBwcml2YXRlIF9ub25jZTogbnVtYmVyO1xuICBwcml2YXRlIF9yZWNlbnRCbG9ja0hhc2g6IHN0cmluZztcbiAgcHJpdmF0ZSBfYWN0aW9uczogbmVhckFQSS50cmFuc2FjdGlvbnMuQWN0aW9uW107XG4gIHByaXZhdGUgX3NpZ25lcjogS2V5UGFpcjtcblxuICBwcml2YXRlIF9zaWduYXR1cmVzOiBJbnRlcmZhY2UuU2lnbmF0dXJlW10gPSBbXTsgLy8gb25seSBzdXBwb3J0IHNpbmdsZSBzaWcgZm9yIG5vd1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcbiAgICBjb25zdCBuZWFyVHJhbnNhY3Rpb24gPSB0eC5uZWFyVHJhbnNhY3Rpb247XG4gICAgdGhpcy5fc2VuZGVyID0gbmVhclRyYW5zYWN0aW9uLnNpZ25lcklkO1xuICAgIHRoaXMuX25vbmNlID0gbmVhclRyYW5zYWN0aW9uLm5vbmNlO1xuICAgIHRoaXMuX3JlY2VpdmVySWQgPSBuZWFyVHJhbnNhY3Rpb24ucmVjZWl2ZXJJZDtcbiAgICB0aGlzLl9wdWJsaWNLZXkgPSBoZXguZW5jb2RlKG5lYXJUcmFuc2FjdGlvbi5wdWJsaWNLZXkuZGF0YSk7XG4gICAgdGhpcy5fcmVjZW50QmxvY2tIYXNoID0gbmVhckFQSS51dGlscy5zZXJpYWxpemUuYmFzZV9lbmNvZGUobmVhclRyYW5zYWN0aW9uLmJsb2NrSGFzaCk7XG4gICAgdGhpcy5fYWN0aW9ucyA9IG5lYXJUcmFuc2FjdGlvbi5hY3Rpb25zO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLm5lYXJUcmFuc2FjdGlvbiA9IHRoaXMuYnVpbGROZWFyVHJhbnNhY3Rpb24oKTtcbiAgICBpZiAodGhpcy5fc2lnbmVyKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnNpZ24odGhpcy5fc2lnbmVyKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NpZ25hdHVyZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uY29uc3RydWN0U2lnbmVkUGF5bG9hZCh0aGlzLl9zaWduYXR1cmVzWzBdLnNpZ25hdHVyZSk7XG4gICAgfVxuICAgIHRoaXMudHJhbnNhY3Rpb24ubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLl9zaWduZXIgPSBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvLyByZWdpb24gR2V0dGVycyBhbmQgU2V0dGVyc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUFkZHJlc3MoYWRkcmVzczogQmFzZUFkZHJlc3MsIGFkZHJlc3NGb3JtYXQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBBZGRyZXNzVmFsaWRhdGlvbkVycm9yKGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEtleSB2YWxpZGF0aW9uIGZhaWxlZGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBhbnkpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbmVhckFQSS51dGlscy5zZXJpYWxpemUuZGVzZXJpYWxpemUoXG4gICAgICAgIG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSxcbiAgICAgICAgbmVhckFQSS50cmFuc2FjdGlvbnMuU2lnbmVkVHJhbnNhY3Rpb24sXG4gICAgICAgIHJhd1RyYW5zYWN0aW9uLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmRlc2VyaWFsaXplKFxuICAgICAgICAgIG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSxcbiAgICAgICAgICBuZWFyQVBJLnRyYW5zYWN0aW9ucy5UcmFuc2FjdGlvbixcbiAgICAgICAgICByYXdUcmFuc2FjdGlvbixcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24ubmVhclRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogdHJhbnNhY3Rpb24ubmVhclRyYW5zYWN0aW9uLnNpZ25lcklkIH0pO1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogdHJhbnNhY3Rpb24ubmVhclRyYW5zYWN0aW9uLnJlY2VpdmVySWQgfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwdWJsaWMga2V5IGFuZCB0aGUgYWRkcmVzcyBvZiB0aGUgc2VuZGVyIG9mIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIHRoZSBhY2NvdW50IHRoYXQgaXMgc2VuZGluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwdWJLZXkgdGhlIHB1YmxpYyBrZXkgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgc2VuZGVyKGFkZHJlc3M6IHN0cmluZywgcHViS2V5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWFkZHJlc3MgfHwgIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MudG9TdHJpbmcoKSkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBhZGRyZXNzLCBnb3Q6ICcgKyBhZGRyZXNzKTtcbiAgICB9XG4gICAgaWYgKCFwdWJLZXkgfHwgIXV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocHViS2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIHB1YktleSwgZ290OiAnICsgcHViS2V5KTtcbiAgICB9XG4gICAgdGhpcy5fc2VuZGVyID0gYWRkcmVzcztcbiAgICB0aGlzLl9wdWJsaWNLZXkgPSBwdWJLZXk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYWNjb3VudCBJZCBvZiB0aGUgcmVjZWl2ZXIgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFjY291bnRJZCB0aGUgYWNjb3VudCBpZCBvZiB0aGUgYWNjb3VudCB0aGF0IGlzIHJlY2VpdmluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgcHVibGljIHJlY2VpdmVySWQoYWNjb3VudElkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB1dGlscy5pc1ZhbGlkQWRkcmVzcyhhY2NvdW50SWQpO1xuICAgIHRoaXMuX3JlY2VpdmVySWQgPSBhY2NvdW50SWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBub25jZVxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbm9uY2UgLSBudW1iZXIgdGhhdCBjYW4gYmUgb25seSB1c2VkIG9uY2VcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgbm9uY2Uobm9uY2U6IG51bWJlcik6IHRoaXMge1xuICAgIGlmIChub25jZSA8IDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgbm9uY2U6ICR7bm9uY2V9YCk7XG4gICAgfVxuICAgIHRoaXMuX25vbmNlID0gbm9uY2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYmxvY2tIYXNoIG9mIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBibG9ja0hhc2ggdGhlIGJsb2NrSGFzaCBvZiB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgcHVibGljIHJlY2VudEJsb2NrSGFzaChibG9ja0hhc2g6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEJsb2NrSWQoYmxvY2tIYXNoKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBibG9ja0hhc2ggJHtibG9ja0hhc2h9YCk7XG4gICAgfVxuICAgIHRoaXMuX3JlY2VudEJsb2NrSGFzaCA9IGJsb2NrSGFzaDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsaXN0IG9mIGFjdGlvbnMgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtuZWFyQVBJLnRyYW5zYWN0aW9ucy5BY3Rpb25bXX0gdmFsdWUgdGhlIHRoZSBsaXN0IG9mIGFjdGlvbnNcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aW9ucyh2YWx1ZTogbmVhckFQSS50cmFuc2FjdGlvbnMuQWN0aW9uW10pOiB0aGlzIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBORUFSIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJuIHtUcmFuc2FjdGlvbn0gbmVhciBzZGsgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBidWlsZE5lYXJUcmFuc2FjdGlvbigpOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5UcmFuc2FjdGlvbiB7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZGVyIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fcmVjZW50QmxvY2tIYXNoLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdyZWNlbnQgYmxvY2toYXNoIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcblxuICAgIGNvbnN0IHR4ID0gbmVhckFQSS50cmFuc2FjdGlvbnMuY3JlYXRlVHJhbnNhY3Rpb24oXG4gICAgICB0aGlzLl9zZW5kZXIsXG4gICAgICBuZWFyQVBJLnV0aWxzLlB1YmxpY0tleS5mcm9tU3RyaW5nKG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmJhc2VfZW5jb2RlKGhleC5kZWNvZGUodGhpcy5fcHVibGljS2V5KSkpLFxuICAgICAgdGhpcy5fcmVjZWl2ZXJJZCxcbiAgICAgIHRoaXMuX25vbmNlLFxuICAgICAgdGhpcy5fYWN0aW9ucyxcbiAgICAgIG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmJhc2VfZGVjb2RlKHRoaXMuX3JlY2VudEJsb2NrSGFzaCksXG4gICAgKTtcblxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaCh7IHB1YmxpY0tleSwgc2lnbmF0dXJlIH0pO1xuICB9XG59XG4iXX0=
@@ -3,10 +3,24 @@ import { BaseKey } from '../baseCoin/iface';
3
3
  import { TransactionBuilder } from './transactionBuilder';
4
4
  import { Transaction } from './transaction';
5
5
  export declare class TransferBuilder extends TransactionBuilder {
6
+ private _amount;
6
7
  constructor(_coinConfig: Readonly<CoinConfig>);
8
+ /**
9
+ * Initialize the transaction builder fields using the decoded transaction data
10
+ *
11
+ * @param {Transaction} tx the transaction data
12
+ */
13
+ initBuilder(tx: Transaction): void;
7
14
  /** @inheritdoc */
8
15
  protected buildImplementation(): Promise<Transaction>;
9
16
  /** @inheritdoc */
10
17
  protected signImplementation(key: BaseKey): Transaction;
18
+ /**
19
+ * Sets the amount of this transaction.
20
+ *
21
+ * @param {string} value the amount of this transaction
22
+ * @returns {TransactionBuilder} This transaction builder
23
+ */
24
+ amount(value: string): this;
11
25
  }
12
26
  //# sourceMappingURL=transferBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/near/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAM3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;CAKxD"}
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/near/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,OAAO,CAAC,OAAO,CAAS;gBAEZ,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAKlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAMvD;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAKnC"}