@bitgo/sdk-coin-starknet 1.2.0 → 1.3.1

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.
@@ -1,3 +1,4 @@
1
+ import { StarknetResourceBounds } from './iface';
1
2
  export declare const OZ_ETH_ACCOUNT_CLASS_HASH = "0x3940bc18abf1df6bc540cabadb1cad9486c6803b95801e57b6153ae21abfe06";
2
3
  export declare const STRK_TOKEN_CONTRACT = "0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d";
3
4
  export declare const FELT_MAX: bigint;
@@ -10,4 +11,6 @@ export declare const TRANSACTION_VERSION_3 = 3n;
10
11
  export declare const L1_GAS_NAME = 83774935613779n;
11
12
  export declare const L2_GAS_NAME = 83779230581075n;
12
13
  export declare const L1_DATA_GAS_NAME = 21446383466796097n;
14
+ /** Default v3 resource bounds (matches TransactionBuilder defaults). */
15
+ export declare function defaultResourceBounds(): StarknetResourceBounds;
13
16
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,yBAAyB,sEAAsE,CAAC;AAG7G,eAAO,MAAM,mBAAmB,uEAAuE,CAAC;AAGxG,eAAO,MAAM,QAAQ,QAAyC,CAAC;AAG/D,eAAO,MAAM,QAAQ,QAAoB,CAAC;AAG1C,eAAO,MAAM,UAAU,QAAoB,CAAC;AAG5C,eAAO,MAAM,uBAAuB,gEAAwD,CAAC;AAE7F,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,gBAAgB,mBAAkB,CAAC;AAGhD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAGxC,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,gBAAgB,qBAAoB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGjD,eAAO,MAAM,yBAAyB,sEAAsE,CAAC;AAG7G,eAAO,MAAM,mBAAmB,uEAAuE,CAAC;AAGxG,eAAO,MAAM,QAAQ,QAAyC,CAAC;AAG/D,eAAO,MAAM,QAAQ,QAAoB,CAAC;AAG1C,eAAO,MAAM,UAAU,QAAoB,CAAC;AAG5C,eAAO,MAAM,uBAAuB,gEAAwD,CAAC;AAE7F,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,gBAAgB,mBAAkB,CAAC;AAGhD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAGxC,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,gBAAgB,qBAAoB,CAAC;AAElD,wEAAwE;AACxE,wBAAgB,qBAAqB,IAAI,sBAAsB,CAM9D"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.L1_DATA_GAS_NAME = exports.L2_GAS_NAME = exports.L1_GAS_NAME = exports.TRANSACTION_VERSION_3 = exports.INVOKE_TX_PREFIX = exports.DEFAULT_SEED_SIZE_BYTES = exports.CONTRACT_ADDRESS_PREFIX = exports.ADDR_BOUND = exports.MASK_128 = exports.FELT_MAX = exports.STRK_TOKEN_CONTRACT = exports.OZ_ETH_ACCOUNT_CLASS_HASH = void 0;
4
+ exports.defaultResourceBounds = defaultResourceBounds;
4
5
  // OZ EthAccountUpgradeable class hash (v0.17.0) — secp256k1 signature verification
5
6
  exports.OZ_ETH_ACCOUNT_CLASS_HASH = '0x3940bc18abf1df6bc540cabadb1cad9486c6803b95801e57b6153ae21abfe06';
6
7
  // STRK token contract (same on both mainnet and sepolia)
@@ -22,4 +23,12 @@ exports.TRANSACTION_VERSION_3 = 3n;
22
23
  exports.L1_GAS_NAME = 0x4c315f474153n; // "L1_GAS"
23
24
  exports.L2_GAS_NAME = 0x4c325f474153n; // "L2_GAS"
