@bitgo-beta/sdk-coin-vet 1.0.1-beta.335 → 1.0.1-beta.336

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 (97) hide show
  1. package/package.json +8 -8
  2. package/dist/src/index.d.ts +0 -7
  3. package/dist/src/index.d.ts.map +0 -1
  4. package/dist/src/index.js +0 -23
  5. package/dist/src/lib/constants.d.ts +0 -15
  6. package/dist/src/lib/constants.d.ts.map +0 -1
  7. package/dist/src/lib/constants.js +0 -18
  8. package/dist/src/lib/iface.d.ts +0 -36
  9. package/dist/src/lib/iface.d.ts.map +0 -1
  10. package/dist/src/lib/iface.js +0 -3
  11. package/dist/src/lib/index.d.ts +0 -25
  12. package/dist/src/lib/index.d.ts.map +0 -1
  13. package/dist/src/lib/index.js +0 -83
  14. package/dist/src/lib/keyPair.d.ts +0 -26
  15. package/dist/src/lib/keyPair.d.ts.map +0 -1
  16. package/dist/src/lib/keyPair.js +0 -65
  17. package/dist/src/lib/transaction/addressInitializationTransaction.d.ts +0 -31
  18. package/dist/src/lib/transaction/addressInitializationTransaction.d.ts.map +0 -1
  19. package/dist/src/lib/transaction/addressInitializationTransaction.js +0 -170
  20. package/dist/src/lib/transaction/burnNftTransaction.d.ts +0 -26
  21. package/dist/src/lib/transaction/burnNftTransaction.d.ts.map +0 -1
  22. package/dist/src/lib/transaction/burnNftTransaction.js +0 -124
  23. package/dist/src/lib/transaction/claimRewards.d.ts +0 -41
  24. package/dist/src/lib/transaction/claimRewards.d.ts.map +0 -1
  25. package/dist/src/lib/transaction/claimRewards.js +0 -210
  26. package/dist/src/lib/transaction/exitDelegation.d.ts +0 -26
  27. package/dist/src/lib/transaction/exitDelegation.d.ts.map +0 -1
  28. package/dist/src/lib/transaction/exitDelegation.js +0 -124
  29. package/dist/src/lib/transaction/flushTokenTransaction.d.ts +0 -20
  30. package/dist/src/lib/transaction/flushTokenTransaction.d.ts.map +0 -1
  31. package/dist/src/lib/transaction/flushTokenTransaction.js +0 -98
  32. package/dist/src/lib/transaction/nftTransaction.d.ts +0 -17
  33. package/dist/src/lib/transaction/nftTransaction.d.ts.map +0 -1
  34. package/dist/src/lib/transaction/nftTransaction.js +0 -108
  35. package/dist/src/lib/transaction/stakingTransaction.d.ts +0 -31
  36. package/dist/src/lib/transaction/stakingTransaction.d.ts.map +0 -1
  37. package/dist/src/lib/transaction/stakingTransaction.js +0 -169
  38. package/dist/src/lib/transaction/tokenTransaction.d.ts +0 -14
  39. package/dist/src/lib/transaction/tokenTransaction.d.ts.map +0 -1
  40. package/dist/src/lib/transaction/tokenTransaction.js +0 -95
  41. package/dist/src/lib/transaction/transaction.d.ts +0 -106
  42. package/dist/src/lib/transaction/transaction.d.ts.map +0 -1
  43. package/dist/src/lib/transaction/transaction.js +0 -468
  44. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.d.ts +0 -78
  45. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.d.ts.map +0 -1
  46. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.js +0 -158
  47. package/dist/src/lib/transactionBuilder/burnNftBuilder.d.ts +0 -59
  48. package/dist/src/lib/transactionBuilder/burnNftBuilder.d.ts.map +0 -1
  49. package/dist/src/lib/transactionBuilder/burnNftBuilder.js +0 -118
  50. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.d.ts +0 -57
  51. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.d.ts.map +0 -1
  52. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.js +0 -142
  53. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts +0 -58
  54. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts.map +0 -1
  55. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.js +0 -115
  56. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.d.ts +0 -66
  57. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.d.ts.map +0 -1
  58. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.js +0 -129
  59. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.d.ts +0 -23
  60. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.d.ts.map +0 -1
  61. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.js +0 -93
  62. package/dist/src/lib/transactionBuilder/stakingBuilder.d.ts +0 -73
  63. package/dist/src/lib/transactionBuilder/stakingBuilder.d.ts.map +0 -1
  64. package/dist/src/lib/transactionBuilder/stakingBuilder.js +0 -147
  65. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.d.ts +0 -21
  66. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.d.ts.map +0 -1
  67. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.js +0 -70
  68. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts +0 -54
  69. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +0 -1
  70. package/dist/src/lib/transactionBuilder/transactionBuilder.js +0 -155
  71. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts +0 -10
  72. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +0 -1
  73. package/dist/src/lib/transactionBuilder/transferBuilder.js +0 -45
  74. package/dist/src/lib/transactionBuilderFactory.d.ts +0 -71
  75. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  76. package/dist/src/lib/transactionBuilderFactory.js +0 -155
  77. package/dist/src/lib/types.d.ts +0 -15
  78. package/dist/src/lib/types.d.ts.map +0 -1
  79. package/dist/src/lib/types.js +0 -3
  80. package/dist/src/lib/utils.d.ts +0 -94
  81. package/dist/src/lib/utils.d.ts.map +0 -1
  82. package/dist/src/lib/utils.js +0 -277
  83. package/dist/src/register.d.ts +0 -3
  84. package/dist/src/register.d.ts.map +0 -1
  85. package/dist/src/register.js +0 -19
  86. package/dist/src/tvet.d.ts +0 -20
  87. package/dist/src/tvet.d.ts.map +0 -1
  88. package/dist/src/tvet.js +0 -30
  89. package/dist/src/vet.d.ts +0 -53
  90. package/dist/src/vet.d.ts.map +0 -1
  91. package/dist/src/vet.js +0 -267
  92. package/dist/src/vetNFTCollection.d.ts +0 -18
  93. package/dist/src/vetNFTCollection.d.ts.map +0 -1
  94. package/dist/src/vetNFTCollection.js +0 -52
  95. package/dist/src/vetToken.d.ts +0 -19
  96. package/dist/src/vetToken.d.ts.map +0 -1
  97. package/dist/src/vetToken.js +0 -52
