@bitgo-beta/sdk-coin-xdc 1.0.1-beta.89 → 1.0.1-beta.890

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 (50) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -1
  4. package/dist/src/lib/XDCValidatorABI.json +431 -0
  5. package/dist/src/lib/index.d.ts +2 -0
  6. package/dist/src/lib/index.d.ts.map +1 -1
  7. package/dist/src/lib/index.js +9 -2
  8. package/dist/src/lib/transactionBuilder.d.ts +23 -1
  9. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  10. package/dist/src/lib/transactionBuilder.js +53 -1
  11. package/dist/src/lib/uploadKycBuilder.d.ts +73 -0
  12. package/dist/src/lib/uploadKycBuilder.d.ts.map +1 -0
  13. package/dist/src/lib/uploadKycBuilder.js +110 -0
  14. package/dist/src/lib/validatorContract.d.ts +136 -0
  15. package/dist/src/lib/validatorContract.d.ts.map +1 -0
  16. package/dist/src/lib/validatorContract.js +62 -0
  17. package/dist/src/register.d.ts.map +1 -1
  18. package/dist/src/register.js +5 -1
  19. package/dist/src/xdc.d.ts +15 -2
  20. package/dist/src/xdc.d.ts.map +1 -1
  21. package/dist/src/xdc.js +32 -1
  22. package/dist/src/xdcToken.d.ts +37 -0
  23. package/dist/src/xdcToken.d.ts.map +1 -0
  24. package/dist/src/xdcToken.js +74 -0
  25. package/dist/test/resources.d.ts +45 -0
  26. package/dist/test/resources.d.ts.map +1 -0
  27. package/dist/test/resources.js +107 -0
  28. package/dist/test/unit/getBuilder.d.ts +3 -0
  29. package/dist/test/unit/getBuilder.d.ts.map +1 -0
  30. package/dist/test/unit/getBuilder.js +10 -0
  31. package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
  32. package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
  33. package/dist/test/unit/transactionBuilder/send.js +19 -0
  34. package/dist/test/unit/transactionBuilder/uploadKyc.d.ts +2 -0
  35. package/dist/test/unit/transactionBuilder/uploadKyc.d.ts.map +1 -0
  36. package/dist/test/unit/transactionBuilder/uploadKyc.js +215 -0
  37. package/dist/test/unit/utils.d.ts +2 -0
  38. package/dist/test/unit/utils.d.ts.map +1 -0
  39. package/dist/test/unit/utils.js +27 -0
  40. package/dist/test/unit/xdc.d.ts +2 -0
  41. package/dist/test/unit/xdc.d.ts.map +1 -0
  42. package/dist/test/unit/xdc.js +172 -0
  43. package/dist/test/unit/xdcToken.d.ts +2 -0
  44. package/dist/test/unit/xdcToken.d.ts.map +1 -0
  45. package/dist/test/unit/xdcToken.js +228 -0
  46. package/dist/tsconfig.tsbuildinfo +1 -0
  47. package/package.json +14 -10
  48. package/.eslintignore +0 -5
  49. package/.mocharc.yml +0 -8
  50. package/CHANGELOG.md +0 -48
@@ -2,4 +2,5 @@ export * from './lib';
2
2
  export * from './xdc';
3
3
  export * from './txdc';
4
4
  export * from './register';
5
+ export * from './xdcToken';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
package/dist/src/index.js CHANGED
@@ -18,4 +18,5 @@ __exportStar(require("./lib"), exports);
18
18
  __exportStar(require("./xdc"), exports);
19
19
  __exportStar(require("./txdc"), exports);