24
25
  exports.L1_DATA_GAS_NAME = 0x4c315f44415441n; // "L1_DATA" — NOT "L1_DATA_GAS"
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUZBQW1GO0FBQ3RFLFFBQUEseUJBQXlCLEdBQUcsbUVBQW1FLENBQUM7QUFFN0cseURBQXlEO0FBQzVDLFFBQUEsbUJBQW1CLEdBQUcsb0VBQW9FLENBQUM7QUFFeEcsNkNBQTZDO0FBQ2hDLFFBQUEsUUFBUSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFFL0QsNkJBQTZCO0FBQ2hCLFFBQUEsUUFBUSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUUxQyxzQ0FBc0M7QUFDekIsUUFBQSxVQUFVLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7QUFFNUMsaURBQWlEO0FBQ3BDLFFBQUEsdUJBQXVCLEdBQUcscURBQXFELENBQUM7QUFFaEYsUUFBQSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFMUMsMERBQTBEO0FBQzdDLFFBQUEsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO0FBRWhELHlCQUF5QjtBQUNaLFFBQUEscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBRXhDLHlEQUF5RDtBQUM1QyxRQUFBLFdBQVcsR0FBRyxlQUFlLENBQUMsQ0FBQyxXQUFXO0FBQzFDLFFBQUEsV0FBVyxHQUFHLGVBQWUsQ0FBQyxDQUFDLFdBQVc7QUFDMUMsUUFBQSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE9aIEV0aEFjY291bnRVcGdyYWRlYWJsZSBjbGFzcyBoYXNoICh2MC4xNy4wKSDigJQgc2VjcDI1NmsxIHNpZ25hdHVyZSB2ZXJpZmljYXRpb25cbmV4cG9ydCBjb25zdCBPWl9FVEhfQUNDT1VOVF9DTEFTU19IQVNIID0gJzB4Mzk0MGJjMThhYmYxZGY2YmM1NDBjYWJhZGIxY2FkOTQ4NmM2ODAzYjk1ODAxZTU3YjYxNTNhZTIxYWJmZTA2JztcblxuLy8gU1RSSyB0b2tlbiBjb250cmFjdCAoc2FtZSBvbiBib3RoIG1haW5uZXQgYW5kIHNlcG9saWEpXG5leHBvcnQgY29uc3QgU1RSS19UT0tFTl9DT05UUkFDVCA9ICcweDA0NzE4ZjVhMGZjMzRjYzFhZjE2YTFjZGVlOThmZmIyMGMzMWY1Y2Q2MWQ2YWIwNzIwMTg1OGY0Mjg3YzkzOGQnO1xuXG4vLyBmZWx0MjUyIG1heCB2YWx1ZSAoMl4yNTEgKyAxNyAqIDJeMTkyICsgMSlcbmV4cG9ydCBjb25zdCBGRUxUX01BWCA9ICgxbiA8PCAyNTFuKSArIDE3biAqICgxbiA8PCAxOTJuKSArIDFuO1xuXG4vLyB1MjU2IHNwbGl0IG1hc2sgKDEyOCBiaXRzKVxuZXhwb3J0IGNvbnN0IE1BU0tfMTI4ID0gKDFuIDw8IDEyOG4pIC0gMW47XG5cbi8vIENvbnRyYWN0IGFkZHJlc3MgYm91bmQ6IDJeMjUxIC0gMjU2XG5leHBvcnQgY29uc3QgQUREUl9CT1VORCA9IDJuICoqIDI1MW4gLSAyNTZuO1xuXG4vLyBlbmNvZGVTaG9ydFN0cmluZygnU1RBUktORVRfQ09OVFJBQ1RfQUREUkVTUycpXG5leHBvcnQgY29uc3QgQ09OVFJBQ1RfQUREUkVTU19QUkVGSVggPSAweDUzNTQ0MTUyNGI0ZTQ1NTQ1ZjQzNGY0ZTU0NTI0MTQzNTQ1ZjQxNDQ0NDUyNDU1MzUzbjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gMTY7XG5cbi8vIFYzIHRyYW5zYWN0aW9uIGhhc2ggcHJlZml4OiBlbmNvZGVTaG9ydFN0cmluZyhcImludm9rZVwiKVxuZXhwb3J0IGNvbnN0IElOVk9LRV9UWF9QUkVGSVggPSAweDY5NmU3NjZmNmI2NW47XG5cbi8vIFYzIHRyYW5zYWN0aW9uIHZlcnNpb25cbmV4cG9ydCBjb25zdCBUUkFOU0FDVElPTl9WRVJTSU9OXzMgPSAzbjtcblxuLy8gUmVzb3VyY2UgYm91bmQgdHlwZSBuYW1lcyAoc2hvcnQtc3RyaW5nIGVuY29kZWQgZmVsdHMpXG5leHBvcnQgY29uc3QgTDFfR0FTX05BTUUgPSAweDRjMzE1ZjQ3NDE1M247IC8vIFwiTDFfR0FTXCJcbmV4cG9ydCBjb25zdCBMMl9HQVNfTkFNRSA9IDB4NGMzMjVmNDc0MTUzbjsgLy8gXCJMMl9HQVNcIlxuZXhwb3J0IGNvbnN0IEwxX0RBVEFfR0FTX05BTUUgPSAweDRjMzE1ZjQ0NDE1NDQxbjsgLy8gXCJMMV9EQVRBXCIg4oCUIE5PVCBcIkwxX0RBVEFfR0FTXCJcbiJdfQ==
26
+ /** Default v3 resource bounds (matches TransactionBuilder defaults). */
27
+ function defaultResourceBounds() {
28
+ return {
29
+ l2_gas: { max_amount: '0x1c9c380', max_price_per_unit: '0x174876e800' },
30
+ l1_gas: { max_amount: '0x0', max_price_per_unit: '0x5af3107a4000' },
31
+ l1_data_gas: { max_amount: '0x3e8', max_price_per_unit: '0x2540be400' },
32
+ };
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0NBLHNEQU1DO0FBdENELG1GQUFtRjtBQUN0RSxRQUFBLHlCQUF5QixHQUFHLG1FQUFtRSxDQUFDO0FBRTdHLHlEQUF5RDtBQUM1QyxRQUFBLG1CQUFtQixHQUFHLG9FQUFvRSxDQUFDO0FBRXhHLDZDQUE2QztBQUNoQyxRQUFBLFFBQVEsR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRS9ELDZCQUE2QjtBQUNoQixRQUFBLFFBQVEsR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFFMUMsc0NBQXNDO0FBQ3pCLFFBQUEsVUFBVSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRTVDLGlEQUFpRDtBQUNwQyxRQUFBLHVCQUF1QixHQUFHLHFEQUFxRCxDQUFDO0FBRWhGLFFBQUEsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBRTFDLDBEQUEwRDtBQUM3QyxRQUFBLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztBQUVoRCx5QkFBeUI7QUFDWixRQUFBLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUV4Qyx5REFBeUQ7QUFDNUMsUUFBQSxXQUFXLEdBQUcsZUFBZSxDQUFDLENBQUMsV0FBVztBQUMxQyxRQUFBLFdBQVcsR0FBRyxlQUFlLENBQUMsQ0FBQyxXQUFXO0FBQzFDLFFBQUEsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxnQ0FBZ0M7QUFFbkYsd0VBQXdFO0FBQ3hFLFNBQWdCLHFCQUFxQjtJQUNuQyxPQUFPO1FBQ0wsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUU7UUFDdkUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRTtRQUNuRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRTtLQUN4RSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXJrbmV0UmVzb3VyY2VCb3VuZHMgfSBmcm9tICcuL2lmYWNlJztcblxuLy8gT1ogRXRoQWNjb3VudFVwZ3JhZGVhYmxlIGNsYXNzIGhhc2ggKHYwLjE3LjApIOKAlCBzZWNwMjU2azEgc2lnbmF0dXJlIHZlcmlmaWNhdGlvblxuZXhwb3J0IGNvbnN0IE9aX0VUSF9BQ0NPVU5UX0NMQVNTX0hBU0ggPSAnMHgzOTQwYmMxOGFiZjFkZjZiYzU0MGNhYmFkYjFjYWQ5NDg2YzY4MDNiOTU4MDFlNTdiNjE1M2FlMjFhYmZlMDYnO1xuXG4vLyBTVFJLIHRva2VuIGNvbnRyYWN0IChzYW1lIG9uIGJvdGggbWFpbm5ldCBhbmQgc2Vwb2xpYSlcbmV4cG9ydCBjb25zdCBTVFJLX1RPS0VOX0NPTlRSQUNUID0gJzB4MDQ3MThmNWEwZmMzNGNjMWFmMTZhMWNkZWU5OGZmYjIwYzMxZjVjZDYxZDZhYjA3MjAxODU4ZjQyODdjOTM4ZCc7XG5cbi8vIGZlbHQyNTIgbWF4IHZhbHVlICgyXjI1MSArIDE3ICogMl4xOTIgKyAxKVxuZXhwb3J0IGNvbnN0IEZFTFRfTUFYID0gKDFuIDw8IDI1MW4pICsgMTduICogKDFuIDw8IDE5Mm4pICsgMW47XG5cbi8vIHUyNTYgc3BsaXQgbWFzayAoMTI4IGJpdHMpXG5leHBvcnQgY29uc3QgTUFTS18xMjggPSAoMW4gPDwgMTI4bikgLSAxbjtcblxuLy8gQ29udHJhY3QgYWRkcmVzcyBib3VuZDogMl4yNTEgLSAyNTZcbmV4cG9ydCBjb25zdCBBRERSX0JPVU5EID0gMm4gKiogMjUxbiAtIDI1Nm47XG5cbi8vIGVuY29kZVNob3J0U3RyaW5nKCdTVEFSS05FVF9DT05UUkFDVF9BRERSRVNTJylcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9BRERSRVNTX1BSRUZJWCA9IDB4NTM1NDQxNTI0YjRlNDU1NDVmNDM0ZjRlNTQ1MjQxNDM1NDVmNDE0NDQ0NTI0NTUzNTNuO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUVEX1NJWkVfQllURVMgPSAxNjtcblxuLy8gVjMgdHJhbnNhY3Rpb24gaGFzaCBwcmVmaXg6IGVuY29kZVNob3J0U3RyaW5nKFwiaW52b2tlXCIpXG5leHBvcnQgY29uc3QgSU5WT0tFX1RYX1BSRUZJWCA9IDB4Njk2ZTc2NmY2YjY1bjtcblxuLy8gVjMgdHJhbnNhY3Rpb24gdmVyc2lvblxuZXhwb3J0IGNvbnN0IFRSQU5TQUNUSU9OX1ZFUlNJT05fMyA9IDNuO1xuXG4vLyBSZXNvdXJjZSBib3VuZCB0eXBlIG5hbWVzIChzaG9ydC1zdHJpbmcgZW5jb2RlZCBmZWx0cylcbmV4cG9ydCBjb25zdCBMMV9HQVNfTkFNRSA9IDB4NGMzMTVmNDc0MTUzbjsgLy8gXCJMMV9HQVNcIlxuZXhwb3J0IGNvbnN0IEwyX0dBU19OQU1FID0gMHg0YzMyNWY0NzQxNTNuOyAvLyBcIkwyX0dBU1wiXG5leHBvcnQgY29uc3QgTDFfREFUQV9HQVNfTkFNRSA9IDB4NGMzMTVmNDQ0MTU0NDFuOyAvLyBcIkwxX0RBVEFcIiDigJQgTk9UIFwiTDFfREFUQV9HQVNcIlxuXG4vKiogRGVmYXVsdCB2MyByZXNvdXJjZSBib3VuZHMgKG1hdGNoZXMgVHJhbnNhY3Rpb25CdWlsZGVyIGRlZmF1bHRzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0UmVzb3VyY2VCb3VuZHMoKTogU3RhcmtuZXRSZXNvdXJjZUJvdW5kcyB7XG4gIHJldHVybiB7XG4gICAgbDJfZ2FzOiB7IG1heF9hbW91bnQ6ICcweDFjOWMzODAnLCBtYXhfcHJpY2VfcGVyX3VuaXQ6ICcweDE3NDg3NmU4MDAnIH0sXG4gICAgbDFfZ2FzOiB7IG1heF9hbW91bnQ6ICcweDAnLCBtYXhfcHJpY2VfcGVyX3VuaXQ6ICcweDVhZjMxMDdhNDAwMCcgfSxcbiAgICBsMV9kYXRhX2dhczogeyBtYXhfYW1vdW50OiAnMHgzZTgnLCBtYXhfcHJpY2VfcGVyX3VuaXQ6ICcweDI1NDBiZTQwMCcgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -15,7 +15,9 @@ export declare class Transaction extends BaseTransaction {
15
15
  toJson(): TxData;
16
16
  /** @inheritDoc */
17
17
  explainTransaction(): StarknetTransactionExplanation;
18
- /** @inheritdoc */
18
+ /** Hex-encoded internal JSON — used by WP for round-trip via fromRawTransaction. */
19
+ toInternalHex(): string;
20
+ /** @inheritdoc — returns Starknet RPC-ready JSON string for starknet_addInvokeTransaction. */
19
21
  toBroadcastFormat(): string;
20
22
  /** @inheritdoc */
21
23
  canSign(_key: BaseKey): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAA2B,8BAA8B,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGnH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,wBAAwB,EAAG,uBAAuB,CAAC;IAC7D,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;gBAE1B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,uBAAuB,IAAI,uBAAuB,CAErD;IAED,IAAI,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,EAKxD;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAE1C;IAED,IAAI,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAE/B;IAEK,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC/D,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAkBhB,kBAAkB;IAClB,kBAAkB,IAAI,8BAA8B;IAwBpD,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAS3B,kBAAkB;IAClB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAGhC"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAEL,uBAAuB,EAEvB,8BAA8B,EAC9B,MAAM,EACP,MAAM,SAAS,CAAC;AAiBjB,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,wBAAwB,EAAG,uBAAuB,CAAC;IAC7D,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;gBAE1B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,uBAAuB,IAAI,uBAAuB,CAErD;IAED,IAAI,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,EAKxD;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAE1C;IAED,IAAI,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAE/B;IAEK,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC/D,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAkBhB,kBAAkB;IAClB,kBAAkB,IAAI,8BAA8B;IAwBpD,oFAAoF;IACpF,aAAa,IAAI,MAAM;IAQvB,8FAA8F;IAC9F,iBAAiB,IAAI,MAAM;IAqB3B,kBAAkB;IAClB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAGhC"}
@@ -35,8 +35,21 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Transaction = void 0;
37
37
  const sdk_core_1 = require("@bitgo/sdk-core");
38
+ const constants_1 = require("./constants");
38
39
  const iface_1 = require("./iface");
39
40
  const utils_1 = __importStar(require("./utils"));
41
+ function resolveCompiledCalldata(data) {
42
+ if (data.compiledCalldata && data.compiledCalldata.length > 0) {
43
+ return data.compiledCalldata;
44
+ }
45
+ if (data.calls.length > 0) {
46
+ return (0, utils_1.compileExecuteCalldata)(data.calls);
47
+ }
48
+ throw new sdk_core_1.InvalidTransactionError('Missing calldata: no compiledCalldata or calls');
49
+ }
50
+ function resolveResourceBounds(data) {
51
+ return data.resourceBounds ?? (0, constants_1.defaultResourceBounds)();
52
+ }
40
53
  class Transaction extends sdk_core_1.BaseTransaction {
41
54
  constructor(_coinConfig) {
42
55
  super(_coinConfig);
@@ -127,14 +140,34 @@ class Transaction extends sdk_core_1.BaseTransaction {
127
140
  changeAmount: '0',
128
141
  };
129
142
  }
130
- /** @inheritdoc */
143
+ /** Hex-encoded internal JSON — used by WP for round-trip via fromRawTransaction. */
144
+ toInternalHex() {
145
+ const data = this._starknetTransactionData;
146
+ if (!data) {
147
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction');
148
+ }
149
+ return Buffer.from(JSON.stringify(data), 'utf-8').toString('hex');
150
+ }
151
+ /** @inheritdoc — returns Starknet RPC-ready JSON string for starknet_addInvokeTransaction. */
131
152
  toBroadcastFormat() {
132
153
  const data = this._starknetTransactionData;
133
154
  if (!data) {
134
155
  throw new sdk_core_1.InvalidTransactionError('Empty transaction');
135
156
  }
136
- const json = JSON.stringify(data);
137
- return Buffer.from(json, 'utf-8').toString('hex');
157
+ return JSON.stringify({
158
+ type: 'INVOKE',
159
+ version: '0x3',
160
+ sender_address: data.senderAddress,
161
+ calldata: resolveCompiledCalldata(data),
162
+ signature: data.signature || [],
163
+ nonce: data.nonce,
164
+ resource_bounds: resolveResourceBounds(data),
165
+ tip: data.tip || '0x0',
166
+ paymaster_data: [],
167
+ account_deployment_data: [],
168
+ nonce_data_availability_mode: 'L1',
169
+ fee_data_availability_mode: 'L1',
170
+ });
138
171
  }
139
172
  /** @inheritdoc */
140
173
  canSign(_key) {
@@ -142,4 +175,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
142
175
  }
143
176
  }
144
177
  exports.Transaction = Transaction;
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQU15QjtBQUV6QixtQ0FBbUg7QUFDbkgsaURBQW1EO0FBRW5ELE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSTlDLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSx1QkFBdUIsQ0FBQyxJQUE2QjtRQUN2RCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLGlCQUFpQixDQUFDLEVBQVU7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQXNCO1FBQzdDLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFD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RUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTztZQUNQLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUc7WUFDbEMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtZQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsWUFBWSxFQUFFLEdBQUc7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCO1FBQ2YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLElBQWE7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUF6SEQsa0NBeUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblJlY2lwaWVudCxcbiAgVHJhbnNhY3Rpb25UeXBlLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBTdGFya25ldFRyYW5zYWN0aW9uRGF0YSwgU3RhcmtuZXRUcmFuc2FjdGlvblR5cGUsIFN0YXJrbmV0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiwgVHhEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMsIHsgcGFyc2VUcmFuc2ZlckNhbGwgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJvdGVjdGVkIF9zdGFya25ldFRyYW5zYWN0aW9uRGF0YSE6IFN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhO1xuICBwcm90ZWN0ZWQgX3NpZ25lZFRyYW5zYWN0aW9uPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBzdGFya25ldFRyYW5zYWN0aW9uRGF0YSgpOiBTdGFya25ldFRyYW5zYWN0aW9uRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJrbmV0VHJhbnNhY3Rpb25EYXRhO1xuICB9XG5cbiAgc2V0IHN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhKGRhdGE6IFN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhKSB7XG4gICAgdGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEgPSBkYXRhO1xuICAgIGlmIChkYXRhLnRyYW5zYWN0aW9uSGFzaCkge1xuICAgICAgdGhpcy5faWQgPSBkYXRhLnRyYW5zYWN0aW9uSGFzaDtcbiAgICB9XG4gIH1cblxuICBnZXQgc2lnbmFibGVIZXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGE/LnRyYW5zYWN0aW9uSGFzaCB8fCAnJztcbiAgfVxuXG4gIGdldCBzaWduZWRUcmFuc2FjdGlvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCBzaWduZWRUcmFuc2FjdGlvbih0eDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIGFzeW5jIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHJhd1RyYW5zYWN0aW9uLCAnaGV4Jyk7XG4gICAgICBjb25zdCBqc29uU3RyaW5nID0gYnVmZmVyLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcblxuICAgICAgdGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICAgIHNlbmRlckFkZHJlc3M6IHBhcnNlZC5zZW5kZXJBZGRyZXNzLFxuICAgICAgICBjYWxsczogcGFyc2VkLmNhbGxzIHx8IFtdLFxuICAgICAgICBub25jZTogcGFyc2VkLm5vbmNlLFxuICAgICAgICBjaGFpbklkOiBwYXJzZWQuY2hhaW5JZCxcbiAgICAgICAgdHJhbnNhY3Rpb25UeXBlOiBwYXJzZWQudHJhbnNhY3Rpb25UeXBlIHx8IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLklOVk9LRSxcbiAgICAgICAgc2lnbmF0dXJlOiBwYXJzZWQuc2lnbmF0dXJlLFxuICAgICAgICB0cmFuc2FjdGlvbkhhc2g6IHBhcnNlZC50cmFuc2FjdGlvbkhhc2gsXG4gICAgICAgIHJlc291cmNlQm91bmRzOiBwYXJzZWQucmVzb3VyY2VCb3VuZHMsXG4gICAgICAgIHRpcDogcGFyc2VkLnRpcCxcbiAgICAgICAgY29tcGlsZWRDYWxsZGF0YTogcGFyc2VkLmNvbXBpbGVkQ2FsbGRhdGEsXG4gICAgICAgIG5vbmNlRGF0YUF2YWlsYWJpbGl0eU1vZGU6IHBhcnNlZC5ub25jZURhdGFBdmFpbGFiaWxpdHlNb2RlLFxuICAgICAgICBmZWVEYXRhQXZhaWxhYmlsaXR5TW9kZTogcGFyc2VkLmZlZURhdGFBdmFpbGFiaWxpdHlNb2RlLFxuICAgICAgfTtcblxuICAgICAgaWYgKHBhcnNlZC5zaWduYXR1cmUgJiYgcGFyc2VkLnNpZ25hdHVyZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uID0gcmF3VHJhbnNhY3Rpb247XG4gICAgICB9XG5cbiAgICAgIHV0aWxzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24odGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEpO1xuICAgICAgdGhpcy5faWQgPSBwYXJzZWQudHJhbnNhY3Rpb25IYXNoIHx8ICcnO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb246ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdGFya25ldFRyYW5zYWN0aW9uRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCB0cmFuc2ZlciA9XG4gICAgICB0aGlzLl9zdGFya25ldFRyYW5zYWN0aW9uRGF0YS5jYWxscy5sZW5ndGggPiAwXG4gICAgICAgID8gcGFyc2VUcmFuc2ZlckNhbGwodGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEuY2FsbHNbMF0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5faWQsXG4gICAgICBzZW5kZXI6IHRoaXMuX3N0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLnNlbmRlckFkZHJlc3MsXG4gICAgICByZWNpcGllbnQ6IHRyYW5zZmVyPy5yZWNpcGllbnQsXG4gICAgICBhbW91bnQ6IHRyYW5zZmVyPy5hbW91bnQsXG4gICAgICBub25jZTogdGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEubm9uY2UsXG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGUuU2VuZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBTdGFya25ldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnXTtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW107XG5cbiAgICBpZiAocmVzdWx0LnJlY2lwaWVudCAmJiByZXN1bHQuYW1vdW50KSB7XG4gICAgICBvdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiByZXN1bHQucmVjaXBpZW50LFxuICAgICAgICBhbW91bnQ6IHJlc3VsdC5hbW91bnQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50OiByZXN1bHQuYW1vdW50IHx8ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6ICcwJyB9LFxuICAgICAgdHlwZTogcmVzdWx0LnR5cGUsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGE7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oanNvbiwgJ3V0Zi04JykudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oX2tleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQU15QjtBQUV6QiwyQ0FBb0Q7QUFDcEQsbUNBTWlCO0FBQ2pCLGlEQUEyRTtBQUUzRSxTQUFTLHVCQUF1QixDQUFDLElBQTZCO0lBQzVELElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFBLDhCQUFzQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsTUFBTSxJQUFJLGtDQUF1QixDQUFDLGdEQUFnRCxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsSUFBNkI7SUFDMUQsT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUEsaUNBQXFCLEdBQUUsQ0FBQztBQUN4RCxDQUFDO0FBRUQsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFJOUMsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLHVCQUF1QixDQUFDLElBQTZCO1FBQ3ZELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsR0FB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cEUsQ0FBQztJQUVELDhGQUE4RjtJQUM5RixpQkFBaUI7UUFDZixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLGtDQUF1QixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxLQUFLO1lBQ2QsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2xDLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLENBQUM7WUFDdkMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRTtZQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsZUFBZSxFQUFFLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUM1QyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLO1lBQ3RCLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLHVCQUF1QixFQUFFLEVBQUU7WUFDM0IsNEJBQTRCLEVBQUUsSUFBSTtZQUNsQywwQkFBMEIsRUFBRSxJQUFJO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLElBQWE7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUE5SUQsa0NBOElDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblJlY2lwaWVudCxcbiAgVHJhbnNhY3Rpb25UeXBlLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBkZWZhdWx0UmVzb3VyY2VCb3VuZHMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBTdGFya25ldFJlc291cmNlQm91bmRzLFxuICBTdGFya25ldFRyYW5zYWN0aW9uRGF0YSxcbiAgU3RhcmtuZXRUcmFuc2FjdGlvblR5cGUsXG4gIFN0YXJrbmV0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgVHhEYXRhLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB1dGlscywgeyBjb21waWxlRXhlY3V0ZUNhbGxkYXRhLCBwYXJzZVRyYW5zZmVyQ2FsbCB9IGZyb20gJy4vdXRpbHMnO1xuXG5mdW5jdGlvbiByZXNvbHZlQ29tcGlsZWRDYWxsZGF0YShkYXRhOiBTdGFya25ldFRyYW5zYWN0aW9uRGF0YSk6IHN0cmluZ1tdIHtcbiAgaWYgKGRhdGEuY29tcGlsZWRDYWxsZGF0YSAmJiBkYXRhLmNvbXBpbGVkQ2FsbGRhdGEubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBkYXRhLmNvbXBpbGVkQ2FsbGRhdGE7XG4gIH1cbiAgaWYgKGRhdGEuY2FsbHMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBjb21waWxlRXhlY3V0ZUNhbGxkYXRhKGRhdGEuY2FsbHMpO1xuICB9XG4gIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBjYWxsZGF0YTogbm8gY29tcGlsZWRDYWxsZGF0YSBvciBjYWxscycpO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlUmVzb3VyY2VCb3VuZHMoZGF0YTogU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEpOiBTdGFya25ldFJlc291cmNlQm91bmRzIHtcbiAgcmV0dXJuIGRhdGEucmVzb3VyY2VCb3VuZHMgPz8gZGVmYXVsdFJlc291cmNlQm91bmRzKCk7XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByb3RlY3RlZCBfc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEhOiBTdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcbiAgcHJvdGVjdGVkIF9zaWduZWRUcmFuc2FjdGlvbj86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEoKTogU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEge1xuICAgIHJldHVybiB0aGlzLl9zdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcbiAgfVxuXG4gIHNldCBzdGFya25ldFRyYW5zYWN0aW9uRGF0YShkYXRhOiBTdGFya25ldFRyYW5zYWN0aW9uRGF0YSkge1xuICAgIHRoaXMuX3N0YXJrbmV0VHJhbnNhY3Rpb25EYXRhID0gZGF0YTtcbiAgICBpZiAoZGF0YS50cmFuc2FjdGlvbkhhc2gpIHtcbiAgICAgIHRoaXMuX2lkID0gZGF0YS50cmFuc2FjdGlvbkhhc2g7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNpZ25hYmxlSGV4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJrbmV0VHJhbnNhY3Rpb25EYXRhPy50cmFuc2FjdGlvbkhhc2ggfHwgJyc7XG4gIH1cblxuICBnZXQgc2lnbmVkVHJhbnNhY3Rpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgc2lnbmVkVHJhbnNhY3Rpb24odHg6IHN0cmluZykge1xuICAgIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICBhc3luYyBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbShyYXdUcmFuc2FjdGlvbiwgJ2hleCcpO1xuICAgICAgY29uc3QganNvblN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygndXRmLTgnKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoanNvblN0cmluZyk7XG5cbiAgICAgIHRoaXMuX3N0YXJrbmV0VHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgICBzZW5kZXJBZGRyZXNzOiBwYXJzZWQuc2VuZGVyQWRkcmVzcyxcbiAgICAgICAgY2FsbHM6IHBhcnNlZC5jYWxscyB8fCBbXSxcbiAgICAgICAgbm9uY2U6IHBhcnNlZC5ub25jZSxcbiAgICAgICAgY2hhaW5JZDogcGFyc2VkLmNoYWluSWQsXG4gICAgICAgIHRyYW5zYWN0aW9uVHlwZTogcGFyc2VkLnRyYW5zYWN0aW9uVHlwZSB8fCBTdGFya25ldFRyYW5zYWN0aW9uVHlwZS5JTlZPS0UsXG4gICAgICAgIHNpZ25hdHVyZTogcGFyc2VkLnNpZ25hdHVyZSxcbiAgICAgICAgdHJhbnNhY3Rpb25IYXNoOiBwYXJzZWQudHJhbnNhY3Rpb25IYXNoLFxuICAgICAgICByZXNvdXJjZUJvdW5kczogcGFyc2VkLnJlc291cmNlQm91bmRzLFxuICAgICAgICB0aXA6IHBhcnNlZC50aXAsXG4gICAgICAgIGNvbXBpbGVkQ2FsbGRhdGE6IHBhcnNlZC5jb21waWxlZENhbGxkYXRhLFxuICAgICAgICBub25jZURhdGFBdmFpbGFiaWxpdHlNb2RlOiBwYXJzZWQubm9uY2VEYXRhQXZhaWxhYmlsaXR5TW9kZSxcbiAgICAgICAgZmVlRGF0YUF2YWlsYWJpbGl0eU1vZGU6IHBhcnNlZC5mZWVEYXRhQXZhaWxhYmlsaXR5TW9kZSxcbiAgICAgIH07XG5cbiAgICAgIGlmIChwYXJzZWQuc2lnbmF0dXJlICYmIHBhcnNlZC5zaWduYXR1cmUubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiA9IHJhd1RyYW5zYWN0aW9uO1xuICAgICAgfVxuXG4gICAgICB1dGlscy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHRoaXMuX3N0YXJrbmV0VHJhbnNhY3Rpb25EYXRhKTtcbiAgICAgIHRoaXMuX2lkID0gcGFyc2VkLnRyYW5zYWN0aW9uSGFzaCB8fCAnJztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3QgdHJhbnNmZXIgPVxuICAgICAgdGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEuY2FsbHMubGVuZ3RoID4gMFxuICAgICAgICA/IHBhcnNlVHJhbnNmZXJDYWxsKHRoaXMuX3N0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLmNhbGxzWzBdKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zdGFya25ldFRyYW5zYWN0aW9uRGF0YS5zZW5kZXJBZGRyZXNzLFxuICAgICAgcmVjaXBpZW50OiB0cmFuc2Zlcj8ucmVjaXBpZW50LFxuICAgICAgYW1vdW50OiB0cmFuc2Zlcj8uYW1vdW50LFxuICAgICAgbm9uY2U6IHRoaXMuX3N0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLm5vbmNlLFxuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLlNlbmQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBleHBsYWluVHJhbnNhY3Rpb24oKTogU3RhcmtuZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnRvSnNvbigpO1xuICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJ107XG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFtdO1xuXG4gICAgaWYgKHJlc3VsdC5yZWNpcGllbnQgJiYgcmVzdWx0LmFtb3VudCkge1xuICAgICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogcmVzdWx0LnJlY2lwaWVudCxcbiAgICAgICAgYW1vdW50OiByZXN1bHQuYW1vdW50LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXlPcmRlcixcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgb3V0cHV0cyxcbiAgICAgIG91dHB1dEFtb3VudDogcmVzdWx0LmFtb3VudCB8fCAnMCcsXG4gICAgICBmZWU6IHsgZmVlOiAnMCcgfSxcbiAgICAgIHR5cGU6IHJlc3VsdC50eXBlLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEhleC1lbmNvZGVkIGludGVybmFsIEpTT04g4oCUIHVzZWQgYnkgV1AgZm9yIHJvdW5kLXRyaXAgdmlhIGZyb21SYXdUcmFuc2FjdGlvbi4gKi9cbiAgdG9JbnRlcm5hbEhleCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9zdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGRhdGEpLCAndXRmLTgnKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2Mg4oCUIHJldHVybnMgU3RhcmtuZXQgUlBDLXJlYWR5IEpTT04gc3RyaW5nIGZvciBzdGFya25ldF9hZGRJbnZva2VUcmFuc2FjdGlvbi4gKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5fc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGE7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICB0eXBlOiAnSU5WT0tFJyxcbiAgICAgIHZlcnNpb246ICcweDMnLFxuICAgICAgc2VuZGVyX2FkZHJlc3M6IGRhdGEuc2VuZGVyQWRkcmVzcyxcbiAgICAgIGNhbGxkYXRhOiByZXNvbHZlQ29tcGlsZWRDYWxsZGF0YShkYXRhKSxcbiAgICAgIHNpZ25hdHVyZTogZGF0YS5zaWduYXR1cmUgfHwgW10sXG4gICAgICBub25jZTogZGF0YS5ub25jZSxcbiAgICAgIHJlc291cmNlX2JvdW5kczogcmVzb2x2ZVJlc291cmNlQm91bmRzKGRhdGEpLFxuICAgICAgdGlwOiBkYXRhLnRpcCB8fCAnMHgwJyxcbiAgICAgIHBheW1hc3Rlcl9kYXRhOiBbXSxcbiAgICAgIGFjY291bnRfZGVwbG95bWVudF9kYXRhOiBbXSxcbiAgICAgIG5vbmNlX2RhdGFfYXZhaWxhYmlsaXR5X21vZGU6ICdMMScsXG4gICAgICBmZWVfZGF0YV9hdmFpbGFiaWxpdHlfbW9kZTogJ0wxJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKF9rZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAIvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAA2B,uBAAuB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAW5C,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,CAAM;IACtC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,eAAe,EAAE,sBAAsB,CAA2B;IAC5E,SAAS,CAAC,IAAI,SAAS;gBAEX,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAKtC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAoB9C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B,cAAc,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI;IAKhD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7B,kBAAkB;IAClB,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,kBAAkB;IAClB,IAAI,WAAW,CAAC,WAAW,EAAE,WAAW,EAEvC;IAED,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAelC,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAM3C,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAS/B,kBAAkB;IAClB,mBAAmB,CAAC,YAAY,EAAE,WAAW,GAAG,IAAI;IAYpD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMrC,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAMpD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAKjE,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,uBAAuB,CAAC;IAElE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAgC3D,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW;CAGzD"}
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAIvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAA2B,uBAAuB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,CAAM;IACtC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,eAAe,EAAE,sBAAsB,CAA2B;IAC5E,SAAS,CAAC,IAAI,SAAS;gBAEX,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAKtC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAoB9C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B,cAAc,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI;IAKhD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7B,kBAAkB;IAClB,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,kBAAkB;IAClB,IAAI,WAAW,CAAC,WAAW,EAAE,WAAW,EAEvC;IAED,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAelC,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAM3C,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAS/B,kBAAkB;IAClB,mBAAmB,CAAC,YAAY,EAAE,WAAW,GAAG,IAAI;IAYpD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMrC,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAMpD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAKjE,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,uBAAuB,CAAC;IAElE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAgC3D,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW;CAGzD"}
@@ -5,20 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TransactionBuilder = void 0;
7
7
  const sdk_core_1 = require("@bitgo/sdk-core");
8
+ const constants_1 = require("./constants");
8
9
  const transaction_1 = require("./transaction");
9
10
  const utils_1 = __importDefault(require("./utils"));
10
- function defaultResourceBounds() {
11
- return {
12
- l2_gas: { max_amount: '0x1c9c380', max_price_per_unit: '0x174876e800' },
13
- l1_gas: { max_amount: '0x0', max_price_per_unit: '0x5af3107a4000' },
14
- l1_data_gas: { max_amount: '0x3e8', max_price_per_unit: '0x2540be400' },
15
- };
16
- }
17
11
  class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
18
12
  constructor(_coinConfig) {
19
13
  super(_coinConfig);
20
14
  this._calls = [];
21
- this._resourceBounds = defaultResourceBounds();
15
+ this._resourceBounds = (0, constants_1.defaultResourceBounds)();
22
16
  this._tip = '0x0';
23
17
  this._transaction = new transaction_1.Transaction(_coinConfig);
24
18
  }
@@ -155,4 +149,4 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
155
149
  }
