@bitgo/sdk-coin-starknet 1.1.0 → 1.3.0

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.
@@ -13,6 +13,10 @@ exports.formatEthAccountSignature = formatEthAccountSignature;
13
13
  exports.parseTransferCall = parseTransferCall;
14
14
  exports.generateKeyPair = generateKeyPair;
15
15
  exports.validateRawTransaction = validateRawTransaction;
16
+ exports.encodeShortString = encodeShortString;
17
+ exports.getSelectorFromName = getSelectorFromName;
18
+ exports.compileExecuteCalldata = compileExecuteCalldata;
19
+ exports.calculateInvokeTransactionHash = calculateInvokeTransactionHash;
16
20
  const starknet_1 = require("@scure/starknet");
17
21
  const constants_1 = require("./constants");
18
22
  const secp256k1_1 = require("@bitgo/secp256k1");
@@ -190,6 +194,80 @@ function validateRawTransaction(tx) {
190
194
  throw new Error(`Invalid sender address: ${tx.senderAddress}`);
191
195
  }
192
196
  }
197
+ /**
198
+ * Encode an ASCII string (max 31 chars) as a felt252.
199
+ */
200
+ function encodeShortString(str) {
201
+ if (str.length > 31) {
202
+ throw new Error(`Short string too long: ${str.length} > 31`);
203
+ }
204
+ for (let i = 0; i < str.length; i++) {
205
+ const code = str.charCodeAt(i);
206
+ if (code > 127) {
207
+ throw new Error(`Non-ASCII character at index ${i}: code ${code}`);
208
+ }
209
+ }
210
+ let result = 0n;
211
+ for (let i = 0; i < str.length; i++) {
212
+ result = (result << 8n) | BigInt(str.charCodeAt(i));
213
+ }
214
+ return result;
215
+ }
216
+ /**
217
+ * Compute the Starknet function selector: keccak256(name) masked to 250 bits.
218
+ * @scure/starknet's keccak() already applies the 250-bit mask.
219
+ */
220
+ function getSelectorFromName(name) {
221
+ return (0, starknet_1.keccak)(Buffer.from(name, 'ascii'));
222
+ }
223
+ /**
224
+ * Compile calls into the Cairo 1 multicall __execute__ calldata format.
225
+ * Format: [num_calls, to_0, selector_0, data_len_0, ...data_0, to_1, ...]
226
+ */
227
+ function compileExecuteCalldata(calls) {
228
+ const result = [];
229
+ result.push('0x' + BigInt(calls.length).toString(16));
230
+ for (const call of calls) {
231
+ result.push(call.contractAddress);
232
+ result.push('0x' + getSelectorFromName(call.entrypoint).toString(16));
233
+ result.push('0x' + BigInt(call.calldata.length).toString(16));
234
+ result.push(...call.calldata);
235
+ }
236
+ return result;
237
+ }
238
+ function encodeResourceBound(typeName, maxAmount, maxPricePerUnit) {
239
+ return (typeName << 192n) | (BigInt(maxAmount) << 128n) | BigInt(maxPricePerUnit);
240
+ }
241
+ /**
242
+ * Compute the Poseidon V3 INVOKE transaction hash per SNIP-8.
243
+ */
244
+ function calculateInvokeTransactionHash(params) {
245
+ const { senderAddress, compiledCalldata, chainId, nonce, resourceBounds, tip = '0x0', nonceDataAvailabilityMode = 0, feeDataAvailabilityMode = 0, paymasterData = [], accountDeploymentData = [], proofFacts, } = params;
246
+ const feeFieldHash = (0, starknet_1.poseidonHashMany)([
247
+ BigInt(tip),
248
+ encodeResourceBound(constants_1.L1_GAS_NAME, resourceBounds.l1_gas.max_amount, resourceBounds.l1_gas.max_price_per_unit),
249
+ encodeResourceBound(constants_1.L2_GAS_NAME, resourceBounds.l2_gas.max_amount, resourceBounds.l2_gas.max_price_per_unit),
250
+ encodeResourceBound(constants_1.L1_DATA_GAS_NAME, resourceBounds.l1_data_gas.max_amount, resourceBounds.l1_data_gas.max_price_per_unit),
251
+ ]);
252
+ const daMode = (BigInt(nonceDataAvailabilityMode) << 32n) | BigInt(feeDataAvailabilityMode);
253
+ const hashFields = [
254
+ constants_1.INVOKE_TX_PREFIX,
255
+ constants_1.TRANSACTION_VERSION_3,
256
+ BigInt(senderAddress),
257
+ feeFieldHash,
258
+ (0, starknet_1.poseidonHashMany)(paymasterData.map(BigInt)),
259
+ BigInt(chainId),
260
+ BigInt(nonce),
261
+ daMode,
262
+ (0, starknet_1.poseidonHashMany)(accountDeploymentData.map(BigInt)),
263
+ (0, starknet_1.poseidonHashMany)(compiledCalldata.map(BigInt)),
264
+ ];
265
+ if (proofFacts && proofFacts.length > 0) {
266
+ hashFields.push((0, starknet_1.poseidonHashMany)(proofFacts.map(BigInt)));
267
+ }
268
+ const hash = (0, starknet_1.poseidonHashMany)(hashFields);
269
+ return '0x' + hash.toString(16);
270
+ }
193
271
  exports.default = {
194
272
  isValidAddress,
195
273
  isValidPublicKey,
@@ -204,5 +282,9 @@ exports.default = {
204
282
  parseTransferCall,
205
283
  generateKeyPair,
206
284
  validateRawTransaction,
285
+ encodeShortString,
286
+ getSelectorFromName,
287
+ compileExecuteCalldata,
288
+ calculateInvokeTransactionHash,
207
289
  };
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsNENBR0M7QUFNRCx3Q0FTQztBQUtELDRDQWdCQztBQUtELDhDQUdDO0FBS0QsNERBYUM7QUFNRCxvRkFVQztBQU1ELDRFQWVDO0FBS0Qsd0RBYUM7QUFLRCwwREFJQztBQU1ELDhEQVlDO0FBTUQsOENBWUM7QUFLRCwwQ0FRQztBQUtELHdEQU9DO0FBdE1ELDhDQUF3RDtBQUN4RCwyQ0FBaUg7QUFFakgsZ0RBQXVDO0FBRXZDOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsT0FBZTtJQUM5QyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDbEUsT0FBTyxJQUFJLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDcEQsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDMUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLE9BQU8sR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUcsb0JBQVEsQ0FBQztJQUNwQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gs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QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxFQUEyQjtJQUNoRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0FBQ0gsQ0FBQztBQUVELGtCQUFlO0lBQ2IsY0FBYztJQUNkLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsd0JBQXdCO0lBQ3hCLG9DQUFvQztJQUNwQyxnQ0FBZ0M7SUFDaEMsc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2QixnQkFBZ0I7SUFDaEIseUJBQXlCO0lBQ3pCLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2Ysc0JBQXNCO0NBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlSGFzaE9uRWxlbWVudHMgfSBmcm9tICdAc2N1cmUvc3RhcmtuZXQnO1xuaW1wb3J0IHsgRkVMVF9NQVgsIE1BU0tfMTI4LCBPWl9FVEhfQUNDT1VOVF9DTEFTU19IQVNILCBBRERSX0JPVU5ELCBDT05UUkFDVF9BRERSRVNTX1BSRUZJWCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLCBTdGFya25ldENhbGwsIFBhcnNlZFRyYW5zZmVyRGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgZWNjIH0gZnJvbSAnQGJpdGdvL3NlY3AyNTZrMSc7XG5cbi8qKlxuICogTm9ybWFsaXplIGEgU3RhcmtuZXQgYWRkcmVzcyB0byBjYW5vbmljYWwgZm9ybTogMHggKyA2NCBoZXggY2hhcnMsIHplcm8tcGFkZGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBoZXggPSBhZGRyZXNzLnN0YXJ0c1dpdGgoJzB4JykgPyBhZGRyZXNzLnNsaWNlKDIpIDogYWRkcmVzcztcbiAgcmV0dXJuICcweCcgKyBoZXgucGFkU3RhcnQoNjQsICcwJykudG9Mb3dlckNhc2UoKTtcbn1cblxuLyoqXG4gKiBTdGFya25ldCBhZGRyZXNzZXMgYXJlIGZlbHQyNTIgdmFsdWVzIHJlcHJlc2VudGVkIGFzIDB4LXByZWZpeGVkIGhleC5cbiAqIFZhbGlkIHJhbmdlOiAwIDwgYWRkcmVzcyA8IEZFTFRfTUFYLCB3aXRoIDB4IHByZWZpeCBhbmQgaGV4IGNoYXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgYWRkcmVzcyAhPT0gJ3N0cmluZycpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFhZGRyZXNzLm1hdGNoKC9eMHhbMC05YS1mQS1GXXsxLDY0fSQvKSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IHZhbCA9IEJpZ0ludChhZGRyZXNzKTtcbiAgICByZXR1cm4gdmFsID4gMG4gJiYgdmFsIDwgRkVMVF9NQVg7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlIGEgc2VjcDI1NmsxIHB1YmxpYyBrZXkgKGNvbXByZXNzZWQgMzMgYnl0ZXMgb3IgdW5jb21wcmVzc2VkIDY1IGJ5dGVzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG4gIHRyeSB7XG4gICAgY29uc3QgYnVmID0gQnVmZmVyLmZyb20oa2V5LCAnaGV4Jyk7XG4gICAgaWYgKGJ1Zi5sZW5ndGggPT09IDMzICYmIChidWZbMF0gPT09IDB4MDIgfHwgYnVmWzBdID09PSAweDAzKSkge1xuICAgICAgZWNjLnBvaW50Q29tcHJlc3MoYnVmLCB0cnVlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoYnVmLmxlbmd0aCA9PT0gNjUgJiYgYnVmWzBdID09PSAweDA0KSB7XG4gICAgICBlY2MucG9pbnRDb21wcmVzcyhidWYsIHRydWUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGUgYSBzZWNwMjU2azEgcHJpdmF0ZSBrZXkgKDMyIGJ5dGVzIGhleCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIC9eWzAtOWEtZkEtRl17NjR9JC8udGVzdChrZXkpO1xufVxuXG4vKipcbiAqIEdldCB1bmNvbXByZXNzZWQgcHVibGljIGtleSAoeCB8fCB5LCAxMjggaGV4IGNoYXJzLCBubyAwNCBwcmVmaXgpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5jb21wcmVzc2VkUHVibGljS2V5KGNvbXByZXNzZWRIZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKGNvbXByZXNzZWRIZXgsICdoZXgnKTtcbiAgaWYgKGJ1Zi5sZW5ndGggPT09IDY1ICYmIGJ1ZlswXSA9PT0gMHgwNCkge1xuICAgIHJldHVybiBjb21wcmVzc2VkSGV4LnNsaWNlKDIpO1xuICB9XG4gIGlmIChidWYubGVuZ3RoID09PSAzMyAmJiAoYnVmWzBdID09PSAweDAyIHx8IGJ1ZlswXSA9PT0gMHgwMykpIHtcbiAgICBjb25zdCB1bmNvbXByZXNzZWQgPSBCdWZmZXIuZnJvbShlY2MucG9pbnRDb21wcmVzcyhidWYsIGZhbHNlKSk7XG4gICAgcmV0dXJuIHVuY29tcHJlc3NlZC50b1N0cmluZygnaGV4Jykuc2xpY2UoMik7XG4gIH1cbiAgaWYgKGJ1Zi5sZW5ndGggPT09IDY0KSB7XG4gICAgcmV0dXJuIGNvbXByZXNzZWRIZXg7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHB1YmxpYyBrZXkgZm9ybWF0OiAke2NvbXByZXNzZWRIZXguc3Vic3RyaW5nKDAsIDEwKX0uLi5gKTtcbn1cblxuLyoqXG4gKiBDb21waWxlIEV0aEFjY291bnQgY29uc3RydWN0b3IgY2FsbGRhdGEgZnJvbSBmdWxsIHNlY3AyNTZrMSBwdWJsaWMga2V5LlxuICogUmV0dXJucyBbeF9sb3csIHhfaGlnaCwgeV9sb3csIHlfaGlnaF0gYXMgZmVsdDI1MiBzdHJpbmdzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZUV0aEFjY291bnRDb25zdHJ1Y3RvckNhbGxkYXRhKGZ1bGxQdWJsaWNLZXk6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcHViWCA9IEJpZ0ludCgnMHgnICsgZnVsbFB1YmxpY0tleS5zbGljZSgwLCA2NCkpO1xuICBjb25zdCBwdWJZID0gQmlnSW50KCcweCcgKyBmdWxsUHVibGljS2V5LnNsaWNlKDY0KSk7XG5cbiAgcmV0dXJuIFtcbiAgICAnMHgnICsgKHB1YlggJiBNQVNLXzEyOCkudG9TdHJpbmcoMTYpLFxuICAgICcweCcgKyAocHViWCA+PiAxMjhuKS50b1N0cmluZygxNiksXG4gICAgJzB4JyArIChwdWJZICYgTUFTS18xMjgpLnRvU3RyaW5nKDE2KSxcbiAgICAnMHgnICsgKHB1YlkgPj4gMTI4bikudG9TdHJpbmcoMTYpLFxuICBdO1xufVxuXG4vKipcbiAqIENvbXB1dGUgU3RhcmtuZXQgY29udHJhY3QgYWRkcmVzcyBmcm9tIGhhc2ggY29tcG9uZW50cy5cbiAqIFJlcGxpY2F0ZXMgc3RhcmtuZXQuanMgY2FsY3VsYXRlQ29udHJhY3RBZGRyZXNzRnJvbUhhc2ggdXNpbmcgQHNjdXJlL3N0YXJrbmV0IHBlZGVyc2VuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQ29udHJhY3RBZGRyZXNzRnJvbUhhc2goXG4gIHNhbHQ6IHN0cmluZyxcbiAgY2xhc3NIYXNoOiBzdHJpbmcsXG4gIGNvbnN0cnVjdG9yQ2FsbGRhdGE6IHN0cmluZ1tdLFxuICBkZXBsb3llckFkZHJlc3M6IG51bWJlciB8IGJpZ2ludFxuKTogc3RyaW5nIHtcbiAgY29uc3QgY2FsbGRhdGFIYXNoID0gY29tcHV0ZUhhc2hPbkVsZW1lbnRzKGNvbnN0cnVjdG9yQ2FsbGRhdGEubWFwKEJpZ0ludCkpIGFzIHN0cmluZztcbiAgY29uc3QgcmF3SGFzaCA9IGNvbXB1dGVIYXNoT25FbGVtZW50cyhbXG4gICAgQ09OVFJBQ1RfQUREUkVTU19QUkVGSVgsXG4gICAgQmlnSW50KGRlcGxveWVyQWRkcmVzcyksXG4gICAgQmlnSW50KHNhbHQpLFxuICAgIEJpZ0ludChjbGFzc0hhc2gpLFxuICAgIEJpZ0ludChjYWxsZGF0YUhhc2gpLFxuICBdKSBhcyBzdHJpbmc7XG4gIHJldHVybiBub3JtYWxpemVBZGRyZXNzKCcweCcgKyAoQmlnSW50KHJhd0hhc2gpICUgQUREUl9CT1VORCkudG9TdHJpbmcoMTYpKTtcbn1cblxuLyoqXG4gKiBDb21wdXRlIFN0YXJrbmV0IEV0aEFjY291bnQgY291bnRlcmZhY3R1YWwgYWRkcmVzcyBmcm9tIHB1YmxpYyBrZXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlU3RhcmtuZXRBZGRyZXNzKGZ1bGxQdWJsaWNLZXk6IHN0cmluZyk6IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBjb25zdHJ1Y3RvckNhbGxkYXRhOiBzdHJpbmdbXTtcbiAgc2FsdDogc3RyaW5nO1xufSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yQ2FsbGRhdGEgPSBjb21waWxlRXRoQWNjb3VudENvbnN0cnVjdG9yQ2FsbGRhdGEoZnVsbFB1YmxpY0tleSk7XG5cbiAgY29uc3QgcHViWCA9IEJpZ0ludCgnMHgnICsgZnVsbFB1YmxpY0tleS5zbGljZSgwLCA2NCkpO1xuICBjb25zdCBzYWx0ID0gJzB4JyArIChwdWJYICUgRkVMVF9NQVgpLnRvU3RyaW5nKDE2KTtcblxuICBjb25zdCBhZGRyZXNzID0gY2FsY3VsYXRlQ29udHJhY3RBZGRyZXNzRnJvbUhhc2goc2FsdCwgT1pfRVRIX0FDQ09VTlRfQ0xBU1NfSEFTSCwgY29uc3RydWN0b3JDYWxsZGF0YSwgMCk7XG5cbiAgcmV0dXJuIHsgYWRkcmVzcywgY29uc3RydWN0b3JDYWxsZGF0YSwgc2FsdCB9O1xufVxuXG4vKipcbiAqIERlcml2ZSBTdGFya25ldCBFdGhBY2NvdW50IGFkZHJlc3MgZnJvbSBjb21wcmVzc2VkIHNlY3AyNTZrMSBwdWJsaWMga2V5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkoY29tcHJlc3NlZFB1YmxpY0tleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZnVsbFB1YmxpY0tleSA9IGdldFVuY29tcHJlc3NlZFB1YmxpY0tleShjb21wcmVzc2VkUHVibGljS2V5KTtcbiAgY29uc3QgeyBhZGRyZXNzIH0gPSBjb21wdXRlU3RhcmtuZXRBZGRyZXNzKGZ1bGxQdWJsaWNLZXkpO1xuICByZXR1cm4gYWRkcmVzcztcbn1cblxuLyoqXG4gKiBGb3JtYXQgRUNEU0Egc2lnbmF0dXJlIGZvciBTdGFya25ldCBFdGhBY2NvdW50LlxuICogUmV0dXJucyBbcl9sb3csIHJfaGlnaCwgc19sb3csIHNfaGlnaCwgdl0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFdGhBY2NvdW50U2lnbmF0dXJlKHI6IHN0cmluZywgczogc3RyaW5nLCByZWNpZDogbnVtYmVyKTogc3RyaW5nW10ge1xuICBjb25zdCByQmlnID0gQmlnSW50KCcweCcgKyByKTtcbiAgY29uc3Qgc0JpZyA9IEJpZ0ludCgnMHgnICsgcyk7XG4gIGNvbnN0IHYgPSBCaWdJbnQocmVjaWQpO1xuXG4gIHJldHVybiBbXG4gICAgJzB4JyArIChyQmlnICYgTUFTS18xMjgpLnRvU3RyaW5nKDE2KSxcbiAgICAnMHgnICsgKHJCaWcgPj4gMTI4bikudG9TdHJpbmcoMTYpLFxuICAgICcweCcgKyAoc0JpZyAmIE1BU0tfMTI4KS50b1N0cmluZygxNiksXG4gICAgJzB4JyArIChzQmlnID4+IDEyOG4pLnRvU3RyaW5nKDE2KSxcbiAgICAnMHgnICsgdi50b1N0cmluZygxNiksXG4gIF07XG59XG5cbi8qKlxuICogRXh0cmFjdCByZWNpcGllbnQsIGFtb3VudCwgYW5kIHRva2VuIGNvbnRyYWN0IGZyb20gYSB0cmFuc2ZlciBjYWxsLlxuICogUmV2ZXJzZSBvZiBUcmFuc2ZlckJ1aWxkZXIuY29tcGlsZVRyYW5zZmVyQ2FsbGRhdGE6IGNhbGxkYXRhID0gW3JlY2lwaWVudCwgYW1vdW50X2xvdywgYW1vdW50X2hpZ2hdLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUcmFuc2ZlckNhbGwoY2FsbDogU3RhcmtuZXRDYWxsKTogUGFyc2VkVHJhbnNmZXJEYXRhIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGNhbGwuZW50cnlwb2ludCAhPT0gJ3RyYW5zZmVyJyB8fCBjYWxsLmNhbGxkYXRhLmxlbmd0aCA8IDMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IGFtb3VudExvdyA9IEJpZ0ludChjYWxsLmNhbGxkYXRhWzFdKTtcbiAgY29uc3QgYW1vdW50SGlnaCA9IEJpZ0ludChjYWxsLmNhbGxkYXRhWzJdKTtcbiAgY29uc3QgYW1vdW50ID0gKChhbW91bnRIaWdoIDw8IDEyOG4pIHwgYW1vdW50TG93KS50b1N0cmluZygpO1xuICByZXR1cm4ge1xuICAgIHJlY2lwaWVudDogY2FsbC5jYWxsZGF0YVswXSxcbiAgICBhbW91bnQsXG4gICAgdG9rZW5Db250cmFjdDogY2FsbC5jb250cmFjdEFkZHJlc3MsXG4gIH07XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBuZXcgc2VjcDI1NmsxIGtleSBwYWlyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHNlZWQ/OiBCdWZmZXIpOiB7IHB1Yjogc3RyaW5nOyBwcnY6IHN0cmluZyB9IHtcbiAgY29uc3QgeyBLZXlQYWlyOiBTdGFya25ldEtleVBhaXIgfSA9IHJlcXVpcmUoJy4va2V5UGFpcicpO1xuICBjb25zdCBrZXlQYWlyID0gc2VlZCA/IG5ldyBTdGFya25ldEtleVBhaXIoeyBzZWVkIH0pIDogbmV3IFN0YXJrbmV0S2V5UGFpcigpO1xuICBjb25zdCB7IHB1YiwgcHJ2IH0gPSBrZXlQYWlyLmdldEtleXMoKTtcbiAgaWYgKCFwcnYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1ByaXZhdGUga2V5IGlzIG1pc3NpbmcgaW4gdGhlIGdlbmVyYXRlZCBrZXkgcGFpci4nKTtcbiAgfVxuICByZXR1cm4geyBwdWIsIHBydiB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHJhdyB0cmFuc2FjdGlvbiBkYXRhIGhhcyByZXF1aXJlZCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHR4OiBTdGFya25ldFRyYW5zYWN0aW9uRGF0YSk6IHZvaWQge1xuICBpZiAoIXR4LnNlbmRlckFkZHJlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgc2VuZGVyIGFkZHJlc3MnKTtcbiAgfVxuICBpZiAoIWlzVmFsaWRBZGRyZXNzKHR4LnNlbmRlckFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNlbmRlciBhZGRyZXNzOiAke3R4LnNlbmRlckFkZHJlc3N9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBpc1ZhbGlkQWRkcmVzcyxcbiAgaXNWYWxpZFB1YmxpY0tleSxcbiAgaXNWYWxpZFByaXZhdGVLZXksXG4gIGdldFVuY29tcHJlc3NlZFB1YmxpY0tleSxcbiAgY29tcGlsZUV0aEFjY291bnRDb25zdHJ1Y3RvckNhbGxkYXRhLFxuICBjYWxjdWxhdGVDb250cmFjdEFkZHJlc3NGcm9tSGFzaCxcbiAgY29tcHV0ZVN0YXJrbmV0QWRkcmVzcyxcbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXksXG4gIG5vcm1hbGl6ZUFkZHJlc3MsXG4gIGZvcm1hdEV0aEFjY291bnRTaWduYXR1cmUsXG4gIHBhcnNlVHJhbnNmZXJDYWxsLFxuICBnZW5lcmF0ZUtleVBhaXIsXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24sXG59O1xuIl19
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUJBLDRDQUdDO0FBTUQsd0NBU0M7QUFLRCw0Q0FnQkM7QUFLRCw4Q0FHQztBQUtELDREQWFDO0FBTUQsb0ZBVUM7QUFNRCw0RUFlQztBQUtELHdEQWFDO0FBS0QsMERBSUM7QUFNRCw4REFZQztBQU1ELDhDQVlDO0FBS0QsMENBUUM7QUFLRCx3REFPQztBQUtELDhDQWVDO0FBTUQsa0RBRUM7QUFNRCx3REFVQztBQVNELHdFQStDQztBQXJURCw4Q0FBa0Y7QUFDbEYsMkNBV3FCO0FBRXJCLGdEQUF1QztBQUV2Qzs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLE9BQWU7SUFDOUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2xFLE9BQU8sSUFBSSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM1QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVE7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzFELElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixPQUFPLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBRyxHQUFHLG9CQUFRLENBQUM7SUFDcEMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8s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LENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNiLE1BQU07UUFDTixJQUFBLDJCQUFnQixFQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFBLDJCQUFnQixFQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUMvQyxDQUFDO0lBRUYsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUEsMkJBQWdCLEVBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLElBQUEsMkJBQWdCLEVBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQsa0JBQWU7SUFDYixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQix3QkFBd0I7SUFDeEIsb0NBQW9DO0lBQ3BDLGdDQUFnQztJQUNoQyxzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLGdCQUFnQjtJQUNoQix5QkFBeUI7SUFDekIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsOEJBQThCO0NBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlSGFzaE9uRWxlbWVudHMsIHBvc2VpZG9uSGFzaE1hbnksIGtlY2NhayB9IGZyb20gJ0BzY3VyZS9zdGFya25ldCc7XG5pbXBvcnQge1xuICBGRUxUX01BWCxcbiAgTUFTS18xMjgsXG4gIE9aX0VUSF9BQ0NPVU5UX0NMQVNTX0hBU0gsXG4gIEFERFJfQk9VTkQsXG4gIENPTlRSQUNUX0FERFJFU1NfUFJFRklYLFxuICBJTlZPS0VfVFhfUFJFRklYLFxuICBUUkFOU0FDVElPTl9WRVJTSU9OXzMsXG4gIEwxX0dBU19OQU1FLFxuICBMMl9HQVNfTkFNRSxcbiAgTDFfREFUQV9HQVNfTkFNRSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEsIFN0YXJrbmV0Q2FsbCwgUGFyc2VkVHJhbnNmZXJEYXRhLCBJbnZva2VUcmFuc2FjdGlvbkhhc2hQYXJhbXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGVjYyB9IGZyb20gJ0BiaXRnby9zZWNwMjU2azEnO1xuXG4vKipcbiAqIE5vcm1hbGl6ZSBhIFN0YXJrbmV0IGFkZHJlc3MgdG8gY2Fub25pY2FsIGZvcm06IDB4ICsgNjQgaGV4IGNoYXJzLCB6ZXJvLXBhZGRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaGV4ID0gYWRkcmVzcy5zdGFydHNXaXRoKCcweCcpID8gYWRkcmVzcy5zbGljZSgyKSA6IGFkZHJlc3M7XG4gIHJldHVybiAnMHgnICsgaGV4LnBhZFN0YXJ0KDY0LCAnMCcpLnRvTG93ZXJDYXNlKCk7XG59XG5cbi8qKlxuICogU3RhcmtuZXQgYWRkcmVzc2VzIGFyZSBmZWx0MjUyIHZhbHVlcyByZXByZXNlbnRlZCBhcyAweC1wcmVmaXhlZCBoZXguXG4gKiBWYWxpZCByYW5nZTogMCA8IGFkZHJlc3MgPCBGRUxUX01BWCwgd2l0aCAweCBwcmVmaXggYW5kIGhleCBjaGFycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGFkZHJlc3MgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG4gIGlmICghYWRkcmVzcy5tYXRjaCgvXjB4WzAtOWEtZkEtRl17MSw2NH0kLykpIHJldHVybiBmYWxzZTtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWwgPSBCaWdJbnQoYWRkcmVzcyk7XG4gICAgcmV0dXJuIHZhbCA+IDBuICYmIHZhbCA8IEZFTFRfTUFYO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhIHNlY3AyNTZrMSBwdWJsaWMga2V5IChjb21wcmVzc2VkIDMzIGJ5dGVzIG9yIHVuY29tcHJlc3NlZCA2NSBieXRlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKGtleSwgJ2hleCcpO1xuICAgIGlmIChidWYubGVuZ3RoID09PSAzMyAmJiAoYnVmWzBdID09PSAweDAyIHx8IGJ1ZlswXSA9PT0gMHgwMykpIHtcbiAgICAgIGVjYy5wb2ludENvbXByZXNzKGJ1ZiwgdHJ1ZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGJ1Zi5sZW5ndGggPT09IDY1ICYmIGJ1ZlswXSA9PT0gMHgwNCkge1xuICAgICAgZWNjLnBvaW50Q29tcHJlc3MoYnVmLCB0cnVlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlIGEgc2VjcDI1NmsxIHByaXZhdGUga2V5ICgzMiBieXRlcyBoZXgpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiAvXlswLTlhLWZBLUZdezY0fSQvLnRlc3Qoa2V5KTtcbn1cblxuLyoqXG4gKiBHZXQgdW5jb21wcmVzc2VkIHB1YmxpYyBrZXkgKHggfHwgeSwgMTI4IGhleCBjaGFycywgbm8gMDQgcHJlZml4KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVuY29tcHJlc3NlZFB1YmxpY0tleShjb21wcmVzc2VkSGV4OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShjb21wcmVzc2VkSGV4LCAnaGV4Jyk7XG4gIGlmIChidWYubGVuZ3RoID09PSA2NSAmJiBidWZbMF0gPT09IDB4MDQpIHtcbiAgICByZXR1cm4gY29tcHJlc3NlZEhleC5zbGljZSgyKTtcbiAgfVxuICBpZiAoYnVmLmxlbmd0aCA9PT0gMzMgJiYgKGJ1ZlswXSA9PT0gMHgwMiB8fCBidWZbMF0gPT09IDB4MDMpKSB7XG4gICAgY29uc3QgdW5jb21wcmVzc2VkID0gQnVmZmVyLmZyb20oZWNjLnBvaW50Q29tcHJlc3MoYnVmLCBmYWxzZSkpO1xuICAgIHJldHVybiB1bmNvbXByZXNzZWQudG9TdHJpbmcoJ2hleCcpLnNsaWNlKDIpO1xuICB9XG4gIGlmIChidWYubGVuZ3RoID09PSA2NCkge1xuICAgIHJldHVybiBjb21wcmVzc2VkSGV4O1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwdWJsaWMga2V5IGZvcm1hdDogJHtjb21wcmVzc2VkSGV4LnN1YnN0cmluZygwLCAxMCl9Li4uYCk7XG59XG5cbi8qKlxuICogQ29tcGlsZSBFdGhBY2NvdW50IGNvbnN0cnVjdG9yIGNhbGxkYXRhIGZyb20gZnVsbCBzZWNwMjU2azEgcHVibGljIGtleS5cbiAqIFJldHVybnMgW3hfbG93LCB4X2hpZ2gsIHlfbG93LCB5X2hpZ2hdIGFzIGZlbHQyNTIgc3RyaW5ncy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVFdGhBY2NvdW50Q29uc3RydWN0b3JDYWxsZGF0YShmdWxsUHVibGljS2V5OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHB1YlggPSBCaWdJbnQoJzB4JyArIGZ1bGxQdWJsaWNLZXkuc2xpY2UoMCwgNjQpKTtcbiAgY29uc3QgcHViWSA9IEJpZ0ludCgnMHgnICsgZnVsbFB1YmxpY0tleS5zbGljZSg2NCkpO1xuXG4gIHJldHVybiBbXG4gICAgJzB4JyArIChwdWJYICYgTUFTS18xMjgpLnRvU3RyaW5nKDE2KSxcbiAgICAnMHgnICsgKHB1YlggPj4gMTI4bikudG9TdHJpbmcoMTYpLFxuICAgICcweCcgKyAocHViWSAmIE1BU0tfMTI4KS50b1N0cmluZygxNiksXG4gICAgJzB4JyArIChwdWJZID4+IDEyOG4pLnRvU3RyaW5nKDE2KSxcbiAgXTtcbn1cblxuLyoqXG4gKiBDb21wdXRlIFN0YXJrbmV0IGNvbnRyYWN0IGFkZHJlc3MgZnJvbSBoYXNoIGNvbXBvbmVudHMuXG4gKiBSZXBsaWNhdGVzIHN0YXJrbmV0LmpzIGNhbGN1bGF0ZUNvbnRyYWN0QWRkcmVzc0Zyb21IYXNoIHVzaW5nIEBzY3VyZS9zdGFya25ldCBwZWRlcnNlbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUNvbnRyYWN0QWRkcmVzc0Zyb21IYXNoKFxuICBzYWx0OiBzdHJpbmcsXG4gIGNsYXNzSGFzaDogc3RyaW5nLFxuICBjb25zdHJ1Y3RvckNhbGxkYXRhOiBzdHJpbmdbXSxcbiAgZGVwbG95ZXJBZGRyZXNzOiBudW1iZXIgfCBiaWdpbnRcbik6IHN0cmluZyB7XG4gIGNvbnN0IGNhbGxkYXRhSGFzaCA9IGNvbXB1dGVIYXNoT25FbGVtZW50cyhjb25zdHJ1Y3RvckNhbGxkYXRhLm1hcChCaWdJbnQpKSBhcyBzdHJpbmc7XG4gIGNvbnN0IHJhd0hhc2ggPSBjb21wdXRlSGFzaE9uRWxlbWVudHMoW1xuICAgIENPTlRSQUNUX0FERFJFU1NfUFJFRklYLFxuICAgIEJpZ0ludChkZXBsb3llckFkZHJlc3MpLFxuICAgIEJpZ0ludChzYWx0KSxcbiAgICBCaWdJbnQoY2xhc3NIYXNoKSxcbiAgICBCaWdJbnQoY2FsbGRhdGFIYXNoKSxcbiAgXSkgYXMgc3RyaW5nO1xuICByZXR1cm4gbm9ybWFsaXplQWRkcmVzcygnMHgnICsgKEJpZ0ludChyYXdIYXNoKSAlIEFERFJfQk9VTkQpLnRvU3RyaW5nKDE2KSk7XG59XG5cbi8qKlxuICogQ29tcHV0ZSBTdGFya25ldCBFdGhBY2NvdW50IGNvdW50ZXJmYWN0dWFsIGFkZHJlc3MgZnJvbSBwdWJsaWMga2V5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZVN0YXJrbmV0QWRkcmVzcyhmdWxsUHVibGljS2V5OiBzdHJpbmcpOiB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgY29uc3RydWN0b3JDYWxsZGF0YTogc3RyaW5nW107XG4gIHNhbHQ6IHN0cmluZztcbn0ge1xuICBjb25zdCBjb25zdHJ1Y3RvckNhbGxkYXRhID0gY29tcGlsZUV0aEFjY291bnRDb25zdHJ1Y3RvckNhbGxkYXRhKGZ1bGxQdWJsaWNLZXkpO1xuXG4gIGNvbnN0IHB1YlggPSBCaWdJbnQoJzB4JyArIGZ1bGxQdWJsaWNLZXkuc2xpY2UoMCwgNjQpKTtcbiAgY29uc3Qgc2FsdCA9ICcweCcgKyAocHViWCAlIEZFTFRfTUFYKS50b1N0cmluZygxNik7XG5cbiAgY29uc3QgYWRkcmVzcyA9IGNhbGN1bGF0ZUNvbnRyYWN0QWRkcmVzc0Zyb21IYXNoKHNhbHQsIE9aX0VUSF9BQ0NPVU5UX0NMQVNTX0hBU0gsIGNvbnN0cnVjdG9yQ2FsbGRhdGEsIDApO1xuXG4gIHJldHVybiB7IGFkZHJlc3MsIGNvbnN0cnVjdG9yQ2FsbGRhdGEsIHNhbHQgfTtcbn1cblxuLyoqXG4gKiBEZXJpdmUgU3RhcmtuZXQgRXRoQWNjb3VudCBhZGRyZXNzIGZyb20gY29tcHJlc3NlZCBzZWNwMjU2azEgcHVibGljIGtleS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KGNvbXByZXNzZWRQdWJsaWNLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGZ1bGxQdWJsaWNLZXkgPSBnZXRVbmNvbXByZXNzZWRQdWJsaWNLZXkoY29tcHJlc3NlZFB1YmxpY0tleSk7XG4gIGNvbnN0IHsgYWRkcmVzcyB9ID0gY29tcHV0ZVN0YXJrbmV0QWRkcmVzcyhmdWxsUHVibGljS2V5KTtcbiAgcmV0dXJuIGFkZHJlc3M7XG59XG5cbi8qKlxuICogRm9ybWF0IEVDRFNBIHNpZ25hdHVyZSBmb3IgU3RhcmtuZXQgRXRoQWNjb3VudC5cbiAqIFJldHVybnMgW3JfbG93LCByX2hpZ2gsIHNfbG93LCBzX2hpZ2gsIHZdLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RXRoQWNjb3VudFNpZ25hdHVyZShyOiBzdHJpbmcsIHM6IHN0cmluZywgcmVjaWQ6IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgY29uc3QgckJpZyA9IEJpZ0ludCgnMHgnICsgcik7XG4gIGNvbnN0IHNCaWcgPSBCaWdJbnQoJzB4JyArIHMpO1xuICBjb25zdCB2ID0gQmlnSW50KHJlY2lkKTtcblxuICByZXR1cm4gW1xuICAgICcweCcgKyAockJpZyAmIE1BU0tfMTI4KS50b1N0cmluZygxNiksXG4gICAgJzB4JyArIChyQmlnID4+IDEyOG4pLnRvU3RyaW5nKDE2KSxcbiAgICAnMHgnICsgKHNCaWcgJiBNQVNLXzEyOCkudG9TdHJpbmcoMTYpLFxuICAgICcweCcgKyAoc0JpZyA+PiAxMjhuKS50b1N0cmluZygxNiksXG4gICAgJzB4JyArIHYudG9TdHJpbmcoMTYpLFxuICBdO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgcmVjaXBpZW50LCBhbW91bnQsIGFuZCB0b2tlbiBjb250cmFjdCBmcm9tIGEgdHJhbnNmZXIgY2FsbC5cbiAqIFJldmVyc2Ugb2YgVHJhbnNmZXJCdWlsZGVyLmNvbXBpbGVUcmFuc2ZlckNhbGxkYXRhOiBjYWxsZGF0YSA9IFtyZWNpcGllbnQsIGFtb3VudF9sb3csIGFtb3VudF9oaWdoXS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVHJhbnNmZXJDYWxsKGNhbGw6IFN0YXJrbmV0Q2FsbCk6IFBhcnNlZFRyYW5zZmVyRGF0YSB8IHVuZGVmaW5lZCB7XG4gIGlmIChjYWxsLmVudHJ5cG9pbnQgIT09ICd0cmFuc2ZlcicgfHwgY2FsbC5jYWxsZGF0YS5sZW5ndGggPCAzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBhbW91bnRMb3cgPSBCaWdJbnQoY2FsbC5jYWxsZGF0YVsxXSk7XG4gIGNvbnN0IGFtb3VudEhpZ2ggPSBCaWdJbnQoY2FsbC5jYWxsZGF0YVsyXSk7XG4gIGNvbnN0IGFtb3VudCA9ICgoYW1vdW50SGlnaCA8PCAxMjhuKSB8IGFtb3VudExvdykudG9TdHJpbmcoKTtcbiAgcmV0dXJuIHtcbiAgICByZWNpcGllbnQ6IGNhbGwuY2FsbGRhdGFbMF0sXG4gICAgYW1vdW50LFxuICAgIHRva2VuQ29udHJhY3Q6IGNhbGwuY29udHJhY3RBZGRyZXNzLFxuICB9O1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgbmV3IHNlY3AyNTZrMSBrZXkgcGFpci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogeyBwdWI6IHN0cmluZzsgcHJ2OiBzdHJpbmcgfSB7XG4gIGNvbnN0IHsgS2V5UGFpcjogU3RhcmtuZXRLZXlQYWlyIH0gPSByZXF1aXJlKCcuL2tleVBhaXInKTtcbiAgY29uc3Qga2V5UGFpciA9IHNlZWQgPyBuZXcgU3RhcmtuZXRLZXlQYWlyKHsgc2VlZCB9KSA6IG5ldyBTdGFya25ldEtleVBhaXIoKTtcbiAgY29uc3QgeyBwdWIsIHBydiB9ID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gIGlmICghcHJ2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQcml2YXRlIGtleSBpcyBtaXNzaW5nIGluIHRoZSBnZW5lcmF0ZWQga2V5IHBhaXIuJyk7XG4gIH1cbiAgcmV0dXJuIHsgcHViLCBwcnYgfTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSByYXcgdHJhbnNhY3Rpb24gZGF0YSBoYXMgcmVxdWlyZWQgZmllbGRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSYXdUcmFuc2FjdGlvbih0eDogU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEpOiB2b2lkIHtcbiAgaWYgKCF0eC5zZW5kZXJBZGRyZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHNlbmRlciBhZGRyZXNzJyk7XG4gIH1cbiAgaWYgKCFpc1ZhbGlkQWRkcmVzcyh0eC5zZW5kZXJBZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzZW5kZXIgYWRkcmVzczogJHt0eC5zZW5kZXJBZGRyZXNzfWApO1xuICB9XG59XG5cbi8qKlxuICogRW5jb2RlIGFuIEFTQ0lJIHN0cmluZyAobWF4IDMxIGNoYXJzKSBhcyBhIGZlbHQyNTIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVTaG9ydFN0cmluZyhzdHI6IHN0cmluZyk6IGJpZ2ludCB7XG4gIGlmIChzdHIubGVuZ3RoID4gMzEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNob3J0IHN0cmluZyB0b28gbG9uZzogJHtzdHIubGVuZ3RofSA+IDMxYCk7XG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgaWYgKGNvZGUgPiAxMjcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm9uLUFTQ0lJIGNoYXJhY3RlciBhdCBpbmRleCAke2l9OiBjb2RlICR7Y29kZX1gKTtcbiAgICB9XG4gIH1cbiAgbGV0IHJlc3VsdCA9IDBuO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIHJlc3VsdCA9IChyZXN1bHQgPDwgOG4pIHwgQmlnSW50KHN0ci5jaGFyQ29kZUF0KGkpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENvbXB1dGUgdGhlIFN0YXJrbmV0IGZ1bmN0aW9uIHNlbGVjdG9yOiBrZWNjYWsyNTYobmFtZSkgbWFza2VkIHRvIDI1MCBiaXRzLlxuICogQHNjdXJlL3N0YXJrbmV0J3Mga2VjY2FrKCkgYWxyZWFkeSBhcHBsaWVzIHRoZSAyNTAtYml0IG1hc2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3RvckZyb21OYW1lKG5hbWU6IHN0cmluZyk6IGJpZ2ludCB7XG4gIHJldHVybiBrZWNjYWsoQnVmZmVyLmZyb20obmFtZSwgJ2FzY2lpJykpO1xufVxuXG4vKipcbiAqIENvbXBpbGUgY2FsbHMgaW50byB0aGUgQ2Fpcm8gMSBtdWx0aWNhbGwgX19leGVjdXRlX18gY2FsbGRhdGEgZm9ybWF0LlxuICogRm9ybWF0OiBbbnVtX2NhbGxzLCB0b18wLCBzZWxlY3Rvcl8wLCBkYXRhX2xlbl8wLCAuLi5kYXRhXzAsIHRvXzEsIC4uLl1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVFeGVjdXRlQ2FsbGRhdGEoY2FsbHM6IFN0YXJrbmV0Q2FsbFtdKTogc3RyaW5nW10ge1xuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gIHJlc3VsdC5wdXNoKCcweCcgKyBCaWdJbnQoY2FsbHMubGVuZ3RoKS50b1N0cmluZygxNikpO1xuICBmb3IgKGNvbnN0IGNhbGwgb2YgY2FsbHMpIHtcbiAgICByZXN1bHQucHVzaChjYWxsLmNvbnRyYWN0QWRkcmVzcyk7XG4gICAgcmVzdWx0LnB1c2goJzB4JyArIGdldFNlbGVjdG9yRnJvbU5hbWUoY2FsbC5lbnRyeXBvaW50KS50b1N0cmluZygxNikpO1xuICAgIHJlc3VsdC5wdXNoKCcweCcgKyBCaWdJbnQoY2FsbC5jYWxsZGF0YS5sZW5ndGgpLnRvU3RyaW5nKDE2KSk7XG4gICAgcmVzdWx0LnB1c2goLi4uY2FsbC5jYWxsZGF0YSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZW5jb2RlUmVzb3VyY2VCb3VuZCh0eXBlTmFtZTogYmlnaW50LCBtYXhBbW91bnQ6IHN0cmluZywgbWF4UHJpY2VQZXJVbml0OiBzdHJpbmcpOiBiaWdpbnQge1xuICByZXR1cm4gKHR5cGVOYW1lIDw8IDE5Mm4pIHwgKEJpZ0ludChtYXhBbW91bnQpIDw8IDEyOG4pIHwgQmlnSW50KG1heFByaWNlUGVyVW5pdCk7XG59XG5cbi8qKlxuICogQ29tcHV0ZSB0aGUgUG9zZWlkb24gVjMgSU5WT0tFIHRyYW5zYWN0aW9uIGhhc2ggcGVyIFNOSVAtOC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUludm9rZVRyYW5zYWN0aW9uSGFzaChwYXJhbXM6IEludm9rZVRyYW5zYWN0aW9uSGFzaFBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBzZW5kZXJBZGRyZXNzLFxuICAgIGNvbXBpbGVkQ2FsbGRhdGEsXG4gICAgY2hhaW5JZCxcbiAgICBub25jZSxcbiAgICByZXNvdXJjZUJvdW5kcyxcbiAgICB0aXAgPSAnMHgwJyxcbiAgICBub25jZURhdGFBdmFpbGFiaWxpdHlNb2RlID0gMCxcbiAgICBmZWVEYXRhQXZhaWxhYmlsaXR5TW9kZSA9IDAsXG4gICAgcGF5bWFzdGVyRGF0YSA9IFtdLFxuICAgIGFjY291bnREZXBsb3ltZW50RGF0YSA9IFtdLFxuICAgIHByb29mRmFjdHMsXG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgZmVlRmllbGRIYXNoID0gcG9zZWlkb25IYXNoTWFueShbXG4gICAgQmlnSW50KHRpcCksXG4gICAgZW5jb2RlUmVzb3VyY2VCb3VuZChMMV9HQVNfTkFNRSwgcmVzb3VyY2VCb3VuZHMubDFfZ2FzLm1heF9hbW91bnQsIHJlc291cmNlQm91bmRzLmwxX2dhcy5tYXhfcHJpY2VfcGVyX3VuaXQpLFxuICAgIGVuY29kZVJlc291cmNlQm91bmQoTDJfR0FTX05BTUUsIHJlc291cmNlQm91bmRzLmwyX2dhcy5tYXhfYW1vdW50LCByZXNvdXJjZUJvdW5kcy5sMl9nYXMubWF4X3ByaWNlX3Blcl91bml0KSxcbiAgICBlbmNvZGVSZXNvdXJjZUJvdW5kKFxuICAgICAgTDFfREFUQV9HQVNfTkFNRSxcbiAgICAgIHJlc291cmNlQm91bmRzLmwxX2RhdGFfZ2FzLm1heF9hbW91bnQsXG4gICAgICByZXNvdXJjZUJvdW5kcy5sMV9kYXRhX2dhcy5tYXhfcHJpY2VfcGVyX3VuaXRcbiAgICApLFxuICBdKTtcblxuICBjb25zdCBkYU1vZGUgPSAoQmlnSW50KG5vbmNlRGF0YUF2YWlsYWJpbGl0eU1vZGUpIDw8IDMybikgfCBCaWdJbnQoZmVlRGF0YUF2YWlsYWJpbGl0eU1vZGUpO1xuXG4gIGNvbnN0IGhhc2hGaWVsZHM6IGJpZ2ludFtdID0gW1xuICAgIElOVk9LRV9UWF9QUkVGSVgsXG4gICAgVFJBTlNBQ1RJT05fVkVSU0lPTl8zLFxuICAgIEJpZ0ludChzZW5kZXJBZGRyZXNzKSxcbiAgICBmZWVGaWVsZEhhc2gsXG4gICAgcG9zZWlkb25IYXNoTWFueShwYXltYXN0ZXJEYXRhLm1hcChCaWdJbnQpKSxcbiAgICBCaWdJbnQoY2hhaW5JZCksXG4gICAgQmlnSW50KG5vbmNlKSxcbiAgICBkYU1vZGUsXG4gICAgcG9zZWlkb25IYXNoTWFueShhY2NvdW50RGVwbG95bWVudERhdGEubWFwKEJpZ0ludCkpLFxuICAgIHBvc2VpZG9uSGFzaE1hbnkoY29tcGlsZWRDYWxsZGF0YS5tYXAoQmlnSW50KSksXG4gIF07XG5cbiAgaWYgKHByb29mRmFjdHMgJiYgcHJvb2ZGYWN0cy5sZW5ndGggPiAwKSB7XG4gICAgaGFzaEZpZWxkcy5wdXNoKHBvc2VpZG9uSGFzaE1hbnkocHJvb2ZGYWN0cy5tYXAoQmlnSW50KSkpO1xuICB9XG5cbiAgY29uc3QgaGFzaCA9IHBvc2VpZG9uSGFzaE1hbnkoaGFzaEZpZWxkcyk7XG4gIHJldHVybiAnMHgnICsgaGFzaC50b1N0cmluZygxNik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaXNWYWxpZEFkZHJlc3MsXG4gIGlzVmFsaWRQdWJsaWNLZXksXG4gIGlzVmFsaWRQcml2YXRlS2V5LFxuICBnZXRVbmNvbXByZXNzZWRQdWJsaWNLZXksXG4gIGNvbXBpbGVFdGhBY2NvdW50Q29uc3RydWN0b3JDYWxsZGF0YSxcbiAgY2FsY3VsYXRlQ29udHJhY3RBZGRyZXNzRnJvbUhhc2gsXG4gIGNvbXB1dGVTdGFya25ldEFkZHJlc3MsXG4gIGdldEFkZHJlc3NGcm9tUHVibGljS2V5LFxuICBub3JtYWxpemVBZGRyZXNzLFxuICBmb3JtYXRFdGhBY2NvdW50U2lnbmF0dXJlLFxuICBwYXJzZVRyYW5zZmVyQ2FsbCxcbiAgZ2VuZXJhdGVLZXlQYWlyLFxuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uLFxuICBlbmNvZGVTaG9ydFN0cmluZyxcbiAgZ2V0U2VsZWN0b3JGcm9tTmFtZSxcbiAgY29tcGlsZUV4ZWN1dGVDYWxsZGF0YSxcbiAgY2FsY3VsYXRlSW52b2tlVHJhbnNhY3Rpb25IYXNoLFxufTtcbiJdfQ==
@@ -50,4 +50,49 @@ export declare const TEST_AMOUNTS: {
50
50
  medium: string;
51
51
  large: string;
52
52
  };
53
+ export declare const SandboxTransferData: {
54
+ senderAddress: string;
55
+ receiverAddress: string;
56
+ amount: string;
57
+ chainId: string;
58
+ tokenContract: string;
59
+ resourceBounds: {
60
+ l2_gas: {
61
+ max_amount: string;
62
+ max_price_per_unit: string;
63
+ };
64
+ l1_gas: {
65
+ max_amount: string;
66
+ max_price_per_unit: string;
67
+ };
68
+ l1_data_gas: {
69
+ max_amount: string;
70
+ max_price_per_unit: string;
71
+ };
72
+ };
73
+ };
74
+ export declare const KnownGoodInvokeTx: {
75
+ senderAddress: string;
76
+ receiverAddress: string;
77
+ amount: string;
78
+ tokenContract: string;
79
+ nonce: string;
80
+ chainId: string;
81
+ tip: string;
82
+ resourceBounds: {
83
+ l2_gas: {
84
+ max_amount: string;
85
+ max_price_per_unit: string;
86
+ };
87
+ l1_gas: {
88
+ max_amount: string;
89
+ max_price_per_unit: string;
90
+ };
91
+ l1_data_gas: {
92
+ max_amount: string;
93
+ max_price_per_unit: string;
94
+ };
95
+ };
96
+ expectedTxHash: string;
97
+ };
53
98
  //# sourceMappingURL=starknet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../../test/resources/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BpB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;CAYnC,CAAC;AA2BF,eAAO,MAAM,KAAK;;;;;CAKjB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;CAIxB,CAAC"}
1
+ {"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../../test/resources/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BpB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;CAYnC,CAAC;AA2BF,eAAO,MAAM,KAAK;;;;;CAKjB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;CAIxB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;CAW/B,CAAC;AAIF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;CAc7B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TEST_AMOUNTS = exports.rawTx = exports.StarknetTransactionData = exports.Accounts = void 0;
3
+ exports.KnownGoodInvokeTx = exports.SandboxTransferData = exports.TEST_AMOUNTS = exports.rawTx = exports.StarknetTransactionData = exports.Accounts = void 0;
4
4
  const iface_1 = require("../../src/lib/iface");
5
5
  exports.Accounts = {
6
6
  account1: {
@@ -72,4 +72,33 @@ exports.TEST_AMOUNTS = {
72
72
  medium: '10000000000000000000',
73
73
  large: '999999999999999999999999',
74
74
  };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmtuZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3Jlc291cmNlcy9zdGFya25ldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBOEQ7QUFFakQsUUFBQSxRQUFRLEdBQUc7SUFDdEIsUUFBUSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGtFQUFrRTtRQUM3RSxTQUFTLEVBQ1Asb0lBQW9JO1FBQ3RJLE9BQU8sRUFBRSxvRUFBb0U7S0FDOUU7SUFDRCxRQUFRLEVBQUU7UUFDUixTQUFTLEVBQUUsa0VBQWtFO1FBQzdFLFNBQVMsRUFDUCxvSUFBb0k7UUFDdEksT0FBTyxFQUFFLG9FQUFvRTtLQUM5RTtJQUNELFFBQVEsRUFBRTtRQUNSLFNBQVMsRUFDUCxvSUFBb0k7UUFDdEksU0FBUyxFQUFFLGtFQUFrRTtRQUM3RSxPQUFPLEVBQUUsb0VBQW9FO0tBQzlFO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLFFBQVE7WUFDbkIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsT0FBTyxFQUFFLFFBQVE7U0FDbEI7UUFDRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUUsV0FBVztZQUN0QixTQUFTLEVBQUUsV0FBVztZQUN0QixPQUFPLEVBQUUsU0FBUztTQUNuQjtLQUNGO0NBQ0YsQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsYUFBYSxFQUFFLGdCQUFRLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEMsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUU7UUFDTDtZQUNFLGVBQWUsRUFBRSxvRUFBb0U7WUFDckYsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLENBQUMsZ0JBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEtBQUssQ0FBQztTQUNsRTtLQUNGO0lBQ0QsT0FBTyxFQUFFLHdCQUF3QjtJQUNqQyxlQUFlLEVBQUUsK0JBQXVCLENBQUMsTUFBTTtDQUNoRCxDQUFDO0FBRUYsK0NBQStDO0FBQy9DLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQy9CLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDYixhQUFhLEVBQUUsZ0JBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTztJQUN4QyxLQUFLLEVBQUUsK0JBQXVCLENBQUMsS0FBSztJQUNwQyxLQUFLLEVBQUUsR0FBRztJQUNWLE9BQU8sRUFBRSx3QkFBd0I7SUFDakMsZUFBZSxFQUFFLCtCQUF1QixDQUFDLE1BQU07Q0FDaEQsQ0FBQyxFQUNGLE9BQU8sQ0FDUixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVsQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ2IsYUFBYSxFQUFFLGdCQUFRLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEMsS0FBSyxFQUFFLCtCQUF1QixDQUFDLEtBQUs7SUFDcEMsS0FBSyxFQUFFLEdBQUc7SUFDVixPQUFPLEVBQUUsd0JBQXdCO0lBQ2pDLGVBQWUsRUFBRSwrQkFBdUIsQ0FBQyxNQUFNO0lBQy9DLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUM7SUFDbEUsZUFBZSxFQUFFLG9FQUFvRTtDQUN0RixDQUFDLEVBQ0YsT0FBTyxDQUNSLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRUwsUUFBQSxLQUFLLEdBQUc7SUFDbkIsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGFBQWE7UUFDdkIsTUFBTSxFQUFFLFdBQVc7S0FDcEI7Q0FDRixDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQUc7SUFDMUIsS0FBSyxFQUFFLHFCQUFxQjtJQUM1QixNQUFNLEVBQUUsc0JBQXNCO0lBQzlCLEtBQUssRUFBRSwwQkFBMEI7Q0FDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBBY2NvdW50cyA9IHtcbiAgYWNjb3VudDE6IHtcbiAgICBzZWNyZXRLZXk6ICdjNWJjY2I4ZjQ3MWM1YzllYjY0ODNhYTc3ZWU0YjcwMDAwM2IxZTEyZGY0MzBhMjRkOTMyMzhlYjM3OGI5NjhiJyxcbiAgICBwdWJsaWNLZXk6XG4gICAgICAnMDQyYWI3N2I5NTllMjhjNGZhNDdmYThmYjllNTdjZWMzZDY2ZGY1Njg0ZDA3NmFjMmU0YzVmMjhmZDY5YTIzZGQzMWE1OWY5MDhjOGFkZDUxZWFiMzUzMGI0YWM1ZDAxNTE2NmVhZjIxOThjNTJmYTlhOGRmN2NmYWViOGZkYjdkNCcsXG4gICAgYWRkcmVzczogJzB4MDVhNjNkZDA1NjNkYjFhYjcxYjVmZmQyNWE2YjRhYWY1NzMwZGU1ZGU1M2Q2NDQyM2U0MjkzZmM4YjNlMTJmNicsXG4gIH0sXG4gIGFjY291bnQyOiB7XG4gICAgc2VjcmV0S2V5OiAnNzMzMTJjMjhkMGQ0NTViNmEyOWE5YTY2ODExZmZkYTk0ZjNkYjZiZmQ1N2JmNWMyYmVkOTE3ZWU1OTI4ZTE1ZicsXG4gICAgcHVibGljS2V5OlxuICAgICAgJzA0NGUwMTcwN2Y3MGY2YWQ4ZDlmNzllNWYyYzJmMGJhYzVlOTE1MjBlNWUyNDkxMzU0YzZjNzgyN2I1OWQ0NDE0ODg0N2Y5MTgwYWM5Njc5YTZjZTY2ZjY5YzMzMDU1MWE5OWY4ZjliNzQxOWM0Mzc3MDU2MDJhNTRjMjU4YTlkZmUnLFxuICAgIGFkZHJlc3M6ICcweDAyZTE1M2VmODZhZTc2ODIxNjBmNjlmNDIxOGI2YTQxYWViYzc5Y2ExMWRhYmIxYTRmY2Q3Y2M1NWYxNmY5NzcnLFxuICB9LFxuICBhY2NvdW50Mzoge1xuICAgIHB1YmxpY0tleTpcbiAgICAgICcwNDIyODEzNzg1ODQwMTI4NDMxMzBkY2U5YjE5MDAyZjg4YTk0OWYyMzczOTdlMmY2Y2RhMmRiMTM5MmQ1NGY2MzQ1ZmFhZjUxYzM4NGZiZmU0ZThmNjdlYjEyZmRiNTM3MzJkMmRkZmU3NDcwZjkzMTBhMGJmODI0ZGFkM2Y2YjFiJyxcbiAgICBzZWNyZXRLZXk6ICc3YjRkZTNkOGNjM2UzMTJjNzBmNjc0YjUyZjExODE4MjA1NTQ2Y2E3MDM2YzgwNzE5OTdjNDZlNDI5MTYwZGMzJyxcbiAgICBhZGRyZXNzOiAnMHgwMGI0NWEwZTlmNGIxZWZmMWUyZDJlNTI4YWU3YzQ0MzY1NTM0NmM2Mjc1MDUxODIxN2ZiODJjYmNlNGRiYjU0JyxcbiAgfSxcbiAgZXJyb3JzQWNjb3VudHM6IHtcbiAgICBhY2NvdW50MToge1xuICAgICAgc2VjcmV0S2V5OiAnbm90IG9rJyxcbiAgICAgIHB1YmxpY0tleTogJ25vdCBvaycsXG4gICAgICBhZGRyZXNzOiAnbm90IG9rJyxcbiAgICB9LFxuICAgIGFjY291bnQyOiB7XG4gICAgICBzZWNyZXRLZXk6ICd0ZXN0X3Rlc3QnLFxuICAgICAgcHVibGljS2V5OiAndGVzdF90ZXN0JyxcbiAgICAgIGFkZHJlc3M6ICdpbnZhbGlkJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhID0ge1xuICBzZW5kZXJBZGRyZXNzOiBBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLFxuICBub25jZTogJzAnLFxuICBjYWxsczogW1xuICAgIHtcbiAgICAgIGNvbnRyYWN0QWRkcmVzczogJzB4MDQ3MThmNWEwZmMzNGNjMWFmMTZhMWNkZWU5OGZmYjIwYzMxZjVjZDYxZDZhYjA3MjAxODU4ZjQyODdjOTM4ZCcsXG4gICAgICBlbnRyeXBvaW50OiAndHJhbnNmZXInLFxuICAgICAgY2FsbGRhdGE6IFtBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzLCAnMHhkZTBiNmIzYTc2NDAwMDAnLCAnMHgwJ10sXG4gICAgfSxcbiAgXSxcbiAgY2hhaW5JZDogJzB4NTM0ZTVmNTM0NTUwNGY0YzQ5NDEnLFxuICB0cmFuc2FjdGlvblR5cGU6IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLklOVk9LRSxcbn07XG5cbi8vIFJhdyB0cmFuc2FjdGlvbiBoZXggKEpTT04gc2VyaWFsaXplZCB0byBoZXgpXG5jb25zdCByYXdUeFVuc2lnbmVkID0gQnVmZmVyLmZyb20oXG4gIEpTT04uc3RyaW5naWZ5KHtcbiAgICBzZW5kZXJBZGRyZXNzOiBBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLFxuICAgIGNhbGxzOiBTdGFya25ldFRyYW5zYWN0aW9uRGF0YS5jYWxscyxcbiAgICBub25jZTogJzAnLFxuICAgIGNoYWluSWQ6ICcweDUzNGU1ZjUzNDU1MDRmNGM0OTQxJyxcbiAgICB0cmFuc2FjdGlvblR5cGU6IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLklOVk9LRSxcbiAgfSksXG4gICd1dGYtOCdcbikudG9TdHJpbmcoJ2hleCcpO1xuXG5jb25zdCByYXdUeFNpZ25lZCA9IEJ1ZmZlci5mcm9tKFxuICBKU09OLnN0cmluZ2lmeSh7XG4gICAgc2VuZGVyQWRkcmVzczogQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyxcbiAgICBjYWxsczogU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEuY2FsbHMsXG4gICAgbm9uY2U6ICcwJyxcbiAgICBjaGFpbklkOiAnMHg1MzRlNWY1MzQ1NTA0ZjRjNDk0MScsXG4gICAgdHJhbnNhY3Rpb25UeXBlOiBTdGFya25ldFRyYW5zYWN0aW9uVHlwZS5JTlZPS0UsXG4gICAgc2lnbmF0dXJlOiBbJzB4YWJjMTIzJywgJzB4ZGVmNDU2JywgJzB4Nzg5MDEyJywgJzB4MzQ1Njc4JywgJzB4MCddLFxuICAgIHRyYW5zYWN0aW9uSGFzaDogJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZicsXG4gIH0pLFxuICAndXRmLTgnXG4pLnRvU3RyaW5nKCdoZXgnKTtcblxuZXhwb3J0IGNvbnN0IHJhd1R4ID0ge1xuICB0cmFuc2Zlcjoge1xuICAgIHVuc2lnbmVkOiByYXdUeFVuc2lnbmVkLFxuICAgIHNpZ25lZDogcmF3VHhTaWduZWQsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgVEVTVF9BTU9VTlRTID0ge1xuICBzbWFsbDogJzEwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICBtZWRpdW06ICcxMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gIGxhcmdlOiAnOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5Jyxcbn07XG4iXX0=
75
+ exports.SandboxTransferData = {
76
+ senderAddress: '0x1559292d3f9ea355458f83adf235b400e79786af5dc5e3b50f5505caa2bdc84',
77
+ receiverAddress: '0x4a1e86ae265e6e6ecbea5be7f67117c3540f8aaf2ad7f1cfec33c53080f05af',
78
+ amount: '1000000000000000000',
79
+ chainId: '0x534e5f5345504f4c4941',
80
+ tokenContract: '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d',
81
+ resourceBounds: {
82
+ l2_gas: { max_amount: '0x1c9c380', max_price_per_unit: '0x174876e800' },
83
+ l1_gas: { max_amount: '0x0', max_price_per_unit: '0x5af3107a4000' },
84
+ l1_data_gas: { max_amount: '0x3e8', max_price_per_unit: '0x2540be400' },
85
+ },
86
+ };
87
+ // Known-good tx from coins-sandbox/strkMPC/transferLocal.ts (block 9537253, Sepolia)
88
+ // All inputs from the sandbox script; nonce confirmed via Voyager explorer.
89
+ exports.KnownGoodInvokeTx = {
90
+ senderAddress: '0x1559292d3f9ea355458f83adf235b400e79786af5dc5e3b50f5505caa2bdc84',
91
+ receiverAddress: '0x4a1e86ae265e6e6ecbea5be7f67117c3540f8aaf2ad7f1cfec33c53080f05af',
92
+ amount: '1000000000000000000',
93
+ tokenContract: '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d',
94
+ nonce: '0x8',
95
+ chainId: '0x534e5f5345504f4c4941',
96
+ tip: '0x0',
97
+ resourceBounds: {
98
+ l2_gas: { max_amount: '0x1c9c380', max_price_per_unit: '0x174876e800' },
99
+ l1_gas: { max_amount: '0x0', max_price_per_unit: '0x5af3107a4000' },
100
+ l1_data_gas: { max_amount: '0x3e8', max_price_per_unit: '0x2540be400' },
101
+ },
102
+ expectedTxHash: '0x739a72831c7f53634a2ffc94b78b61985e3cdffbad09ab20a1480e1bec9bdf2',
103
+ };
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmtuZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3Jlc291cmNlcy9zdGFya25ldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBOEQ7QUFFakQsUUFBQSxRQUFRLEdBQUc7SUFDdEIsUUFBUSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGtFQUFrRTtRQUM3RSxTQUFTLEVBQ1Asb0lBQW9JO1FBQ3RJLE9BQU8sRUFBRSxvRUFBb0U7S0FDOUU7SUFDRCxRQUFRLEVBQUU7UUFDUixTQUFTLEVBQUUsa0VBQWtFO1FBQzdFLFNBQVMsRUFDUCxvSUFBb0k7UUFDdEksT0FBTyxFQUFFLG9FQUFvRTtLQUM5RTtJQUNELFFBQVEsRUFBRTtRQUNSLFNBQVMsRUFDUCxvSUFBb0k7UUFDdEksU0FBUyxFQUFFLGtFQUFrRTtRQUM3RSxPQUFPLEVBQUUsb0VBQW9FO0tBQzlFO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLFFBQVE7WUFDbkIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsT0FBTyxFQUFFLFFBQVE7U0FDbEI7UUFDRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUUsV0FBVztZQUN0QixTQUFTLEVBQUUsV0FBVztZQUN0QixPQUFPLEVBQUUsU0FBUztTQUNuQjtLQUNGO0NBQ0YsQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsYUFBYSxFQUFFLGdCQUFRLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEMsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUU7UUFDTDtZQUNFLGVBQWUsRUFBRSxvRUFBb0U7WUFDckYsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLENBQUMsZ0JBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEtBQUssQ0FBQztTQUNsRTtLQUNGO0lBQ0QsT0FBTyxFQUFFLHdCQUF3QjtJQUNqQyxlQUFlLEVBQUUsK0JBQXVCLENBQUMsTUFBTTtDQUNoRCxDQUFDO0FBRUYsK0NBQStDO0FBQy9DLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQy9CLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDYixhQUFhLEVBQUUsZ0JBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTztJQUN4QyxLQUFLLEVBQUUsK0JBQXVCLENBQUMsS0FBSztJQUNwQyxLQUFLLEVBQUUsR0FBRztJQUNWLE9BQU8sRUFBRSx3QkFBd0I7SUFDakMsZUFBZSxFQUFFLCtCQUF1QixDQUFDLE1BQU07Q0FDaEQsQ0FBQyxFQUNGLE9BQU8sQ0FDUixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVsQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ2IsYUFBYSxFQUFFLGdCQUFRLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEMsS0FBSyxFQUFFLCtCQUF1QixDQUFDLEtBQUs7SUFDcEMsS0FBSyxFQUFFLEdBQUc7SUFDVixPQUFPLEVBQUUsd0JBQXdCO0lBQ2pDLGVBQWUsRUFBRSwrQkFBdUIsQ0FBQyxNQUFNO0lBQy9DLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUM7SUFDbEUsZUFBZSxFQUFFLG9FQUFvRTtDQUN0RixDQUFDLEVBQ0YsT0FBTyxDQUNSLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRUwsUUFBQSxLQUFLLEdBQUc7SUFDbkIsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGFBQWE7UUFDdkIsTUFBTSxFQUFFLFdBQVc7S0FDcEI7Q0FDRixDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQUc7SUFDMUIsS0FBSyxFQUFFLHFCQUFxQjtJQUM1QixNQUFNLEVBQUUsc0JBQXNCO0lBQzlCLEtBQUssRUFBRSwwQkFBMEI7Q0FDbEMsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsYUFBYSxFQUFFLG1FQUFtRTtJQUNsRixlQUFlLEVBQUUsbUVBQW1FO0lBQ3BGLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsT0FBTyxFQUFFLHdCQUF3QjtJQUNqQyxhQUFhLEVBQUUsb0VBQW9FO0lBQ25GLGNBQWMsRUFBRTtRQUNkLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFO1FBQ3ZFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUU7UUFDbkUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUU7S0FDeEU7Q0FDRixDQUFDO0FBRUYscUZBQXFGO0FBQ3JGLDRFQUE0RTtBQUMvRCxRQUFBLGlCQUFpQixHQUFHO0lBQy9CLGFBQWEsRUFBRSxtRUFBbUU7SUFDbEYsZUFBZSxFQUFFLG1FQUFtRTtJQUNwRixNQUFNLEVBQUUscUJBQXFCO0lBQzdCLGFBQWEsRUFBRSxvRUFBb0U7SUFDbkYsS0FBSyxFQUFFLEtBQUs7SUFDWixPQUFPLEVBQUUsd0JBQXdCO0lBQ2pDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsY0FBYyxFQUFFO1FBQ2QsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUU7UUFDdkUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRTtRQUNuRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRTtLQUN4RTtJQUNELGNBQWMsRUFBRSxtRUFBbUU7Q0FDcEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBBY2NvdW50cyA9IHtcbiAgYWNjb3VudDE6IHtcbiAgICBzZWNyZXRLZXk6ICdjNWJjY2I4ZjQ3MWM1YzllYjY0ODNhYTc3ZWU0YjcwMDAwM2IxZTEyZGY0MzBhMjRkOTMyMzhlYjM3OGI5NjhiJyxcbiAgICBwdWJsaWNLZXk6XG4gICAgICAnMDQyYWI3N2I5NTllMjhjNGZhNDdmYThmYjllNTdjZWMzZDY2ZGY1Njg0ZDA3NmFjMmU0YzVmMjhmZDY5YTIzZGQzMWE1OWY5MDhjOGFkZDUxZWFiMzUzMGI0YWM1ZDAxNTE2NmVhZjIxOThjNTJmYTlhOGRmN2NmYWViOGZkYjdkNCcsXG4gICAgYWRkcmVzczogJzB4MDVhNjNkZDA1NjNkYjFhYjcxYjVmZmQyNWE2YjRhYWY1NzMwZGU1ZGU1M2Q2NDQyM2U0MjkzZmM4YjNlMTJmNicsXG4gIH0sXG4gIGFjY291bnQyOiB7XG4gICAgc2VjcmV0S2V5OiAnNzMzMTJjMjhkMGQ0NTViNmEyOWE5YTY2ODExZmZkYTk0ZjNkYjZiZmQ1N2JmNWMyYmVkOTE3ZWU1OTI4ZTE1ZicsXG4gICAgcHVibGljS2V5OlxuICAgICAgJzA0NGUwMTcwN2Y3MGY2YWQ4ZDlmNzllNWYyYzJmMGJhYzVlOTE1MjBlNWUyNDkxMzU0YzZjNzgyN2I1OWQ0NDE0ODg0N2Y5MTgwYWM5Njc5YTZjZTY2ZjY5YzMzMDU1MWE5OWY4ZjliNzQxOWM0Mzc3MDU2MDJhNTRjMjU4YTlkZmUnLFxuICAgIGFkZHJlc3M6ICcweDAyZTE1M2VmODZhZTc2ODIxNjBmNjlmNDIxOGI2YTQxYWViYzc5Y2ExMWRhYmIxYTRmY2Q3Y2M1NWYxNmY5NzcnLFxuICB9LFxuICBhY2NvdW50Mzoge1xuICAgIHB1YmxpY0tleTpcbiAgICAgICcwNDIyODEzNzg1ODQwMTI4NDMxMzBkY2U5YjE5MDAyZjg4YTk0OWYyMzczOTdlMmY2Y2RhMmRiMTM5MmQ1NGY2MzQ1ZmFhZjUxYzM4NGZiZmU0ZThmNjdlYjEyZmRiNTM3MzJkMmRkZmU3NDcwZjkzMTBhMGJmODI0ZGFkM2Y2YjFiJyxcbiAgICBzZWNyZXRLZXk6ICc3YjRkZTNkOGNjM2UzMTJjNzBmNjc0YjUyZjExODE4MjA1NTQ2Y2E3MDM2YzgwNzE5OTdjNDZlNDI5MTYwZGMzJyxcbiAgICBhZGRyZXNzOiAnMHgwMGI0NWEwZTlmNGIxZWZmMWUyZDJlNTI4YWU3YzQ0MzY1NTM0NmM2Mjc1MDUxODIxN2ZiODJjYmNlNGRiYjU0JyxcbiAgfSxcbiAgZXJyb3JzQWNjb3VudHM6IHtcbiAgICBhY2NvdW50MToge1xuICAgICAgc2VjcmV0S2V5OiAnbm90IG9rJyxcbiAgICAgIHB1YmxpY0tleTogJ25vdCBvaycsXG4gICAgICBhZGRyZXNzOiAnbm90IG9rJyxcbiAgICB9LFxuICAgIGFjY291bnQyOiB7XG4gICAgICBzZWNyZXRLZXk6ICd0ZXN0X3Rlc3QnLFxuICAgICAgcHVibGljS2V5OiAndGVzdF90ZXN0JyxcbiAgICAgIGFkZHJlc3M6ICdpbnZhbGlkJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhID0ge1xuICBzZW5kZXJBZGRyZXNzOiBBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLFxuICBub25jZTogJzAnLFxuICBjYWxsczogW1xuICAgIHtcbiAgICAgIGNvbnRyYWN0QWRkcmVzczogJzB4MDQ3MThmNWEwZmMzNGNjMWFmMTZhMWNkZWU5OGZmYjIwYzMxZjVjZDYxZDZhYjA3MjAxODU4ZjQyODdjOTM4ZCcsXG4gICAgICBlbnRyeXBvaW50OiAndHJhbnNmZXInLFxuICAgICAgY2FsbGRhdGE6IFtBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzLCAnMHhkZTBiNmIzYTc2NDAwMDAnLCAnMHgwJ10sXG4gICAgfSxcbiAgXSxcbiAgY2hhaW5JZDogJzB4NTM0ZTVmNTM0NTUwNGY0YzQ5NDEnLFxuICB0cmFuc2FjdGlvblR5cGU6IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLklOVk9LRSxcbn07XG5cbi8vIFJhdyB0cmFuc2FjdGlvbiBoZXggKEpTT04gc2VyaWFsaXplZCB0byBoZXgpXG5jb25zdCByYXdUeFVuc2lnbmVkID0gQnVmZmVyLmZyb20oXG4gIEpTT04uc3RyaW5naWZ5KHtcbiAgICBzZW5kZXJBZGRyZXNzOiBBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLFxuICAgIGNhbGxzOiBTdGFya25ldFRyYW5zYWN0aW9uRGF0YS5jYWxscyxcbiAgICBub25jZTogJzAnLFxuICAgIGNoYWluSWQ6ICcweDUzNGU1ZjUzNDU1MDRmNGM0OTQxJyxcbiAgICB0cmFuc2FjdGlvblR5cGU6IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLklOVk9LRSxcbiAgfSksXG4gICd1dGYtOCdcbikudG9TdHJpbmcoJ2hleCcpO1xuXG5jb25zdCByYXdUeFNpZ25lZCA9IEJ1ZmZlci5mcm9tKFxuICBKU09OLnN0cmluZ2lmeSh7XG4gICAgc2VuZGVyQWRkcmVzczogQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyxcbiAgICBjYWxsczogU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEuY2FsbHMsXG4gICAgbm9uY2U6ICcwJyxcbiAgICBjaGFpbklkOiAnMHg1MzRlNWY1MzQ1NTA0ZjRjNDk0MScsXG4gICAgdHJhbnNhY3Rpb25UeXBlOiBTdGFya25ldFRyYW5zYWN0aW9uVHlwZS5JTlZPS0UsXG4gICAgc2lnbmF0dXJlOiBbJzB4YWJjMTIzJywgJzB4ZGVmNDU2JywgJzB4Nzg5MDEyJywgJzB4MzQ1Njc4JywgJzB4MCddLFxuICAgIHRyYW5zYWN0aW9uSGFzaDogJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZicsXG4gIH0pLFxuICAndXRmLTgnXG4pLnRvU3RyaW5nKCdoZXgnKTtcblxuZXhwb3J0IGNvbnN0IHJhd1R4ID0ge1xuICB0cmFuc2Zlcjoge1xuICAgIHVuc2lnbmVkOiByYXdUeFVuc2lnbmVkLFxuICAgIHNpZ25lZDogcmF3VHhTaWduZWQsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgVEVTVF9BTU9VTlRTID0ge1xuICBzbWFsbDogJzEwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICBtZWRpdW06ICcxMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gIGxhcmdlOiAnOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBTYW5kYm94VHJhbnNmZXJEYXRhID0ge1xuICBzZW5kZXJBZGRyZXNzOiAnMHgxNTU5MjkyZDNmOWVhMzU1NDU4ZjgzYWRmMjM1YjQwMGU3OTc4NmFmNWRjNWUzYjUwZjU1MDVjYWEyYmRjODQnLFxuICByZWNlaXZlckFkZHJlc3M6ICcweDRhMWU4NmFlMjY1ZTZlNmVjYmVhNWJlN2Y2NzExN2MzNTQwZjhhYWYyYWQ3ZjFjZmVjMzNjNTMwODBmMDVhZicsXG4gIGFtb3VudDogJzEwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICBjaGFpbklkOiAnMHg1MzRlNWY1MzQ1NTA0ZjRjNDk0MScsXG4gIHRva2VuQ29udHJhY3Q6ICcweDA0NzE4ZjVhMGZjMzRjYzFhZjE2YTFjZGVlOThmZmIyMGMzMWY1Y2Q2MWQ2YWIwNzIwMTg1OGY0Mjg3YzkzOGQnLFxuICByZXNvdXJjZUJvdW5kczoge1xuICAgIGwyX2dhczogeyBtYXhfYW1vdW50OiAnMHgxYzljMzgwJywgbWF4X3ByaWNlX3Blcl91bml0OiAnMHgxNzQ4NzZlODAwJyB9LFxuICAgIGwxX2dhczogeyBtYXhfYW1vdW50OiAnMHgwJywgbWF4X3ByaWNlX3Blcl91bml0OiAnMHg1YWYzMTA3YTQwMDAnIH0sXG4gICAgbDFfZGF0YV9nYXM6IHsgbWF4X2Ftb3VudDogJzB4M2U4JywgbWF4X3ByaWNlX3Blcl91bml0OiAnMHgyNTQwYmU0MDAnIH0sXG4gIH0sXG59O1xuXG4vLyBLbm93bi1nb29kIHR4IGZyb20gY29pbnMtc2FuZGJveC9zdHJrTVBDL3RyYW5zZmVyTG9jYWwudHMgKGJsb2NrIDk1MzcyNTMsIFNlcG9saWEpXG4vLyBBbGwgaW5wdXRzIGZyb20gdGhlIHNhbmRib3ggc2NyaXB0OyBub25jZSBjb25maXJtZWQgdmlhIFZveWFnZXIgZXhwbG9yZXIuXG5leHBvcnQgY29uc3QgS25vd25Hb29kSW52b2tlVHggPSB7XG4gIHNlbmRlckFkZHJlc3M6ICcweDE1NTkyOTJkM2Y5ZWEzNTU0NThmODNhZGYyMzViNDAwZTc5Nzg2YWY1ZGM1ZTNiNTBmNTUwNWNhYTJiZGM4NCcsXG4gIHJlY2VpdmVyQWRkcmVzczogJzB4NGExZTg2YWUyNjVlNmU2ZWNiZWE1YmU3ZjY3MTE3YzM1NDBmOGFhZjJhZDdmMWNmZWMzM2M1MzA4MGYwNWFmJyxcbiAgYW1vdW50OiAnMTAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gIHRva2VuQ29udHJhY3Q6ICcweDA0NzE4ZjVhMGZjMzRjYzFhZjE2YTFjZGVlOThmZmIyMGMzMWY1Y2Q2MWQ2YWIwNzIwMTg1OGY0Mjg3YzkzOGQnLFxuICBub25jZTogJzB4OCcsXG4gIGNoYWluSWQ6ICcweDUzNGU1ZjUzNDU1MDRmNGM0OTQxJyxcbiAgdGlwOiAnMHgwJyxcbiAgcmVzb3VyY2VCb3VuZHM6IHtcbiAgICBsMl9nYXM6IHsgbWF4X2Ftb3VudDogJzB4MWM5YzM4MCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4MTc0ODc2ZTgwMCcgfSxcbiAgICBsMV9nYXM6IHsgbWF4X2Ftb3VudDogJzB4MCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4NWFmMzEwN2E0MDAwJyB9LFxuICAgIGwxX2RhdGFfZ2FzOiB7IG1heF9hbW91bnQ6ICcweDNlOCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4MjU0MGJlNDAwJyB9LFxuICB9LFxuICBleHBlY3RlZFR4SGFzaDogJzB4NzM5YTcyODMxYzdmNTM2MzRhMmZmYzk0Yjc4YjYxOTg1ZTNjZGZmYmFkMDlhYjIwYTE0ODBlMWJlYzliZGYyJyxcbn07XG4iXX0=
@@ -40,14 +40,39 @@ describe('Starknet Transaction', () => {
40
40
  });
41
41
  });
42
42
  describe('toBroadcastFormat', () => {
43
- it('should produce non-empty broadcast format for unsigned tx', async () => {
43
+ it('should return Starknet RPC-ready JSON string', async () => {
44
44
  const coinConfig = statics_1.coins.get('starknet');
45
45
  const tx = new transaction_1.Transaction(coinConfig);
46
46
  await tx.fromRawTransaction(starknet_1.rawTx.transfer.unsigned);
47
47
  const payload = tx.toBroadcastFormat();
48
48
  should_1.default.exist(payload);
49
- payload.length.should.be.greaterThan(0);
49
+ const parsed = JSON.parse(payload);
50
+ parsed.type.should.equal('INVOKE');
51
+ parsed.version.should.equal('0x3');
52
+ parsed.should.have.property('sender_address');
53
+ parsed.sender_address.should.equal(starknet_1.Accounts.account1.address);
54
+ parsed.calldata.should.be.Array().and.not.empty();
55
+ parsed.calldata[0].should.equal('0x1');
56
+ parsed.should.have.property('nonce');
57
+ parsed.resource_bounds.should.have.properties(['l2_gas', 'l1_gas', 'l1_data_gas']);
58
+ parsed.resource_bounds.l2_gas.should.have.properties(['max_amount', 'max_price_per_unit']);
59
+ parsed.nonce_data_availability_mode.should.equal('L1');
60
+ parsed.fee_data_availability_mode.should.equal('L1');
61
+ });
62
+ });
63
+ describe('toInternalHex', () => {
64
+ it('should produce hex-encoded internal JSON', async () => {
65
+ const coinConfig = statics_1.coins.get('starknet');
66
+ const tx = new transaction_1.Transaction(coinConfig);
67
+ await tx.fromRawTransaction(starknet_1.rawTx.transfer.unsigned);
68
+ const hex = tx.toInternalHex();
69
+ should_1.default.exist(hex);
70
+ const json = JSON.parse(Buffer.from(hex, 'hex').toString('utf-8'));
71
+ json.should.have.property('senderAddress');
72
+ json.should.have.property('calls');
73
+ json.should.have.property('chainId');
74
+ json.should.have.property('transactionType');
50
75
  });
51
76
  });
52
77
  });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsNENBQXVDO0FBQ3ZDLDJEQUF3RDtBQUN4RCxvREFBd0Q7QUFFeEQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1FBQzFDLEVBQUUsQ0FBQywrREFBK0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3RSxNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sRUFBRSxHQUFHLElBQUkseUJBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2QyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVyRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUN4QyxFQUFFLENBQUMsNkRBQTZELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDM0UsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsZ0JBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFbkQsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDdkMsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ25ELE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekMsTUFBTSxFQUFFLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDLGdCQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRW5ELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3BDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtRQUNqQyxFQUFFLENBQUMsMkRBQTJELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekUsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsZ0JBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFckQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdkMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyByYXdUeCwgQWNjb3VudHMgfSBmcm9tICcuLi9yZXNvdXJjZXMvc3RhcmtuZXQnO1xuXG5kZXNjcmliZSgnU3RhcmtuZXQgVHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdQYXJzZSB1bnNpZ25lZCB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIHVuc2lnbmVkIHRyYW5zZmVyIGhleCBhbmQgZXh0cmFjdCBjb3JyZWN0IGZpZWxkcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ3N0YXJrbmV0Jyk7XG4gICAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2luQ29uZmlnKTtcbiAgICAgIGF3YWl0IHR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXdUeC50cmFuc2Zlci51bnNpZ25lZCk7XG5cbiAgICAgIGNvbnN0IGpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIGpzb24uc2VuZGVyLnNob3VsZC5lcXVhbChBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5leGlzdChqc29uLmFtb3VudCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdQYXJzZSBzaWduZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBzaWduZWQgdHJhbnNmZXIgaGV4IGFuZCBleHRyYWN0IGNvcnJlY3QgZmllbGRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgnc3RhcmtuZXQnKTtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5Db25maWcpO1xuICAgICAgYXdhaXQgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1R4LnRyYW5zZmVyLnNpZ25lZCk7XG5cbiAgICAgIGNvbnN0IGpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIGpzb24uc2VuZGVyLnNob3VsZC5lcXVhbChBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5leGlzdChqc29uLmFtb3VudCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdUcmFuc2FjdGlvbiBFeHBsYW5hdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGV4cGxhaW4gYSBwYXJzZWQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjb2luQ29uZmlnID0gY29pbnMuZ2V0KCdzdGFya25ldCcpO1xuICAgICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbkNvbmZpZyk7XG4gICAgICBhd2FpdCB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHgudHJhbnNmZXIuc2lnbmVkKTtcblxuICAgICAgY29uc3QgZXhwID0gdHguZXhwbGFpblRyYW5zYWN0aW9uKCk7XG4gICAgICBzaG91bGQuZXhpc3QoZXhwKTtcbiAgICAgIHNob3VsZC5leGlzdChleHAub3V0cHV0cyk7XG4gICAgICBleHAub3V0cHV0cy5sZW5ndGguc2hvdWxkLmJlLmdyZWF0ZXJUaGFuKDApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9Ccm9hZGNhc3RGb3JtYXQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBwcm9kdWNlIG5vbi1lbXB0eSBicm9hZGNhc3QgZm9ybWF0IGZvciB1bnNpZ25lZCB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ3N0YXJrbmV0Jyk7XG4gICAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2luQ29uZmlnKTtcbiAgICAgIGF3YWl0IHR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXdUeC50cmFuc2Zlci51bnNpZ25lZCk7XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgc2hvdWxkLmV4aXN0KHBheWxvYWQpO1xuICAgICAgcGF5bG9hZC5sZW5ndGguc2hvdWxkLmJlLmdyZWF0ZXJUaGFuKDApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsNENBQXVDO0FBQ3ZDLDJEQUF3RDtBQUN4RCxvREFBd0Q7QUFFeEQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1FBQzFDLEVBQUUsQ0FBQywrREFBK0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3RSxNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sRUFBRSxHQUFHLElBQUkseUJBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2QyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVyRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUN4QyxFQUFFLENBQUMsNkRBQTZELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDM0UsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsTUFBTSxFQUFF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UyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQWNjb3VudHMsIHJhd1R4IH0gZnJvbSAnLi4vcmVzb3VyY2VzL3N0YXJrbmV0JztcblxuZGVzY3JpYmUoJ1N0YXJrbmV0IFRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICBkZXNjcmliZSgnUGFyc2UgdW5zaWduZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBwYXJzZSB1bnNpZ25lZCB0cmFuc2ZlciBoZXggYW5kIGV4dHJhY3QgY29ycmVjdCBmaWVsZHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjb2luQ29uZmlnID0gY29pbnMuZ2V0KCdzdGFya25ldCcpO1xuICAgICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbkNvbmZpZyk7XG4gICAgICBhd2FpdCB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHgudHJhbnNmZXIudW5zaWduZWQpO1xuXG4gICAgICBjb25zdCBqc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBqc29uLnNlbmRlci5zaG91bGQuZXF1YWwoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZXhpc3QoanNvbi5hbW91bnQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUGFyc2Ugc2lnbmVkIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcGFyc2Ugc2lnbmVkIHRyYW5zZmVyIGhleCBhbmQgZXh0cmFjdCBjb3JyZWN0IGZpZWxkcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ3N0YXJrbmV0Jyk7XG4gICAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2luQ29uZmlnKTtcbiAgICAgIGF3YWl0IHR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXdUeC50cmFuc2Zlci5zaWduZWQpO1xuXG4gICAgICBjb25zdCBqc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBqc29uLnNlbmRlci5zaG91bGQuZXF1YWwoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZXhpc3QoanNvbi5hbW91bnQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnVHJhbnNhY3Rpb24gRXhwbGFuYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBleHBsYWluIGEgcGFyc2VkIHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgnc3RhcmtuZXQnKTtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5Db25maWcpO1xuICAgICAgYXdhaXQgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1R4LnRyYW5zZmVyLnNpZ25lZCk7XG5cbiAgICAgIGNvbnN0IGV4cCA9IHR4LmV4cGxhaW5UcmFuc2FjdGlvbigpO1xuICAgICAgc2hvdWxkLmV4aXN0KGV4cCk7XG4gICAgICBzaG91bGQuZXhpc3QoZXhwLm91dHB1dHMpO1xuICAgICAgZXhwLm91dHB1dHMubGVuZ3RoLnNob3VsZC5iZS5ncmVhdGVyVGhhbigwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3RvQnJvYWRjYXN0Rm9ybWF0JywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIFN0YXJrbmV0IFJQQy1yZWFkeSBKU09OIHN0cmluZycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ3N0YXJrbmV0Jyk7XG4gICAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2luQ29uZmlnKTtcbiAgICAgIGF3YWl0IHR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXdUeC50cmFuc2Zlci51bnNpZ25lZCk7XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgc2hvdWxkLmV4aXN0KHBheWxvYWQpO1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShwYXlsb2FkKTtcbiAgICAgIHBhcnNlZC50eXBlLnNob3VsZC5lcXVhbCgnSU5WT0tFJyk7XG4gICAgICBwYXJzZWQudmVyc2lvbi5zaG91bGQuZXF1YWwoJzB4MycpO1xuICAgICAgcGFyc2VkLnNob3VsZC5oYXZlLnByb3BlcnR5KCdzZW5kZXJfYWRkcmVzcycpO1xuICAgICAgcGFyc2VkLnNlbmRlcl9hZGRyZXNzLnNob3VsZC5lcXVhbChBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICAgIHBhcnNlZC5jYWxsZGF0YS5zaG91bGQuYmUuQXJyYXkoKS5hbmQubm90LmVtcHR5KCk7XG4gICAgICBwYXJzZWQuY2FsbGRhdGFbMF0uc2hvdWxkLmVxdWFsKCcweDEnKTtcbiAgICAgIHBhcnNlZC5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnbm9uY2UnKTtcbiAgICAgIHBhcnNlZC5yZXNvdXJjZV9ib3VuZHMuc2hvdWxkLmhhdmUucHJvcGVydGllcyhbJ2wyX2dhcycsICdsMV9nYXMnLCAnbDFfZGF0YV9nYXMnXSk7XG4gICAgICBwYXJzZWQucmVzb3VyY2VfYm91bmRzLmwyX2dhcy5zaG91bGQuaGF2ZS5wcm9wZXJ0aWVzKFsnbWF4X2Ftb3VudCcsICdtYXhfcHJpY2VfcGVyX3VuaXQnXSk7XG4gICAgICBwYXJzZWQubm9uY2VfZGF0YV9hdmFpbGFiaWxpdHlfbW9kZS5zaG91bGQuZXF1YWwoJ0wxJyk7XG4gICAgICBwYXJzZWQuZmVlX2RhdGFfYXZhaWxhYmlsaXR5X21vZGUuc2hvdWxkLmVxdWFsKCdMMScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9JbnRlcm5hbEhleCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHByb2R1Y2UgaGV4LWVuY29kZWQgaW50ZXJuYWwgSlNPTicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ3N0YXJrbmV0Jyk7XG4gICAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2luQ29uZmlnKTtcbiAgICAgIGF3YWl0IHR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXdUeC50cmFuc2Zlci51bnNpZ25lZCk7XG5cbiAgICAgIGNvbnN0IGhleCA9IHR4LnRvSW50ZXJuYWxIZXgoKTtcbiAgICAgIHNob3VsZC5leGlzdChoZXgpO1xuICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20oaGV4LCAnaGV4JykudG9TdHJpbmcoJ3V0Zi04JykpO1xuICAgICAganNvbi5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnc2VuZGVyQWRkcmVzcycpO1xuICAgICAganNvbi5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY2FsbHMnKTtcbiAgICAgIGpzb24uc2hvdWxkLmhhdmUucHJvcGVydHkoJ2NoYWluSWQnKTtcbiAgICAgIGpzb24uc2hvdWxkLmhhdmUucHJvcGVydHkoJ3RyYW5zYWN0aW9uVHlwZScpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -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":""}