@bitgo-beta/sdk-coin-celo 1.3.3-alpha.43 → 1.3.3-alpha.431

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 (69) hide show
  1. package/dist/src/celo.d.ts +4 -1
  2. package/dist/src/celo.d.ts.map +1 -1
  3. package/dist/src/celo.js +16 -1
  4. package/dist/src/celoToken.d.ts +1 -1
  5. package/dist/src/celoToken.d.ts.map +1 -1
  6. package/dist/src/celoToken.js +3 -3
  7. package/dist/src/index.js +6 -2
  8. package/dist/src/lib/index.d.ts +2 -1
  9. package/dist/src/lib/index.d.ts.map +1 -1
  10. package/dist/src/lib/index.js +28 -12
  11. package/dist/src/lib/resources.d.ts.map +1 -1
  12. package/dist/src/lib/resources.js +10 -7
  13. package/dist/src/lib/stakingBuilder.js +37 -23
  14. package/dist/src/lib/testnetTransactionBuilder.d.ts +15 -0
  15. package/dist/src/lib/testnetTransactionBuilder.d.ts.map +1 -0
  16. package/dist/src/lib/testnetTransactionBuilder.js +68 -0
  17. package/dist/src/lib/transactionBuilder.d.ts +1 -7
  18. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  19. package/dist/src/lib/transactionBuilder.js +6 -15
  20. package/dist/src/lib/utils.d.ts +0 -10
  21. package/dist/src/lib/utils.d.ts.map +1 -1
  22. package/dist/src/lib/utils.js +3 -72
  23. package/dist/src/tcelo.d.ts +2 -0
  24. package/dist/src/tcelo.d.ts.map +1 -1
  25. package/dist/src/tcelo.js +6 -1
  26. package/dist/test/resources/celo.d.ts +75 -0
  27. package/dist/test/resources/celo.d.ts.map +1 -0
  28. package/dist/test/resources/celo.js +93 -0
  29. package/dist/test/unit/celo.d.ts +2 -0
  30. package/dist/test/unit/celo.d.ts.map +1 -0
  31. package/dist/test/unit/celo.js +42 -0
  32. package/dist/test/unit/celoToken.d.ts +2 -0
  33. package/dist/test/unit/celoToken.d.ts.map +1 -0
  34. package/dist/test/unit/celoToken.js +31 -0
  35. package/dist/test/unit/getBuilder.d.ts +3 -0
  36. package/dist/test/unit/getBuilder.d.ts.map +1 -0
  37. package/dist/test/unit/getBuilder.js +10 -0
  38. package/dist/test/unit/stakingBuilder.d.ts +2 -0
  39. package/dist/test/unit/stakingBuilder.d.ts.map +1 -0
  40. package/dist/test/unit/stakingBuilder.js +247 -0
  41. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts +2 -0
  42. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts.map +1 -0
  43. package/dist/test/unit/transactionBuilder/addressInitialization.js +107 -0
  44. package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
  45. package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
  46. package/dist/test/unit/transactionBuilder/send.js +379 -0
  47. package/dist/test/unit/transactionBuilder/singleSigSend.d.ts +2 -0
  48. package/dist/test/unit/transactionBuilder/singleSigSend.d.ts.map +1 -0
  49. package/dist/test/unit/transactionBuilder/singleSigSend.js +86 -0
  50. package/dist/test/unit/transactionBuilder/staking.d.ts +2 -0
  51. package/dist/test/unit/transactionBuilder/staking.d.ts.map +1 -0
  52. package/dist/test/unit/transactionBuilder/staking.js +345 -0
  53. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts +2 -0
  54. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts.map +1 -0
  55. package/dist/test/unit/transactionBuilder/walletInitialization.js +135 -0
  56. package/dist/test/unit/transferBuilder.d.ts +2 -0
  57. package/dist/test/unit/transferBuilder.d.ts.map +1 -0
  58. package/dist/test/unit/transferBuilder.js +102 -0
  59. package/dist/tsconfig.tsbuildinfo +1 -0
  60. package/package.json +18 -17
  61. package/.eslintignore +0 -5
  62. package/.mocharc.yml +0 -8
  63. package/CHANGELOG.md +0 -112
  64. package/dist/src/lib/transaction.d.ts +0 -9
  65. package/dist/src/lib/transaction.d.ts.map +0 -1
  66. package/dist/src/lib/transaction.js +0 -37
  67. package/dist/src/lib/types.d.ts +0 -51
  68. package/dist/src/lib/types.d.ts.map +0 -1
  69. package/dist/src/lib/types.js +0 -223