156
150
  }
157
151
  exports.TransactionBuilder = TransactionBuilder;
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBT3lCO0FBSXpCLCtDQUE0QztBQUM1QyxvREFBNEI7QUFFNUIsU0FBUyxxQkFBcUI7SUFDNUIsT0FBTztRQUNMLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFO1FBQ3ZFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUU7UUFDbkUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUU7S0FDeEUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFzQixrQkFBbUIsU0FBUSxpQ0FBc0I7SUFVckUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFQWCxXQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUc1QixvQkFBZSxHQUEyQixxQkFBcUIsRUFBRSxDQUFDO1FBQ2xFLFNBQUksR0FBRyxLQUFLLENBQUM7UUFJckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFlLEVBQUUsTUFBZTtRQUM1QyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxtQ0FBbUMsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBQ0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FB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YW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yLFxuICBTaWduaW5nRXJyb3IsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEsIFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLCBTdGFya25ldENhbGwsIFN0YXJrbmV0UmVzb3VyY2VCb3VuZHMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmZ1bmN0aW9uIGRlZmF1bHRSZXNvdXJjZUJvdW5kcygpOiBTdGFya25ldFJlc291cmNlQm91bmRzIHtcbiAgcmV0dXJuIHtcbiAgICBsMl9nYXM6IHsgbWF4X2Ftb3VudDogJzB4MWM5YzM4MCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4MTc0ODc2ZTgwMCcgfSxcbiAgICBsMV9nYXM6IHsgbWF4X2Ftb3VudDogJzB4MCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4NWFmMzEwN2E0MDAwJyB9LFxuICAgIGwxX2RhdGFfZ2FzOiB7IG1heF9hbW91bnQ6ICcweDNlOCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4MjU0MGJlNDAwJyB9LFxuICB9O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3NlbmRlcj86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9wdWJsaWNLZXk/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfY2FsbHM6IFN0YXJrbmV0Q2FsbFtdID0gW107XG4gIHByb3RlY3RlZCBfbm9uY2U/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfY2hhaW5JZD86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9yZXNvdXJjZUJvdW5kczogU3RhcmtuZXRSZXNvdXJjZUJvdW5kcyA9IGRlZmF1bHRSZXNvdXJjZUJvdW5kcygpO1xuICBwcm90ZWN0ZWQgX3RpcCA9ICcweDAnO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2VuZGVyKGFkZHJlc3M6IHN0cmluZywgcHViS2V5Pzogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFhZGRyZXNzIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFkZHJlc3MsIGdvdDogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAocHViS2V5KSB7XG4gICAgICBpZiAoIXV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocHViS2V5KSkge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHB1YktleSwgZ290OiAnICsgcHViS2V5KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRlcml2ZWRBZGRyZXNzID0gdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHViS2V5KTtcbiAgICAgIGlmICh1dGlscy5ub3JtYWxpemVBZGRyZXNzKGRlcml2ZWRBZGRyZXNzKSAhPT0gdXRpbHMubm9ybWFsaXplQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgIGBBZGRyZXNzIGRvZXMgbm90IG1hdGNoIHB1YmxpYyBrZXkuIEV4cGVjdGVkICR7ZGVyaXZlZEFkZHJlc3N9LCBnb3QgJHthZGRyZXNzfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3B1YmxpY0tleSA9IHB1YktleTtcbiAgICB9XG4gICAgdGhpcy5fc2VuZGVyID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBub25jZShub25jZTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fbm9uY2UgPSBub25jZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBjaGFpbklkKGNoYWluSWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX2NoYWluSWQgPSBjaGFpbklkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHJlc291cmNlQm91bmRzKHJiOiBTdGFya25ldFJlc291cmNlQm91bmRzKTogdGhpcyB7XG4gICAgdGhpcy5fcmVzb3VyY2VCb3VuZHMgPSByYjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyB0aXAodGlwOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl90aXAgPSB0aXA7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIGNvbnN0IGRhdGEgPSB0eC5zdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcbiAgICB0aGlzLl9zZW5kZXIgPSBkYXRhLnNlbmRlckFkZHJlc3M7XG4gICAgdGhpcy5fY2FsbHMgPSBkYXRhLmNhbGxzIHx8IFtdO1xuICAgIHRoaXMuX25vbmNlID0gZGF0YS5ub25jZTtcbiAgICB0aGlzLl9jaGFpbklkID0gZGF0YS5jaGFpbklkO1xuICAgIGlmIChkYXRhLnJlc291cmNlQm91bmRzKSB7XG4gICAgICB0aGlzLl9yZXNvdXJjZUJvdW5kcyA9IGRhdGEucmVzb3VyY2VCb3VuZHM7XG4gICAgfVxuICAgIGlmIChkYXRhLnRpcCkge1xuICAgICAgdGhpcy5fdGlwID0gZGF0YS50aXA7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIGlmICgha2V5IHx8ICFrZXkua2V5KSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdLZXkgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkua2V5KSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignSW52YWxpZCBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3NlbmRlciB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3ModGhpcy5fc2VuZGVyKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIHNlbmRlciBhZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fY2hhaW5JZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignQ2hhaW4gSUQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX25vbmNlID09PSB1bmRlZmluZWQgfHwgdGhpcy5fbm9uY2UgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ05vbmNlIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc05hTigpIHx8IHZhbHVlLmlzTmVnYXRpdmUoKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB2YWx1ZTogJHt2YWx1ZS50b1N0cmluZygpfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdSYXcgdHJhbnNhY3Rpb24gaXMgZW1wdHknKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCB0cmFuc2FjdGlvblR5cGUoKTogU3RhcmtuZXRUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBzZW5kZXIgPSB0aGlzLl9zZW5kZXIgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGNoYWluSWQgPSB0aGlzLl9jaGFpbklkIGFzIHN0cmluZztcbiAgICBjb25zdCBub25jZSA9IHRoaXMuX25vbmNlIGFzIHN0cmluZztcbiAgICBjb25zdCBjb21waWxlZENhbGxkYXRhID0gdXRpbHMuY29tcGlsZUV4ZWN1dGVDYWxsZGF0YSh0aGlzLl9jYWxscyk7XG5cbiAgICBjb25zdCB0cmFuc2FjdGlvbkhhc2ggPSB1dGlscy5jYWxjdWxhdGVJbnZva2VUcmFuc2FjdGlvbkhhc2goe1xuICAgICAgc2VuZGVyQWRkcmVzczogc2VuZGVyLFxuICAgICAgY29tcGlsZWRDYWxsZGF0YSxcbiAgICAgIGNoYWluSWQsXG4gICAgICBub25jZSxcbiAgICAgIHJlc291cmNlQm91bmRzOiB0aGlzLl9yZXNvdXJjZUJvdW5kcyxcbiAgICAgIHRpcDogdGhpcy5fdGlwLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGF0YTogU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICBzZW5kZXJBZGRyZXNzOiBzZW5kZXIsXG4gICAgICBjYWxsczogdGhpcy5fY2FsbHMsXG4gICAgICBub25jZSxcbiAgICAgIGNoYWluSWQsXG4gICAgICB0cmFuc2FjdGlvblR5cGU6IHRoaXMudHJhbnNhY3Rpb25UeXBlLFxuICAgICAgcmVzb3VyY2VCb3VuZHM6IHRoaXMuX3Jlc291cmNlQm91bmRzLFxuICAgICAgdGlwOiB0aGlzLl90aXAsXG4gICAgICB0cmFuc2FjdGlvbkhhc2gsXG4gICAgICBjb21waWxlZENhbGxkYXRhLFxuICAgIH07XG5cbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zdGFya25ldFRyYW5zYWN0aW9uRGF0YSA9IGRhdGE7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLy8gU3RhcmtuZXQgaXMgVFNTLW9ubHk7IHNpZ25pbmcgaGFwcGVucyB2aWEgdGhyZXNob2xkIEVDRFNBIGluIHdhbGxldC1wbGF0Zm9ybS9PVkMsIG5vdCBoZXJlLlxuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKF9rZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IoJ3NpZ25JbXBsZW1lbnRhdGlvbicpO1xuICB9XG59XG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBT3lCO0FBSXpCLDJDQUFvRDtBQUNwRCwrQ0FBNEM7QUFDNUMsb0RBQTRCO0FBRTVCLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQVVyRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVBYLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBRzVCLG9CQUFlLEdBQTJCLElBQUEsaUNBQXFCLEdBQUUsQ0FBQztRQUNsRSxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBSXJCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBZSxFQUFFLE1BQWU7UUFDNUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksZ0NBQXFCLENBQUMsbUNBQW1DLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUNELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsZUFBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyx1QkFBdUIsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBQ0QsTUFBTSxjQUFjLEdBQUcsZUFBSyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELElBQUksZUFBSyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUMv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SSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5FLE1BQU0sZUFBZSxHQUFHLGVBQUssQ0FBQyw4QkFBOEIsQ0FBQztZQUMzRCxhQUFhLEVBQUUsTUFBTTtZQUNyQixnQkFBZ0I7WUFDaEIsT0FBTztZQUNQLEtBQUs7WUFDTCxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDcEMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQTRCO1lBQ3BDLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQixLQUFLO1lBQ0wsT0FBTztZQUNQLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDcEMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2QsZUFBZTtZQUNmLGdCQUFnQjtTQUNqQixDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCw4RkFBOEY7SUFDcEYsa0JBQWtCLENBQUMsSUFBYTtRQUN4QyxNQUFNLElBQUksb0NBQXlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUF4S0QsZ0RBd0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IFN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLCBTdGFya25ldFRyYW5zYWN0aW9uVHlwZSwgU3RhcmtuZXRDYWxsLCBTdGFya25ldFJlc291cmNlQm91bmRzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBkZWZhdWx0UmVzb3VyY2VCb3VuZHMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3NlbmRlcj86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9wdWJsaWNLZXk/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfY2FsbHM6IFN0YXJrbmV0Q2FsbFtdID0gW107XG4gIHByb3RlY3RlZCBfbm9uY2U/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfY2hhaW5JZD86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9yZXNvdXJjZUJvdW5kczogU3RhcmtuZXRSZXNvdXJjZUJvdW5kcyA9IGRlZmF1bHRSZXNvdXJjZUJvdW5kcygpO1xuICBwcm90ZWN0ZWQgX3RpcCA9ICcweDAnO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2VuZGVyKGFkZHJlc3M6IHN0cmluZywgcHViS2V5Pzogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFhZGRyZXNzIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFkZHJlc3MsIGdvdDogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAocHViS2V5KSB7XG4gICAgICBpZiAoIXV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocHViS2V5KSkge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHB1YktleSwgZ290OiAnICsgcHViS2V5KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRlcml2ZWRBZGRyZXNzID0gdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHViS2V5KTtcbiAgICAgIGlmICh1dGlscy5ub3JtYWxpemVBZGRyZXNzKGRlcml2ZWRBZGRyZXNzKSAhPT0gdXRpbHMubm9ybWFsaXplQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgIGBBZGRyZXNzIGRvZXMgbm90IG1hdGNoIHB1YmxpYyBrZXkuIEV4cGVjdGVkICR7ZGVyaXZlZEFkZHJlc3N9LCBnb3QgJHthZGRyZXNzfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3B1YmxpY0tleSA9IHB1YktleTtcbiAgICB9XG4gICAgdGhpcy5fc2VuZGVyID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBub25jZShub25jZTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fbm9uY2UgPSBub25jZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBjaGFpbklkKGNoYWluSWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX2NoYWluSWQgPSBjaGFpbklkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHJlc291cmNlQm91bmRzKHJiOiBTdGFya25ldFJlc291cmNlQm91bmRzKTogdGhpcyB7XG4gICAgdGhpcy5fcmVzb3VyY2VCb3VuZHMgPSByYjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyB0aXAodGlwOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl90aXAgPSB0aXA7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIGNvbnN0IGRhdGEgPSB0eC5zdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcbiAgICB0aGlzLl9zZW5kZXIgPSBkYXRhLnNlbmRlckFkZHJlc3M7XG4gICAgdGhpcy5fY2FsbHMgPSBkYXRhLmNhbGxzIHx8IFtdO1xuICAgIHRoaXMuX25vbmNlID0gZGF0YS5ub25jZTtcbiAgICB0aGlzLl9jaGFpbklkID0gZGF0YS5jaGFpbklkO1xuICAgIGlmIChkYXRhLnJlc291cmNlQm91bmRzKSB7XG4gICAgICB0aGlzLl9yZXNvdXJjZUJvdW5kcyA9IGRhdGEucmVzb3VyY2VCb3VuZHM7XG4gICAgfVxuICAgIGlmIChkYXRhLnRpcCkge1xuICAgICAgdGhpcy5fdGlwID0gZGF0YS50aXA7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIGlmICgha2V5IHx8ICFrZXkua2V5KSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdLZXkgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkua2V5KSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignSW52YWxpZCBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3NlbmRlciB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3ModGhpcy5fc2VuZGVyKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIHNlbmRlciBhZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fY2hhaW5JZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignQ2hhaW4gSUQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX25vbmNlID09PSB1bmRlZmluZWQgfHwgdGhpcy5fbm9uY2UgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ05vbmNlIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc05hTigpIHx8IHZhbHVlLmlzTmVnYXRpdmUoKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB2YWx1ZTogJHt2YWx1ZS50b1N0cmluZygpfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdSYXcgdHJhbnNhY3Rpb24gaXMgZW1wdHknKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCB0cmFuc2FjdGlvblR5cGUoKTogU3RhcmtuZXRUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBzZW5kZXIgPSB0aGlzLl9zZW5kZXIgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGNoYWluSWQgPSB0aGlzLl9jaGFpbklkIGFzIHN0cmluZztcbiAgICBjb25zdCBub25jZSA9IHRoaXMuX25vbmNlIGFzIHN0cmluZztcbiAgICBjb25zdCBjb21waWxlZENhbGxkYXRhID0gdXRpbHMuY29tcGlsZUV4ZWN1dGVDYWxsZGF0YSh0aGlzLl9jYWxscyk7XG5cbiAgICBjb25zdCB0cmFuc2FjdGlvbkhhc2ggPSB1dGlscy5jYWxjdWxhdGVJbnZva2VUcmFuc2FjdGlvbkhhc2goe1xuICAgICAgc2VuZGVyQWRkcmVzczogc2VuZGVyLFxuICAgICAgY29tcGlsZWRDYWxsZGF0YSxcbiAgICAgIGNoYWluSWQsXG4gICAgICBub25jZSxcbiAgICAgIHJlc291cmNlQm91bmRzOiB0aGlzLl9yZXNvdXJjZUJvdW5kcyxcbiAgICAgIHRpcDogdGhpcy5fdGlwLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGF0YTogU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICBzZW5kZXJBZGRyZXNzOiBzZW5kZXIsXG4gICAgICBjYWxsczogdGhpcy5fY2FsbHMsXG4gICAgICBub25jZSxcbiAgICAgIGNoYWluSWQsXG4gICAgICB0cmFuc2FjdGlvblR5cGU6IHRoaXMudHJhbnNhY3Rpb25UeXBlLFxuICAgICAgcmVzb3VyY2VCb3VuZHM6IHRoaXMuX3Jlc291cmNlQm91bmRzLFxuICAgICAgdGlwOiB0aGlzLl90aXAsXG4gICAgICB0cmFuc2FjdGlvbkhhc2gsXG4gICAgICBjb21waWxlZENhbGxkYXRhLFxuICAgIH07XG5cbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zdGFya25ldFRyYW5zYWN0aW9uRGF0YSA9IGRhdGE7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLy8gU3RhcmtuZXQgaXMgVFNTLW9ubHk7IHNpZ25pbmcgaGFwcGVucyB2aWEgdGhyZXNob2xkIEVDRFNBIGluIHdhbGxldC1wbGF0Zm9ybS9PVkMsIG5vdCBoZXJlLlxuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKF9rZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IoJ3NpZ25JbXBsZW1lbnRhdGlvbicpO1xuICB9XG59XG4iXX0=
@@ -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
@@ -134,7 +134,7 @@ describe('Starknet TransferBuilder', () => {
134
134
  const tx2 = (await builder2.build());
135
135
  tx1.signableHex.should.not.equal(tx2.signableHex);
136
136
  });
