@bitgo-beta/sdk-coin-apt 1.0.1-beta.91 → 1.0.1-beta.911

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 (145) hide show
  1. package/dist/src/apt.d.ts +9 -2
  2. package/dist/src/apt.d.ts.map +1 -1
  3. package/dist/src/apt.js +37 -11
  4. package/dist/src/aptNFTCollection.d.ts +18 -0
  5. package/dist/src/aptNFTCollection.d.ts.map +1 -0
  6. package/dist/src/aptNFTCollection.js +52 -0
  7. package/dist/src/aptToken.d.ts +19 -0
  8. package/dist/src/aptToken.d.ts.map +1 -0
  9. package/dist/src/aptToken.js +52 -0
  10. package/dist/src/index.d.ts +2 -0
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +3 -1
  13. package/dist/src/lib/constants.d.ts +16 -0
  14. package/dist/src/lib/constants.d.ts.map +1 -1
  15. package/dist/src/lib/constants.js +18 -2
  16. package/dist/src/lib/iface.d.ts +98 -2
  17. package/dist/src/lib/iface.d.ts.map +1 -1
  18. package/dist/src/lib/iface.js +1 -1
  19. package/dist/src/lib/index.d.ts +18 -4
  20. package/dist/src/lib/index.d.ts.map +1 -1
  21. package/dist/src/lib/index.js +35 -7
  22. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts +21 -0
  23. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts.map +1 -0
  24. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.js +61 -0
  25. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts +13 -0
  26. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts.map +1 -0
  27. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.js +23 -0
  28. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts +10 -0
  29. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts.map +1 -0
  30. package/dist/src/lib/transaction/abstractTransferTransaction.js +39 -0
  31. package/dist/src/lib/transaction/customTransaction.d.ts +89 -0
  32. package/dist/src/lib/transaction/customTransaction.d.ts.map +1 -0
  33. package/dist/src/lib/transaction/customTransaction.js +278 -0
  34. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts +10 -0
  35. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts.map +1 -0
  36. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.js +48 -0
  37. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts +10 -0
  38. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.js +24 -0
  40. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts +10 -0
  41. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts.map +1 -0
  42. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.js +43 -0
  43. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +10 -0
  44. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
  45. package/dist/src/lib/transaction/digitalAssetTransfer.js +45 -0
  46. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +12 -0
  47. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
  48. package/dist/src/lib/transaction/fungibleAssetTransfer.js +73 -0
  49. package/dist/src/lib/transaction/transaction.d.ts +45 -7
  50. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  51. package/dist/src/lib/transaction/transaction.js +175 -61
  52. package/dist/src/lib/transaction/transferTransaction.d.ts +10 -8
  53. package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -1
  54. package/dist/src/lib/transaction/transferTransaction.js +48 -41
  55. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts +64 -0
  56. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transactionBuilder/customTransactionBuilder.js +127 -0
  58. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +15 -0
  59. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +50 -0
  61. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +15 -0
  62. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +50 -0
  64. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +15 -0
  65. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +50 -0
  67. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
  68. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  69. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
  70. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +15 -0
  71. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  72. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
  73. package/dist/src/lib/{transactionBuilder.d.ts → transactionBuilder/transactionBuilder.d.ts} +25 -11
  74. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  75. package/dist/src/lib/transactionBuilder/transactionBuilder.js +169 -0
  76. package/dist/src/lib/{transferBuilder.d.ts → transactionBuilder/transferBuilder.d.ts} +5 -7
  77. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
  78. package/dist/src/lib/transactionBuilder/transferBuilder.js +56 -0
  79. package/dist/src/lib/transactionBuilderFactory.d.ts +26 -10
  80. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  81. package/dist/src/lib/transactionBuilderFactory.js +82 -18
  82. package/dist/src/lib/utils/validation.d.ts +32 -0
  83. package/dist/src/lib/utils/validation.d.ts.map +1 -0
  84. package/dist/src/lib/utils/validation.js +99 -0
  85. package/dist/src/lib/utils.d.ts +29 -5
  86. package/dist/src/lib/utils.d.ts.map +1 -1
  87. package/dist/src/lib/utils.js +111 -28
  88. package/dist/src/register.d.ts.map +1 -1
  89. package/dist/src/register.js +9 -1
  90. package/dist/test/integration/index.d.ts +1 -0
  91. package/dist/test/integration/index.d.ts.map +1 -0
  92. package/dist/test/integration/index.js +1 -0
  93. package/dist/test/resources/apt.d.ts +56 -0
  94. package/dist/test/resources/apt.d.ts.map +1 -0
  95. package/dist/test/resources/apt.js +115 -0
  96. package/dist/test/unit/apt.d.ts +2 -0
  97. package/dist/test/unit/apt.d.ts.map +1 -0
  98. package/dist/test/unit/apt.js +375 -0
  99. package/dist/test/unit/aptToken.d.ts +2 -0
  100. package/dist/test/unit/aptToken.d.ts.map +1 -0
  101. package/dist/test/unit/aptToken.js +92 -0
  102. package/dist/test/unit/customTransaction.test.d.ts +2 -0
  103. package/dist/test/unit/customTransaction.test.d.ts.map +1 -0
  104. package/dist/test/unit/customTransaction.test.js +264 -0
  105. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  106. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  107. package/dist/test/unit/getBuilderFactory.js +10 -0
  108. package/dist/test/unit/keyPair.d.ts +2 -0
  109. package/dist/test/unit/keyPair.d.ts.map +1 -0
  110. package/dist/test/unit/keyPair.js +71 -0
  111. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts +2 -0
  112. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  113. package/dist/test/unit/transactionBuilder/customTransactionBuilder.js +743 -0
  114. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +2 -0
  115. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  116. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +172 -0
  117. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +2 -0
  118. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  119. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +148 -0
  120. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +2 -0
  121. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  122. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +172 -0
  123. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts +2 -0
  124. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  125. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.js +276 -0
  126. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts +2 -0
  127. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  128. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.js +449 -0
  129. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  130. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  131. package/dist/test/unit/transactionBuilder/transferBuilder.js +529 -0
  132. package/dist/test/unit/utils.d.ts +2 -0
  133. package/dist/test/unit/utils.d.ts.map +1 -0
  134. package/dist/test/unit/utils.js +108 -0
  135. package/dist/tsconfig.tsbuildinfo +1 -0
  136. package/package.json +14 -11
  137. package/.eslintignore +0 -4
  138. package/.gitignore +0 -3
  139. package/.mocharc.yml +0 -8
  140. package/.prettierignore +0 -2
  141. package/CHANGELOG.md +0 -72
  142. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  143. package/dist/src/lib/transactionBuilder.js +0 -118
  144. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  145. package/dist/src/lib/transferBuilder.js +0 -25