@@ -0,0 +1,345 @@
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
+ const assert_1 = __importDefault(require("assert"));
40
+ const should_1 = __importDefault(require("should"));
41
+ const statics_1 = require("@bitgo-beta/statics");
42
+ const getBuilder_1 = require("../getBuilder");
43
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
44
+ const testData = __importStar(require("../../resources/celo"));
45
+ describe('Celo staking transaction builder', () => {
46
+ let txBuilder;
47
+ beforeEach(() => {
48
+ txBuilder = (0, getBuilder_1.getBuilder)('tcelo');
49
+ txBuilder.type(sdk_core_1.TransactionType.StakingLock);
50
+ txBuilder.fee({
51
+ fee: '1000000000',
52
+ gasLimit: '12100000',
53
+ });
54
+ txBuilder.counter(1);
55
+ });
56
+ const coin = statics_1.coins.get('tcelo');
57
+ const LockOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.LOCK, coin.network.type);
58
+ const UnlockOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.UNLOCK, coin.network.type);
59
+ const WithdrawOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.WITHDRAW, coin.network.type);
60
+ const VoteOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.VOTE, coin.network.type);
61
+ const UnvoteOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.UNVOTE, coin.network.type);
62
+ const ActivateOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.ACTIVATE, coin.network.type);
63
+ describe('lock', () => {
64
+ it('should build a lock transaction', async function () {
65
+ txBuilder.lock().amount('100');
66
+ const txJson = (await txBuilder.build()).toJson();
67
+ should_1.default.equal(txJson.to, LockOperation.contractAddress);
68
+ txJson.data.should.startWith(LockOperation.methodId);
69
+ should_1.default.equal(txJson.data, LockOperation.methodId);
70
+ });
71
+ it('should build a lock transaction using the previous instance', async function () {
72
+ txBuilder.lock().amount('200');
73
+ txBuilder.lock().amount('100');
74
+ const txJson = (await txBuilder.build()).toJson();
75
+ should_1.default.equal(txJson.to, LockOperation.contractAddress);
76
+ txJson.data.should.startWith(LockOperation.methodId);
77
+ should_1.default.equal(txJson.data, LockOperation.methodId);
78
+ });
79
+ it('should sign and build a lock transaction from serialized', async function () {
80
+ const builder = (0, getBuilder_1.getBuilder)('tcelo');
81
+ builder.from(testData.LOCK_SERIALIZED);
82
+ builder.sign({ key: testData.PRIVATE_KEY });
83
+ const tx = await builder.build();
84
+ const txJson = tx.toJson();
85
+ should_1.default.equal(txJson.to, LockOperation.contractAddress);
86
+ txJson.data.should.startWith(LockOperation.methodId);
87
+ should_1.default.equal(txJson.data, LockOperation.methodId);
88
+ should_1.default.equal(txJson.from, testData.ACCOUNT1);
89
+ should_1.default.equal(tx.toBroadcastFormat(), testData.LOCK_BROADCAST_TX);
90
+ });
91
+ });
92
+ describe('vote', () => {
93
+ it('should build a vote transaction', async function () {
94
+ txBuilder.type(sdk_core_1.TransactionType.StakingVote);
95
+ txBuilder
96
+ .vote()
97
+ .group(testData.GROUP_ADDRESS)
98
+ .lesser(testData.LESSER_ADDRESS)
99
+ .greater(testData.GREATER_ADDRESS)
100
+ .amount('100');
101
+ txBuilder.sign({ key: testData.PRIVATE_KEY });
102
+ const txJson = (await txBuilder.build()).toJson();
103
+ should_1.default.equal(txJson.to, VoteOperation.contractAddress);
104
+ txJson.data.should.startWith(testData.VOTE_DATA_2);
105
+ should_1.default.equal(txJson.data, testData.VOTE_DATA_2);
106
+ });
107
+ it('should build a vote transaction using the previous instance', async function () {
108
+ txBuilder.type(sdk_core_1.TransactionType.StakingVote);
109
+ txBuilder
110
+ .vote()
111
+ .group(testData.GROUP_ADDRESS_2)
112
+ .lesser(testData.LESSER_ADDRESS)
113
+ .greater(testData.GREATER_ADDRESS)
114
+ .amount('500');
115
+ txBuilder
116
+ .vote()
117
+ .group(testData.GROUP_ADDRESS)
118
+ .lesser(testData.LESSER_ADDRESS_2)
119
+ .greater(testData.GREATER_ADDRESS_2)
120
+ .amount('100');
121
+ txBuilder.sign({ key: testData.PRIVATE_KEY });
122
+ const txJson = (await txBuilder.build()).toJson();
123
+ should_1.default.equal(txJson.to, VoteOperation.contractAddress);
124
+ txJson.data.should.startWith(testData.VOTE_DATA);
125
+ should_1.default.equal(txJson.data, testData.VOTE_DATA);
126
+ });
127
+ it('should sign and build a vote transaction from serialized', async function () {
128
+ const builder = (0, getBuilder_1.getBuilder)('tcelo');
129
+ builder.from(testData.VOTE_BROADCAST_TX);
130
+ builder.sign({ key: testData.PRIVATE_KEY });
131
+ const tx = await builder.build();
132
+ const txJson = tx.toJson();
133
+ should_1.default.equal(txJson.to, VoteOperation.contractAddress);
134
+ should_1.default.equal(txJson.data, testData.VOTE_DATA_2);
135
+ should_1.default.equal(txJson.from, testData.ACCOUNT1);
136
+ should_1.default.equal(tx.toBroadcastFormat(), testData.VOTE_BROADCAST_TX);
137
+ });
138
+ });
139
+ describe('activate', () => {
140
+ it('should build an activate transaction', async function () {
141
+ txBuilder.type(sdk_core_1.TransactionType.StakingActivate);
142
+ txBuilder.activate().group(testData.GROUP_ADDRESS);
143
+ txBuilder.sign({ key: testData.PRIVATE_KEY });
144
+ const tx = await txBuilder.build();
145
+ const txJson = tx.toJson();
146
+ should_1.default.equal(txJson.to, ActivateOperation.contractAddress);
147
+ txJson.data.should.startWith(testData.ACTIVATE_DATA);
148
+ should_1.default.equal(txJson.data, testData.ACTIVATE_DATA);
149
+ should_1.default.equal(tx.toBroadcastFormat(), testData.ACTIVATE_BROADCAST_TX);
150
+ });
151
+ it('should build an activate transaction from a previous instance', async function () {
152
+ txBuilder.type(sdk_core_1.TransactionType.StakingActivate);
153
+ txBuilder.activate().group(testData.GROUP_ADDRESS_2);
154
+ txBuilder.activate().group(testData.GROUP_ADDRESS);
155
+ txBuilder.sign({ key: testData.PRIVATE_KEY });
156
+ const tx = await txBuilder.build();
157
+ const txJson = tx.toJson();
158
+ should_1.default.equal(txJson.to, ActivateOperation.contractAddress);
159
+ txJson.data.should.startWith(testData.ACTIVATE_DATA);
160
+ should_1.default.equal(txJson.data, testData.ACTIVATE_DATA);
161
+ should_1.default.equal(tx.toBroadcastFormat(), testData.ACTIVATE_BROADCAST_TX);
162
+ });
163
+ it('should sign and build an activate transaction from serialized', async function () {
164
+ const builder = (0, getBuilder_1.getBuilder)('tcelo');
165
+ builder.from(testData.ACTIVATE_BROADCAST_TX);
166
+ builder.sign({ key: testData.PRIVATE_KEY });
167
+ const tx = await builder.build();
168
+ const txJson = tx.toJson();
169
+ should_1.default.equal(txJson.to, ActivateOperation.contractAddress);
170
+ should_1.default.equal(txJson.data, testData.ACTIVATE_DATA);
171
+ should_1.default.equal(txJson.from, testData.ACCOUNT1);
172
+ should_1.default.equal(tx.toBroadcastFormat(), testData.ACTIVATE_BROADCAST_TX);
173
+ });
174
+ });
175
+ describe('unvote', () => {
176
+ it('should build a unvote transaction', async function () {
177
+ txBuilder.type(sdk_core_1.TransactionType.StakingUnvote);
178
+ txBuilder
179
+ .unvote()
180
+ .group(testData.GROUP_ADDRESS)
181
+ .lesser(testData.LESSER_ADDRESS)
182
+ .greater(testData.GREATER_ADDRESS)
183
+ .amount('100')
184
+ .index(1);
185
+ txBuilder.sign({ key: testData.PRIVATE_KEY });
186
+ const txJson = (await txBuilder.build()).toJson();
187
+ should_1.default.equal(txJson.to, UnvoteOperation.contractAddress);
188
+ txJson.data.should.startWith(testData.UNVOTE_DATA);
189
+ should_1.default.equal(txJson.data, testData.UNVOTE_DATA);
190
+ });
191
+ it('should build a unvote transaction using the previous instance', async function () {
192
+ txBuilder.type(sdk_core_1.TransactionType.StakingUnvote);
193
+ txBuilder
194
+ .unvote()
195
+ .group(testData.GROUP_ADDRESS_2)
196
+ .lesser(testData.LESSER_ADDRESS)
197
+ .greater(testData.GREATER_ADDRESS)
198
+ .amount('500')
199
+ .index(1);
200
+ txBuilder
201
+ .unvote()
202
+ .group(testData.GROUP_ADDRESS)
203
+ .lesser(testData.LESSER_ADDRESS_2)
204
+ .greater(testData.GREATER_ADDRESS_2)
205
+ .amount('100')
206
+ .index(1);
207
+ txBuilder.sign({ key: testData.PRIVATE_KEY });
208
+ const txJson = (await txBuilder.build()).toJson();
209
+ should_1.default.equal(txJson.to, UnvoteOperation.contractAddress);
210
+ txJson.data.should.startWith(testData.UNVOTE_DATA_2);
211
+ should_1.default.equal(txJson.data, testData.UNVOTE_DATA_2);
212
+ });
213
+ it('should sign and build a unvote transaction from serialized', async function () {
214
+ const builder = (0, getBuilder_1.getBuilder)('tcelo');
215
+ builder.from(testData.UNVOTE_BROADCAST_TX);
216
+ builder.sign({ key: testData.PRIVATE_KEY });
217
+ const tx = await builder.build();
218
+ const txJson = tx.toJson();
219
+ should_1.default.equal(txJson.to, UnvoteOperation.contractAddress);
220
+ should_1.default.equal(txJson.data, testData.UNVOTE_DATA);
221
+ should_1.default.equal(txJson.from, testData.ACCOUNT1);
222
+ should_1.default.equal(tx.toBroadcastFormat(), testData.UNVOTE_BROADCAST_TX);
223
+ });
224
+ });
225
+ describe('unlock', () => {
226
+ it('should build an unlock transaction', async function () {
227
+ txBuilder.type(sdk_core_1.TransactionType.StakingUnlock);
228
+ txBuilder.unlock().amount('100');
229
+ const txJson = (await txBuilder.build()).toJson();
230
+ should_1.default.equal(txJson.to, UnlockOperation.contractAddress);
231
+ txJson.data.should.startWith(UnlockOperation.methodId);
232
+ should_1.default.equal(txJson.data, testData.UNLOCK_DATA);
233
+ });
234
+ it('should build an unlock transaction from a previous instance', async function () {
235
+ txBuilder.type(sdk_core_1.TransactionType.StakingUnlock);
236
+ txBuilder.unlock().amount('500');
237
+ txBuilder.unlock().amount('100');
238
+ const txJson = (await txBuilder.build()).toJson();
239
+ should_1.default.equal(txJson.to, UnlockOperation.contractAddress);
240
+ txJson.data.should.startWith(UnlockOperation.methodId);
241
+ should_1.default.equal(txJson.data, testData.UNLOCK_DATA);
242
+ });
243
+ it('should sign and build an unlock transaction from serialized', async function () {
244
+ const builder = (0, getBuilder_1.getBuilder)('tcelo');
245
+ builder.type(sdk_core_1.TransactionType.StakingLock);
246
+ builder.from(testData.UNLOCK_BROADCAST_TX);
247
+ builder.sign({ key: testData.PRIVATE_KEY });
248
+ const tx = await builder.build();
249
+ const txJson = tx.toJson();
250
+ should_1.default.equal(txJson.to, UnlockOperation.contractAddress);
251
+ txJson.data.should.startWith(UnlockOperation.methodId);
252
+ should_1.default.equal(txJson.data, testData.UNLOCK_DATA);
253
+ should_1.default.equal(txJson.from, testData.ACCOUNT1);
254
+ should_1.default.equal(tx.toBroadcastFormat(), testData.UNLOCK_BROADCAST_TX);
255
+ });
256
+ });
257
+ describe('withdraw', () => {
258
+ it('should build a withdraw transaction', async function () {
259
+ txBuilder.type(sdk_core_1.TransactionType.StakingWithdraw);
260
+ txBuilder.withdraw().index(0);
261
+ txBuilder.sign({ key: testData.PRIVATE_KEY });
262
+ const tx = await txBuilder.build();
263
+ const txJson = tx.toJson();
264
+ should_1.default.equal(txJson.to, WithdrawOperation.contractAddress);
265
+ txJson.data.should.startWith(WithdrawOperation.methodId);
266
+ should_1.default.equal(txJson.data, testData.WITHDRAW_DATA);
267
+ should_1.default.equal(tx.toBroadcastFormat(), testData.WITHDRAW_BROADCAST_TX);
268
+ });
269
+ it('should build a withdraw transaction from a previous instance', async function () {
270
+ txBuilder.type(sdk_core_1.TransactionType.StakingWithdraw);
271
+ txBuilder.withdraw().index(2);
272
+ txBuilder.withdraw().index(0);
273
+ txBuilder.sign({ key: testData.PRIVATE_KEY });
274
+ const tx = await txBuilder.build();
275
+ const txJson = tx.toJson();
276
+ should_1.default.equal(txJson.to, WithdrawOperation.contractAddress);
277
+ txJson.data.should.startWith(WithdrawOperation.methodId);
278
+ should_1.default.equal(txJson.data, testData.WITHDRAW_DATA);
279
+ should_1.default.equal(txJson.from, testData.KEYPAIR_PRV.getAddress());
280
+ should_1.default.equal(tx.toBroadcastFormat(), testData.WITHDRAW_BROADCAST_TX);
281
+ });
282
+ it('should sign and build a withdraw transaction from serialized', async function () {
283
+ const builder = (0, getBuilder_1.getBuilder)('tcelo');
284
+ builder.type(sdk_core_1.TransactionType.StakingWithdraw);
285
+ builder.from(testData.WITHDRAW_BROADCAST_TX);
286
+ builder.sign({ key: testData.PRIVATE_KEY });
287
+ const tx = await builder.build();
288
+ const txJson = tx.toJson();
289
+ should_1.default.equal(txJson.to, WithdrawOperation.contractAddress);
290
+ txJson.data.should.startWith(WithdrawOperation.methodId);
291
+ should_1.default.equal(txJson.from, testData.KEYPAIR_PRV.getAddress());
292
+ should_1.default.equal(txJson.from, testData.ACCOUNT1);
293
+ should_1.default.equal(tx.toBroadcastFormat(), testData.WITHDRAW_BROADCAST_TX);
294
+ });
295
+ });
296
+ describe('type validation', () => {
297
+ it('should not fail if the type is changed', () => {
298
+ txBuilder.lock();
299
+ txBuilder.type(sdk_core_1.TransactionType.StakingVote);
300
+ should_1.default.doesNotThrow(() => {
301
+ txBuilder.vote();
302
+ });
303
+ });
304
+ it('should fail to call lock if it is not an staking lock type transaction', () => {
305
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
306
+ assert_1.default.throws(() => {
307
+ txBuilder.lock();
308
+ }, (e) => e.message === testData.LOCK_TRANSACTION_TYPE_ERROR);
309
+ });
310
+ it('should fail to call vote if it is not an staking vote type transaction', () => {
311
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
312
+ assert_1.default.throws(() => {
313
+ txBuilder.vote();
314
+ }, (e) => e.message === testData.VOTE_TRANSACTION_TYPE_ERROR);
315
+ });
316
+ it('should fail to call activate if it is not an staking activate type transaction', () => {
317
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
318
+ assert_1.default.throws(() => {
319
+ txBuilder.activate();
320
+ }, (e) => e.message === testData.ACTIVATION_TRANSACTION_TYPE_ERROR);
321
+ });
322
+ it('should fail to call unlock if it is not an staking unlock type transaction', () => {
323
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
324
+ assert_1.default.throws(() => {
325
+ txBuilder.unlock();
326
+ }, (e) => e.message === testData.UNLOCK_TRANSACTION_TYPE_ERROR);
327
+ });
328
+ it('should fail to call unvote if it is not an staking unvote type transaction', () => {
329
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
330
+ assert_1.default.throws(() => {
331
+ txBuilder.unvote();
332
+ }, (e) => e.message === testData.UNVOTE_TRANSACTION_TYPE_ERROR);
333
+ });
334
+ it('should fail to call withdraw if it is not an staking withdraw type transaction', () => {
335
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
336
+ assert_1.default.throws(() => {
337
+ txBuilder.withdraw();
338
+ }, (e) => e.message === testData.WITHDRAW_TRANSACTION_TYPE_ERROR);
339
+ });
340
+ it('should fail to build and staking lock operation if operationBuilder is not set', async () => {
341
+ await txBuilder.build().should.be.rejectedWith('No staking information set');
342
+ });
343
+ });
344
+ });
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvc3Rha2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsaURBQTRDO0FBQzVDLDhDQUEyQztBQUUzQyxtREFBa0c7QUFDbEcsK0RBQWlEO0FBRWpELFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7SUFDaEQsSUFBSSxTQUFTLENBQUM7SUFDZCxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsU0FBUyxHQUFHLElBQUEsdUJBQVUsRUFBQyxPQUFPLENBQXVCLENBQUM7UUFDdEQsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDWixHQUFHLEVBQUUsWUFBWTtZQUNqQixRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxJQUFJLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFBLDZCQUFrQixFQUFDLGdDQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hGLE1BQU0sZUFBZSxHQUFHLElBQUEsNkJBQWtCLEVBQUMsZ0NBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUYsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLDZCQUFrQixFQUFDLGdDQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FB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Q0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyw2QkFBNkIsQ0FDakUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDRFQUE0RSxFQUFFLEdBQUcsRUFBRTtZQUNwRixTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN0RCxnQkFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUU7Z0JBQ0gsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLENBQUMsRUFDRCxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsNkJBQTZCLENBQ2pFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxnRkFBZ0YsRUFBRSxHQUFHLEVBQUU7WUFDeEYsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDdEQsZ0JBQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFO2dCQUNILFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixDQUFDLEVBQ0QsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLCtCQUErQixDQUNuRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsZ0ZBQWdGLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDOUYsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlciB9IGZyb20gJy4uL2dldEJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IGdldE9wZXJhdGlvbkNvbmZpZywgU3Rha2luZ09wZXJhdGlvblR5cGVzLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvY2Vsbyc7XG5cbmRlc2NyaWJlKCdDZWxvIHN0YWtpbmcgdHJhbnNhY3Rpb24gYnVpbGRlcicsICgpID0+IHtcbiAgbGV0IHR4QnVpbGRlcjtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGNlbG8nKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdMb2NrKTtcbiAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgIGZlZTogJzEwMDAwMDAwMDAnLFxuICAgICAgZ2FzTGltaXQ6ICcxMjEwMDAwMCcsXG4gICAgfSk7XG4gICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gIH0pO1xuXG4gIGNvbnN0IGNvaW4gPSBjb2lucy5nZXQoJ3RjZWxvJyk7XG4gIGNvbnN0IExvY2tPcGVyYXRpb24gPSBnZXRPcGVyYXRpb25Db25maWcoU3Rha2luZ09wZXJhdGlvblR5cGVzLkxPQ0ssIGNvaW4ubmV0d29yay50eXBlKTtcbiAgY29uc3QgVW5sb2NrT3BlcmF0aW9uID0gZ2V0T3BlcmF0aW9uQ29uZmlnKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5VTkxPQ0ssIGNvaW4ubmV0d29yay50eXBlKTtcbiAgY29uc3QgV2l0aGRyYXdPcGVyYXRpb24gPSBnZXRPcGVyYXRpb25Db25maWcoU3Rha2luZ09wZXJhdGlvblR5cGVzLldJVEhEUkFXLCBjb2luLm5ldHdvcmsudHlwZSk7XG4gIGNvbnN0IFZvdGVPcGVyYXRpb24gPSBnZXRPcGVyYXRpb25Db25maWcoU3Rha2luZ09wZXJhdGlvblR5cGVzLlZPVEUsIGNvaW4ubmV0d29yay50eXBlKTtcbiAgY29uc3QgVW52b3RlT3BlcmF0aW9uID0gZ2V0T3BlcmF0aW9uQ29uZmlnKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5VTlZPVEUsIGNvaW4ubmV0d29yay50eXBlKTtcbiAgY29uc3QgQWN0aXZhdGVPcGVyYXRpb24gPSBnZXRPcGVyYXRpb25Db25maWcoU3Rha2luZ09wZXJhdGlvblR5cGVzLkFDVElWQVRFLCBjb2luLm5ldHdvcmsudHlwZSk7XG5cbiAgZGVzY3JpYmUoJ2xvY2snLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIGxvY2sgdHJhbnNhY3Rpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICB0eEJ1aWxkZXIubG9jaygpLmFtb3VudCgnMTAwJyk7XG4gICAgICBjb25zdCB0eEpzb24gPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpLnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgTG9ja09wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhKc29uLmRhdGEuc2hvdWxkLnN0YXJ0V2l0aChMb2NrT3BlcmF0aW9uLm1ldGhvZElkKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZGF0YSwgTG9ja09wZXJhdGlvbi5tZXRob2RJZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgbG9jayB0cmFuc2FjdGlvbiB1c2luZyB0aGUgcHJldmlvdXMgaW5zdGFuY2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICB0eEJ1aWxkZXIubG9jaygpLmFtb3VudCgnMjAwJyk7XG4gICAgICB0eEJ1aWxkZXIubG9jaygpLmFtb3VudCgnMTAwJyk7XG4gICAgICBjb25zdCB0eEpzb24gPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpLnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgTG9ja09wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhKc29uLmRhdGEuc2hvdWxkLnN0YXJ0V2l0aChMb2NrT3BlcmF0aW9uLm1ldGhvZElkKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZGF0YSwgTG9ja09wZXJhdGlvbi5tZXRob2RJZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHNpZ24gYW5kIGJ1aWxkIGEgbG9jayB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZ2V0QnVpbGRlcigndGNlbG8nKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICBidWlsZGVyLmZyb20odGVzdERhdGEuTE9DS19TRVJJQUxJWkVEKTtcbiAgICAgIGJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuUFJJVkFURV9LRVkgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgTG9ja09wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhKc29uLmRhdGEuc2hvdWxkLnN0YXJ0V2l0aChMb2NrT3BlcmF0aW9uLm1ldGhvZElkKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZGF0YSwgTG9ja09wZXJhdGlvbi5tZXRob2RJZCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmZyb20sIHRlc3REYXRhLkFDQ09VTlQxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5MT0NLX0JST0FEQ0FTVF9UWCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd2b3RlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYSB2b3RlIHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdWb3RlKTtcbiAgICAgIHR4QnVpbGRlclxuICAgICAgICAudm90ZSgpXG4gICAgICAgIC5ncm91cCh0ZXN0RGF0YS5HUk9VUF9BRERSRVNTKVxuICAgICAgICAubGVzc2VyKHRlc3REYXRhLkxFU1NFUl9BRERSRVNTKVxuICAgICAgICAuZ3JlYXRlcih0ZXN0RGF0YS5HUkVBVEVSX0FERFJFU1MpXG4gICAgICAgIC5hbW91bnQoJzEwMCcpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZIH0pO1xuICAgICAgY29uc3QgdHhKc29uID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKS50b0pzb24oKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIFZvdGVPcGVyYXRpb24uY29udHJhY3RBZGRyZXNzKTtcbiAgICAgIHR4SnNvbi5kYXRhLnNob3VsZC5zdGFydFdpdGgodGVzdERhdGEuVk9URV9EQVRBXzIpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5kYXRhLCB0ZXN0RGF0YS5WT1RFX0RBVEFfMik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgdm90ZSB0cmFuc2FjdGlvbiB1c2luZyB0aGUgcHJldmlvdXMgaW5zdGFuY2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1ZvdGUpO1xuICAgICAgdHhCdWlsZGVyXG4gICAgICAgIC52b3RlKClcbiAgICAgICAgLmdyb3VwKHRlc3REYXRhLkdST1VQX0FERFJFU1NfMilcbiAgICAgICAgLmxlc3Nlcih0ZXN0RGF0YS5MRVNTRVJfQUREUkVTUylcbiAgICAgICAgLmdyZWF0ZXIodGVzdERhdGEuR1JFQVRFUl9BRERSRVNTKVxuICAgICAgICAuYW1vdW50KCc1MDAnKTtcbiAgICAgIHR4QnVpbGRlclxuICAgICAgICAudm90ZSgpXG4gICAgICAgIC5ncm91cCh0ZXN0RGF0YS5HUk9VUF9BRERSRVNTKVxuICAgICAgICAubGVzc2VyKHRlc3REYXRhLkxFU1NFUl9BRERSRVNTXzIpXG4gICAgICAgIC5ncmVhdGVyKHRlc3REYXRhLkdSRUFURVJfQUREUkVTU18yKVxuICAgICAgICAuYW1vdW50KCcxMDAnKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWSB9KTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLnRvLCBWb3RlT3BlcmF0aW9uLmNvbnRyYWN0QWRkcmVzcyk7XG4gICAgICB0eEpzb24uZGF0YS5zaG91bGQuc3RhcnRXaXRoKHRlc3REYXRhLlZPVEVfREFUQSk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmRhdGEsIHRlc3REYXRhLlZPVEVfREFUQSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHNpZ24gYW5kIGJ1aWxkIGEgdm90ZSB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZ2V0QnVpbGRlcigndGNlbG8nKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICBidWlsZGVyLmZyb20odGVzdERhdGEuVk9URV9CUk9BRENBU1RfVFgpO1xuICAgICAgYnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLnRvLCBWb3RlT3BlcmF0aW9uLmNvbnRyYWN0QWRkcmVzcyk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmRhdGEsIHRlc3REYXRhLlZPVEVfREFUQV8yKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZnJvbSwgdGVzdERhdGEuQUNDT1VOVDEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlZPVEVfQlJPQURDQVNUX1RYKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2FjdGl2YXRlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYW4gYWN0aXZhdGUgdHJhbnNhY3Rpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlKTtcbiAgICAgIHR4QnVpbGRlci5hY3RpdmF0ZSgpLmdyb3VwKHRlc3REYXRhLkdST1VQX0FERFJFU1MpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZIH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgQWN0aXZhdGVPcGVyYXRpb24uY29udHJhY3RBZGRyZXNzKTtcbiAgICAgIHR4SnNvbi5kYXRhLnNob3VsZC5zdGFydFdpdGgodGVzdERhdGEuQUNUSVZBVEVfREFUQSk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmRhdGEsIHRlc3REYXRhLkFDVElWQVRFX0RBVEEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLkFDVElWQVRFX0JST0FEQ0FTVF9UWCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGFuIGFjdGl2YXRlIHRyYW5zYWN0aW9uIGZyb20gYSBwcmV2aW91cyBpbnN0YW5jZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGUpO1xuICAgICAgdHhCdWlsZGVyLmFjdGl2YXRlKCkuZ3JvdXAodGVzdERhdGEuR1JPVVBfQUREUkVTU18yKTtcbiAgICAgIHR4QnVpbGRlci5hY3RpdmF0ZSgpLmdyb3VwKHRlc3REYXRhLkdST1VQX0FERFJFU1MpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZIH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgQWN0aXZhdGVPcGVyYXRpb24uY29udHJhY3RBZGRyZXNzKTtcbiAgICAgIHR4SnNvbi5kYXRhLnNob3VsZC5zdGFydFdpdGgodGVzdERhdGEuQUNUSVZBVEVfREFUQSk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmRhdGEsIHRlc3REYXRhLkFDVElWQVRFX0RBVEEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLkFDVElWQVRFX0JST0FEQ0FTVF9UWCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHNpZ24gYW5kIGJ1aWxkIGFuIGFjdGl2YXRlIHRyYW5zYWN0aW9uIGZyb20gc2VyaWFsaXplZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0Y2VsbycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICAgIGJ1aWxkZXIuZnJvbSh0ZXN0RGF0YS5BQ1RJVkFURV9CUk9BRENBU1RfVFgpO1xuICAgICAgYnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLnRvLCBBY3RpdmF0ZU9wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5kYXRhLCB0ZXN0RGF0YS5BQ1RJVkFURV9EQVRBKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZnJvbSwgdGVzdERhdGEuQUNDT1VOVDEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLkFDVElWQVRFX0JST0FEQ0FTVF9UWCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd1bnZvdGUnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIHVudm90ZSB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW52b3RlKTtcbiAgICAgIHR4QnVpbGRlclxuICAgICAgICAudW52b3RlKClcbiAgICAgICAgLmdyb3VwKHRlc3REYXRhLkdST1VQX0FERFJFU1MpXG4gICAgICAgIC5sZXNzZXIodGVzdERhdGEuTEVTU0VSX0FERFJFU1MpXG4gICAgICAgIC5ncmVhdGVyKHRlc3REYXRhLkdSRUFURVJfQUREUkVTUylcbiAgICAgICAgLmFtb3VudCgnMTAwJylcbiAgICAgICAgLmluZGV4KDEpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZIH0pO1xuICAgICAgY29uc3QgdHhKc29uID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKS50b0pzb24oKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIFVudm90ZU9wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhKc29uLmRhdGEuc2hvdWxkLnN0YXJ0V2l0aCh0ZXN0RGF0YS5VTlZPVEVfREFUQSk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmRhdGEsIHRlc3REYXRhLlVOVk9URV9EQVRBKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYSB1bnZvdGUgdHJhbnNhY3Rpb24gdXNpbmcgdGhlIHByZXZpb3VzIGluc3RhbmNlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbnZvdGUpO1xuICAgICAgdHhCdWlsZGVyXG4gICAgICAgIC51bnZvdGUoKVxuICAgICAgICAuZ3JvdXAodGVzdERhdGEuR1JPVVBfQUREUkVTU18yKVxuICAgICAgICAubGVzc2VyKHRlc3REYXRhLkxFU1NFUl9BRERSRVNTKVxuICAgICAgICAuZ3JlYXRlcih0ZXN0RGF0YS5HUkVBVEVSX0FERFJFU1MpXG4gICAgICAgIC5hbW91bnQoJzUwMCcpXG4gICAgICAgIC5pbmRleCgxKTtcbiAgICAgIHR4QnVpbGRlclxuICAgICAgICAudW52b3RlKClcbiAgICAgICAgLmdyb3VwKHRlc3REYXRhLkdST1VQX0FERFJFU1MpXG4gICAgICAgIC5sZXNzZXIodGVzdERhdGEuTEVTU0VSX0FERFJFU1NfMilcbiAgICAgICAgLmdyZWF0ZXIodGVzdERhdGEuR1JFQVRFUl9BRERSRVNTXzIpXG4gICAgICAgIC5hbW91bnQoJzEwMCcpXG4gICAgICAgIC5pbmRleCgxKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWSB9KTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLnRvLCBVbnZvdGVPcGVyYXRpb24uY29udHJhY3RBZGRyZXNzKTtcbiAgICAgIHR4SnNvbi5kYXRhLnNob3VsZC5zdGFydFdpdGgodGVzdERhdGEuVU5WT1RFX0RBVEFfMik7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmRhdGEsIHRlc3REYXRhLlVOVk9URV9EQVRBXzIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzaWduIGFuZCBidWlsZCBhIHVudm90ZSB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZ2V0QnVpbGRlcigndGNlbG8nKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICBidWlsZGVyLmZyb20odGVzdERhdGEuVU5WT1RFX0JST0FEQ0FTVF9UWCk7XG4gICAgICBidWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZIH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIFVudm90ZU9wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5kYXRhLCB0ZXN0RGF0YS5VTlZPVEVfREFUQSk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmZyb20sIHRlc3REYXRhLkFDQ09VTlQxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5VTlZPVEVfQlJPQURDQVNUX1RYKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3VubG9jaycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGFuIHVubG9jayB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrKTtcbiAgICAgIHR4QnVpbGRlci51bmxvY2soKS5hbW91bnQoJzEwMCcpO1xuICAgICAgY29uc3QgdHhKc29uID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKS50b0pzb24oKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIFVubG9ja09wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhKc29uLmRhdGEuc2hvdWxkLnN0YXJ0V2l0aChVbmxvY2tPcGVyYXRpb24ubWV0aG9kSWQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5kYXRhLCB0ZXN0RGF0YS5VTkxPQ0tfREFUQSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGFuIHVubG9jayB0cmFuc2FjdGlvbiBmcm9tIGEgcHJldmlvdXMgaW5zdGFuY2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jayk7XG4gICAgICB0eEJ1aWxkZXIudW5sb2NrKCkuYW1vdW50KCc1MDAnKTtcbiAgICAgIHR4QnVpbGRlci51bmxvY2soKS5hbW91bnQoJzEwMCcpO1xuICAgICAgY29uc3QgdHhKc29uID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKS50b0pzb24oKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIFVubG9ja09wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhKc29uLmRhdGEuc2hvdWxkLnN0YXJ0V2l0aChVbmxvY2tPcGVyYXRpb24ubWV0aG9kSWQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5kYXRhLCB0ZXN0RGF0YS5VTkxPQ0tfREFUQSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHNpZ24gYW5kIGJ1aWxkIGFuIHVubG9jayB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZ2V0QnVpbGRlcigndGNlbG8nKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICBidWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdMb2NrKTtcbiAgICAgIGJ1aWxkZXIuZnJvbSh0ZXN0RGF0YS5VTkxPQ0tfQlJPQURDQVNUX1RYKTtcbiAgICAgIGJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuUFJJVkFURV9LRVkgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgVW5sb2NrT3BlcmF0aW9uLmNvbnRyYWN0QWRkcmVzcyk7XG4gICAgICB0eEpzb24uZGF0YS5zaG91bGQuc3RhcnRXaXRoKFVubG9ja09wZXJhdGlvbi5tZXRob2RJZCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmRhdGEsIHRlc3REYXRhLlVOTE9DS19EQVRBKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZnJvbSwgdGVzdERhdGEuQUNDT1VOVDEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlVOTE9DS19CUk9BRENBU1RfVFgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnd2l0aGRyYXcnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIHdpdGhkcmF3IHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdyk7XG4gICAgICB0eEJ1aWxkZXIud2l0aGRyYXcoKS5pbmRleCgwKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIFdpdGhkcmF3T3BlcmF0aW9uLmNvbnRyYWN0QWRkcmVzcyk7XG4gICAgICB0eEpzb24uZGF0YS5zaG91bGQuc3RhcnRXaXRoKFdpdGhkcmF3T3BlcmF0aW9uLm1ldGhvZElkKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZGF0YSwgdGVzdERhdGEuV0lUSERSQVdfREFUQSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuV0lUSERSQVdfQlJPQURDQVNUX1RYKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYSB3aXRoZHJhdyB0cmFuc2FjdGlvbiBmcm9tIGEgcHJldmlvdXMgaW5zdGFuY2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3KTtcbiAgICAgIHR4QnVpbGRlci53aXRoZHJhdygpLmluZGV4KDIpO1xuICAgICAgdHhCdWlsZGVyLndpdGhkcmF3KCkuaW5kZXgoMCk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuUFJJVkFURV9LRVkgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLnRvLCBXaXRoZHJhd09wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhKc29uLmRhdGEuc2hvdWxkLnN0YXJ0V2l0aChXaXRoZHJhd09wZXJhdGlvbi5tZXRob2RJZCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmRhdGEsIHRlc3REYXRhLldJVEhEUkFXX0RBVEEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5mcm9tLCB0ZXN0RGF0YS5LRVlQQUlSX1BSVi5nZXRBZGRyZXNzKCkpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLldJVEhEUkFXX0JST0FEQ0FTVF9UWCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHNpZ24gYW5kIGJ1aWxkIGEgd2l0aGRyYXcgdHJhbnNhY3Rpb24gZnJvbSBzZXJpYWxpemVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RjZWxvJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgICAgYnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nV2l0aGRyYXcpO1xuICAgICAgYnVpbGRlci5mcm9tKHRlc3REYXRhLldJVEhEUkFXX0JST0FEQ0FTVF9UWCk7XG4gICAgICBidWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZIH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIFdpdGhkcmF3T3BlcmF0aW9uLmNvbnRyYWN0QWRkcmVzcyk7XG4gICAgICB0eEpzb24uZGF0YS5zaG91bGQuc3RhcnRXaXRoKFdpdGhkcmF3T3BlcmF0aW9uLm1ldGhvZElkKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZnJvbSwgdGVzdERhdGEuS0VZUEFJUl9QUlYuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZnJvbSwgdGVzdERhdGEuQUNDT1VOVDEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLldJVEhEUkFXX0JST0FEQ0FTVF9UWCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd0eXBlIHZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBub3QgZmFpbCBpZiB0aGUgdHlwZSBpcyBjaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgdHhCdWlsZGVyLmxvY2soKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVm90ZSk7XG4gICAgICBzaG91bGQuZG9lc05vdFRocm93KCgpID0+IHtcbiAgICAgICAgdHhCdWlsZGVyLnZvdGUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIGNhbGwgbG9jayBpZiBpdCBpcyBub3QgYW4gc3Rha2luZyBsb2NrIHR5cGUgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uKTtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eEJ1aWxkZXIubG9jaygpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLkxPQ0tfVFJBTlNBQ1RJT05fVFlQRV9FUlJPUlxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byBjYWxsIHZvdGUgaWYgaXQgaXMgbm90IGFuIHN0YWtpbmcgdm90ZSB0eXBlIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHhCdWlsZGVyLnZvdGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5WT1RFX1RSQU5TQUNUSU9OX1RZUEVfRVJST1JcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgdG8gY2FsbCBhY3RpdmF0ZSBpZiBpdCBpcyBub3QgYW4gc3Rha2luZyBhY3RpdmF0ZSB0eXBlIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHhCdWlsZGVyLmFjdGl2YXRlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gdGVzdERhdGEuQUNUSVZBVElPTl9UUkFOU0FDVElPTl9UWVBFX0VSUk9SXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIGNhbGwgdW5sb2NrIGlmIGl0IGlzIG5vdCBhbiBzdGFraW5nIHVubG9jayB0eXBlIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHhCdWlsZGVyLnVubG9jaygpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLlVOTE9DS19UUkFOU0FDVElPTl9UWVBFX0VSUk9SXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIGNhbGwgdW52b3RlIGlmIGl0IGlzIG5vdCBhbiBzdGFraW5nIHVudm90ZSB0eXBlIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHhCdWlsZGVyLnVudm90ZSgpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLlVOVk9URV9UUkFOU0FDVElPTl9UWVBFX0VSUk9SXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIGNhbGwgd2l0aGRyYXcgaWYgaXQgaXMgbm90IGFuIHN0YWtpbmcgd2l0aGRyYXcgdHlwZSB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24pO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHR4QnVpbGRlci53aXRoZHJhdygpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLldJVEhEUkFXX1RSQU5TQUNUSU9OX1RZUEVfRVJST1JcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgdG8gYnVpbGQgYW5kIHN0YWtpbmcgbG9jayBvcGVyYXRpb24gaWYgb3BlcmF0aW9uQnVpbGRlciBpcyBub3Qgc2V0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTm8gc3Rha2luZyBpbmZvcm1hdGlvbiBzZXQnKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=walletInitialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletInitialization.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/walletInitialization.ts"],"names":[],"mappings":""}
@@ -0,0 +1,135 @@
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
+ const assert_1 = __importDefault(require("assert"));
40
+ const should_1 = __importDefault(require("should"));
41
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
42
+ const getBuilder_1 = require("../getBuilder");
43
+ const testData = __importStar(require("../../resources/celo"));
44
+ describe('Celo Transaction builder for wallet initialization', () => {
45
+ let txBuilder;
46
+ const initTxBuilder = () => {
47
+ txBuilder = (0, getBuilder_1.getBuilder)('tcelo');
48
+ txBuilder.fee({
49
+ fee: '1000000000',
50
+ gasLimit: '12100000',
51
+ });
52
+ txBuilder.counter(2);
53
+ txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
54
+ txBuilder.owner(testData.KEYPAIR_PRV.getAddress());
55
+ txBuilder.owner('0xBa8eA9C3729686d7DB120efCfC81cD020C8DC1CB');
56
+ txBuilder.owner('0x2fa96fca36dd9d646AC8a4e0C19b4D3a0Dc7e456');
57
+ };
58
+ describe('should build ', () => {
59
+ it('an init transaction', async () => {
60
+ initTxBuilder();
61
+ txBuilder.sign({ key: testData.KEYPAIR_PRV.getKeys().prv });
62
+ const tx = await txBuilder.build(); // should build and sign
63
+ tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
64
+ const txJson = tx.toJson();
65
+ txJson.gasLimit.should.equal('12100000');
66
+ txJson.gasPrice.should.equal('1000000000');
67
+ should_1.default.equal(txJson.nonce, 2);
68
+ should_1.default.equal(txJson.chainId, 11142220);
69
+ should_1.default.equal(tx.toBroadcastFormat(), testData.TX_BROADCAST);
70
+ should_1.default.equal(txJson.from, testData.KEYPAIR_PRV.getAddress());
71
+ });
72
+ it('an init transaction with nonce 0', async () => {
73
+ initTxBuilder();
74
+ txBuilder.counter(0);
75
+ txBuilder.sign({ key: testData.KEYPAIR_PRV.getKeys().prv });
76
+ const tx = await txBuilder.build(); // should build and sign
77
+ tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
78
+ const txJson = tx.toJson();
79
+ txJson.gasLimit.should.equal('12100000');
80
+ txJson.gasPrice.should.equal('1000000000');
81
+ should_1.default.equal(txJson.nonce, 0);
82
+ should_1.default.equal(txJson.chainId, 11142220);
83
+ should_1.default.equal(txJson.from, testData.KEYPAIR_PRV.getAddress());
84
+ });
85
+ it('unsigned transaction without final v', async () => {
86
+ initTxBuilder();
87
+ txBuilder.counter(0);
88
+ const tx = await txBuilder.build();
89
+ tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
90
+ const txJson = tx.toJson();
91
+ txJson.gasLimit.should.equal('12100000');
92
+ txJson.gasPrice.should.equal('1000000000');
93
+ should_1.default.equal(txJson.nonce, 0);
94
+ should_1.default.equal(txJson.chainId, 11142220);
95
+ // Celo has disable final v and it has chain id as v value.
96
+ should_1.default.equal(txJson.v, 0x015408bb);
97
+ });
98
+ it('an init transaction from an unsigned serialized one', async () => {
99
+ initTxBuilder();
100
+ const tx = await txBuilder.build();
101
+ const serialized = tx.toBroadcastFormat();
102
+ // now rebuild from the signed serialized tx and make sure it stays the same
103
+ const newTxBuilder = (0, getBuilder_1.getBuilder)('tcelo');
104
+ newTxBuilder.from(serialized);
105
+ newTxBuilder.sign({ key: testData.KEYPAIR_PRV.getKeys().prv });
106
+ const signedTx = await newTxBuilder.build();
107
+ should_1.default.equal(signedTx.toJson().chainId, 11142220);
108
+ should_1.default.equal(signedTx.toBroadcastFormat(), testData.TX_BROADCAST);
109
+ });
110
+ it('a signed init transaction from serialized', async () => {
111
+ const newTxBuilder = (0, getBuilder_1.getBuilder)('tcelo');
112
+ newTxBuilder.from(testData.TX_BROADCAST);
113
+ const newTx = await newTxBuilder.build();
114
+ should_1.default.equal(newTx.toBroadcastFormat(), testData.TX_BROADCAST);
115
+ });
116
+ it('correct transaction id', async () => {
117
+ const newTxBuilder = (0, getBuilder_1.getBuilder)('tcelo');
118
+ newTxBuilder.from(testData.TEST_WALLET_CREATION);
119
+ const newTx = await newTxBuilder.build();
120
+ should_1.default.equal(newTx.toJson().id, '0xbfb1de15a69c20c1467fa9708a8ac71e15e3a162618f865067b541b2db03f894');
121
+ });
122
+ });
123
+ describe('Should validate ', () => {
124
+ it('a raw transaction', async () => {
125
+ const builder = (0, getBuilder_1.getBuilder)('tcelo');
126
+ should_1.default.doesNotThrow(() => builder.from(testData.TX_BROADCAST));
127
+ should_1.default.doesNotThrow(() => builder.from(testData.TX_JSON));
128
+ assert_1.default.throws(() => builder.from('0x00001000'), /There was error in decoding the hex string/);
129
+ assert_1.default.throws(() => builder.from(''), /Raw transaction is empty/);
130
+ assert_1.default.throws(() => builder.from('pqrs'), /There was error in parsing the JSON string/);
131
+ assert_1.default.throws(() => builder.from(1234), /Transaction is not a hex string or stringified json/);
132
+ });
133
+ });
134
+ });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL3dhbGxldEluaXRpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUM1QixtREFBdUQ7QUFDdkQsOENBQTJDO0FBRTNDLCtEQUFpRDtBQUVqRCxRQUFRLENBQUMsb0RBQW9ELEVBQUUsR0FBRyxFQUFFO0lBQ2xFLElBQUksU0FBNkIsQ0FBQztJQUNsQyxNQUFNLGFBQWEsR0FBRyxHQUFTLEVBQUU7UUFDL0IsU0FBUyxHQUFHLElBQUEsdUJBQVUsRUFBQyxPQUFPLENBQXVCLENBQUM7UUFDdEQsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUNaLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLFFBQVEsRUFBRSxVQUFVO1NBQ3JCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDckQsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDbkQsU0FBUyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQzlELFNBQVMsQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUM7SUFFRixRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtRQUM3QixFQUFFLENBQUMscUJBQXFCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbkMsYUFBYSxFQUFFLENBQUM7WUFDaEIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMs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QUMsWUFBWSxDQUFDLEVBQUUsNENBQTRDLENBQUMsQ0FBQztZQUM5RixnQkFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLDBCQUEwQixDQUFDLENBQUM7WUFDbEUsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSw0Q0FBNEMsQ0FBQyxDQUFDO1lBQ3hGLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUscURBQXFELENBQUMsQ0FBQztRQUNqRyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRCdWlsZGVyIH0gZnJvbSAnLi4vZ2V0QnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2NlbG8nO1xuXG5kZXNjcmliZSgnQ2VsbyBUcmFuc2FjdGlvbiBidWlsZGVyIGZvciB3YWxsZXQgaW5pdGlhbGl6YXRpb24nLCAoKSA9PiB7XG4gIGxldCB0eEJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgY29uc3QgaW5pdFR4QnVpbGRlciA9ICgpOiB2b2lkID0+IHtcbiAgICB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0Y2VsbycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgIGZlZTogJzEwMDAwMDAwMDAnLFxuICAgICAgZ2FzTGltaXQ6ICcxMjEwMDAwMCcsXG4gICAgfSk7XG4gICAgdHhCdWlsZGVyLmNvdW50ZXIoMik7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICB0eEJ1aWxkZXIub3duZXIodGVzdERhdGEuS0VZUEFJUl9QUlYuZ2V0QWRkcmVzcygpKTtcbiAgICB0eEJ1aWxkZXIub3duZXIoJzB4QmE4ZUE5QzM3Mjk2ODZkN0RCMTIwZWZDZkM4MWNEMDIwQzhEQzFDQicpO1xuICAgIHR4QnVpbGRlci5vd25lcignMHgyZmE5NmZjYTM2ZGQ5ZDY0NkFDOGE0ZTBDMTliNEQzYTBEYzdlNDU2Jyk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBidWlsZCAnLCAoKSA9PiB7XG4gICAgaXQoJ2FuIGluaXQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuS0VZUEFJUl9QUlYuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7IC8vIHNob3VsZCBidWlsZCBhbmQgc2lnblxuXG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICB0eEpzb24uZ2FzTGltaXQuc2hvdWxkLmVxdWFsKCcxMjEwMDAwMCcpO1xuICAgICAgdHhKc29uLmdhc1ByaWNlLnNob3VsZC5lcXVhbCgnMTAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5ub25jZSwgMik7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmNoYWluSWQsIDExMTQyMjIwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5UWF9CUk9BRENBU1QpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5mcm9tLCB0ZXN0RGF0YS5LRVlQQUlSX1BSVi5nZXRBZGRyZXNzKCkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FuIGluaXQgdHJhbnNhY3Rpb24gd2l0aCBub25jZSAwJywgYXN5bmMgKCkgPT4ge1xuICAgICAgaW5pdFR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMCk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuS0VZUEFJUl9QUlYuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7IC8vIHNob3VsZCBidWlsZCBhbmQgc2lnblxuXG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICB0eEpzb24uZ2FzTGltaXQuc2hvdWxkLmVxdWFsKCcxMjEwMDAwMCcpO1xuICAgICAgdHhKc29uLmdhc1ByaWNlLnNob3VsZC5lcXVhbCgnMTAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5ub25jZSwgMCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmNoYWluSWQsIDExMTQyMjIwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZnJvbSwgdGVzdERhdGEuS0VZUEFJUl9QUlYuZ2V0QWRkcmVzcygpKTtcbiAgICB9KTtcblxuICAgIGl0KCd1bnNpZ25lZCB0cmFuc2FjdGlvbiB3aXRob3V0IGZpbmFsIHYnLCBhc3luYyAoKSA9PiB7XG4gICAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcigwKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICB0eEpzb24uZ2FzTGltaXQuc2hvdWxkLmVxdWFsKCcxMjEwMDAwMCcpO1xuICAgICAgdHhKc29uLmdhc1ByaWNlLnNob3VsZC5lcXVhbCgnMTAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5ub25jZSwgMCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmNoYWluSWQsIDExMTQyMjIwKTtcbiAgICAgIC8vIENlbG8gaGFzIGRpc2FibGUgZmluYWwgdiBhbmQgaXQgaGFzIGNoYWluIGlkIGFzIHYgdmFsdWUuXG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLnYsIDB4MDE1NDA4YmIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FuIGluaXQgdHJhbnNhY3Rpb24gZnJvbSBhbiB1bnNpZ25lZCBzZXJpYWxpemVkIG9uZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGluaXRUeEJ1aWxkZXIoKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCBzZXJpYWxpemVkID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcblxuICAgICAgLy8gbm93IHJlYnVpbGQgZnJvbSB0aGUgc2lnbmVkIHNlcmlhbGl6ZWQgdHggYW5kIG1ha2Ugc3VyZSBpdCBzdGF5cyB0aGUgc2FtZVxuICAgICAgY29uc3QgbmV3VHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGNlbG8nKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICBuZXdUeEJ1aWxkZXIuZnJvbShzZXJpYWxpemVkKTtcbiAgICAgIG5ld1R4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5LRVlQQUlSX1BSVi5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgY29uc3Qgc2lnbmVkVHggPSBhd2FpdCBuZXdUeEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHNob3VsZC5lcXVhbChzaWduZWRUeC50b0pzb24oKS5jaGFpbklkLCAxMTE0MjIyMCk7XG4gICAgICBzaG91bGQuZXF1YWwoc2lnbmVkVHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuVFhfQlJPQURDQVNUKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHNpZ25lZCBpbml0IHRyYW5zYWN0aW9uIGZyb20gc2VyaWFsaXplZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld1R4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RjZWxvJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgICAgbmV3VHhCdWlsZGVyLmZyb20odGVzdERhdGEuVFhfQlJPQURDQVNUKTtcbiAgICAgIGNvbnN0IG5ld1R4ID0gYXdhaXQgbmV3VHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBzaG91bGQuZXF1YWwobmV3VHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuVFhfQlJPQURDQVNUKTtcbiAgICB9KTtcblxuICAgIGl0KCdjb3JyZWN0IHRyYW5zYWN0aW9uIGlkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbmV3VHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGNlbG8nKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICBuZXdUeEJ1aWxkZXIuZnJvbSh0ZXN0RGF0YS5URVNUX1dBTExFVF9DUkVBVElPTik7XG4gICAgICBjb25zdCBuZXdUeCA9IGF3YWl0IG5ld1R4QnVpbGRlci5idWlsZCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKG5ld1R4LnRvSnNvbigpLmlkLCAnMHhiZmIxZGUxNWE2OWMyMGMxNDY3ZmE5NzA4YThhYzcxZTE1ZTNhMTYyNjE4Zjg2NTA2N2I1NDFiMmRiMDNmODk0Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdTaG91bGQgdmFsaWRhdGUgJywgKCkgPT4ge1xuICAgIGl0KCdhIHJhdyB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0Y2VsbycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci5mcm9tKHRlc3REYXRhLlRYX0JST0FEQ0FTVCkpO1xuICAgICAgc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBidWlsZGVyLmZyb20odGVzdERhdGEuVFhfSlNPTikpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBidWlsZGVyLmZyb20oJzB4MDAwMDEwMDAnKSwgL1RoZXJlIHdhcyBlcnJvciBpbiBkZWNvZGluZyB0aGUgaGV4IHN0cmluZy8pO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBidWlsZGVyLmZyb20oJycpLCAvUmF3IHRyYW5zYWN0aW9uIGlzIGVtcHR5Lyk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGJ1aWxkZXIuZnJvbSgncHFycycpLCAvVGhlcmUgd2FzIGVycm9yIGluIHBhcnNpbmcgdGhlIEpTT04gc3RyaW5nLyk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGJ1aWxkZXIuZnJvbSgxMjM0KSwgL1RyYW5zYWN0aW9uIGlzIG5vdCBhIGhleCBzdHJpbmcgb3Igc3RyaW5naWZpZWQganNvbi8pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/transferBuilder.ts"],"names":[],"mappings":""}