@@ -1,468 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.Transaction = void 0;
40
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
41
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
42
- const sdk_core_2 = require("@vechain/sdk-core");
43
- const nc_utils = __importStar(require("@noble/curves/abstract/utils"));
44
- const utils_1 = __importDefault(require("../utils"));
45
- const gasPrice = 1e13;
46
- class Transaction extends sdk_core_1.BaseTransaction {
47
- constructor(_coinConfig) {
48
- super(_coinConfig);
49
- this._type = sdk_core_1.TransactionType.Send;
50
- this._chainTag = 0x27; // Initialize to 39 (0x27)
51
- this._blockRef = '0x0';
52
- this._expiration = 64;
53
- this._clauses = [];
54
- this._gasPriceCoef = 128;
55
- this._gas = 0;
56
- this._dependsOn = null;
57
- this._nonce = String(0);
58
- this._recipients = [];
59
- this._senderSignature = null;
60
- this._feePayerSignature = null;
61
- }
62
- get id() {
63
- this.generateTxnIdAndSetSender();
64
- return this._id ?? 'UNAVAILABLE';
65
- }
66
- get rawTransaction() {
67
- return this._rawTransaction;
68
- }
69
- set rawTransaction(rawTx) {
70
- this._rawTransaction = rawTx;
71
- }
72
- get type() {
73
- return this._type;
74
- }
75
- set type(type) {
76
- this._type = type;
77
- }
78
- get sender() {
79
- return this._sender;
80
- }
81
- set sender(address) {
82
- this._sender = address;
83
- }
84
- get senderSignature() {
85
- if (this._senderSignature) {
86
- return new Uint8Array(this._senderSignature);
87
- }
88
- else {
89
- return undefined;
90
- }
91
- }
92
- set senderSignature(sig) {
93
- this._senderSignature = sig;
94
- }
95
- get feePayerAddress() {
96
- return this._feePayerAddress;
97
- }
98
- set feePayerAddress(address) {
99
- this._feePayerAddress = address;
100
- }
101
- get feePayerSignature() {
102
- if (this._feePayerSignature) {
103
- return new Uint8Array(this._feePayerSignature);
104
- }
105
- else {
106
- return undefined;
107
- }
108
- }
109
- set feePayerSignature(sig) {
110
- this._feePayerSignature = sig;
111
- }
112
- get chainTag() {
113
- return this._chainTag;
114
- }
115
- set chainTag(tag) {
116
- this._chainTag = tag;
117
- }
118
- get blockRef() {
119
- return this._blockRef;
120
- }
121
- set blockRef(ref) {
122
- this._blockRef = ref;
123
- }
124
- get expiration() {
125
- return this._expiration;
126
- }
127
- set expiration(exp) {
128
- this._expiration = exp;
129
- }
130
- get recipients() {
131
- return this._recipients;
132
- }
133
- set recipients(recipients) {
134
- this._recipients = recipients;
135
- }
136
- get clauses() {
137
- return this._clauses;
138
- }
139
- set clauses(clauses) {
140
- this._clauses = clauses;
141
- }
142
- get gasPriceCoef() {
143
- return this._gasPriceCoef;
144
- }
145
- set gasPriceCoef(coef) {
146
- this._gasPriceCoef = coef;
147
- }
148
- get gas() {
149
- return this._gas;
150
- }
151
- set gas(g) {
152
- this._gas = g;
153
- }
154
- get dependsOn() {
155
- return this._dependsOn;
156
- }
157
- set dependsOn(dep) {
158
- this._dependsOn = dep;
159
- }
160
- get nonce() {
161
- return this._nonce;
162
- }
163
- set nonce(n) {
164
- this._nonce = n;
165
- }
166
- get contract() {
167
- return this._contract;
168
- }
169
- set contract(address) {
170
- this._contract = address;
171
- }
172
- get transactionData() {
173
- return this._transactionData;
174
- }
175
- set transactionData(transactionData) {
176
- this._transactionData = transactionData;
177
- }
178
- /**
179
- * Get all signatures associated with this transaction
180
- * Required by BaseTransaction
181
- */
182
- get signature() {
183
- const sigs = [];
184
- if (this._senderSignature) {
185
- sigs.push(Buffer.from(this._senderSignature).toString('hex'));
186
- }
187
- if (this._feePayerSignature) {
188
- sigs.push(Buffer.from(this._feePayerSignature).toString('hex'));
189
- }
190
- return sigs;
191
- }
192
- /**
193
- * Set signatures for this transaction
194
- * Required by BaseTransaction
195
- * Note: This is mainly for compatibility with the base class.
196
- * Prefer using senderSignature and feePayerSignature directly.
197
- */
198
- set signature(sigs) {
199
- if (sigs.length > 0) {
200
- this._senderSignature = Buffer.from(sigs[0], 'hex');
201
- }
202
- if (sigs.length > 1) {
203
- this._feePayerSignature = Buffer.from(sigs[1], 'hex');
204
- }
205
- }
206
- /** @inheritdoc */
207
- canSign() {
208
- return true;
209
- }
210
- /**
211
- * Check if this is a fee delegated transaction
212
- */
213
- isFeeDelegated() {
214
- return !!this._feePayerAddress;
215
- }
216
- addRecipients(clauses) {
217
- this._recipients = clauses.map((clause) => ({
218
- address: (clause.to || '0x0').toString().toLowerCase(),
219
- amount: (clause.value || '0').toString(),
220
- }));
221
- }
222
- buildClauses() {
223
- this._clauses = this._recipients.map((recipient) => ({
224
- to: recipient.address,
225
- value: recipient.amount,
226
- data: '0x',
227
- }));
228
- }
229
- /**
230
- * Populates the transaction object with data from a deserialized VeChain transaction
231
- * @param signedTx - The deserialized VeChain transaction containing body, signatures, and other transaction data
232
- * @throws {InvalidTransactionError} When the transaction is invalid or missing required data
233
- */
234
- fromDeserializedSignedTransaction(signedTx) {
235
- try {
236
- if (!signedTx || !signedTx.body) {
237
- throw new sdk_core_1.InvalidTransactionError('Invalid transaction: missing transaction body');
238
- }
239
- // Store the raw transaction
240
- this.rawTransaction = signedTx;
241
- // Set transaction body properties
242
- const body = signedTx.body;
243
- this.chainTag = typeof body.chainTag === 'number' ? body.chainTag : 0;
244
- this.blockRef = body.blockRef || '0x0';
245
- this.expiration = typeof body.expiration === 'number' ? body.expiration : 64;
246
- this.clauses = body.clauses || [];
247
- this.gasPriceCoef = typeof body.gasPriceCoef === 'number' ? body.gasPriceCoef : 128;
248
- this.gas = typeof body.gas === 'number' ? body.gas : Number(body.gas) || 0;
249
- this.dependsOn = body.dependsOn || null;
250
- this.nonce = String(body.nonce);
251
- // Set recipients from clauses
252
- this.recipients = body.clauses.map((clause) => ({
253
- address: (clause.to || '0x0').toString().toLowerCase(),
254
- amount: Number(clause.value).toString(),
255
- }));
256
- this.loadInputsAndOutputs();
257
- // Set sender address
258
- if (signedTx.signature && signedTx.origin) {
259
- this.sender = signedTx.origin.toString().toLowerCase();
260
- }
261
- // Set signatures if present
262
- if (signedTx.signature) {
263
- // First signature is sender's signature
264
- this.senderSignature = Buffer.from(signedTx.signature.slice(0, sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
265
- // If there's additional signature data, it's the fee payer's signature
266
- if (signedTx.signature.length > sdk_core_2.Secp256k1.SIGNATURE_LENGTH) {
267
- this.feePayerSignature = Buffer.from(signedTx.signature.slice(sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
268
- }
269
- }
270
- }
271
- catch (e) {
272
- throw new sdk_core_1.InvalidTransactionError(`Failed to deserialize transaction: ${e.message}`);
273
- }
274
- }
275
- addSenderSignature(signature) {
276
- this.senderSignature = signature;
277
- }
278
- addFeePayerSignature(signature) {
279
- this.feePayerSignature = signature;
280
- }
281
- async build() {
282
- this.buildClauses();
283
- await this.buildRawTransaction();
284
- this.generateTxnIdAndSetSender();
285
- this.loadInputsAndOutputs();
286
- }
287
- /**
288
- * Sets the transaction ID from the raw transaction if it is signed
289
- * @protected
290
- */
291
- generateTxnIdAndSetSender() {
292
- // Check if we have a raw transaction
293
- if (!this.rawTransaction) {
294
- return;
295
- }
296
- if (!this.senderSignature) {
297
- return;
298
- }
299
- else {
300
- const halfSignedTransaction = sdk_core_2.Transaction.of(this.rawTransaction.body, this.senderSignature);
301
- if (halfSignedTransaction.signature) {
302
- this._rawTransaction = halfSignedTransaction;
303
- this._sender = halfSignedTransaction.origin.toString().toLowerCase();
304
- }
305
- else {
306
- return;
307
- }
308
- if (this.feePayerSignature) {
309
- const fullSignedTransaction = sdk_core_2.Transaction.of(halfSignedTransaction.body, nc_utils.concatBytes(
310
- // Drop any previous gas payer signature.
311
- halfSignedTransaction.signature.slice(0, sdk_core_2.Secp256k1.SIGNATURE_LENGTH), this.feePayerSignature));
312
- if (fullSignedTransaction.signature) {
313
- this._rawTransaction = fullSignedTransaction;
314
- this._id = fullSignedTransaction.id.toString();
315
- }
316
- else {
317
- return;
318
- }
319
- }
320
- }
321
- }
322
- async buildRawTransaction() {
323
- const transactionBody = {
324
- chainTag: this.chainTag,
325
- blockRef: this.blockRef,
326
- expiration: this.expiration,
327
- clauses: this.clauses,
328
- gasPriceCoef: this.gasPriceCoef,
329
- gas: this.gas,
330
- dependsOn: null,
331
- nonce: this.nonce,
332
- };
333
- if (this.type === sdk_core_1.TransactionType.Send ||
334
- this.type === sdk_core_1.TransactionType.SendToken ||
335
- this.type === sdk_core_1.TransactionType.SendNFT) {
336
- transactionBody.reserved = {
337
- features: 1, // mark transaction as delegated i.e. will use gas payer
338
- };
339
- }
340
- this.rawTransaction = sdk_core_2.Transaction.of(transactionBody);
341
- }
342
- loadInputsAndOutputs() {
343
- const totalAmount = this._recipients.reduce((accumulator, current) => accumulator.plus(current.amount), new bignumber_js_1.default('0'));
344
- this._inputs = [
345
- {
346
- address: this.sender,
347
- value: totalAmount.toString(),
348
- coin: this._coinConfig.name,
349
- },
350
- ];
351
- this._outputs = this._recipients.map((recipient) => {
352
- return {
353
- address: recipient.address,
354
- value: recipient.amount,
355
- coin: this._coinConfig.name,
356
- };
357
- });
358
- }
359
- fromRawTransaction(rawTransaction) {
360
- let signedTxn;
361
- try {
362
- signedTxn = utils_1.default.deserializeTransaction(rawTransaction);
363
- }
364
- catch (e) {
365
- throw new Error('invalid raw transaction');
366
- }
367
- this.fromDeserializedSignedTransaction(signedTxn);
368
- }
369
- /** @inheritdoc */
370
- toJson() {
371
- const json = {
372
- id: this.id,
373
- chainTag: this.chainTag,
374
- blockRef: this.blockRef,
375
- expiration: this.expiration,
376
- recipients: this.recipients,
377
- gasPriceCoef: this.gasPriceCoef,
378
- gas: this.gas,
379
- dependsOn: this.dependsOn,
380
- nonce: this.nonce,
381
- sender: this.sender,
382
- feePayer: this.feePayerAddress,
383
- };
384
- return json;
385
- }
386
- getFee() {
387
- return new bignumber_js_1.default(this.gas)
388
- .multipliedBy(gasPrice)
389
- .multipliedBy(new bignumber_js_1.default(this.gasPriceCoef).dividedBy(255).plus(1))
390
- .toString()
391
- .slice(0, 18);
392
- }
393
- get signablePayload() {
394
- return Buffer.from(this.rawTransaction.encoded);
395
- }
396
- /** @inheritdoc */
397
- toBroadcastFormat() {
398
- if (!this.rawTransaction) {
399
- throw new sdk_core_1.InvalidTransactionError('Empty Transaction');
400
- }
401
- return this.serialize();
402
- }
403
- serialize() {
404
- if (!this.senderSignature) {
405
- return sdk_core_2.HexUInt.of(this.rawTransaction.encoded).toString();
406
- }
407
- else {
408
- if (!this.feePayerSignature) {
409
- const senderSignedTransaction = sdk_core_2.Transaction.of(this.rawTransaction.body, this.senderSignature);
410
- return sdk_core_2.HexUInt.of(senderSignedTransaction.encoded).toString();
411
- }
412
- else {
413
- const senderSignedTransaction = sdk_core_2.Transaction.of(this.rawTransaction.body, this.senderSignature);
414
- if (senderSignedTransaction.signature) {
415
- const fullSignedTransaction = sdk_core_2.Transaction.of(senderSignedTransaction.body, nc_utils.concatBytes(senderSignedTransaction.signature.slice(0, sdk_core_2.Secp256k1.SIGNATURE_LENGTH), this.feePayerSignature));
416
- return sdk_core_2.HexUInt.of(fullSignedTransaction.encoded).toString();
417
- }
418
- else {
419
- throw new sdk_core_1.InvalidTransactionError('Transaction is not signed properly');
420
- }
421
- }
422
- }
423
- }
424
- static deserializeTransaction(rawTx) {
425
- try {
426
- if (!rawTx) {
427
- throw new sdk_core_1.InvalidTransactionError('Raw transaction string cannot be empty');
428
- }
429
- return utils_1.default.deserializeTransaction(rawTx);
430
- }
431
- catch (e) {
432
- if (e instanceof sdk_core_1.InvalidTransactionError) {
433
- throw e;
434
- }
435
- throw new sdk_core_1.InvalidTransactionError(`Failed to deserialize transaction: ${e.message}`);
436
- }
437
- }
438
- explainTransaction() {
439
- const displayOrder = [
440
- 'id',
441
- 'outputs',
442
- 'outputAmount',
443
- 'changeOutputs',
444
- 'changeAmount',
445
- 'fee',
446
- 'withdrawAmount',
447
- 'sender',
448
- 'type',
449
- ];
450
- const outputs = this._recipients;
451
- const outputAmount = outputs
452
- .reduce((accumulator, current) => accumulator.plus(current.amount), new bignumber_js_1.default('0'))
453
- .toString();
454
- return {
455
- displayOrder,
456
- id: this.id,
457
- outputs,
458
- outputAmount,
459
- changeOutputs: [],
460
- changeAmount: '0',
461
- fee: { fee: this.getFee() },
462
- sender: this.sender,
463
- type: this.type,
464
- };
465
- }
466
- }
467
- exports.Transaction = Transaction;
468
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUFxQztBQUNyQyxtREFBdUg7QUFFdkgsZ0RBTTJCO0FBQzNCLHVFQUF5RDtBQUN6RCxxREFBNkI7QUFHN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBRXRCLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBbUI5QyxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsMEJBQTBCO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDWCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxH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LFlBQVksR0FBRyxPQUFPO2FBQ3pCLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN0RixRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU87WUFDTCxZQUFZO1lBQ1osRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTztZQUNQLFlBQVk7WUFDWixhQUFhLEVBQUUsRUFBRTtZQUNqQixZQUFZLEVBQUUsR0FBRztZQUNqQixHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWxnQkQsa0NBa2dCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25UeXBlLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbkJvZHksXG4gIFRyYW5zYWN0aW9uQ2xhdXNlLFxuICBUcmFuc2FjdGlvbiBhcyBWZXRUcmFuc2FjdGlvbixcbiAgU2VjcDI1NmsxLFxuICBIZXhVSW50LFxufSBmcm9tICdAdmVjaGFpbi9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyBuY191dGlscyBmcm9tICdAbm9ibGUvY3VydmVzL2Fic3RyYWN0L3V0aWxzJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBWZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBWZXRUcmFuc2FjdGlvbkRhdGEgfSBmcm9tICcuLi9pZmFjZSc7XG5cbmNvbnN0IGdhc1ByaWNlID0gMWUxMztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJvdGVjdGVkIF9yYXdUcmFuc2FjdGlvbjogVmV0VHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfdHlwZTogVHJhbnNhY3Rpb25UeXBlO1xuICBwcm90ZWN0ZWQgX3JlY2lwaWVudHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gIHByb3RlY3RlZCBfY2xhdXNlczogVHJhbnNhY3Rpb25DbGF1c2VbXTtcbiAgcHJvdGVjdGVkIF9jb250cmFjdDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uRGF0YTogc3RyaW5nO1xuICBwcml2YXRlIF9jaGFpblRhZzogbnVtYmVyO1xuICBwcml2YXRlIF9ibG9ja1JlZjogc3RyaW5nO1xuICBwcml2YXRlIF9leHBpcmF0aW9uOiBudW1iZXI7XG4gIHByaXZhdGUgX2dhc1ByaWNlQ29lZjogbnVtYmVyO1xuICBwcml2YXRlIF9nYXM6IG51bWJlcjtcbiAgcHJpdmF0ZSBfZGVwZW5kc09uOiBzdHJpbmcgfCBudWxsO1xuICBwcml2YXRlIF9ub25jZTogc3RyaW5nO1xuICBwcml2YXRlIF9zZW5kZXI6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2VuZGVyU2lnbmF0dXJlOiBCdWZmZXIgfCBudWxsO1xuICBwcml2YXRlIF9mZWVQYXllckFkZHJlc3M6IHN0cmluZztcbiAgcHJpdmF0ZSBfZmVlUGF5ZXJTaWduYXR1cmU6IEJ1ZmZlciB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICB0aGlzLl9jaGFpblRhZyA9IDB4Mjc7IC8vIEluaXRpYWxpemUgdG8gMzkgKDB4MjcpXG4gICAgdGhpcy5fYmxvY2tSZWYgPSAnMHgwJztcbiAgICB0aGlzLl9leHBpcmF0aW9uID0gNjQ7XG4gICAgdGhpcy5fY2xhdXNlcyA9IFtdO1xuICAgIHRoaXMuX2dhc1ByaWNlQ29lZiA9IDEyODtcbiAgICB0aGlzLl9nYXMgPSAwO1xuICAgIHRoaXMuX2RlcGVuZHNPbiA9IG51bGw7XG4gICAgdGhpcy5fbm9uY2UgPSBTdHJpbmcoMCk7XG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IFtdO1xuICAgIHRoaXMuX3NlbmRlclNpZ25hdHVyZSA9IG51bGw7XG4gICAgdGhpcy5fZmVlUGF5ZXJTaWduYXR1cmUgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHRoaXMuZ2VuZXJhdGVUeG5JZEFuZFNldFNlbmRlcigpO1xuICAgIHJldHVybiB0aGlzLl9pZCA/PyAnVU5BVkFJTEFCTEUnO1xuICB9XG5cbiAgZ2V0IHJhd1RyYW5zYWN0aW9uKCk6IFZldFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fcmF3VHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgcmF3VHJhbnNhY3Rpb24ocmF3VHg6IFZldFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fcmF3VHJhbnNhY3Rpb24gPSByYXdUeDtcbiAgfVxuXG4gIGdldCB0eXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICBzZXQgdHlwZSh0eXBlOiBUcmFuc2FjdGlvblR5cGUpIHtcbiAgICB0aGlzLl90eXBlID0gdHlwZTtcbiAgfVxuXG4gIGdldCBzZW5kZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc2VuZGVyO1xuICB9XG5cbiAgc2V0IHNlbmRlcihhZGRyZXNzOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZW5kZXIgPSBhZGRyZXNzO1xuICB9XG5cbiAgZ2V0IHNlbmRlclNpZ25hdHVyZSgpOiBVaW50OEFycmF5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5fc2VuZGVyU2lnbmF0dXJlKSB7XG4gICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkodGhpcy5fc2VuZGVyU2lnbmF0dXJlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBzZXQgc2VuZGVyU2lnbmF0dXJlKHNpZzogQnVmZmVyKSB7XG4gICAgdGhpcy5fc2VuZGVyU2lnbmF0dXJlID0gc2lnO1xuICB9XG5cbiAgZ2V0IGZlZVBheWVyQWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mZWVQYXllckFkZHJlc3M7XG4gIH1cblxuICBzZXQgZmVlUGF5ZXJBZGRyZXNzKGFkZHJlc3M6IHN0cmluZykge1xuICAgIHRoaXMuX2ZlZVBheWVyQWRkcmVzcyA9IGFkZHJlc3M7XG4gIH1cblxuICBnZXQgZmVlUGF5ZXJTaWduYXR1cmUoKTogVWludDhBcnJheSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuX2ZlZVBheWVyU2lnbmF0dXJlKSB7XG4gICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkodGhpcy5fZmVlUGF5ZXJTaWduYXR1cmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHNldCBmZWVQYXllclNpZ25hdHVyZShzaWc6IEJ1ZmZlcikge1xuICAgIHRoaXMuX2ZlZVBheWVyU2lnbmF0dXJlID0gc2lnO1xuICB9XG5cbiAgZ2V0IGNoYWluVGFnKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2NoYWluVGFnO1xuICB9XG5cbiAgc2V0IGNoYWluVGFnKHRhZzogbnVtYmVyKSB7XG4gICAgdGhpcy5fY2hhaW5UYWcgPSB0YWc7XG4gIH1cblxuICBnZXQgYmxvY2tSZWYoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYmxvY2tSZWY7XG4gIH1cblxuICBzZXQgYmxvY2tSZWYocmVmOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9ibG9ja1JlZiA9IHJlZjtcbiAgfVxuXG4gIGdldCBleHBpcmF0aW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2V4cGlyYXRpb247XG4gIH1cblxuICBzZXQgZXhwaXJhdGlvbihleHA6IG51bWJlcikge1xuICAgIHRoaXMuX2V4cGlyYXRpb24gPSBleHA7XG4gIH1cblxuICBnZXQgcmVjaXBpZW50cygpOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5fcmVjaXBpZW50cztcbiAgfVxuXG4gIHNldCByZWNpcGllbnRzKHJlY2lwaWVudHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10pIHtcbiAgICB0aGlzLl9yZWNpcGllbnRzID0gcmVjaXBpZW50cztcbiAgfVxuXG4gIGdldCBjbGF1c2VzKCk6IFRyYW5zYWN0aW9uQ2xhdXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9jbGF1c2VzO1xuICB9XG5cbiAgc2V0IGNsYXVzZXMoY2xhdXNlczogVHJhbnNhY3Rpb25DbGF1c2VbXSkge1xuICAgIHRoaXMuX2NsYXVzZXMgPSBjbGF1c2VzO1xuICB9XG5cbiAgZ2V0IGdhc1ByaWNlQ29lZigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9nYXNQcmljZUNvZWY7XG4gIH1cblxuICBzZXQgZ2FzUHJpY2VDb2VmKGNvZWY6IG51bWJlcikge1xuICAgIHRoaXMuX2dhc1ByaWNlQ29lZiA9IGNvZWY7XG4gIH1cblxuICBnZXQgZ2FzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2dhcztcbiAgfVxuXG4gIHNldCBnYXMoZzogbnVtYmVyKSB7XG4gICAgdGhpcy5fZ2FzID0gZztcbiAgfVxuXG4gIGdldCBkZXBlbmRzT24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2RlcGVuZHNPbjtcbiAgfVxuXG4gIHNldCBkZXBlbmRzT24oZGVwOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5fZGVwZW5kc09uID0gZGVwO1xuICB9XG5cbiAgZ2V0IG5vbmNlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX25vbmNlO1xuICB9XG5cbiAgc2V0IG5vbmNlKG46IHN0cmluZykge1xuICAgIHRoaXMuX25vbmNlID0gbjtcbiAgfVxuXG4gIGdldCBjb250cmFjdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jb250cmFjdDtcbiAgfVxuXG4gIHNldCBjb250cmFjdChhZGRyZXNzOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb250cmFjdCA9IGFkZHJlc3M7XG4gIH1cblxuICBnZXQgdHJhbnNhY3Rpb25EYXRhKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uRGF0YTtcbiAgfVxuXG4gIHNldCB0cmFuc2FjdGlvbkRhdGEodHJhbnNhY3Rpb25EYXRhOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbkRhdGEgPSB0cmFuc2FjdGlvbkRhdGE7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBzaWduYXR1cmVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIFJlcXVpcmVkIGJ5IEJhc2VUcmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0IHNpZ25hdHVyZSgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgc2lnczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodGhpcy5fc2VuZGVyU2lnbmF0dXJlKSB7XG4gICAgICBzaWdzLnB1c2goQnVmZmVyLmZyb20odGhpcy5fc2VuZGVyU2lnbmF0dXJlKS50b1N0cmluZygnaGV4JykpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZmVlUGF5ZXJTaWduYXR1cmUpIHtcbiAgICAgIHNpZ3MucHVzaChCdWZmZXIuZnJvbSh0aGlzLl9mZWVQYXllclNpZ25hdHVyZSkudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ3M7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHNpZ25hdHVyZXMgZm9yIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogUmVxdWlyZWQgYnkgQmFzZVRyYW5zYWN0aW9uXG4gICAqIE5vdGU6IFRoaXMgaXMgbWFpbmx5IGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGJhc2UgY2xhc3MuXG4gICAqIFByZWZlciB1c2luZyBzZW5kZXJTaWduYXR1cmUgYW5kIGZlZVBheWVyU2lnbmF0dXJlIGRpcmVjdGx5LlxuICAgKi9cbiAgc2V0IHNpZ25hdHVyZShzaWdzOiBzdHJpbmdbXSkge1xuICAgIGlmIChzaWdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3NlbmRlclNpZ25hdHVyZSA9IEJ1ZmZlci5mcm9tKHNpZ3NbMF0sICdoZXgnKTtcbiAgICB9XG4gICAgaWYgKHNpZ3MubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5fZmVlUGF5ZXJTaWduYXR1cmUgPSBCdWZmZXIuZnJvbShzaWdzWzFdLCAnaGV4Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhpcyBpcyBhIGZlZSBkZWxlZ2F0ZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIGlzRmVlRGVsZWdhdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX2ZlZVBheWVyQWRkcmVzcztcbiAgfVxuXG4gIGFkZFJlY2lwaWVudHMoY2xhdXNlczogVHJhbnNhY3Rpb25DbGF1c2VbXSk6IHZvaWQge1xuICAgIHRoaXMuX3JlY2lwaWVudHMgPSBjbGF1c2VzLm1hcCgoY2xhdXNlKSA9PiAoe1xuICAgICAgYWRkcmVzczogKGNsYXVzZS50byB8fCAnMHgwJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgYW1vdW50OiAoY2xhdXNlLnZhbHVlIHx8ICcwJykudG9TdHJpbmcoKSxcbiAgICB9KSk7XG4gIH1cblxuICBidWlsZENsYXVzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xhdXNlcyA9IHRoaXMuX3JlY2lwaWVudHMubWFwKChyZWNpcGllbnQpID0+ICh7XG4gICAgICB0bzogcmVjaXBpZW50LmFkZHJlc3MsXG4gICAgICB2YWx1ZTogcmVjaXBpZW50LmFtb3VudCxcbiAgICAgIGRhdGE6ICcweCcsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvcHVsYXRlcyB0aGUgdHJhbnNhY3Rpb24gb2JqZWN0IHdpdGggZGF0YSBmcm9tIGEgZGVzZXJpYWxpemVkIFZlQ2hhaW4gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHNpZ25lZFR4IC0gVGhlIGRlc2VyaWFsaXplZCBWZUNoYWluIHRyYW5zYWN0aW9uIGNvbnRhaW5pbmcgYm9keSwgc2lnbmF0dXJlcywgYW5kIG90aGVyIHRyYW5zYWN0aW9uIGRhdGFcbiAgICogQHRocm93cyB7SW52YWxpZFRyYW5zYWN0aW9uRXJyb3J9IFdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyByZXF1aXJlZCBkYXRhXG4gICAqL1xuICBmcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHg6IFZldFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghc2lnbmVkVHggfHwgIXNpZ25lZFR4LmJvZHkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHRyYW5zYWN0aW9uIGJvZHknKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3RvcmUgdGhlIHJhdyB0cmFuc2FjdGlvblxuICAgICAgdGhpcy5yYXdUcmFuc2FjdGlvbiA9IHNpZ25lZFR4O1xuXG4gICAgICAvLyBTZXQgdHJhbnNhY3Rpb24gYm9keSBwcm9wZXJ0aWVzXG4gICAgICBjb25zdCBib2R5ID0gc2lnbmVkVHguYm9keTtcbiAgICAgIHRoaXMuY2hhaW5UYWcgPSB0eXBlb2YgYm9keS5jaGFpblRhZyA9PT0gJ251bWJlcicgPyBib2R5LmNoYWluVGFnIDogMDtcbiAgICAgIHRoaXMuYmxvY2tSZWYgPSBib2R5LmJsb2NrUmVmIHx8ICcweDAnO1xuICAgICAgdGhpcy5leHBpcmF0aW9uID0gdHlwZW9mIGJvZHkuZXhwaXJhdGlvbiA9PT0gJ251bWJlcicgPyBib2R5LmV4cGlyYXRpb24gOiA2NDtcbiAgICAgIHRoaXMuY2xhdXNlcyA9IGJvZHkuY2xhdXNlcyB8fCBbXTtcbiAgICAgIHRoaXMuZ2FzUHJpY2VDb2VmID0gdHlwZW9mIGJvZHkuZ2FzUHJpY2VDb2VmID09PSAnbnVtYmVyJyA/IGJvZHkuZ2FzUHJpY2VDb2VmIDogMTI4O1xuICAgICAgdGhpcy5nYXMgPSB0eXBlb2YgYm9keS5nYXMgPT09ICdudW1iZXInID8gYm9keS5nYXMgOiBOdW1iZXIoYm9keS5nYXMpIHx8IDA7XG4gICAgICB0aGlzLmRlcGVuZHNPbiA9IGJvZHkuZGVwZW5kc09uIHx8IG51bGw7XG4gICAgICB0aGlzLm5vbmNlID0gU3RyaW5nKGJvZHkubm9uY2UpO1xuICAgICAgLy8gU2V0IHJlY2lwaWVudHMgZnJvbSBjbGF1c2VzXG4gICAgICB0aGlzLnJlY2lwaWVudHMgPSBib2R5LmNsYXVzZXMubWFwKChjbGF1c2UpID0+ICh7XG4gICAgICAgIGFkZHJlc3M6IChjbGF1c2UudG8gfHwgJzB4MCcpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgYW1vdW50OiBOdW1iZXIoY2xhdXNlLnZhbHVlKS50b1N0cmluZygpLFxuICAgICAgfSkpO1xuICAgICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuXG4gICAgICAvLyBTZXQgc2VuZGVyIGFkZHJlc3NcbiAgICAgIGlmIChzaWduZWRUeC5zaWduYXR1cmUgJiYgc2lnbmVkVHgub3JpZ2luKSB7XG4gICAgICAgIHRoaXMuc2VuZGVyID0gc2lnbmVkVHgub3JpZ2luLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IHNpZ25hdHVyZXMgaWYgcHJlc2VudFxuICAgICAgaWYgKHNpZ25lZFR4LnNpZ25hdHVyZSkge1xuICAgICAgICAvLyBGaXJzdCBzaWduYXR1cmUgaXMgc2VuZGVyJ3Mgc2lnbmF0dXJlXG4gICAgICAgIHRoaXMuc2VuZGVyU2lnbmF0dXJlID0gQnVmZmVyLmZyb20oc2lnbmVkVHguc2lnbmF0dXJlLnNsaWNlKDAsIFNlY3AyNTZrMS5TSUdOQVRVUkVfTEVOR1RIKSk7XG5cbiAgICAgICAgLy8gSWYgdGhlcmUncyBhZGRpdGlvbmFsIHNpZ25hdHVyZSBkYXRhLCBpdCdzIHRoZSBmZWUgcGF5ZXIncyBzaWduYXR1cmVcbiAgICAgICAgaWYgKHNpZ25lZFR4LnNpZ25hdHVyZS5sZW5ndGggPiBTZWNwMjU2azEuU0lHTkFUVVJFX0xFTkdUSCkge1xuICAgICAgICAgIHRoaXMuZmVlUGF5ZXJTaWduYXR1cmUgPSBCdWZmZXIuZnJvbShzaWduZWRUeC5zaWduYXR1cmUuc2xpY2UoU2VjcDI1NmsxLlNJR05BVFVSRV9MRU5HVEgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIGRlc2VyaWFsaXplIHRyYW5zYWN0aW9uOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBhZGRTZW5kZXJTaWduYXR1cmUoc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmRlclNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgfVxuXG4gIGFkZEZlZVBheWVyU2lnbmF0dXJlKHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5mZWVQYXllclNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuYnVpbGRDbGF1c2VzKCk7XG4gICAgYXdhaXQgdGhpcy5idWlsZFJhd1RyYW5zYWN0aW9uKCk7XG4gICAgdGhpcy5nZW5lcmF0ZVR4bklkQW5kU2V0U2VuZGVyKCk7XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRyYW5zYWN0aW9uIElEIGZyb20gdGhlIHJhdyB0cmFuc2FjdGlvbiBpZiBpdCBpcyBzaWduZWRcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdlbmVyYXRlVHhuSWRBbmRTZXRTZW5kZXIoKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhIHJhdyB0cmFuc2FjdGlvblxuICAgIGlmICghdGhpcy5yYXdUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc2VuZGVyU2lnbmF0dXJlKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGhhbGZTaWduZWRUcmFuc2FjdGlvbjogVmV0VHJhbnNhY3Rpb24gPSBWZXRUcmFuc2FjdGlvbi5vZih0aGlzLnJhd1RyYW5zYWN0aW9uLmJvZHksIHRoaXMuc2VuZGVyU2lnbmF0dXJlKTtcbiAgICAgIGlmIChoYWxmU2lnbmVkVHJhbnNhY3Rpb24uc2lnbmF0dXJlKSB7XG4gICAgICAgIHRoaXMuX3Jhd1RyYW5zYWN0aW9uID0gaGFsZlNpZ25lZFRyYW5zYWN0aW9uO1xuICAgICAgICB0aGlzLl9zZW5kZXIgPSBoYWxmU2lnbmVkVHJhbnNhY3Rpb24ub3JpZ2luLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZlZVBheWVyU2lnbmF0dXJlKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxTaWduZWRUcmFuc2FjdGlvbjogVmV0VHJhbnNhY3Rpb24gPSBWZXRUcmFuc2FjdGlvbi5vZihcbiAgICAgICAgICBoYWxmU2lnbmVkVHJhbnNhY3Rpb24uYm9keSxcbiAgICAgICAgICBuY191dGlscy5jb25jYXRCeXRlcyhcbiAgICAgICAgICAgIC8vIERyb3AgYW55IHByZXZpb3VzIGdhcyBwYXllciBzaWduYXR1cmUuXG4gICAgICAgICAgICBoYWxmU2lnbmVkVHJhbnNhY3Rpb24uc2lnbmF0dXJlLnNsaWNlKDAsIFNlY3AyNTZrMS5TSUdOQVRVUkVfTEVOR1RIKSxcbiAgICAgICAgICAgIHRoaXMuZmVlUGF5ZXJTaWduYXR1cmVcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGlmIChmdWxsU2lnbmVkVHJhbnNhY3Rpb24uc2lnbmF0dXJlKSB7XG4gICAgICAgICAgdGhpcy5fcmF3VHJhbnNhY3Rpb24gPSBmdWxsU2lnbmVkVHJhbnNhY3Rpb247XG4gICAgICAgICAgdGhpcy5faWQgPSBmdWxsU2lnbmVkVHJhbnNhY3Rpb24uaWQudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRSYXdUcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0cmFuc2FjdGlvbkJvZHk6IFRyYW5zYWN0aW9uQm9keSA9IHtcbiAgICAgIGNoYWluVGFnOiB0aGlzLmNoYWluVGFnLFxuICAgICAgYmxvY2tSZWY6IHRoaXMuYmxvY2tSZWYsXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLmV4cGlyYXRpb24sXG4gICAgICBjbGF1c2VzOiB0aGlzLmNsYXVzZXMsXG4gICAgICBnYXNQcmljZUNvZWY6IHRoaXMuZ2FzUHJpY2VDb2VmLFxuICAgICAgZ2FzOiB0aGlzLmdhcyxcbiAgICAgIGRlcGVuZHNPbjogbnVsbCxcbiAgICAgIG5vbmNlOiB0aGlzLm5vbmNlLFxuICAgIH07XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kIHx8XG4gICAgICB0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW4gfHxcbiAgICAgIHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmRORlRcbiAgICApIHtcbiAgICAgIHRyYW5zYWN0aW9uQm9keS5yZXNlcnZlZCA9IHtcbiAgICAgICAgZmVhdHVyZXM6IDEsIC8vIG1hcmsgdHJhbnNhY3Rpb24gYXMgZGVsZWdhdGVkIGkuZS4gd2lsbCB1c2UgZ2FzIHBheWVyXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMucmF3VHJhbnNhY3Rpb24gPSBWZXRUcmFuc2FjdGlvbi5vZih0cmFuc2FjdGlvbkJvZHkpO1xuICB9XG5cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgY29uc3QgdG90YWxBbW91bnQgPSB0aGlzLl9yZWNpcGllbnRzLnJlZHVjZShcbiAgICAgIChhY2N1bXVsYXRvciwgY3VycmVudCkgPT4gYWNjdW11bGF0b3IucGx1cyhjdXJyZW50LmFtb3VudCksXG4gICAgICBuZXcgQmlnTnVtYmVyKCcwJylcbiAgICApO1xuICAgIHRoaXMuX2lucHV0cyA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdGhpcy5zZW5kZXIsXG4gICAgICAgIHZhbHVlOiB0b3RhbEFtb3VudC50b1N0cmluZygpLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9LFxuICAgIF07XG4gICAgdGhpcy5fb3V0cHV0cyA9IHRoaXMuX3JlY2lwaWVudHMubWFwKChyZWNpcGllbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgICB2YWx1ZTogcmVjaXBpZW50LmFtb3VudCBhcyBzdHJpbmcsXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBzaWduZWRUeG46IFZldFRyYW5zYWN0aW9uO1xuICAgIHRyeSB7XG4gICAgICBzaWduZWRUeG4gPSB1dGlscy5kZXNlcmlhbGl6ZVRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHRoaXMuZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4bik7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFZldFRyYW5zYWN0aW9uRGF0YSB7XG4gICAgY29uc3QganNvbjogVmV0VHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBjaGFpblRhZzogdGhpcy5jaGFpblRhZyxcbiAgICAgIGJsb2NrUmVmOiB0aGlzLmJsb2NrUmVmLFxuICAgICAgZXhwaXJhdGlvbjogdGhpcy5leHBpcmF0aW9uLFxuICAgICAgcmVjaXBpZW50czogdGhpcy5yZWNpcGllbnRzLFxuICAgICAgZ2FzUHJpY2VDb2VmOiB0aGlzLmdhc1ByaWNlQ29lZixcbiAgICAgIGdhczogdGhpcy5nYXMsXG4gICAgICBkZXBlbmRzT246IHRoaXMuZGVwZW5kc09uLFxuICAgICAgbm9uY2U6IHRoaXMubm9uY2UsXG4gICAgICBzZW5kZXI6IHRoaXMuc2VuZGVyLFxuICAgICAgZmVlUGF5ZXI6IHRoaXMuZmVlUGF5ZXJBZGRyZXNzLFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGZWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEJpZ051bWJlcih0aGlzLmdhcylcbiAgICAgIC5tdWx0aXBsaWVkQnkoZ2FzUHJpY2UpXG4gICAgICAubXVsdGlwbGllZEJ5KG5ldyBCaWdOdW1iZXIodGhpcy5nYXNQcmljZUNvZWYpLmRpdmlkZWRCeSgyNTUpLnBsdXMoMSkpXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnNsaWNlKDAsIDE4KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2lnbmFibGVQYXlsb2FkKCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRoaXMucmF3VHJhbnNhY3Rpb24uZW5jb2RlZCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgVHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICBzZXJpYWxpemUoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VuZGVyU2lnbmF0dXJlKSB7XG4gICAgICByZXR1cm4gSGV4VUludC5vZih0aGlzLnJhd1RyYW5zYWN0aW9uLmVuY29kZWQpLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5mZWVQYXllclNpZ25hdHVyZSkge1xuICAgICAgICBjb25zdCBzZW5kZXJTaWduZWRUcmFuc2FjdGlvbjogVmV0VHJhbnNhY3Rpb24gPSBWZXRUcmFuc2FjdGlvbi5vZihcbiAgICAgICAgICB0aGlzLnJhd1RyYW5zYWN0aW9uLmJvZHksXG4gICAgICAgICAgdGhpcy5zZW5kZXJTaWduYXR1cmVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIEhleFVJbnQub2Yoc2VuZGVyU2lnbmVkVHJhbnNhY3Rpb24uZW5jb2RlZCkudG9TdHJpbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNlbmRlclNpZ25lZFRyYW5zYWN0aW9uOiBWZXRUcmFuc2FjdGlvbiA9IFZldFRyYW5zYWN0aW9uLm9mKFxuICAgICAgICAgIHRoaXMucmF3VHJhbnNhY3Rpb24uYm9keSxcbiAgICAgICAgICB0aGlzLnNlbmRlclNpZ25hdHVyZVxuICAgICAgICApO1xuICAgICAgICBpZiAoc2VuZGVyU2lnbmVkVHJhbnNhY3Rpb24uc2lnbmF0dXJlKSB7XG4gICAgICAgICAgY29uc3QgZnVsbFNpZ25lZFRyYW5zYWN0aW9uOiBWZXRUcmFuc2FjdGlvbiA9IFZldFRyYW5zYWN0aW9uLm9mKFxuICAgICAgICAgICAgc2VuZGVyU2lnbmVkVHJhbnNhY3Rpb24uYm9keSxcbiAgICAgICAgICAgIG5jX3V0aWxzLmNvbmNhdEJ5dGVzKFxuICAgICAgICAgICAgICBzZW5kZXJTaWduZWRUcmFuc2FjdGlvbi5zaWduYXR1cmUuc2xpY2UoMCwgU2VjcDI1NmsxLlNJR05BVFVSRV9MRU5HVEgpLFxuICAgICAgICAgICAgICB0aGlzLmZlZVBheWVyU2lnbmF0dXJlXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gSGV4VUludC5vZihmdWxsU2lnbmVkVHJhbnNhY3Rpb24uZW5jb2RlZCkudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIGlzIG5vdCBzaWduZWQgcHJvcGVybHknKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uKHJhd1R4OiBzdHJpbmcpOiBWZXRUcmFuc2FjdGlvbiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghcmF3VHgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdSYXcgdHJhbnNhY3Rpb24gc3RyaW5nIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHV0aWxzLmRlc2VyaWFsaXplVHJhbnNhY3Rpb24ocmF3VHgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIGRlc2VyaWFsaXplIHRyYW5zYWN0aW9uOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVmV0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gW1xuICAgICAgJ2lkJyxcbiAgICAgICdvdXRwdXRzJyxcbiAgICAgICdvdXRwdXRBbW91bnQnLFxuICAgICAgJ2NoYW5nZU91dHB1dHMnLFxuICAgICAgJ2NoYW5nZUFtb3VudCcsXG4gICAgICAnZmVlJyxcbiAgICAgICd3aXRoZHJhd0Ftb3VudCcsXG4gICAgICAnc2VuZGVyJyxcbiAgICAgICd0eXBlJyxcbiAgICBdO1xuXG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IHRoaXMuX3JlY2lwaWVudHM7XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gb3V0cHV0c1xuICAgICAgLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnQpID0+IGFjY3VtdWxhdG9yLnBsdXMoY3VycmVudC5hbW91bnQpLCBuZXcgQmlnTnVtYmVyKCcwJykpXG4gICAgICAudG9TdHJpbmcoKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6IHRoaXMuZ2V0RmVlKCkgfSxcbiAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,78 +0,0 @@
1
- import { TransactionClause } from '@vechain/sdk-core';
2
- import { TransactionType } from '@bitgo-beta/sdk-core';
3
- import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
- import { TransactionBuilder } from './transactionBuilder';
5
- import { AddressInitializationTransaction } from '../transaction/addressInitializationTransaction';
6
- import { Transaction } from '../transaction/transaction';
7
- export declare class AddressInitializationBuilder extends TransactionBuilder {
8
- /**
9
- * Creates a new AddressInitializationBuilder instance.
10
- *
11
- * @param {Readonly<CoinConfig>} _coinConfig - The coin configuration object
12
- */
13
- constructor(_coinConfig: Readonly<CoinConfig>);
14
- /**
15
- * Initializes the builder with an existing AddressInitializationTransaction.
16
- *
17
- * @param {AddressInitializationTransaction} tx - The transaction to initialize the builder with
18
- */
19
- initBuilder(tx: AddressInitializationTransaction): void;
20
- /**
21
- * Gets the address initialization transaction instance.
22
- *
23
- * @returns {AddressInitializationTransaction} The address initialization transaction
24
- */
25
- get addressInitializationTransaction(): AddressInitializationTransaction;
26
- /**
27
- * Gets the transaction type for address initialization.
28
- *
29
- * @returns {TransactionType} The transaction type
30
- */
31
- protected get transactionType(): TransactionType;
32
- /**
33
- * Validates the transaction clauses for address initialization.
34
- * @param {TransactionClause[]} clauses - The transaction clauses to validate.
35
- * @returns {boolean} - Returns true if the clauses are valid, false otherwise.
36
- */
37
- protected isValidTransactionClauses(clauses: TransactionClause[]): boolean;
38
- /**
39
- * Sets the base address for this forwarder init tx.
40
- *
41
- * @param {string} address - The base address to be set for the forwarder address
42
- * @returns {AddressInitializationBuilder} This transaction builder
43
- */
44
- baseAddress(address: string): this;
45
- /**
46
- * Sets the fee address for this forwarder init tx.
47
- *
48
- * @param {string} address - The fee address to be set for the forwarder address
49
- * @returns {AddressInitializationBuilder} This transaction builder
50
- */
51
- feeAddress(address: string): this;
52
- /**
53
- * Sets the salt value for the forwarder address creation.
54
- *
55
- * @param {string} salt - The salt value to use for address creation
56
- * @returns {AddressInitializationBuilder} This transaction builder
57
- */
58
- salt(salt: string): this;
59
- /**
60
- * Sets the initialization code for the forwarder contract.
61
- *
62
- * @param {string} address - The address to generate proxy init code for
63
- * @returns {AddressInitializationBuilder} This transaction builder
64
- */
65
- initCode(address: string): this;
66
- /** @inheritdoc */
67
- validateTransaction(transaction?: AddressInitializationTransaction): void;
68
- /** @inheritdoc */
69
- protected buildImplementation(): Promise<Transaction>;
70
- /**
71
- * Generates the transaction data for address initialization by encoding the createForwarder method call.
72
- *
73
- * @private
74
- * @returns {string} The encoded transaction data as a hex string
75
- */
76
- private getAddressInitializationData;
77
- }
78
- //# sourceMappingURL=addressInitializationBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addressInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/addressInitializationBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE;;;;OAIG;gBACS,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,gCAAgC,GAAG,IAAI;IAIvD;;;;OAIG;IACH,IAAI,gCAAgC,IAAI,gCAAgC,CAEvE;IAED;;;;OAIG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO;IAiC1E;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMlC;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMjC;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM/B,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,gCAAgC,GAAG,IAAI;IAezE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ3D;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;CAWrC"}