@@ -0,0 +1,264 @@
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 statics_1 = require("@bitgo-beta/statics");
40
+ const customTransaction_1 = require("../../src/lib/transaction/customTransaction");
41
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
42
+ const should_1 = __importDefault(require("should"));
43
+ const testData = __importStar(require("../resources/apt"));
44
+ describe('CustomTransaction - Argument Conversion', () => {
45
+ let customTransaction;
46
+ beforeEach(() => {
47
+ customTransaction = new customTransaction_1.CustomTransaction(statics_1.coins.get('tapt'));
48
+ });
49
+ // Helper function to access private method for testing
50
+ const callConvertArgumentByABI = (transaction, arg, paramType) => {
51
+ return transaction.convertArgumentByABI(arg, paramType);
52
+ };
53
+ describe('Real Transaction Scenarios', () => {
54
+ describe('Common Primitive Arguments', () => {
55
+ it('should handle address strings from test data', () => {
56
+ // Test with actual addresses from test resources
57
+ const result1 = callConvertArgumentByABI(customTransaction, testData.sender.address, new ts_sdk_1.TypeTagAddress());
58
+ const result2 = callConvertArgumentByABI(customTransaction, testData.recipients[0].address, new ts_sdk_1.TypeTagAddress());
59
+ should_1.default.exist(result1);
60
+ should_1.default.exist(result2);
61
+ // Results should be AccountAddress objects or original strings
62
+ if (typeof result1 === 'object') {
63
+ should_1.default.exist(result1.toString);
64
+ }
65
+ if (typeof result2 === 'object') {
66
+ should_1.default.exist(result2.toString);
67
+ }
68
+ });
69
+ it('should handle amount strings from test data', () => {
70
+ // Test with actual amounts from test resources
71
+ const result1 = callConvertArgumentByABI(customTransaction, testData.AMOUNT.toString(), new ts_sdk_1.TypeTagU64());
72
+ const result2 = callConvertArgumentByABI(customTransaction, testData.recipients[0].amount, new ts_sdk_1.TypeTagU64());
73
+ should_1.default.equal(result1, testData.AMOUNT.toString());
74
+ should_1.default.equal(result2, testData.recipients[0].amount);
75
+ });
76
+ it('should handle numeric amounts as numbers for small types', () => {
77
+ const result1 = callConvertArgumentByABI(customTransaction, 255, new ts_sdk_1.TypeTagU8());
78
+ const result2 = callConvertArgumentByABI(customTransaction, testData.AMOUNT, new ts_sdk_1.TypeTagU64());
79
+ should_1.default.equal(result1, 255);
80
+ should_1.default.equal(result2, testData.AMOUNT.toString()); // Large numbers become strings
81
+ });
82
+ it('should handle boolean values correctly', () => {
83
+ const result1 = callConvertArgumentByABI(customTransaction, true, new ts_sdk_1.TypeTagBool());
84
+ const result2 = callConvertArgumentByABI(customTransaction, false, new ts_sdk_1.TypeTagBool());
85
+ should_1.default.equal(result1, true);
86
+ should_1.default.equal(result2, false);
87
+ });
88
+ });
89
+ describe('BCS Encoded Arguments from Real Transactions', () => {
90
+ it('should handle BCS data with data property (from serialized tx)', () => {
91
+ // This simulates BCS-encoded data structure found in real transactions
92
+ const bcsData = {
93
+ data: new Uint8Array([0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), // 1000 in little-endian
94
+ };
95
+ const result = callConvertArgumentByABI(customTransaction, bcsData, new ts_sdk_1.TypeTagU64());
96
+ should_1.default.equal(result, '0xe803000000000000');
97
+ });
98
+ it('should handle BCS address data', () => {
99
+ // Create proper 32-byte address data as found in real transactions
100
+ const addressBytes = new Array(32).fill(0);
101
+ addressBytes[31] = 0x01; // Standard address format
102
+ const bcsData = {
103
+ data: new Uint8Array(addressBytes),
104
+ };
105
+ const result = callConvertArgumentByABI(customTransaction, bcsData, new ts_sdk_1.TypeTagAddress());
106
+ should_1.default.exist(result);
107
+ if (typeof result === 'string') {
108
+ result.should.match(/^0x[0-9a-fA-F]+$/);
109
+ }
110
+ });
111
+ });
112
+ describe('Nested BCS Structures (Real Transaction Parsing)', () => {
113
+ it('should handle U64 amount in nested structure (typical from parsed tx)', () => {
114
+ // This structure is common when parsing amounts from real Aptos transactions
115
+ const nestedAmount = {
116
+ value: {
117
+ value: new Uint8Array([0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), // 1000
118
+ },
119
+ };
120
+ const result = callConvertArgumentByABI(customTransaction, nestedAmount, new ts_sdk_1.TypeTagU64());
121
+ should_1.default.equal(result, '1000');
122
+ });
123
+ it('should handle double nested numeric structure from BCS parsing', () => {
124
+ // This represents the typical structure when deserializing BCS-encoded numeric values
125
+ const nestedData = {
126
+ value: {
127
+ value: {
128
+ 0: 0xe8, // 1000 in little-endian format
129
+ 1: 0x03,
130
+ 2: 0x00,
131
+ 3: 0x00,
132
+ 4: 0x00,
133
+ 5: 0x00,
134
+ 6: 0x00,
135
+ 7: 0x00,
136
+ },
137
+ },
138
+ };
139
+ const result = callConvertArgumentByABI(customTransaction, nestedData, new ts_sdk_1.TypeTagU64());
140
+ should_1.default.equal(result, '1000');
141
+ });
142
+ it('should handle nested structure for boolean values', () => {
143
+ // Boolean values in BCS format
144
+ const booleanTrue = {
145
+ value: {
146
+ value: {
147
+ 0: 1,
148
+ },
149
+ },
150
+ };
151
+ const booleanFalse = {
152
+ value: {
153
+ value: {
154
+ 0: 0,
155
+ },
156
+ },
157
+ };
158
+ const result1 = callConvertArgumentByABI(customTransaction, booleanTrue, new ts_sdk_1.TypeTagBool());
159
+ const result2 = callConvertArgumentByABI(customTransaction, booleanFalse, new ts_sdk_1.TypeTagBool());
160
+ should_1.default.equal(result1, true);
161
+ should_1.default.equal(result2, false);
162
+ });
163
+ it('should handle simple nested value (fix for original bug)', () => {
164
+ // This tests the bug fix where primitive values in nested structures failed
165
+ const nestedPrimitive = {
166
+ value: '1000',
167
+ };
168
+ const result = callConvertArgumentByABI(customTransaction, nestedPrimitive, new ts_sdk_1.TypeTagU64());
169
+ should_1.default.equal(result, '1000'); // Should extract and convert the primitive value
170
+ });
171
+ });
172
+ describe('Large Integer Types (Common in DeFi)', () => {
173
+ it('should handle U128 amounts (common for high-precision tokens)', () => {
174
+ const largeAmount = '340282366920938463463374607431768211455'; // Near max U128
175
+ const result = callConvertArgumentByABI(customTransaction, largeAmount, new ts_sdk_1.TypeTagU128());
176
+ should_1.default.equal(result, largeAmount);
177
+ });
178
+ it('should handle U128 in BCS format', () => {
179
+ // 16-byte array for U128 (example: value 1000)
180
+ const bytes = new Array(16).fill(0);
181
+ bytes[0] = 0xe8;
182
+ bytes[1] = 0x03;
183
+ const nestedData = {
184
+ value: {
185
+ value: Object.fromEntries(bytes.map((byte, index) => [index.toString(), byte])),
186
+ },
187
+ };
188
+ const result = callConvertArgumentByABI(customTransaction, nestedData, new ts_sdk_1.TypeTagU128());
189
+ should_1.default.equal(result, '1000');
190
+ });
191
+ });
192
+ describe('Error Handling for Real Edge Cases', () => {
193
+ it('should handle empty BCS structures gracefully', () => {
194
+ const emptyStructure = {
195
+ value: {
196
+ value: {},
197
+ },
198
+ };
199
+ const result = callConvertArgumentByABI(customTransaction, emptyStructure, new ts_sdk_1.TypeTagU64());
200
+ should_1.default.equal(result, emptyStructure); // Should return original when no valid bytes found
201
+ });
202
+ it('should handle non-BCS objects', () => {
203
+ const regularObject = { someProperty: 'value' };
204
+ const result = callConvertArgumentByABI(customTransaction, regularObject, new ts_sdk_1.TypeTagU64());
205
+ should_1.default.equal(result, regularObject); // Should return as-is for non-BCS objects
206
+ });
207
+ it('should handle null and undefined (defensive)', () => {
208
+ const result1 = callConvertArgumentByABI(customTransaction, null, new ts_sdk_1.TypeTagU64());
209
+ const result2 = callConvertArgumentByABI(customTransaction, undefined, new ts_sdk_1.TypeTagU64());
210
+ should_1.default.equal(result1, null);
211
+ should_1.default.equal(result2, undefined);
212
+ });
213
+ });
214
+ describe('Integration with Utility Functions', () => {
215
+ it('should use bytesToHex utility for non-numeric BCS data', () => {
216
+ const bcsData = {
217
+ data: new Uint8Array([0x12, 0x34, 0x56, 0x78]),
218
+ };
219
+ const result = callConvertArgumentByABI(customTransaction, bcsData, new ts_sdk_1.TypeTagAddress());
220
+ // Should either be converted to AccountAddress or remain as hex string
221
+ should_1.default.exist(result);
222
+ });
223
+ it('should use tryParseAccountAddress utility for address strings', () => {
224
+ const validAddress = '0x0000000000000000000000000000000000000000000000000000000000000001';
225
+ const result = callConvertArgumentByABI(customTransaction, validAddress, new ts_sdk_1.TypeTagAddress());
226
+ should_1.default.exist(result);
227
+ // Should either be AccountAddress object or original string
228
+ if (typeof result === 'object') {
229
+ should_1.default.exist(result.toString);
230
+ }
231
+ });
232
+ it('should use convertNumericArgument utility for byte arrays', () => {
233
+ const uint8Data = new Uint8Array([0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]); // 1000
234
+ const nestedData = {
235
+ value: {
236
+ value: uint8Data,
237
+ },
238
+ };
239
+ const result = callConvertArgumentByABI(customTransaction, nestedData, new ts_sdk_1.TypeTagU64());
240
+ should_1.default.equal(result, '1000'); // Should use existing numeric conversion logic
241
+ });
242
+ });
243
+ });
244
+ describe('Round-trip Compatibility', () => {
245
+ it('should maintain compatibility with existing transaction parsing', () => {
246
+ // This ensures our refactored method works with the existing transaction builder tests
247
+ const testArguments = [
248
+ { arg: testData.sender.address, type: new ts_sdk_1.TypeTagAddress() },
249
+ { arg: testData.AMOUNT.toString(), type: new ts_sdk_1.TypeTagU64() },
250
+ { arg: true, type: new ts_sdk_1.TypeTagBool() },
251
+ { arg: 255, type: new ts_sdk_1.TypeTagU8() },
252
+ ];
253
+ testArguments.forEach(({ arg, type }) => {
254
+ const result = callConvertArgumentByABI(customTransaction, arg, type);
255
+ should_1.default.exist(result);
256
+ // Result should be compatible with existing transaction building logic
257
+ if (typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean') {
258
+ should_1.default.exist(result.toString);
259
+ }
260
+ });
261
+ });
262
+ });
263
+ });
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHJhbnNhY3Rpb24udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9jdXN0b21UcmFuc2FjdGlvbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQTRDO0FBQzVDLG1GQUFnRjtBQUNoRiwrQ0FBcUc7QUFDckcsb0RBQTRCO0FBQzVCLDJEQUE2QztBQUU3QyxRQUFRLENBQUMseUNBQXlDLEVBQUUsR0FBRyxFQUFFO0lBQ3ZELElBQUksaUJBQW9DLENBQUM7SUFFekMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLGlCQUFpQixHQUFHLElBQUkscUNBQWlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQyxDQUFDO0lBRUgsdURBQXVEO0lBQ3ZELE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxXQUE4QixFQUFFLEdBQVEsRUFBRSxTQUFjLEVBQU8sRUFBRTtRQUNqRyxPQUFRLFdBQW1CLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztJQUVGLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7UUFDMUMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtZQUMxQyxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO2dCQUN0RCxpREFBaUQ7Z0JBQ2pELE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksdUJBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQzNHLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUN0QyxpQkFBaUIsRUFDakIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQzlCLElBQUksdUJBQWMsRUFBRSxDQUNyQixDQUFDO2dCQUVGLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFdEIsK0RBQStEO2dCQUMvRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNoQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pDLENBQUM7Z0JBQ0QsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDaEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsNkNBQTZDLEVBQUUsR0FBRyxFQUFFO2dCQUNyRCwrQ0FBK0M7Z0JBQy9DLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxtQkFBVSxFQUFFLENBQUMsQ0FBQztnQkFDMUcsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxtQkFBVSxFQUFFLENBQUMsQ0FBQztnQkFFN0csZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDbEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO2dCQUNsRSxNQUFNLE9BQU8sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsSUFBSSxrQkFBUyxFQUFFLENBQUMsQ0FBQztnQkFDbEYsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLG1CQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUUvRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQywrQkFBK0I7WUFDcEYsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO2dCQUNoRCxNQUFNLE9BQU8sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxvQkFBVyxFQUFFLENBQUMsQ0FBQztnQkFDckYsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksb0JBQVcsRUFBRSxDQUFDLENBQUM7Z0JBRXRGLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDNUIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1lBQzVELEVBQUUsQ0FBQyxnRUFBZ0UsRUFBRSxHQUFHLEVBQUU7Z0JBQ3hFLHVFQUF1RTtnQkFDdkUsTUFBTSxPQUFPLEdBQUc7b0JBQ2QsSUFBSSxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsd0JBQXdCO2lCQUNqRyxDQUFDO2dCQUVGLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxJQUFJLG1CQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RixnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7Z0JBQ3hDLG1FQUFtRTtnQkFDbkUsTUFBTSxZQUFZLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxZQUFZLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsMEJBQTBCO2dCQUVuRCxNQUFNLE9BQU8sR0FBRztvQkFDZCxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDO2lCQUNuQyxDQUFDO2dCQUVGLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxJQUFJLHVCQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsa0RBQWtELEVBQUUsR0FBRyxFQUFFO1lBQ2hFLEVBQUUsQ0FBQyx1RUFBdUUsRUFBRSxHQUFHLEVBQUU7Z0JBQy9FLDZFQUE2RTtnQkFDN0UsTUFBTSxZQUFZLEdBQUc7b0JBQ25CLEtBQUssRUFBRTt3QkFDTCxLQUFLLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPO3FCQUNqRjtpQkFDRixDQUFDO2dCQUVGLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxJQUFJLG1CQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsZ0VBQWdFLEVBQUUsR0FBRyxFQUFFO2dCQUN4RSxzRkFBc0Y7Z0JBQ3RGLE1BQU0sVUFBVSxHQUFHO29CQUNqQixLQUFLLEVBQUU7d0JBQ0wsS0FBSyxFQUFFOzRCQUNMLENBQUMsRUFBRSxJQUFJLEVBQUUsK0JBQStCOzRCQUN4QyxDQUFDLEVBQUUsSUFBSTs0QkFDUCxDQUFDLEVBQUUsSUFBSTs0QkFDUCxDQUFDLEVBQUUsSUFBSTs0QkFDUCxDQUFDLEVBQUUsSUFBSTs0QkFDUCxDQUFDLEVBQUUsSUFBSTs0QkFDUCxDQUFDLEVBQUUsSUFBSTs0QkFDUCxDQUFDLEVBQUUsSUFBSTt5QkFDUjtxQkFDRjtpQkFDRixDQUFDO2dCQUVGLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxJQUFJLG1CQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RixnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsbURBQW1ELEVBQUUsR0FBRyxFQUFFO2dCQUMzRCwrQkFBK0I7Z0JBQy9CLE1BQU0sV0FBVyxHQUFHO29CQUNsQixLQUFLLEVBQUU7d0JBQ0wsS0FBSyxFQUFFOzRCQUNMLENBQUMsRUFBRSxDQUFDO3lCQUNMO3FCQUNGO2lCQUNGLENBQUM7Z0JBRUYsTUFBTSxZQUFZLEdBQUc7b0JBQ25CLEtBQUssRUFBRTt3QkFDTCxLQUFLLEVBQUU7NEJBQ0wsQ0FBQyxFQUFFLENBQUM7eUJBQ0w7cUJBQ0Y7aUJBQ0YsQ0FBQztnQkFFRixNQUFNLE9BQU8sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsSUFBSSxvQkFBVyxFQUFFLENBQUMsQ0FBQztnQkFDNUYsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLElBQUksb0JBQVcsRUFBRSxDQUFDLENBQUM7Z0JBRTdGLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDNUIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLDBEQUEwRCxFQUFFLEdBQUcsRUFBRTtnQkFDbEUsNEVBQTRFO2dCQUM1RSxNQUFNLGVBQWUsR0FBRztvQkFDdEIsS0FBSyxFQUFFLE1BQU07aUJBQ2QsQ0FBQztnQkFFRixNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsSUFBSSxtQkFBVSxFQUFFLENBQUMsQ0FBQztnQkFDOUYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsaURBQWlEO1lBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO1lBQ3BELEVBQUUsQ0FBQywrREFBK0QsRUFBRSxHQUFHLEVBQUU7Z0JBQ3ZFLE1BQU0sV0FBVyxHQUFHLHlDQUF5QyxDQUFDLENBQUMsZ0JBQWdCO2dCQUMvRSxNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsSUFBSSxvQkFBVyxFQUFFLENBQUMsQ0FBQztnQkFFM0YsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtnQkFDMUMsK0NBQStDO2dCQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ2hCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBRWhCLE1BQU0sVUFBVSxHQUFHO29CQUNqQixLQUFLLEVBQUU7d0JBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ2hGO2lCQUNGLENBQUM7Z0JBRUYsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLElBQUksb0JBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQzFGLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRTtZQUNsRCxFQUFFLENBQUMsK0NBQStDLEVBQUUsR0FBRyxFQUFFO2dCQUN2RCxNQUFNLGNBQWMsR0FBRztvQkFDckIsS0FBSyxFQUFFO3dCQUNMLEtBQUssRUFBRSxFQUFFO3FCQUNWO2lCQUNGLENBQUM7Z0JBRUYsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLElBQUksbUJBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQzdGLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLG1EQUFtRDtZQUMzRixDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ3ZDLE1BQU0sYUFBYSxHQUFHLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNoRCxNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsSUFBSSxtQkFBVSxFQUFFLENBQUMsQ0FBQztnQkFFNUYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsMENBQTBDO1lBQ2pGLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtnQkFDdEQsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksbUJBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BGLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxJQUFJLG1CQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUV6RixnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRTtZQUNsRCxFQUFFLENBQUMsd0RBQXdELEVBQUUsR0FBRyxFQUFFO2dCQUNoRSxNQUFNLE9BQU8sR0FBRztvQkFDZCxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDL0MsQ0FBQztnQkFFRixNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsSUFBSSx1QkFBYyxFQUFFLENBQUMsQ0FBQztnQkFDMUYsdUVBQXVFO2dCQUN2RSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQywrREFBK0QsRUFBRSxHQUFHLEVBQUU7Z0JBQ3ZFLE1BQU0sWUFBWSxHQUFHLG9FQUFvRSxDQUFDO2dCQUMxRixNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsSUFBSSx1QkFBYyxFQUFFLENBQUMsQ0FBQztnQkFFL0YsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3JCLDREQUE0RDtnQkFDNUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDL0IsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsMkRBQTJELEVBQUUsR0FBRyxFQUFFO2dCQUNuRSxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztnQkFDM0YsTUFBTSxVQUFVLEdBQUc7b0JBQ2pCLEtBQUssRUFBRTt3QkFDTCxLQUFLLEVBQUUsU0FBUztxQkFDakI7aUJBQ0YsQ0FBQztnQkFFRixNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxtQkFBVSxFQUFFLENBQUMsQ0FBQztnQkFDekYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsK0NBQStDO1lBQy9FLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDeEMsRUFBRSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsRUFBRTtZQUN6RSx1RkFBdUY7WUFDdkYsTUFBTSxhQUFhLEdBQUc7Z0JBQ3BCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLHVCQUFjLEVBQUUsRUFBRTtnQkFDNUQsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxtQkFBVSxFQUFFLEVBQUU7Z0JBQzNELEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxvQkFBVyxFQUFFLEVBQUU7Z0JBQ3RDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxrQkFBUyxFQUFFLEVBQUU7YUFDcEMsQ0FBQztZQUVGLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUN0QyxNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RFLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVyQix1RUFBdUU7Z0JBQ3ZFLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDNUYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQ3VzdG9tVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL2N1c3RvbVRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFR5cGVUYWdBZGRyZXNzLCBUeXBlVGFnQm9vbCwgVHlwZVRhZ1U4LCBUeXBlVGFnVTY0LCBUeXBlVGFnVTEyOCB9IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi9yZXNvdXJjZXMvYXB0JztcblxuZGVzY3JpYmUoJ0N1c3RvbVRyYW5zYWN0aW9uIC0gQXJndW1lbnQgQ29udmVyc2lvbicsICgpID0+IHtcbiAgbGV0IGN1c3RvbVRyYW5zYWN0aW9uOiBDdXN0b21UcmFuc2FjdGlvbjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjdXN0b21UcmFuc2FjdGlvbiA9IG5ldyBDdXN0b21UcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RhcHQnKSk7XG4gIH0pO1xuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBhY2Nlc3MgcHJpdmF0ZSBtZXRob2QgZm9yIHRlc3RpbmdcbiAgY29uc3QgY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJID0gKHRyYW5zYWN0aW9uOiBDdXN0b21UcmFuc2FjdGlvbiwgYXJnOiBhbnksIHBhcmFtVHlwZTogYW55KTogYW55ID0+IHtcbiAgICByZXR1cm4gKHRyYW5zYWN0aW9uIGFzIGFueSkuY29udmVydEFyZ3VtZW50QnlBQkkoYXJnLCBwYXJhbVR5cGUpO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdSZWFsIFRyYW5zYWN0aW9uIFNjZW5hcmlvcycsICgpID0+IHtcbiAgICBkZXNjcmliZSgnQ29tbW9uIFByaW1pdGl2ZSBBcmd1bWVudHMnLCAoKSA9PiB7XG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhZGRyZXNzIHN0cmluZ3MgZnJvbSB0ZXN0IGRhdGEnLCAoKSA9PiB7XG4gICAgICAgIC8vIFRlc3Qgd2l0aCBhY3R1YWwgYWRkcmVzc2VzIGZyb20gdGVzdCByZXNvdXJjZXNcbiAgICAgICAgY29uc3QgcmVzdWx0MSA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgdGVzdERhdGEuc2VuZGVyLmFkZHJlc3MsIG5ldyBUeXBlVGFnQWRkcmVzcygpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0MiA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShcbiAgICAgICAgICBjdXN0b21UcmFuc2FjdGlvbixcbiAgICAgICAgICB0ZXN0RGF0YS5yZWNpcGllbnRzWzBdLmFkZHJlc3MsXG4gICAgICAgICAgbmV3IFR5cGVUYWdBZGRyZXNzKClcbiAgICAgICAgKTtcblxuICAgICAgICBzaG91bGQuZXhpc3QocmVzdWx0MSk7XG4gICAgICAgIHNob3VsZC5leGlzdChyZXN1bHQyKTtcblxuICAgICAgICAvLyBSZXN1bHRzIHNob3VsZCBiZSBBY2NvdW50QWRkcmVzcyBvYmplY3RzIG9yIG9yaWdpbmFsIHN0cmluZ3NcbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQxID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHNob3VsZC5leGlzdChyZXN1bHQxLnRvU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdDIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgc2hvdWxkLmV4aXN0KHJlc3VsdDIudG9TdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgYW1vdW50IHN0cmluZ3MgZnJvbSB0ZXN0IGRhdGEnLCAoKSA9PiB7XG4gICAgICAgIC8vIFRlc3Qgd2l0aCBhY3R1YWwgYW1vdW50cyBmcm9tIHRlc3QgcmVzb3VyY2VzXG4gICAgICAgIGNvbnN0IHJlc3VsdDEgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIHRlc3REYXRhLkFNT1VOVC50b1N0cmluZygpLCBuZXcgVHlwZVRhZ1U2NCgpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0MiA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgdGVzdERhdGEucmVjaXBpZW50c1swXS5hbW91bnQsIG5ldyBUeXBlVGFnVTY0KCkpO1xuXG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQxLCB0ZXN0RGF0YS5BTU9VTlQudG9TdHJpbmcoKSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQyLCB0ZXN0RGF0YS5yZWNpcGllbnRzWzBdLmFtb3VudCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgbnVtZXJpYyBhbW91bnRzIGFzIG51bWJlcnMgZm9yIHNtYWxsIHR5cGVzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQxID0gY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJKGN1c3RvbVRyYW5zYWN0aW9uLCAyNTUsIG5ldyBUeXBlVGFnVTgoKSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdDIgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIHRlc3REYXRhLkFNT1VOVCwgbmV3IFR5cGVUYWdVNjQoKSk7XG5cbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdDEsIDI1NSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQyLCB0ZXN0RGF0YS5BTU9VTlQudG9TdHJpbmcoKSk7IC8vIExhcmdlIG51bWJlcnMgYmVjb21lIHN0cmluZ3NcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBib29sZWFuIHZhbHVlcyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDEgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIHRydWUsIG5ldyBUeXBlVGFnQm9vbCgpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0MiA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgZmFsc2UsIG5ldyBUeXBlVGFnQm9vbCgpKTtcblxuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0MSwgdHJ1ZSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQyLCBmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdCQ1MgRW5jb2RlZCBBcmd1bWVudHMgZnJvbSBSZWFsIFRyYW5zYWN0aW9ucycsICgpID0+IHtcbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIEJDUyBkYXRhIHdpdGggZGF0YSBwcm9wZXJ0eSAoZnJvbSBzZXJpYWxpemVkIHR4KScsICgpID0+IHtcbiAgICAgICAgLy8gVGhpcyBzaW11bGF0ZXMgQkNTLWVuY29kZWQgZGF0YSBzdHJ1Y3R1cmUgZm91bmQgaW4gcmVhbCB0cmFuc2FjdGlvbnNcbiAgICAgICAgY29uc3QgYmNzRGF0YSA9IHtcbiAgICAgICAgICBkYXRhOiBuZXcgVWludDhBcnJheShbMHhlOCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pLCAvLyAxMDAwIGluIGxpdHRsZS1lbmRpYW5cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIGJjc0RhdGEsIG5ldyBUeXBlVGFnVTY0KCkpO1xuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCAnMHhlODAzMDAwMDAwMDAwMDAwJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgQkNTIGFkZHJlc3MgZGF0YScsICgpID0+IHtcbiAgICAgICAgLy8gQ3JlYXRlIHByb3BlciAzMi1ieXRlIGFkZHJlc3MgZGF0YSBhcyBmb3VuZCBpbiByZWFsIHRyYW5zYWN0aW9uc1xuICAgICAgICBjb25zdCBhZGRyZXNzQnl0ZXMgPSBuZXcgQXJyYXkoMzIpLmZpbGwoMCk7XG4gICAgICAgIGFkZHJlc3NCeXRlc1szMV0gPSAweDAxOyAvLyBTdGFuZGFyZCBhZGRyZXNzIGZvcm1hdFxuXG4gICAgICAgIGNvbnN0IGJjc0RhdGEgPSB7XG4gICAgICAgICAgZGF0YTogbmV3IFVpbnQ4QXJyYXkoYWRkcmVzc0J5dGVzKSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIGJjc0RhdGEsIG5ldyBUeXBlVGFnQWRkcmVzcygpKTtcbiAgICAgICAgc2hvdWxkLmV4aXN0KHJlc3VsdCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzdWx0LnNob3VsZC5tYXRjaCgvXjB4WzAtOWEtZkEtRl0rJC8pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdOZXN0ZWQgQkNTIFN0cnVjdHVyZXMgKFJlYWwgVHJhbnNhY3Rpb24gUGFyc2luZyknLCAoKSA9PiB7XG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBVNjQgYW1vdW50IGluIG5lc3RlZCBzdHJ1Y3R1cmUgKHR5cGljYWwgZnJvbSBwYXJzZWQgdHgpJywgKCkgPT4ge1xuICAgICAgICAvLyBUaGlzIHN0cnVjdHVyZSBpcyBjb21tb24gd2hlbiBwYXJzaW5nIGFtb3VudHMgZnJvbSByZWFsIEFwdG9zIHRyYW5zYWN0aW9uc1xuICAgICAgICBjb25zdCBuZXN0ZWRBbW91bnQgPSB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHZhbHVlOiBuZXcgVWludDhBcnJheShbMHhlOCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pLCAvLyAxMDAwXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIG5lc3RlZEFtb3VudCwgbmV3IFR5cGVUYWdVNjQoKSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsICcxMDAwJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgZG91YmxlIG5lc3RlZCBudW1lcmljIHN0cnVjdHVyZSBmcm9tIEJDUyBwYXJzaW5nJywgKCkgPT4ge1xuICAgICAgICAvLyBUaGlzIHJlcHJlc2VudHMgdGhlIHR5cGljYWwgc3RydWN0dXJlIHdoZW4gZGVzZXJpYWxpemluZyBCQ1MtZW5jb2RlZCBudW1lcmljIHZhbHVlc1xuICAgICAgICBjb25zdCBuZXN0ZWREYXRhID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAwOiAweGU4LCAvLyAxMDAwIGluIGxpdHRsZS1lbmRpYW4gZm9ybWF0XG4gICAgICAgICAgICAgIDE6IDB4MDMsXG4gICAgICAgICAgICAgIDI6IDB4MDAsXG4gICAgICAgICAgICAgIDM6IDB4MDAsXG4gICAgICAgICAgICAgIDQ6IDB4MDAsXG4gICAgICAgICAgICAgIDU6IDB4MDAsXG4gICAgICAgICAgICAgIDY6IDB4MDAsXG4gICAgICAgICAgICAgIDc6IDB4MDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJKGN1c3RvbVRyYW5zYWN0aW9uLCBuZXN0ZWREYXRhLCBuZXcgVHlwZVRhZ1U2NCgpKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdCwgJzEwMDAnKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBuZXN0ZWQgc3RydWN0dXJlIGZvciBib29sZWFuIHZhbHVlcycsICgpID0+IHtcbiAgICAgICAgLy8gQm9vbGVhbiB2YWx1ZXMgaW4gQkNTIGZvcm1hdFxuICAgICAgICBjb25zdCBib29sZWFuVHJ1ZSA9IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgMDogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBib29sZWFuRmFsc2UgPSB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIDA6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVzdWx0MSA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgYm9vbGVhblRydWUsIG5ldyBUeXBlVGFnQm9vbCgpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0MiA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgYm9vbGVhbkZhbHNlLCBuZXcgVHlwZVRhZ0Jvb2woKSk7XG5cbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdDEsIHRydWUpO1xuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0MiwgZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIHNpbXBsZSBuZXN0ZWQgdmFsdWUgKGZpeCBmb3Igb3JpZ2luYWwgYnVnKScsICgpID0+IHtcbiAgICAgICAgLy8gVGhpcyB0ZXN0cyB0aGUgYnVnIGZpeCB3aGVyZSBwcmltaXRpdmUgdmFsdWVzIGluIG5lc3RlZCBzdHJ1Y3R1cmVzIGZhaWxlZFxuICAgICAgICBjb25zdCBuZXN0ZWRQcmltaXRpdmUgPSB7XG4gICAgICAgICAgdmFsdWU6ICcxMDAwJyxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIG5lc3RlZFByaW1pdGl2ZSwgbmV3IFR5cGVUYWdVNjQoKSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsICcxMDAwJyk7IC8vIFNob3VsZCBleHRyYWN0IGFuZCBjb252ZXJ0IHRoZSBwcmltaXRpdmUgdmFsdWVcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ0xhcmdlIEludGVnZXIgVHlwZXMgKENvbW1vbiBpbiBEZUZpKScsICgpID0+IHtcbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIFUxMjggYW1vdW50cyAoY29tbW9uIGZvciBoaWdoLXByZWNpc2lvbiB0b2tlbnMpJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBsYXJnZUFtb3VudCA9ICczNDAyODIzNjY5MjA5Mzg0NjM0NjMzNzQ2MDc0MzE3NjgyMTE0NTUnOyAvLyBOZWFyIG1heCBVMTI4XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgbGFyZ2VBbW91bnQsIG5ldyBUeXBlVGFnVTEyOCgpKTtcblxuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCBsYXJnZUFtb3VudCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgVTEyOCBpbiBCQ1MgZm9ybWF0JywgKCkgPT4ge1xuICAgICAgICAvLyAxNi1ieXRlIGFycmF5IGZvciBVMTI4IChleGFtcGxlOiB2YWx1ZSAxMDAwKVxuICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBBcnJheSgxNikuZmlsbCgwKTtcbiAgICAgICAgYnl0ZXNbMF0gPSAweGU4O1xuICAgICAgICBieXRlc1sxXSA9IDB4MDM7XG5cbiAgICAgICAgY29uc3QgbmVzdGVkRGF0YSA9IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgdmFsdWU6IE9iamVjdC5mcm9tRW50cmllcyhieXRlcy5tYXAoKGJ5dGUsIGluZGV4KSA9PiBbaW5kZXgudG9TdHJpbmcoKSwgYnl0ZV0pKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgbmVzdGVkRGF0YSwgbmV3IFR5cGVUYWdVMTI4KCkpO1xuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCAnMTAwMCcpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnRXJyb3IgSGFuZGxpbmcgZm9yIFJlYWwgRWRnZSBDYXNlcycsICgpID0+IHtcbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGVtcHR5IEJDUyBzdHJ1Y3R1cmVzIGdyYWNlZnVsbHknLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVtcHR5U3RydWN0dXJlID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICB2YWx1ZToge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIGVtcHR5U3RydWN0dXJlLCBuZXcgVHlwZVRhZ1U2NCgpKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdCwgZW1wdHlTdHJ1Y3R1cmUpOyAvLyBTaG91bGQgcmV0dXJuIG9yaWdpbmFsIHdoZW4gbm8gdmFsaWQgYnl0ZXMgZm91bmRcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBub24tQkNTIG9iamVjdHMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlZ3VsYXJPYmplY3QgPSB7IHNvbWVQcm9wZXJ0eTogJ3ZhbHVlJyB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIHJlZ3VsYXJPYmplY3QsIG5ldyBUeXBlVGFnVTY0KCkpO1xuXG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsIHJlZ3VsYXJPYmplY3QpOyAvLyBTaG91bGQgcmV0dXJuIGFzLWlzIGZvciBub24tQkNTIG9iamVjdHNcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBudWxsIGFuZCB1bmRlZmluZWQgKGRlZmVuc2l2ZSknLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDEgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIG51bGwsIG5ldyBUeXBlVGFnVTY0KCkpO1xuICAgICAgICBjb25zdCByZXN1bHQyID0gY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJKGN1c3RvbVRyYW5zYWN0aW9uLCB1bmRlZmluZWQsIG5ldyBUeXBlVGFnVTY0KCkpO1xuXG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQxLCBudWxsKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdDIsIHVuZGVmaW5lZCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdJbnRlZ3JhdGlvbiB3aXRoIFV0aWxpdHkgRnVuY3Rpb25zJywgKCkgPT4ge1xuICAgICAgaXQoJ3Nob3VsZCB1c2UgYnl0ZXNUb0hleCB1dGlsaXR5IGZvciBub24tbnVtZXJpYyBCQ1MgZGF0YScsICgpID0+IHtcbiAgICAgICAgY29uc3QgYmNzRGF0YSA9IHtcbiAgICAgICAgICBkYXRhOiBuZXcgVWludDhBcnJheShbMHgxMiwgMHgzNCwgMHg1NiwgMHg3OF0pLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgYmNzRGF0YSwgbmV3IFR5cGVUYWdBZGRyZXNzKCkpO1xuICAgICAgICAvLyBTaG91bGQgZWl0aGVyIGJlIGNvbnZlcnRlZCB0byBBY2NvdW50QWRkcmVzcyBvciByZW1haW4gYXMgaGV4IHN0cmluZ1xuICAgICAgICBzaG91bGQuZXhpc3QocmVzdWx0KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHVzZSB0cnlQYXJzZUFjY291bnRBZGRyZXNzIHV0aWxpdHkgZm9yIGFkZHJlc3Mgc3RyaW5ncycsICgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRBZGRyZXNzID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSc7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgdmFsaWRBZGRyZXNzLCBuZXcgVHlwZVRhZ0FkZHJlc3MoKSk7XG5cbiAgICAgICAgc2hvdWxkLmV4aXN0KHJlc3VsdCk7XG4gICAgICAgIC8vIFNob3VsZCBlaXRoZXIgYmUgQWNjb3VudEFkZHJlc3Mgb2JqZWN0IG9yIG9yaWdpbmFsIHN0cmluZ1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBzaG91bGQuZXhpc3QocmVzdWx0LnRvU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgdXNlIGNvbnZlcnROdW1lcmljQXJndW1lbnQgdXRpbGl0eSBmb3IgYnl0ZSBhcnJheXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVpbnQ4RGF0YSA9IG5ldyBVaW50OEFycmF5KFsweGU4LCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwXSk7IC8vIDEwMDBcbiAgICAgICAgY29uc3QgbmVzdGVkRGF0YSA9IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgdmFsdWU6IHVpbnQ4RGF0YSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgbmVzdGVkRGF0YSwgbmV3IFR5cGVUYWdVNjQoKSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsICcxMDAwJyk7IC8vIFNob3VsZCB1c2UgZXhpc3RpbmcgbnVtZXJpYyBjb252ZXJzaW9uIGxvZ2ljXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1JvdW5kLXRyaXAgQ29tcGF0aWJpbGl0eScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyB0cmFuc2FjdGlvbiBwYXJzaW5nJywgKCkgPT4ge1xuICAgICAgLy8gVGhpcyBlbnN1cmVzIG91ciByZWZhY3RvcmVkIG1ldGhvZCB3b3JrcyB3aXRoIHRoZSBleGlzdGluZyB0cmFuc2FjdGlvbiBidWlsZGVyIHRlc3RzXG4gICAgICBjb25zdCB0ZXN0QXJndW1lbnRzID0gW1xuICAgICAgICB7IGFyZzogdGVzdERhdGEuc2VuZGVyLmFkZHJlc3MsIHR5cGU6IG5ldyBUeXBlVGFnQWRkcmVzcygpIH0sXG4gICAgICAgIHsgYXJnOiB0ZXN0RGF0YS5BTU9VTlQudG9TdHJpbmcoKSwgdHlwZTogbmV3IFR5cGVUYWdVNjQoKSB9LFxuICAgICAgICB7IGFyZzogdHJ1ZSwgdHlwZTogbmV3IFR5cGVUYWdCb29sKCkgfSxcbiAgICAgICAgeyBhcmc6IDI1NSwgdHlwZTogbmV3IFR5cGVUYWdVOCgpIH0sXG4gICAgICBdO1xuXG4gICAgICB0ZXN0QXJndW1lbnRzLmZvckVhY2goKHsgYXJnLCB0eXBlIH0pID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJKGN1c3RvbVRyYW5zYWN0aW9uLCBhcmcsIHR5cGUpO1xuICAgICAgICBzaG91bGQuZXhpc3QocmVzdWx0KTtcblxuICAgICAgICAvLyBSZXN1bHQgc2hvdWxkIGJlIGNvbXBhdGlibGUgd2l0aCBleGlzdGluZyB0cmFuc2FjdGlvbiBidWlsZGluZyBsb2dpY1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHJlc3VsdCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHJlc3VsdCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgc2hvdWxkLmV4aXN0KHJlc3VsdC50b1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,3 @@
1
+ import { TransactionBuilderFactory } from '../../src';
2
+ export declare const getBuilderFactory: (coin: string) => TransactionBuilderFactory;
3
+ //# sourceMappingURL=getBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBuilderFactory.d.ts","sourceRoot":"","sources":["../../../test/unit/getBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAGtD,eAAO,MAAM,iBAAiB,SAAU,MAAM,KAAG,yBAEhD,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBuilderFactory = void 0;
4
+ const src_1 = require("../../src");
5
+ const statics_1 = require("@bitgo-beta/statics");
6
+ const getBuilderFactory = (coin) => {
7
+ return new src_1.TransactionBuilderFactory(statics_1.coins.get(coin));
8
+ };
9
+ exports.getBuilderFactory = getBuilderFactory;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlckZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvZ2V0QnVpbGRlckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXNEO0FBQ3RELGlEQUE0QztBQUVyQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsSUFBWSxFQUE2QixFQUFFO0lBQzNFLE9BQU8sSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRlcsUUFBQSxpQkFBaUIscUJBRTVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5leHBvcnQgY29uc3QgZ2V0QnVpbGRlckZhY3RvcnkgPSAoY29pbjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSA9PiB7XG4gIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoY29pbikpO1xufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../test/unit/keyPair.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const src_1 = require("../../src");
8
+ const utils_1 = __importDefault(require("../../src/lib/utils"));
9
+ const should_1 = __importDefault(require("should"));
10
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
11
+ const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
12
+ const sdk_test_1 = require("@bitgo-beta/sdk-test");
13
+ const sdk_api_1 = require("@bitgo-beta/sdk-api");
14
+ describe('Apt KeyPair', function () {
15
+ let rootKeychain;
16
+ let rootPublicKey;
17
+ let MPC;
18
+ let hdTree;
19
+ let bitgo;
20
+ let basecoin;
21
+ before(async () => {
22
+ hdTree = await sdk_lib_mpc_1.Ed25519Bip32HdTree.initialize();
23
+ MPC = await sdk_core_1.Eddsa.initialize(hdTree);
24
+ const A = MPC.keyShare(1, 2, 3);
25
+ const B = MPC.keyShare(2, 2, 3);
26
+ const C = MPC.keyShare(3, 2, 3);
27
+ const A_combine = MPC.keyCombine(A.uShare, [B.yShares[1], C.yShares[1]]);
28
+ const commonKeychain = A_combine.pShare.y + A_combine.pShare.chaincode;
29
+ rootKeychain = MPC.deriveUnhardened(commonKeychain, 'm/0');
30
+ rootPublicKey = Buffer.from(rootKeychain, 'hex').slice(0, 32).toString('hex');
31
+ bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
32
+ bitgo.safeRegister('tapt', src_1.Tapt.createInstance);
33
+ basecoin = bitgo.coin('tapt');
34
+ });
35
+ describe('should create a valid KeyPair', () => {
36
+ it('from an empty value', async () => {
37
+ const keyPair = new src_1.KeyPair();
38
+ should_1.default.exists(keyPair.getKeys().prv);
39
+ should_1.default.exists(keyPair.getKeys().pub);
40
+ const address = await utils_1.default.getAddressFromPublicKey(keyPair.getKeys().pub);
41
+ console.log('address:', address);
42
+ should_1.default.exists(address);
43
+ });
44
+ });
45
+ describe('Keypair from derived Public Key', () => {
46
+ it('should create keypair with just derived public key', () => {
47
+ const keyPair = new src_1.KeyPair({ pub: rootPublicKey });
48
+ keyPair.getKeys().pub.should.equal(rootPublicKey);
49
+ });
50
+ it('should derived ed25519 public key should be valid', () => {
51
+ utils_1.default.isValidPublicKey(rootPublicKey).should.be.true();
52
+ });
53
+ });
54
+ describe('Keypair from random seed', () => {
55
+ it('should generate a keypair from random seed', function () {
56
+ const keyPair = basecoin.generateKeyPair();
57
+ keyPair.should.have.property('pub');
58
+ keyPair.should.have.property('prv');
59
+ basecoin.isValidPub(keyPair.pub).should.equal(true);
60
+ });
61
+ });
62
+ describe('should fail to create a KeyPair', function () {
63
+ it('from an invalid public key', () => {
64
+ const source = {
65
+ pub: '01D63D',
66
+ };
67
+ assert_1.default.throws(() => new src_1.KeyPair(source));
68
+ });
69
+ });
70
+ });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUEwQztBQUMxQyxnRUFBd0M7QUFDeEMsb0RBQTRCO0FBQzVCLG1EQUE2QztBQUM3Qyx5REFBcUU7QUFDckUsbURBQStEO0FBQy9ELGlEQUErQztBQUUvQyxRQUFRLENBQUMsYUFBYSxFQUFFO0lBQ3RCLElBQUksWUFBWSxDQUFDO0lBQ2pCLElBQUksYUFBYSxDQUFDO0lBQ2xCLElBQUksR0FBVSxDQUFDO0lBQ2YsSUFBSSxNQUFjLENBQUM7SUFDbkIsSUFBSSxLQUFtQixDQUFDO0lBQ3hCLElBQUksUUFBUSxDQUFDO0lBRWIsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2hCLE1BQU0sR0FBRyxNQUFNLGdDQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9DLEdBQUcsR0FBRyxNQUFNLGdCQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekUsTUFBTSxjQUFj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QUFFLFFBQVE7YUFDZCxDQUFDO1lBRUYsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBLZXlQYWlyLCBUYXB0IH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEVkZHNhIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgRWQyNTUxOUJpcDMySGRUcmVlLCBIRFRyZWUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5cbmRlc2NyaWJlKCdBcHQgS2V5UGFpcicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHJvb3RLZXljaGFpbjtcbiAgbGV0IHJvb3RQdWJsaWNLZXk7XG4gIGxldCBNUEM6IEVkZHNhO1xuICBsZXQgaGRUcmVlOiBIRFRyZWU7XG4gIGxldCBiaXRnbzogVGVzdEJpdEdvQVBJO1xuICBsZXQgYmFzZWNvaW47XG5cbiAgYmVmb3JlKGFzeW5jICgpID0+IHtcbiAgICBoZFRyZWUgPSBhd2FpdCBFZDI1NTE5QmlwMzJIZFRyZWUuaW5pdGlhbGl6ZSgpO1xuICAgIE1QQyA9IGF3YWl0IEVkZHNhLmluaXRpYWxpemUoaGRUcmVlKTtcbiAgICBjb25zdCBBID0gTVBDLmtleVNoYXJlKDEsIDIsIDMpO1xuICAgIGNvbnN0IEIgPSBNUEMua2V5U2hhcmUoMiwgMiwgMyk7XG4gICAgY29uc3QgQyA9IE1QQy5rZXlTaGFyZSgzLCAyLCAzKTtcblxuICAgIGNvbnN0IEFfY29tYmluZSA9IE1QQy5rZXlDb21iaW5lKEEudVNoYXJlLCBbQi55U2hhcmVzWzFdLCBDLnlTaGFyZXNbMV1dKTtcblxuICAgIGNvbnN0IGNvbW1vbktleWNoYWluID0gQV9jb21iaW5lLnBTaGFyZS55ICsgQV9jb21iaW5lLnBTaGFyZS5jaGFpbmNvZGU7XG4gICAgcm9vdEtleWNoYWluID0gTVBDLmRlcml2ZVVuaGFyZGVuZWQoY29tbW9uS2V5Y2hhaW4sICdtLzAnKTtcbiAgICByb290UHVibGljS2V5ID0gQnVmZmVyLmZyb20ocm9vdEtleWNoYWluLCAnaGV4Jykuc2xpY2UoMCwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICdtb2NrJyB9KTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3RhcHQnLCBUYXB0LmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3RhcHQnKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBjcmVhdGUgYSB2YWxpZCBLZXlQYWlyJywgKCkgPT4ge1xuICAgIGl0KCdmcm9tIGFuIGVtcHR5IHZhbHVlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKCk7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleVBhaXIuZ2V0S2V5cygpLnBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleVBhaXIuZ2V0S2V5cygpLnB1Yik7XG4gICAgICBjb25zdCBhZGRyZXNzID0gYXdhaXQgdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkoa2V5UGFpci5nZXRLZXlzKCkucHViKTtcbiAgICAgIGNvbnNvbGUubG9nKCdhZGRyZXNzOicsIGFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhhZGRyZXNzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0tleXBhaXIgZnJvbSBkZXJpdmVkIFB1YmxpYyBLZXknLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUga2V5cGFpciB3aXRoIGp1c3QgZGVyaXZlZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiByb290UHVibGljS2V5IH0pO1xuICAgICAga2V5UGFpci5nZXRLZXlzKCkucHViLnNob3VsZC5lcXVhbChyb290UHVibGljS2V5KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZGVyaXZlZCBlZDI1NTE5IHB1YmxpYyBrZXkgc2hvdWxkIGJlIHZhbGlkJywgKCkgPT4ge1xuICAgICAgdXRpbHMuaXNWYWxpZFB1YmxpY0tleShyb290UHVibGljS2V5KS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS2V5cGFpciBmcm9tIHJhbmRvbSBzZWVkJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZ2VuZXJhdGUgYSBrZXlwYWlyIGZyb20gcmFuZG9tIHNlZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gYmFzZWNvaW4uZ2VuZXJhdGVLZXlQYWlyKCk7XG4gICAgICBrZXlQYWlyLnNob3VsZC5oYXZlLnByb3BlcnR5KCdwdWInKTtcbiAgICAgIGtleVBhaXIuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3BydicpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZFB1YihrZXlQYWlyLnB1Yikuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIGZhaWwgdG8gY3JlYXRlIGEgS2V5UGFpcicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnZnJvbSBhbiBpbnZhbGlkIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2UgPSB7XG4gICAgICAgIHB1YjogJzAxRDYzRCcsXG4gICAgICB9O1xuXG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBLZXlQYWlyKHNvdXJjZSkpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=customTransactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/customTransactionBuilder.ts"],"names":[],"mappings":""}