137
- it('should round-trip through toBroadcastFormat and fromRawTransaction', async () => {
137
+ it('should round-trip through toInternalHex and fromRawTransaction', async () => {
138
138
  const factory = new transactionBuilderFactory_1.TransactionBuilderFactory(coinConfig);
139
139
  const builder = factory.getTransferBuilder();
140
140
  builder
@@ -144,13 +144,34 @@ describe('Starknet TransferBuilder', () => {
144
144
  .receiverId(starknet_1.Accounts.account2.address)
145
145
  .amount('1000000000000000000');
146
146
  const tx = (await builder.build());
147
- const broadcastHex = tx.toBroadcastFormat();
147
+ const internalHex = tx.toInternalHex();
148
148
  const factory2 = new transactionBuilderFactory_1.TransactionBuilderFactory(coinConfig);
149
- const builder2 = await factory2.from(broadcastHex);
149
+ const builder2 = await factory2.from(internalHex);
150
150
  const tx2 = (await builder2.build());
151
151
  tx2.signableHex.should.equal(tx.signableHex);
152
152
  tx2.id.should.equal(tx.id);
153
153
  });
154
+ it('toBroadcastFormat should return Starknet RPC-ready JSON', async () => {
155
+ const factory = new transactionBuilderFactory_1.TransactionBuilderFactory(coinConfig);
156
+ const builder = factory.getTransferBuilder();
157
+ builder
158
+ .sender(starknet_1.Accounts.account1.address)
159
+ .nonce('0x0')
160
+ .chainId(starknet_1.SandboxTransferData.chainId)
161
+ .receiverId(starknet_1.Accounts.account2.address)
162
+ .amount('1000000000000000000');
163
+ const tx = (await builder.build());
164
+ const broadcast = tx.toBroadcastFormat();
165
+ const parsed = JSON.parse(broadcast);
166
+ parsed.type.should.equal('INVOKE');
167
+ parsed.version.should.equal('0x3');
168
+ parsed.sender_address.should.equal(starknet_1.Accounts.account1.address);
169
+ parsed.calldata.should.be.Array();
170
+ parsed.nonce.should.equal('0x0');
171
+ parsed.resource_bounds.should.have.property('l2_gas');
172
+ parsed.nonce_data_availability_mode.should.equal('L1');
173
+ parsed.fee_data_availability_mode.should.equal('L1');
174
+ });
154
175
  });
155
176
  describe('Validation', () => {
156
177
  it('should reject build without sender', async () => {
@@ -205,4 +226,4 @@ describe('Starknet TransferBuilder', () => {
205
226
  });
206
227
  });
207
228
  });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1Qiw0Q0FBdUM7QUFDdkMsdUZBQW9GO0FBRXBGLG9EQUFzRTtBQUV0RSxRQUFRLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFekMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtRQUMxQyxFQUFFLENBQUMsdURBQXVELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUU3QyxPQUFPO2lCQUNKLE1BQU0sQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7aUJBQ2pDLEtBQUssQ0FBQyxLQUFLLENBQUM7aUJBQ1osT0FBTyxDQUFDLDhCQUFtQixDQUFDLE9BQU8sQ0FBQztpQkFDcEMsVUFBVSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQkFDckMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFFakMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztZQUNsRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFFeEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxlQUEwQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkQsSUFBSSxD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LE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUU7WUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLHFEQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzdDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBBY2NvdW50cywgU2FuZGJveFRyYW5zZmVyRGF0YSB9IGZyb20gJy4uL3Jlc291cmNlcy9zdGFya25ldCc7XG5cbmRlc2NyaWJlKCdTdGFya25ldCBUcmFuc2ZlckJ1aWxkZXInLCAoKSA9PiB7XG4gIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ3N0YXJrbmV0Jyk7XG5cbiAgZGVzY3JpYmUoJ0J1aWxkIHRyYW5zZmVyIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYSB0cmFuc2ZlciBhbmQgcHJvZHVjZSBhIHRyYW5zYWN0aW9uSGFzaCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuXG4gICAgICBidWlsZGVyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgY29uc3QgdHggPSAoYXdhaXQgYnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICAgIGNvbnN0IGRhdGEgPSB0eC5zdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcblxuICAgICAgc2hvdWxkLmV4aXN0KGRhdGEudHJhbnNhY3Rpb25IYXNoKTtcbiAgICAgIChkYXRhLnRyYW5zYWN0aW9uSGFzaCBhcyBzdHJpbmcpLnNob3VsZC5zdGFydFdpdGgoJzB4Jyk7XG4gICAgICAoZGF0YS50cmFuc2FjdGlvbkhhc2ggYXMgc3RyaW5nKS5sZW5ndGguc2hvdWxkLmJlLmdyZWF0ZXJUaGFuKDIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzZXQgc2lnbmFibGVIZXggZnJvbSB0aGUgUG9zZWlkb24gaGFzaCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuXG4gICAgICBidWlsZGVyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgY29uc3QgdHggPSAoYXdhaXQgYnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICAgIHR4LnNpZ25hYmxlSGV4LnNob3VsZC5lcXVhbCh0eC5zdGFya25ldFRyYW5zYWN0aW9uRGF0YS50cmFuc2FjdGlvbkhhc2gpO1xuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKHR4LnN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLnRyYW5zYWN0aW9uSGFzaCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHByb2R1Y2UgZGlmZmVyZW50IGhhc2hlcyBmb3IgZGlmZmVyZW50IHJlY2lwaWVudHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIxID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIxXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcbiAgICAgIGNvbnN0IHR4MSA9IChhd2FpdCBidWlsZGVyMS5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcblxuICAgICAgY29uc3QgYnVpbGRlcjIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuICAgICAgYnVpbGRlcjJcbiAgICAgICAgLnNlbmRlcihBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKVxuICAgICAgICAubm9uY2UoJzB4MCcpXG4gICAgICAgIC5jaGFpbklkKFNhbmRib3hUcmFuc2ZlckRhdGEuY2hhaW5JZClcbiAgICAgICAgLnJlY2VpdmVySWQoQWNjb3VudHMuYWNjb3VudDMuYWRkcmVzcylcbiAgICAgICAgLmFtb3VudCgnMTAwMDAwMDAwMDAwMDAwMDAwMCcpO1xuICAgICAgY29uc3QgdHgyID0gKGF3YWl0IGJ1aWxkZXIyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuXG4gICAgICB0eDEuc2lnbmFibGVIZXguc2hvdWxkLm5vdC5lcXVhbCh0eDIuc2lnbmFibGVIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwcm9kdWNlIGRpZmZlcmVudCBoYXNoZXMgZm9yIGRpZmZlcmVudCBhbW91bnRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuXG4gICAgICBjb25zdCBidWlsZGVyMSA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyMVxuICAgICAgICAuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG4gICAgICBjb25zdCB0eDEgPSAoYXdhaXQgYnVpbGRlcjEuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzIwMDAwMDAwMDAwMDAwMDAwMDAnKTtcbiAgICAgIGNvbnN0IHR4MiA9IChhd2FpdCBidWlsZGVyMi5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcblxuICAgICAgdHgxLnNpZ25hYmxlSGV4LnNob3VsZC5ub3QuZXF1YWwodHgyLnNpZ25hYmxlSGV4KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5jbHVkZSBjb21waWxlZENhbGxkYXRhIGluIHRyYW5zYWN0aW9uIGRhdGEnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcblxuICAgICAgYnVpbGRlclxuICAgICAgICAuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG5cbiAgICAgIGNvbnN0IHR4ID0gKGF3YWl0IGJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgICBjb25zdCBkYXRhID0gdHguc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGE7XG5cbiAgICAgIHNob3VsZC5leGlzdChkYXRhLmNvbXBpbGVkQ2FsbGRhdGEpO1xuICAgICAgKGRhdGEuY29tcGlsZWRDYWxsZGF0YSBhcyBzdHJpbmdbXSkubGVuZ3RoLnNob3VsZC5iZS5ncmVhdGVyVGhhbigwKTtcbiAgICAgIChkYXRhLmNvbXBpbGVkQ2FsbGRhdGEgYXMgc3RyaW5nW10pWzBdLnNob3VsZC5lcXVhbCgnMHgxJyk7IC8vIDEgY2FsbFxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbmNsdWRlIHJlc291cmNlQm91bmRzIGluIHRyYW5zYWN0aW9uIGRhdGEnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcblxuICAgICAgYnVpbGRlclxuICAgICAgICAuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJylcbiAgICAgICAgLnJlc291cmNlQm91bmRzKFNhbmRib3hUcmFuc2ZlckRhdGEucmVzb3VyY2VCb3VuZHMpO1xuXG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgY29uc3QgZGF0YSA9IHR4LnN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhO1xuXG4gICAgICBzaG91bGQuZXhpc3QoZGF0YS5yZXNvdXJjZUJvdW5kcyk7XG4gICAgICAoZGF0YS5yZXNvdXJjZUJvdW5kcyBhcyB7IGwyX2dhczogeyBtYXhfYW1vdW50OiBzdHJpbmcgfSB9KS5sMl9nYXMubWF4X2Ftb3VudC5zaG91bGQuZXF1YWwoXG4gICAgICAgIFNhbmRib3hUcmFuc2ZlckRhdGEucmVzb3VyY2VCb3VuZHMubDJfZ2FzLm1heF9hbW91bnRcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFjY2VwdCBjdXN0b20gcmVzb3VyY2UgYm91bmRzIGFuZCBwcm9kdWNlIGRpZmZlcmVudCBoYXNoJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuXG4gICAgICBjb25zdCBidWlsZGVyMSA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyMVxuICAgICAgICAuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG4gICAgICBjb25zdCB0eDEgPSAoYXdhaXQgYnVpbGRlcjEuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb247XG5cbiAgICAgIGNvbnN0IGN1c3RvbUJvdW5kcyA9IHtcbiAgICAgICAgbDJfZ2FzOiB7IG1heF9hbW91bnQ6ICcweDM5Mzg3MDAnLCBtYXhfcHJpY2VfcGVyX3VuaXQ6ICcweDE3NDg3NmU4MDAnIH0sXG4gICAgICAgIGwxX2dhczogeyBtYXhfYW1vdW50OiAnMHgwJywgbWF4X3ByaWNlX3Blcl91bml0OiAnMHg1YWYzMTA3YTQwMDAnIH0sXG4gICAgICAgIGwxX2RhdGFfZ2FzOiB7IG1heF9hbW91bnQ6ICcweDdkMCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4MjU0MGJlNDAwJyB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKVxuICAgICAgICAucmVzb3VyY2VCb3VuZHMoY3VzdG9tQm91bmRzKTtcbiAgICAgIGNvbnN0IHR4MiA9IChhd2FpdCBidWlsZGVyMi5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbjtcblxuICAgICAgdHgxLnNpZ25hYmxlSGV4LnNob3VsZC5ub3QuZXF1YWwodHgyLnNpZ25hYmxlSGV4KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcm91bmQtdHJpcCB0aHJvdWdoIHRvQnJvYWRjYXN0Rm9ybWF0IGFuZCBmcm9tUmF3VHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcblxuICAgICAgYnVpbGRlclxuICAgICAgICAuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG5cbiAgICAgIGNvbnN0IHR4ID0gKGF3YWl0IGJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgICBjb25zdCBicm9hZGNhc3RIZXggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICBjb25zdCBmYWN0b3J5MiA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlcjIgPSBhd2FpdCBmYWN0b3J5Mi5mcm9tKGJyb2FkY2FzdEhleCk7XG4gICAgICBjb25zdCB0eDIgPSAoYXdhaXQgYnVpbGRlcjIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb247XG5cbiAgICAgIHR4Mi5zaWduYWJsZUhleC5zaG91bGQuZXF1YWwodHguc2lnbmFibGVIZXgpO1xuICAgICAgdHgyLmlkLnNob3VsZC5lcXVhbCh0eC5pZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdWYWxpZGF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmVqZWN0IGJ1aWxkIHdpdGhvdXQgc2VuZGVyJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG5cbiAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKC9bU3NdZW5kZXIvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGJ1aWxkIHdpdGhvdXQgbm9uY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnNlbmRlcihBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL1tObl1vbmNlLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBidWlsZCB3aXRob3V0IGNoYWluSWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnNlbmRlcihBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKVxuICAgICAgICAubm9uY2UoJzB4MCcpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL1tDY11oYWluLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBidWlsZCB3aXRob3V0IHJlY2VpdmVyJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL1tScl1lY2VpdmVyLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBpbnZhbGlkIHNlbmRlciBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICAoKCkgPT4gYnVpbGRlci5zZW5kZXIoJ2ludmFsaWQnKSkuc2hvdWxkLnRocm93KC9bSWldbnZhbGlkLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBpbnZhbGlkIHJlY2VpdmVyIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgICgoKSA9PiBidWlsZGVyLnJlY2VpdmVySWQoJ2ludmFsaWQnKSkuc2hvdWxkLnRocm93KC9bSWldbnZhbGlkLyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1Qiw0Q0FBdUM7QUFDdkMsdUZBQW9GO0FBRXBGLG9EQUFzRTtBQUV0RSxRQUFRLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFekMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtRQUMxQyxFQUFFLENBQUMsdURBQXVELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUU3QyxPQUFPO2lCQUNKLE1BQU0sQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7aUJBQ2pDLEtBQUssQ0FBQyxLQUFLLENBQUM7aUJBQ1osT0FBTyxDQUFDLDhCQUFtQixDQUFDLE9BQU8sQ0FBQztpQkFDcEMsVUFBVSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQkFDckMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFFakMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztZQUNsRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFFeEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxlQUEwQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkQsSUFBSSxD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aUJBQ0osTUFBTSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQkFDakMsS0FBSyxDQUFDLEtBQUssQ0FBQztpQkFDWixPQUFPLENBQUMsOEJBQW1CLENBQUMsT0FBTyxDQUFDO2lCQUNwQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUVqQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUU7WUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLHFEQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzdDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBBY2NvdW50cywgU2FuZGJveFRyYW5zZmVyRGF0YSB9IGZyb20gJy4uL3Jlc291cmNlcy9zdGFya25ldCc7XG5cbmRlc2NyaWJlKCdTdGFya25ldCBUcmFuc2ZlckJ1aWxkZXInLCAoKSA9PiB7XG4gIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ3N0YXJrbmV0Jyk7XG5cbiAgZGVzY3JpYmUoJ0J1aWxkIHRyYW5zZmVyIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYSB0cmFuc2ZlciBhbmQgcHJvZHVjZSBhIHRyYW5zYWN0aW9uSGFzaCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuXG4gICAgICBidWlsZGVyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgY29uc3QgdHggPSAoYXdhaXQgYnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICAgIGNvbnN0IGRhdGEgPSB0eC5zdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcblxuICAgICAgc2hvdWxkLmV4aXN0KGRhdGEudHJhbnNhY3Rpb25IYXNoKTtcbiAgICAgIChkYXRhLnRyYW5zYWN0aW9uSGFzaCBhcyBzdHJpbmcpLnNob3VsZC5zdGFydFdpdGgoJzB4Jyk7XG4gICAgICAoZGF0YS50cmFuc2FjdGlvbkhhc2ggYXMgc3RyaW5nKS5sZW5ndGguc2hvdWxkLmJlLmdyZWF0ZXJUaGFuKDIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzZXQgc2lnbmFibGVIZXggZnJvbSB0aGUgUG9zZWlkb24gaGFzaCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuXG4gICAgICBidWlsZGVyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgY29uc3QgdHggPSAoYXdhaXQgYnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICAgIHR4LnNpZ25hYmxlSGV4LnNob3VsZC5lcXVhbCh0eC5zdGFya25ldFRyYW5zYWN0aW9uRGF0YS50cmFuc2FjdGlvbkhhc2gpO1xuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKHR4LnN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLnRyYW5zYWN0aW9uSGFzaCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHByb2R1Y2UgZGlmZmVyZW50IGhhc2hlcyBmb3IgZGlmZmVyZW50IHJlY2lwaWVudHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIxID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIxXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcbiAgICAgIGNvbnN0IHR4MSA9IChhd2FpdCBidWlsZGVyMS5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcblxuICAgICAgY29uc3QgYnVpbGRlcjIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuICAgICAgYnVpbGRlcjJcbiAgICAgICAgLnNlbmRlcihBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKVxuICAgICAgICAubm9uY2UoJzB4MCcpXG4gICAgICAgIC5jaGFpbklkKFNhbmRib3hUcmFuc2ZlckRhdGEuY2hhaW5JZClcbiAgICAgICAgLnJlY2VpdmVySWQoQWNjb3VudHMuYWNjb3VudDMuYWRkcmVzcylcbiAgICAgICAgLmFtb3VudCgnMTAwMDAwMDAwMDAwMDAwMDAwMCcpO1xuICAgICAgY29uc3QgdHgyID0gKGF3YWl0IGJ1aWxkZXIyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuXG4gICAgICB0eDEuc2lnbmFibGVIZXguc2hvdWxkLm5vdC5lcXVhbCh0eDIuc2lnbmFibGVIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwcm9kdWNlIGRpZmZlcmVudCBoYXNoZXMgZm9yIGRpZmZlcmVudCBhbW91bnRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuXG4gICAgICBjb25zdCBidWlsZGVyMSA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyMVxuICAgICAgICAuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG4gICAgICBjb25zdCB0eDEgPSAoYXdhaXQgYnVpbGRlcjEuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzIwMDAwMDAwMDAwMDAwMDAwMDAnKTtcbiAgICAgIGNvbnN0IHR4MiA9IChhd2FpdCBidWlsZGVyMi5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcblxuICAgICAgdHgxLnNpZ25hYmxlSGV4LnNob3VsZC5ub3QuZXF1YWwodHgyLnNpZ25hYmxlSGV4KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5jbHVkZSBjb21waWxlZENhbGxkYXRhIGluIHRyYW5zYWN0aW9uIGRhdGEnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcblxuICAgICAgYnVpbGRlclxuICAgICAgICAuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG5cbiAgICAgIGNvbnN0IHR4ID0gKGF3YWl0IGJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgICBjb25zdCBkYXRhID0gdHguc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGE7XG5cbiAgICAgIHNob3VsZC5leGlzdChkYXRhLmNvbXBpbGVkQ2FsbGRhdGEpO1xuICAgICAgKGRhdGEuY29tcGlsZWRDYWxsZGF0YSBhcyBzdHJpbmdbXSkubGVuZ3RoLnNob3VsZC5iZS5ncmVhdGVyVGhhbigwKTtcbiAgICAgIChkYXRhLmNvbXBpbGVkQ2FsbGRhdGEgYXMgc3RyaW5nW10pWzBdLnNob3VsZC5lcXVhbCgnMHgxJyk7IC8vIDEgY2FsbFxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbmNsdWRlIHJlc291cmNlQm91bmRzIGluIHRyYW5zYWN0aW9uIGRhdGEnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcblxuICAgICAgYnVpbGRlclxuICAgICAgICAuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJylcbiAgICAgICAgLnJlc291cmNlQm91bmRzKFNhbmRib3hUcmFuc2ZlckRhdGEucmVzb3VyY2VCb3VuZHMpO1xuXG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgY29uc3QgZGF0YSA9IHR4LnN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhO1xuXG4gICAgICBzaG91bGQuZXhpc3QoZGF0YS5yZXNvdXJjZUJvdW5kcyk7XG4gICAgICAoZGF0YS5yZXNvdXJjZUJvdW5kcyBhcyB7IGwyX2dhczogeyBtYXhfYW1vdW50OiBzdHJpbmcgfSB9KS5sMl9nYXMubWF4X2Ftb3VudC5zaG91bGQuZXF1YWwoXG4gICAgICAgIFNhbmRib3hUcmFuc2ZlckRhdGEucmVzb3VyY2VCb3VuZHMubDJfZ2FzLm1heF9hbW91bnRcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFjY2VwdCBjdXN0b20gcmVzb3VyY2UgYm91bmRzIGFuZCBwcm9kdWNlIGRpZmZlcmVudCBoYXNoJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuXG4gICAgICBjb25zdCBidWlsZGVyMSA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyMVxuICAgICAgICAuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG4gICAgICBjb25zdCB0eDEgPSAoYXdhaXQgYnVpbGRlcjEuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb247XG5cbiAgICAgIGNvbnN0IGN1c3RvbUJvdW5kcyA9IHtcbiAgICAgICAgbDJfZ2FzOiB7IG1heF9hbW91bnQ6ICcweDM5Mzg3MDAnLCBtYXhfcHJpY2VfcGVyX3VuaXQ6ICcweDE3NDg3NmU4MDAnIH0sXG4gICAgICAgIGwxX2dhczogeyBtYXhfYW1vdW50OiAnMHgwJywgbWF4X3ByaWNlX3Blcl91bml0OiAnMHg1YWYzMTA3YTQwMDAnIH0sXG4gICAgICAgIGwxX2RhdGFfZ2FzOiB7IG1heF9hbW91bnQ6ICcweDdkMCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4MjU0MGJlNDAwJyB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKVxuICAgICAgICAucmVzb3VyY2VCb3VuZHMoY3VzdG9tQm91bmRzKTtcbiAgICAgIGNvbnN0IHR4MiA9IChhd2FpdCBidWlsZGVyMi5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbjtcblxuICAgICAgdHgxLnNpZ25hYmxlSGV4LnNob3VsZC5ub3QuZXF1YWwodHgyLnNpZ25hYmxlSGV4KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcm91bmQtdHJpcCB0aHJvdWdoIHRvSW50ZXJuYWxIZXggYW5kIGZyb21SYXdUcmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuXG4gICAgICBidWlsZGVyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgY29uc3QgdHggPSAoYXdhaXQgYnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICAgIGNvbnN0IGludGVybmFsSGV4ID0gdHgudG9JbnRlcm5hbEhleCgpO1xuXG4gICAgICBjb25zdCBmYWN0b3J5MiA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlcjIgPSBhd2FpdCBmYWN0b3J5Mi5mcm9tKGludGVybmFsSGV4KTtcbiAgICAgIGNvbnN0IHR4MiA9IChhd2FpdCBidWlsZGVyMi5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcblxuICAgICAgdHgyLnNpZ25hYmxlSGV4LnNob3VsZC5lcXVhbCh0eC5zaWduYWJsZUhleCk7XG4gICAgICB0eDIuaWQuc2hvdWxkLmVxdWFsKHR4LmlkKTtcbiAgICB9KTtcblxuICAgIGl0KCd0b0Jyb2FkY2FzdEZvcm1hdCBzaG91bGQgcmV0dXJuIFN0YXJrbmV0IFJQQy1yZWFkeSBKU09OJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG5cbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnNlbmRlcihBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKVxuICAgICAgICAubm9uY2UoJzB4MCcpXG4gICAgICAgIC5jaGFpbklkKFNhbmRib3hUcmFuc2ZlckRhdGEuY2hhaW5JZClcbiAgICAgICAgLnJlY2VpdmVySWQoQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcylcbiAgICAgICAgLmFtb3VudCgnMTAwMDAwMDAwMDAwMDAwMDAwMCcpO1xuXG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgY29uc3QgYnJvYWRjYXN0ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoYnJvYWRjYXN0KTtcblxuICAgICAgcGFyc2VkLnR5cGUuc2hvdWxkLmVxdWFsKCdJTlZPS0UnKTtcbiAgICAgIHBhcnNlZC52ZXJzaW9uLnNob3VsZC5lcXVhbCgnMHgzJyk7XG4gICAgICBwYXJzZWQuc2VuZGVyX2FkZHJlc3Muc2hvdWxkLmVxdWFsKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpO1xuICAgICAgcGFyc2VkLmNhbGxkYXRhLnNob3VsZC5iZS5BcnJheSgpO1xuICAgICAgcGFyc2VkLm5vbmNlLnNob3VsZC5lcXVhbCgnMHgwJyk7XG4gICAgICBwYXJzZWQucmVzb3VyY2VfYm91bmRzLnNob3VsZC5oYXZlLnByb3BlcnR5KCdsMl9nYXMnKTtcbiAgICAgIHBhcnNlZC5ub25jZV9kYXRhX2F2YWlsYWJpbGl0eV9tb2RlLnNob3VsZC5lcXVhbCgnTDEnKTtcbiAgICAgIHBhcnNlZC5mZWVfZGF0YV9hdmFpbGFiaWxpdHlfbW9kZS5zaG91bGQuZXF1YWwoJ0wxJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdWYWxpZGF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmVqZWN0IGJ1aWxkIHdpdGhvdXQgc2VuZGVyJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC5ub25jZSgnMHgwJylcbiAgICAgICAgLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKVxuICAgICAgICAucmVjZWl2ZXJJZChBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKVxuICAgICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG5cbiAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKC9bU3NdZW5kZXIvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGJ1aWxkIHdpdGhvdXQgbm9uY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnNlbmRlcihBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL1tObl1vbmNlLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBidWlsZCB3aXRob3V0IGNoYWluSWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnNlbmRlcihBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKVxuICAgICAgICAubm9uY2UoJzB4MCcpXG4gICAgICAgIC5yZWNlaXZlcklkKEFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL1tDY11oYWluLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBidWlsZCB3aXRob3V0IHJlY2VpdmVyJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLm5vbmNlKCcweDAnKVxuICAgICAgICAuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpXG4gICAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL1tScl1lY2VpdmVyLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBpbnZhbGlkIHNlbmRlciBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICAoKCkgPT4gYnVpbGRlci5zZW5kZXIoJ2ludmFsaWQnKSkuc2hvdWxkLnRocm93KC9bSWldbnZhbGlkLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBpbnZhbGlkIHJlY2VpdmVyIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgICgoKSA9PiBidWlsZGVyLnJlY2VpdmVySWQoJ2ludmFsaWQnKSkuc2hvdWxkLnRocm93KC9bSWldbnZhbGlkLyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=