20
20
  __exportStar(require("./register"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQjtBQUN0Qix3Q0FBc0I7QUFDdEIseUNBQXVCO0FBQ3ZCLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliJztcbmV4cG9ydCAqIGZyb20gJy4veGRjJztcbmV4cG9ydCAqIGZyb20gJy4vdHhkYyc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyJztcbiJdfQ==
21
+ __exportStar(require("./xdcToken"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQjtBQUN0Qix3Q0FBc0I7QUFDdEIseUNBQXVCO0FBQ3ZCLDZDQUEyQjtBQUMzQiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG5leHBvcnQgKiBmcm9tICcuL3hkYyc7XG5leHBvcnQgKiBmcm9tICcuL3R4ZGMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlcic7XG5leHBvcnQgKiBmcm9tICcuL3hkY1Rva2VuJztcbiJdfQ==
@@ -0,0 +1,431 @@
1
+ [
2
+ {
3
+ "constant": false,
4
+ "inputs": [
5
+ {
6
+ "name": "kychash",
7
+ "type": "string"
8
+ }
9
+ ],
10
+ "name": "uploadKYC",
11
+ "outputs": [],
12
+ "payable": false,
13
+ "stateMutability": "nonpayable",
14
+ "type": "function"
15
+ },
16
+ {
17
+ "constant": false,
18
+ "inputs": [
19
+ {
20
+ "name": "_candidate",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "name": "propose",
25
+ "outputs": [],
26
+ "payable": true,
27
+ "stateMutability": "payable",
28
+ "type": "function"
29
+ },
30
+ {
31
+ "constant": false,
32
+ "inputs": [
33
+ {
34
+ "name": "_candidate",
35
+ "type": "address"
36
+ }
37
+ ],
38
+ "name": "vote",
39
+ "outputs": [],
40
+ "payable": true,
41
+ "stateMutability": "payable",
42
+ "type": "function"
43
+ },
44
+ {
45
+ "constant": false,
46
+ "inputs": [
47
+ {
48
+ "name": "_candidate",
49
+ "type": "address"
50
+ },
51
+ {
52
+ "name": "_cap",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "unvote",
57
+ "outputs": [],
58
+ "payable": false,
59
+ "stateMutability": "nonpayable",
60
+ "type": "function"
61
+ },
62
+ {
63
+ "constant": false,
64
+ "inputs": [
65
+ {
66
+ "name": "_candidate",
67
+ "type": "address"
68
+ }
69
+ ],
70
+ "name": "resign",
71
+ "outputs": [],
72
+ "payable": false,
73
+ "stateMutability": "nonpayable",
74
+ "type": "function"
75
+ },
76
+ {
77
+ "constant": false,
78
+ "inputs": [
79
+ {
80
+ "name": "_blockNumber",
81
+ "type": "uint256"
82
+ },
83
+ {
84
+ "name": "_index",
85
+ "type": "uint256"
86
+ }
87
+ ],
88
+ "name": "withdraw",
89
+ "outputs": [],
90
+ "payable": false,
91
+ "stateMutability": "nonpayable",
92
+ "type": "function"
93
+ },
94
+ {
95
+ "constant": true,
96
+ "inputs": [],
97
+ "name": "getCandidates",
98
+ "outputs": [
99
+ {
100
+ "name": "",
101
+ "type": "address[]"
102
+ }
103
+ ],
104
+ "payable": false,
105
+ "stateMutability": "view",
106
+ "type": "function"
107
+ },
108
+ {
109
+ "constant": true,
110
+ "inputs": [
111
+ {
112
+ "name": "_candidate",
113
+ "type": "address"
114
+ }
115
+ ],
116
+ "name": "getCandidateCap",
117
+ "outputs": [
118
+ {
119
+ "name": "",
120
+ "type": "uint256"
121
+ }
122
+ ],
123
+ "payable": false,
124
+ "stateMutability": "view",
125
+ "type": "function"
126
+ },
127
+ {
128
+ "constant": true,
129
+ "inputs": [
130
+ {
131
+ "name": "_candidate",
132
+ "type": "address"
133
+ }
134
+ ],
135
+ "name": "getCandidateOwner",
136
+ "outputs": [
137
+ {
138
+ "name": "",
139
+ "type": "address"
140
+ }
141
+ ],
142
+ "payable": false,
143
+ "stateMutability": "view",
144
+ "type": "function"
145
+ },
146
+ {
147
+ "constant": true,
148
+ "inputs": [
149
+ {
150
+ "name": "_candidate",
151
+ "type": "address"
152
+ },
153
+ {
154
+ "name": "_voter",
155
+ "type": "address"
156
+ }
157
+ ],
158
+ "name": "getVoterCap",
159
+ "outputs": [
160
+ {
161
+ "name": "",
162
+ "type": "uint256"
163
+ }
164
+ ],
165
+ "payable": false,
166
+ "stateMutability": "view",
167
+ "type": "function"
168
+ },
169
+ {
170
+ "constant": true,
171
+ "inputs": [
172
+ {
173
+ "name": "_candidate",
174
+ "type": "address"
175
+ }
176
+ ],
177
+ "name": "getVoters",
178
+ "outputs": [
179
+ {
180
+ "name": "",
181
+ "type": "address[]"
182
+ }
183
+ ],
184
+ "payable": false,
185
+ "stateMutability": "view",
186
+ "type": "function"
187
+ },
188
+ {
189
+ "constant": true,
190
+ "inputs": [
191
+ {
192
+ "name": "_candidate",
193
+ "type": "address"
194
+ }
195
+ ],
196
+ "name": "isCandidate",
197
+ "outputs": [
198
+ {
199
+ "name": "",
200
+ "type": "bool"
201
+ }
202
+ ],
203
+ "payable": false,
204
+ "stateMutability": "view",
205
+ "type": "function"
206
+ },
207
+ {
208
+ "constant": true,
209
+ "inputs": [
210
+ {
211
+ "name": "_address",
212
+ "type": "address"
213
+ }
214
+ ],
215
+ "name": "getLatestKYC",
216
+ "outputs": [
217
+ {
218
+ "name": "",
219
+ "type": "string"
220
+ }
221
+ ],
222
+ "payable": false,
223
+ "stateMutability": "view",
224
+ "type": "function"
225
+ },
226
+ {
227
+ "constant": true,
228
+ "inputs": [
229
+ {
230
+ "name": "_address",
231
+ "type": "address"
232
+ }
233
+ ],
234
+ "name": "getHashCount",
235
+ "outputs": [
236
+ {
237
+ "name": "",
238
+ "type": "uint256"
239
+ }
240
+ ],
241
+ "payable": false,
242
+ "stateMutability": "view",
243
+ "type": "function"
244
+ },
245
+ {
246
+ "constant": true,
247
+ "inputs": [],
248
+ "name": "getOwnerCount",
249
+ "outputs": [
250
+ {
251
+ "name": "",
252
+ "type": "uint256"
253
+ }
254
+ ],
255
+ "payable": false,
256
+ "stateMutability": "view",
257
+ "type": "function"
258
+ },
259
+ {
260
+ "constant": false,
261
+ "inputs": [
262
+ {
263
+ "name": "_invalidCandidate",
264
+ "type": "address"
265
+ }
266
+ ],
267
+ "name": "voteInvalidKYC",
268
+ "outputs": [],
269
+ "payable": false,
270
+ "stateMutability": "nonpayable",
271
+ "type": "function"
272
+ },
273
+ {
274
+ "constant": true,
275
+ "inputs": [
276
+ {
277
+ "name": "_invalidCandidate",
278
+ "type": "address"
279
+ }
280
+ ],
281
+ "name": "invalidPercent",
282
+ "outputs": [
283
+ {
284
+ "name": "",
285
+ "type": "uint256"
286
+ }
287
+ ],
288
+ "payable": false,
289
+ "stateMutability": "view",
290
+ "type": "function"
291
+ },
292
+ {
293
+ "anonymous": false,
294
+ "inputs": [
295
+ {
296
+ "indexed": false,
297
+ "name": "_voter",
298
+ "type": "address"
299
+ },
300
+ {
301
+ "indexed": false,
302
+ "name": "_candidate",
303
+ "type": "address"
304
+ },
305
+ {
306
+ "indexed": false,
307
+ "name": "_cap",
308
+ "type": "uint256"
309
+ }
310
+ ],
311
+ "name": "Vote",
312
+ "type": "event"
313
+ },
314
+ {
315
+ "anonymous": false,
316
+ "inputs": [
317
+ {
318
+ "indexed": false,
319
+ "name": "_voter",
320
+ "type": "address"
321
+ },
322
+ {
323
+ "indexed": false,
324
+ "name": "_candidate",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "indexed": false,
329
+ "name": "_cap",
330
+ "type": "uint256"
331
+ }
332
+ ],
333
+ "name": "Unvote",
334
+ "type": "event"
335
+ },
336
+ {
337
+ "anonymous": false,
338
+ "inputs": [
339
+ {
340
+ "indexed": false,
341
+ "name": "_owner",
342
+ "type": "address"
343
+ },
344
+ {
345
+ "indexed": false,
346
+ "name": "_candidate",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "indexed": false,
351
+ "name": "_cap",
352
+ "type": "uint256"
353
+ }
354
+ ],
355
+ "name": "Propose",
356
+ "type": "event"
357
+ },
358
+ {
359
+ "anonymous": false,
360
+ "inputs": [
361
+ {
362
+ "indexed": false,
363
+ "name": "_owner",
364
+ "type": "address"
365
+ },
366
+ {
367
+ "indexed": false,
368
+ "name": "_candidate",
369
+ "type": "address"
370
+ }
371
+ ],
372
+ "name": "Resign",
373
+ "type": "event"
374
+ },
375
+ {
376
+ "anonymous": false,
377
+ "inputs": [
378
+ {
379
+ "indexed": false,
380
+ "name": "_owner",
381
+ "type": "address"
382
+ },
383
+ {
384
+ "indexed": false,
385
+ "name": "_blockNumber",
386
+ "type": "uint256"
387
+ },
388
+ {
389
+ "indexed": false,
390
+ "name": "_cap",
391
+ "type": "uint256"
392
+ }
393
+ ],
394
+ "name": "Withdraw",
395
+ "type": "event"
396
+ },
397
+ {
398
+ "anonymous": false,
399
+ "inputs": [
400
+ {
401
+ "indexed": false,
402
+ "name": "_owner",
403
+ "type": "address"
404
+ },
405
+ {
406
+ "indexed": false,
407
+ "name": "kycHash",
408
+ "type": "string"
409
+ }
410
+ ],
411
+ "name": "UploadedKYC",
412
+ "type": "event"
413
+ },
414
+ {
415
+ "anonymous": false,
416
+ "inputs": [
417
+ {
418
+ "indexed": false,
419
+ "name": "_masternodeOwner",
420
+ "type": "address"
421
+ },
422
+ {
423
+ "indexed": false,
424
+ "name": "_masternodes",
425
+ "type": "address[]"
426
+ }
427
+ ],
428
+ "name": "InvalidatedNode",
429
+ "type": "event"
430
+ }
431
+ ]
@@ -1,6 +1,8 @@
1
1
  import * as Utils from './utils';
2
2
  export { TransactionBuilder } from './transactionBuilder';
3
3
  export { TransferBuilder } from './transferBuilder';
4
+ export { UploadKycBuilder, UploadKycCall } from './uploadKycBuilder';
4
5
  export { Transaction, KeyPair } from '@bitgo-beta/abstract-eth';
5
6
  export { Utils };
7
+ export * from './validatorContract';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,cAAc,qBAAqB,CAAC"}
@@ -32,15 +32,22 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Utils = exports.KeyPair = exports.Transaction = exports.TransferBuilder = exports.TransactionBuilder = void 0;
39
+ exports.Utils = exports.KeyPair = exports.Transaction = exports.UploadKycCall = exports.UploadKycBuilder = exports.TransferBuilder = exports.TransactionBuilder = void 0;
37
40
  const Utils = __importStar(require("./utils"));
38
41
  exports.Utils = Utils;
39
42
  var transactionBuilder_1 = require("./transactionBuilder");
40
43
  Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
41
44
  var transferBuilder_1 = require("./transferBuilder");
42
45
  Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
46
+ var uploadKycBuilder_1 = require("./uploadKycBuilder");
47
+ Object.defineProperty(exports, "UploadKycBuilder", { enumerable: true, get: function () { return uploadKycBuilder_1.UploadKycBuilder; } });
48
+ Object.defineProperty(exports, "UploadKycCall", { enumerable: true, get: function () { return uploadKycBuilder_1.UploadKycCall; } });
43
49
  var abstract_eth_1 = require("@bitgo-beta/abstract-eth");
44
50
  Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return abstract_eth_1.Transaction; } });
45
51
  Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return abstract_eth_1.KeyPair; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUt4QixzQkFBSztBQUhkLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQixxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLHlEQUFnRTtBQUF2RCwyR0FBQSxXQUFXLE9BQUE7QUFBRSx1R0FBQSxPQUFPLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24sIEtleVBhaXIgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuZXhwb3J0IHsgVXRpbHMgfTtcbiJdfQ==
52
+ __exportStar(require("./validatorContract"), exports);
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQU14QixzQkFBSztBQUpkLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQixxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLHVEQUFxRTtBQUE1RCxvSEFBQSxnQkFBZ0IsT0FBQTtBQUFFLGlIQUFBLGFBQWEsT0FBQTtBQUN4Qyx5REFBZ0U7QUFBdkQsMkdBQUEsV0FBVyxPQUFBO0FBQUUsdUdBQUEsT0FBTyxPQUFBO0FBRTdCLHNEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBVcGxvYWRLeWNCdWlsZGVyLCBVcGxvYWRLeWNDYWxsIH0gZnJvbSAnLi91cGxvYWRLeWNCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uLCBLZXlQYWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtZXRoJztcbmV4cG9ydCB7IFV0aWxzIH07XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvckNvbnRyYWN0JztcbiJdfQ==
@@ -1,11 +1,33 @@
1
1
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
- import { TransactionBuilder as AbstractTransactionBuilder } from '@bitgo-beta/abstract-eth';
2
+ import { PublicKey } from '@bitgo-beta/sdk-core';
3
+ import { TransactionBuilder as AbstractTransactionBuilder, Transaction, TxData } from '@bitgo-beta/abstract-eth';
3
4
  import { TransferBuilder } from './transferBuilder';
5
+ import { UploadKycBuilder } from './uploadKycBuilder';
4
6
  export declare class TransactionBuilder extends AbstractTransactionBuilder {
5
7
  protected _transfer: TransferBuilder;
8
+ private _signatures;
9
+ private _uploadKycBuilder?;
10
+ private _uploadKycCall?;
6
11
  constructor(_coinConfig: Readonly<CoinConfig>);
7
12
  /** @inheritdoc */
8
13
  transfer(data?: string): TransferBuilder;
14
+ /**
15
+ * Gets the uploadKYC builder if it exists, or creates a new one for this transaction
16
+ *
17
+ * @returns {UploadKycBuilder} the uploadKYC builder
18
+ * @throws {BuildTransactionError} if transaction type is not ContractCall
19
+ */
20
+ uploadKyc(): UploadKycBuilder;
21
+ /** @inheritdoc */
22
+ build(): Promise<Transaction>;
23
+ /**
24
+ * Build the transaction data for uploadKYC contract call
25
+ * @private
26
+ */
27
+ private buildUploadKycTransaction;
28
+ /** @inheritdoc */
29
+ protected getTransactionData(): TxData;
30
+ addSignature(publicKey: PublicKey, signature: Buffer): void;
9
31
  protected getContractData(addresses: string[]): string;
10
32
  }
11
33
  //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAe,MAAM,0BAA0B,CAAC;AAEzG,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,kBAAmB,SAAQ,0BAA0B;IAChE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;gBAEzB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe;IAUxC,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;CAGvD"}
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAA0C,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEjH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,oBAAoB,CAAC;AAErE,qBAAa,kBAAmB,SAAQ,0BAA0B;IAChE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;IACrC,OAAO,CAAC,WAAW,CAAgD;IACnE,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAgB;gBAE3B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAO7C,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe;IAUxC;;;;;OAKG;IACH,SAAS,IAAI,gBAAgB;IAU7B,kBAAkB;IACZ,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAWnC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAUjC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAUtC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAK3D,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;CAGvD"}
@@ -5,11 +5,13 @@ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
5
  const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
6
6
  const utils_1 = require("./utils");
7
7
  const transferBuilder_1 = require("./transferBuilder");
8
+ const uploadKycBuilder_1 = require("./uploadKycBuilder");
8
9
  class TransactionBuilder extends abstract_eth_1.TransactionBuilder {
9
10
  constructor(_coinConfig) {
10
11
  super(_coinConfig);
11
12
  this._common = (0, utils_1.getCommon)(this._coinConfig.network.type);
12
13
  this.transaction = new abstract_eth_1.Transaction(this._coinConfig, this._common);
14
+ this._signatures = [];
13
15
  }
14
16
  /** @inheritdoc */
15
17
  transfer(data) {
@@ -21,9 +23,59 @@ class TransactionBuilder extends abstract_eth_1.TransactionBuilder {
21
23
  }
22
24
  return this._transfer;
23
25
  }
26
+ /**
27
+ * Gets the uploadKYC builder if it exists, or creates a new one for this transaction
28
+ *
29
+ * @returns {UploadKycBuilder} the uploadKYC builder
30
+ * @throws {BuildTransactionError} if transaction type is not ContractCall
31
+ */
32
+ uploadKyc() {
33
+ if (this._type !== sdk_core_1.TransactionType.ContractCall) {
34
+ throw new sdk_core_1.BuildTransactionError('uploadKYC can only be set for contract call transactions');
35
+ }
36
+ if (!this._uploadKycBuilder) {
37
+ this._uploadKycBuilder = new uploadKycBuilder_1.UploadKycBuilder(this._coinConfig);
38
+ }
39
+ return this._uploadKycBuilder;
40
+ }
41
+ /** @inheritdoc */
42
+ async build() {
43
+ // If uploadKYC builder is set, build and cache the result before validation
44
+ if (this._uploadKycBuilder && this._type === sdk_core_1.TransactionType.ContractCall) {
45
+ this._uploadKycCall = this._uploadKycBuilder.build();
46
+ this.contract(this._uploadKycCall.contractAddress);
47
+ this.data(this._uploadKycCall.serialize());
48
+ }
49
+ return (await super.build());
50
+ }
51
+ /**
52
+ * Build the transaction data for uploadKYC contract call
53
+ * @private
54
+ */
55
+ buildUploadKycTransaction() {
56
+ if (!this._uploadKycCall) {
57
+ throw new sdk_core_1.BuildTransactionError('uploadKYC call not initialized');
58
+ }
59
+ // The contract address and data are already set in build() method
60
+ // Just return the base transaction data with the serialized data
61
+ return this.buildBase(this._uploadKycCall.serialize());
62
+ }
63
+ /** @inheritdoc */
64
+ getTransactionData() {
65
+ // If uploadKYC builder is set, build uploadKYC transaction
66
+ if (this._uploadKycBuilder && this._type === sdk_core_1.TransactionType.ContractCall) {
67
+ return this.buildUploadKycTransaction();
68
+ }
69
+ // Otherwise, use the parent implementation
70
+ return super.getTransactionData();
71
+ }
72
+ addSignature(publicKey, signature) {
73
+ this._signatures = [];
74
+ this._signatures.push({ publicKey, signature });
75
+ }
24
76
  getContractData(addresses) {
25
77
  throw new Error('Method not implemented.');
26
78
  }
27
79
  }
28
80
  exports.TransactionBuilder = TransactionBuilder;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQThFO0FBQzlFLDJEQUF5RztBQUN6RyxtQ0FBb0M7QUFDcEMsdURBQW9EO0FBRXBELE1BQWEsa0JBQW1CLFNBQVEsaUNBQTBCO0lBR2hFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBQSxpQkFBUyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSwwQkFBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsUUFBUSxDQUFDLElBQWE7UUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLDBCQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRVMsZUFBZSxDQUFDLFNBQW1CO1FBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0Y7QUF2QkQsZ0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgYXMgQWJzdHJhY3RUcmFuc2FjdGlvbkJ1aWxkZXIsIFRyYW5zYWN0aW9uIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtZXRoJztcbmltcG9ydCB7IGdldENvbW1vbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zZmVyOiBUcmFuc2ZlckJ1aWxkZXI7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX2NvbW1vbiA9IGdldENvbW1vbih0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnLCB0aGlzLl9jb21tb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRyYW5zZmVyKGRhdGE/OiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIGlmICh0aGlzLl90eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuU2VuZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNmZXJzIGNhbiBvbmx5IGJlIHNldCBmb3Igc2VuZCB0cmFuc2FjdGlvbnMnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl90cmFuc2Zlcikge1xuICAgICAgdGhpcy5fdHJhbnNmZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29udHJhY3REYXRhKGFkZHJlc3Nlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQXlGO0FBQ3pGLDJEQUFpSDtBQUNqSCxtQ0FBb0M7QUFDcEMsdURBQW9EO0FBQ3BELHlEQUFxRTtBQUVyRSxNQUFhLGtCQUFtQixTQUFRLGlDQUEwQjtJQU1oRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEsaUJBQVMsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksMEJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFFBQVEsQ0FBQyxJQUFhO1FBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSywwQkFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSywwQkFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksbUNBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLEtBQUssQ0FBQyxLQUFLO1FBQ1QsNEVBQTRFO1FBQzVFLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssMEJBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0sseUJBQXlCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELGtFQUFrRTtRQUNsRSxpRUFBaUU7UUFDakUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCO1FBQzFCLDJEQUEyRDtRQUMzRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLDBCQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUUsT0FBTyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUMxQyxDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLE9BQU8sS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFvQixFQUFFLFNBQWlCO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVTLGVBQWUsQ0FBQyxTQUFtQjtRQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBckZELGdEQXFGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlLCBQdWJsaWNLZXkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgYXMgQWJzdHJhY3RUcmFuc2FjdGlvbkJ1aWxkZXIsIFRyYW5zYWN0aW9uLCBUeERhdGEgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgZ2V0Q29tbW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBVcGxvYWRLeWNCdWlsZGVyLCBVcGxvYWRLeWNDYWxsIH0gZnJvbSAnLi91cGxvYWRLeWNCdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEFic3RyYWN0VHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2ZlcjogVHJhbnNmZXJCdWlsZGVyO1xuICBwcml2YXRlIF9zaWduYXR1cmVzOiB7IHB1YmxpY0tleTogUHVibGljS2V5OyBzaWduYXR1cmU6IEJ1ZmZlciB9W107XG4gIHByaXZhdGUgX3VwbG9hZEt5Y0J1aWxkZXI/OiBVcGxvYWRLeWNCdWlsZGVyO1xuICBwcml2YXRlIF91cGxvYWRLeWNDYWxsPzogVXBsb2FkS3ljQ2FsbDtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fY29tbW9uID0gZ2V0Q29tbW9uKHRoaXMuX2NvaW5Db25maWcubmV0d29yay50eXBlKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcsIHRoaXMuX2NvbW1vbik7XG4gICAgdGhpcy5fc2lnbmF0dXJlcyA9IFtdO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRyYW5zZmVyKGRhdGE/OiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIGlmICh0aGlzLl90eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuU2VuZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNmZXJzIGNhbiBvbmx5IGJlIHNldCBmb3Igc2VuZCB0cmFuc2FjdGlvbnMnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl90cmFuc2Zlcikge1xuICAgICAgdGhpcy5fdHJhbnNmZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXBsb2FkS1lDIGJ1aWxkZXIgaWYgaXQgZXhpc3RzLCBvciBjcmVhdGVzIGEgbmV3IG9uZSBmb3IgdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7VXBsb2FkS3ljQnVpbGRlcn0gdGhlIHVwbG9hZEtZQyBidWlsZGVyXG4gICAqIEB0aHJvd3Mge0J1aWxkVHJhbnNhY3Rpb25FcnJvcn0gaWYgdHJhbnNhY3Rpb24gdHlwZSBpcyBub3QgQ29udHJhY3RDYWxsXG4gICAqL1xuICB1cGxvYWRLeWMoKTogVXBsb2FkS3ljQnVpbGRlciB7XG4gICAgaWYgKHRoaXMuX3R5cGUgIT09IFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3VwbG9hZEtZQyBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRyYWN0IGNhbGwgdHJhbnNhY3Rpb25zJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fdXBsb2FkS3ljQnVpbGRlcikge1xuICAgICAgdGhpcy5fdXBsb2FkS3ljQnVpbGRlciA9IG5ldyBVcGxvYWRLeWNCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdXBsb2FkS3ljQnVpbGRlcjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgLy8gSWYgdXBsb2FkS1lDIGJ1aWxkZXIgaXMgc2V0LCBidWlsZCBhbmQgY2FjaGUgdGhlIHJlc3VsdCBiZWZvcmUgdmFsaWRhdGlvblxuICAgIGlmICh0aGlzLl91cGxvYWRLeWNCdWlsZGVyICYmIHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpIHtcbiAgICAgIHRoaXMuX3VwbG9hZEt5Y0NhbGwgPSB0aGlzLl91cGxvYWRLeWNCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICB0aGlzLmNvbnRyYWN0KHRoaXMuX3VwbG9hZEt5Y0NhbGwuY29udHJhY3RBZGRyZXNzKTtcbiAgICAgIHRoaXMuZGF0YSh0aGlzLl91cGxvYWRLeWNDYWxsLnNlcmlhbGl6ZSgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKGF3YWl0IHN1cGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSB0cmFuc2FjdGlvbiBkYXRhIGZvciB1cGxvYWRLWUMgY29udHJhY3QgY2FsbFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFVwbG9hZEt5Y1RyYW5zYWN0aW9uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl91cGxvYWRLeWNDYWxsKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd1cGxvYWRLWUMgY2FsbCBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgY29udHJhY3QgYWRkcmVzcyBhbmQgZGF0YSBhcmUgYWxyZWFkeSBzZXQgaW4gYnVpbGQoKSBtZXRob2RcbiAgICAvLyBKdXN0IHJldHVybiB0aGUgYmFzZSB0cmFuc2FjdGlvbiBkYXRhIHdpdGggdGhlIHNlcmlhbGl6ZWQgZGF0YVxuICAgIHJldHVybiB0aGlzLmJ1aWxkQmFzZSh0aGlzLl91cGxvYWRLeWNDYWxsLnNlcmlhbGl6ZSgpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0VHJhbnNhY3Rpb25EYXRhKCk6IFR4RGF0YSB7XG4gICAgLy8gSWYgdXBsb2FkS1lDIGJ1aWxkZXIgaXMgc2V0LCBidWlsZCB1cGxvYWRLWUMgdHJhbnNhY3Rpb25cbiAgICBpZiAodGhpcy5fdXBsb2FkS3ljQnVpbGRlciAmJiB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsZFVwbG9hZEt5Y1RyYW5zYWN0aW9uKCk7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB1c2UgdGhlIHBhcmVudCBpbXBsZW1lbnRhdGlvblxuICAgIHJldHVybiBzdXBlci5nZXRUcmFuc2FjdGlvbkRhdGEoKTtcbiAgfVxuXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IFB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzID0gW107XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29udHJhY3REYXRhKGFkZHJlc3Nlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19