stxer 0.3.0 → 0.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.
@@ -22,6 +22,7 @@ export declare class SimulationBuilder {
22
22
  private steps;
23
23
  useBlockHeight(block: number): this;
24
24
  withSender(address: string): this;
25
+ inlineSimulation(simulationId: string): this;
25
26
  addSTXTransfer(params: {
26
27
  recipient: string;
27
28
  amount: number;
@@ -538,7 +538,7 @@ function runSimulation(_x, _x2, _x3, _x4) {
538
538
  }
539
539
  function _runSimulation() {
540
540
  _runSimulation = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(apiEndpoint, block_hash, block_height, txs) {
541
- var header, heightBytes, view, hashHex, matches, hashBytes, txBytes, totalLength, body, offset, _iterator2, _step2, tx, rs;
541
+ var header, heightBytes, view, hashHex, matches, hashBytes, txBytes, totalLength, body, offset, _iterator3, _step4, tx, rs;
542
542
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
543
543
  while (1) switch (_context5.prev = _context5.next) {
544
544
  case 0:
@@ -575,8 +575,8 @@ function _runSimulation() {
575
575
  offset += heightBytes.length;
576
576
  body.set(hashBytes, offset);
577
577
  offset += hashBytes.length;
578
- for (_iterator2 = _createForOfIteratorHelperLoose(txBytes); !(_step2 = _iterator2()).done;) {
579
- tx = _step2.value;
578
+ for (_iterator3 = _createForOfIteratorHelperLoose(txBytes); !(_step4 = _iterator3()).done;) {
579
+ tx = _step4.value;
580
580
  body.set(tx, offset);
581
581
  offset += tx.length;
582
582
  }
@@ -651,6 +651,12 @@ var SimulationBuilder = /*#__PURE__*/function () {
651
651
  this.sender = address;
652
652
  return this;
653
653
  };
654
+ _proto.inlineSimulation = function inlineSimulation(simulationId) {
655
+ this.steps.push({
656
+ simulationId: simulationId
657
+ });
658
+ return this;
659
+ };
654
660
  _proto.addSTXTransfer = function addSTXTransfer(params) {
655
661
  var _params$sender, _params$fee;
656
662
  if (params.sender == null && this.sender === '') {
@@ -756,7 +762,7 @@ var SimulationBuilder = /*#__PURE__*/function () {
756
762
  _proto.run = /*#__PURE__*/function () {
757
763
  var _run = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
758
764
  var _this = this;
759
- var block, txs, nonce_by_address, nextNonce, _iterator, _step, step, network$1, _step$function_args, nonce, _step$contract_id$spl, contractAddress, contractName, tx, _nonce, _tx, _nonce2, _tx2, id;
765
+ var block, txs, nonce_by_address, nextNonce, network$1, _iterator, _step, step, previousSimulation, _iterator2, _step2, _step3, _step$function_args, nonce, _step$contract_id$spl, contractAddress, contractName, tx, _nonce, _tx, _nonce2, _tx2, id;
760
766
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
761
767
  while (1) switch (_context3.prev = _context3.next) {
762
768
  case 0:
@@ -801,13 +807,6 @@ var SimulationBuilder = /*#__PURE__*/function () {
801
807
  return _ref2.apply(this, arguments);
802
808
  };
803
809
  }();
804
- _iterator = _createForOfIteratorHelperLoose(this.steps);
805
- case 9:
806
- if ((_step = _iterator()).done) {
807
- _context3.next = 50;
808
- break;
809
- }
810
- step = _step.value;
811
810
  network$1 = this.network === 'mainnet' ? network.STACKS_MAINNET : network.STACKS_TESTNET;
812
811
  if (this.stacksNodeAPI) {
813
812
  network$1 = _extends({}, network$1, {
@@ -816,16 +815,47 @@ var SimulationBuilder = /*#__PURE__*/function () {
816
815
  })
817
816
  });
818
817
  }
819
- if (!('sender' in step && 'function_name' in step)) {
820
- _context3.next = 25;
818
+ _iterator = _createForOfIteratorHelperLoose(this.steps);
819
+ case 11:
820
+ if ((_step = _iterator()).done) {
821
+ _context3.next = 57;
822
+ break;
823
+ }
824
+ step = _step.value;
825
+ if (!('simulationId' in step)) {
826
+ _context3.next = 20;
821
827
  break;
822
828
  }
823
829
  _context3.next = 16;
824
- return nextNonce(step.sender);
830
+ return fetch("https://api.stxer.xyz/simulations/" + step.simulationId + "/request").then(function (x) {
831
+ return x.json();
832
+ });
825
833
  case 16:
834
+ previousSimulation = _context3.sent;
835
+ for (_iterator2 = _createForOfIteratorHelperLoose(previousSimulation.steps); !(_step2 = _iterator2()).done;) {
836
+ _step3 = _step2.value;
837
+ if ('tx' in _step3) {
838
+ txs.push(transactions.deserializeTransaction(_step3.tx));
839
+ } else if ('code' in _step3 && 'contract' in _step3) {
840
+ txs.push({
841
+ contract_id: _step3.contract,
842
+ code: _step3.code
843
+ });
844
+ }
845
+ }
846
+ _context3.next = 55;
847
+ break;
848
+ case 20:
849
+ if (!('sender' in step && 'function_name' in step)) {
850
+ _context3.next = 32;
851
+ break;
852
+ }
853
+ _context3.next = 23;
854
+ return nextNonce(step.sender);
855
+ case 23:
826
856
  nonce = _context3.sent;
827
857
  _step$contract_id$spl = step.contract_id.split('.'), contractAddress = _step$contract_id$spl[0], contractName = _step$contract_id$spl[1];
828
- _context3.next = 20;
858
+ _context3.next = 27;
829
859
  return transactions.makeUnsignedContractCall({
830
860
  contractAddress: contractAddress,
831
861
  contractName: contractName,
@@ -837,22 +867,22 @@ var SimulationBuilder = /*#__PURE__*/function () {
837
867
  postConditionMode: transactions.PostConditionMode.Allow,
838
868
  fee: step.fee
839
869
  });
840
- case 20:
870
+ case 27:
841
871
  tx = _context3.sent;
842
872
  tx.auth.spendingCondition.signer = c32check.c32addressDecode(step.sender)[1];
843
873
  txs.push(tx);
844
- _context3.next = 48;
874
+ _context3.next = 55;
845
875
  break;
846
- case 25:
876
+ case 32:
847
877
  if (!('sender' in step && 'recipient' in step)) {
848
- _context3.next = 36;
878
+ _context3.next = 43;
849
879
  break;
850
880
  }
851
- _context3.next = 28;
881
+ _context3.next = 35;
852
882
  return nextNonce(step.sender);
853
- case 28:
883
+ case 35:
854
884
  _nonce = _context3.sent;
855
- _context3.next = 31;
885
+ _context3.next = 38;
856
886
  return transactions.makeUnsignedSTXTokenTransfer({
857
887
  recipient: step.recipient,
858
888
  amount: step.amount,
@@ -861,22 +891,22 @@ var SimulationBuilder = /*#__PURE__*/function () {
861
891
  publicKey: '',
862
892
  fee: step.fee
863
893
  });
864
- case 31:
894
+ case 38:
865
895
  _tx = _context3.sent;
866
896
  _tx.auth.spendingCondition.signer = c32check.c32addressDecode(step.sender)[1];
867
897
  txs.push(_tx);
868
- _context3.next = 48;
898
+ _context3.next = 55;
869
899
  break;
870
- case 36:
900
+ case 43:
871
901
  if (!('deployer' in step)) {
872
- _context3.next = 47;
902
+ _context3.next = 54;
873
903
  break;
874
904
  }
875
- _context3.next = 39;
905
+ _context3.next = 46;
876
906
  return nextNonce(step.deployer);
877
- case 39:
907
+ case 46:
878
908
  _nonce2 = _context3.sent;
879
- _context3.next = 42;
909
+ _context3.next = 49;
880
910
  return transactions.makeUnsignedContractDeploy({
881
911
  contractName: step.contract_name,
882
912
  codeBody: step.source_code,
@@ -886,30 +916,30 @@ var SimulationBuilder = /*#__PURE__*/function () {
886
916
  postConditionMode: transactions.PostConditionMode.Allow,
887
917
  fee: step.fee
888
918
  });
889
- case 42:
919
+ case 49:
890
920
  _tx2 = _context3.sent;
891
921
  _tx2.auth.spendingCondition.signer = c32check.c32addressDecode(step.deployer)[1];
892
922
  txs.push(_tx2);
893
- _context3.next = 48;
923
+ _context3.next = 55;
894
924
  break;
895
- case 47:
925
+ case 54:
896
926
  if ('code' in step) {
897
927
  txs.push(step);
898
928
  } else {
899
929
  // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
900
930
  console.log("Invalid simulation step:", step);
901
931
  }
902
- case 48:
903
- _context3.next = 9;
932
+ case 55:
933
+ _context3.next = 11;
904
934
  break;
905
- case 50:
906
- _context3.next = 52;
935
+ case 57:
936
+ _context3.next = 59;
907
937
  return runSimulation(this.apiEndpoint + "/simulations", block.block_hash, block.block_height, txs);
908
- case 52:
938
+ case 59:
909
939
  id = _context3.sent;
910
940
  console.log("Simulation will be available at: https://stxer.xyz/simulations/" + this.network + "/" + id);
911
941
  return _context3.abrupt("return", id);
912
- case 55:
942
+ case 62:
913
943
  case "end":
914
944
  return _context3.stop();
915
945
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stxer.cjs.development.js","sources":["../src/batch-api.ts","../src/simulation.ts"],"sourcesContent":["import {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n type OptionalCV,\n serializeCV,\n } from '@stacks/transactions';\n \n export interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n index_block_hash?: string;\n }\n \n export interface BatchReadsResult {\n variables: (ClarityValue | Error)[];\n maps: (OptionalCV | Error)[];\n }\n \n export interface BatchApiOptions {\n stxerApi?: string;\n }\n \n const DEFAULT_STXER_API = 'https://api.stxer.xyz';\n \n export async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n ): Promise<BatchReadsResult> {\n const payload: string[][] = [];\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n \n const ibh =\n reads.index_block_hash == null\n ? null\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-reads${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch reads failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: BatchReadsResult = {\n variables: [],\n maps: [],\n };\n let variablesLength = 0;\n if (reads.variables != null) {\n variablesLength = reads.variables.length;\n for (let i = 0; i < variablesLength; i++) {\n const result = results[i];\n if ('Ok' in result) {\n rs.variables.push(deserializeCV(result.Ok));\n } else {\n rs.variables.push(new Error(result.Err));\n }\n }\n }\n if (reads.maps != null) {\n for (let i = 0; i < reads.maps.length; i++) {\n const result = results[i + variablesLength];\n if ('Ok' in result) {\n rs.maps.push(deserializeCV(result.Ok) as OptionalCV);\n } else {\n rs.maps.push(new Error(result.Err));\n }\n }\n }\n return rs;\n }\n \n export interface BatchReadonlyRequest {\n readonly: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n }\n \n export async function batchReadonly(\n req: BatchReadonlyRequest,\n options: BatchApiOptions = {}\n ): Promise<(ClarityValue | Error)[]> {\n const payload = req.readonly.map((r) => [\n serializeCV(r.contract),\n r.functionName,\n ...r.functionArgs.map((arg) => serializeCV(arg)),\n ]);\n \n const ibh =\n req.index_block_hash == null\n ? null\n : req.index_block_hash.startsWith('0x')\n ? req.index_block_hash.substring(2)\n : req.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-readonly${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch readonly failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: (ClarityValue | Error)[] = [];\n for (const result of results) {\n if ('Ok' in result) {\n rs.push(deserializeCV(result.Ok));\n } else {\n rs.push(new Error(result.Err));\n }\n }\n return rs;\n }\n ","import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport {\n type ClarityValue,\n ClarityVersion,\n PostConditionMode,\n type StacksTransactionWire,\n bufferCV,\n contractPrincipalCV,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\n\nfunction runTx(tx: StacksTransactionWire) {\n // type 0: run transaction\n return tupleCV({ type: uintCV(0), data: bufferCV(tx.serializeBytes()) });\n}\n\nexport interface SimulationEval {\n contract_id: string;\n code: string;\n}\n\nexport function runEval({ contract_id, code }: SimulationEval) {\n const [contract_address, contract_name] = contract_id.split('.');\n // type 1: eval arbitrary code inside a contract\n return tupleCV({\n type: uintCV(1),\n data: bufferCV(\n serializeCVBytes(\n tupleCV({\n contract: contractPrincipalCV(contract_address, contract_name),\n code: stringAsciiCV(code),\n })\n )\n ),\n });\n}\n\nexport async function runSimulation(\n apiEndpoint: string,\n block_hash: string,\n block_height: number,\n txs: (StacksTransactionWire | SimulationEval)[]\n) {\n // Convert 'sim-v1' to Uint8Array\n const header = new TextEncoder().encode('sim-v1');\n // Create 8 bytes for block height\n const heightBytes = new Uint8Array(8);\n // Convert block height to bytes\n const view = new DataView(heightBytes.buffer);\n view.setBigUint64(0, BigInt(block_height), false); // false for big-endian\n\n // Convert block hash to bytes\n const hashHex = block_hash.startsWith('0x')\n ? block_hash.substring(2)\n : block_hash;\n // Replace non-null assertion with null check\n const matches = hashHex.match(/.{1,2}/g);\n if (!matches) {\n throw new Error('Invalid block hash format');\n }\n const hashBytes = new Uint8Array(\n matches.map((byte) => Number.parseInt(byte, 16))\n );\n\n // Convert transactions to bytes\n const txBytes = txs\n .map((t) => ('contract_id' in t && 'code' in t ? runEval(t) : runTx(t)))\n .map((t) => serializeCVBytes(t));\n\n // Combine all byte arrays\n const totalLength =\n header.length +\n heightBytes.length +\n hashBytes.length +\n txBytes.reduce((acc, curr) => acc + curr.length, 0);\n const body = new Uint8Array(totalLength);\n\n let offset = 0;\n body.set(header, offset);\n offset += header.length;\n body.set(heightBytes, offset);\n offset += heightBytes.length;\n body.set(hashBytes, offset);\n offset += hashBytes.length;\n for (const tx of txBytes) {\n body.set(tx, offset);\n offset += tx.length;\n }\n\n const rs = await fetch(apiEndpoint, {\n method: 'POST',\n body,\n }).then(async (rs) => {\n const response = await rs.text();\n if (!response.startsWith('{')) {\n throw new Error(`failed to submit simulation: ${response}`);\n }\n return JSON.parse(response) as { id: string };\n });\n return rs.id;\n}\n\ninterface SimulationBuilderOptions {\n apiEndpoint?: string;\n stacksNodeAPI?: string;\n network?: StacksNetworkName | string;\n}\n\nexport class SimulationBuilder {\n private apiEndpoint: string;\n private stacksNodeAPI: string;\n private network: StacksNetworkName | string;\n\n private constructor(options: SimulationBuilderOptions = {}) {\n this.apiEndpoint = options.apiEndpoint ?? 'https://api.stxer.xyz';\n this.stacksNodeAPI = options.stacksNodeAPI ?? 'https://api.hiro.so';\n this.network = options.network ?? 'mainnet';\n }\n\n public static new(options?: SimulationBuilderOptions) {\n return new SimulationBuilder(options);\n }\n\n // biome-ignore lint/style/useNumberNamespace: <explanation>\n private block = NaN;\n private sender = '';\n private steps: (\n | {\n // contract call\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender: string;\n fee: number;\n }\n | {\n // contract deploy\n contract_name: string;\n source_code: string;\n deployer: string;\n fee: number;\n clarity_version: ClarityVersion;\n }\n | {\n // STX transfer\n recipient: string;\n amount: number;\n sender: string;\n fee: number;\n }\n | SimulationEval\n )[] = [];\n\n public useBlockHeight(block: number) {\n this.block = block;\n return this;\n }\n public withSender(address: string) {\n this.sender = address;\n return this;\n }\n public addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n for (const step of this.steps) {\n let network = this.network === 'mainnet' ? STACKS_MAINNET : STACKS_TESTNET;\n if (this.stacksNodeAPI) {\n network = {\n ...network,\n client: {\n ...network.client,\n baseUrl: this.stacksNodeAPI,\n },\n };\n }\n if ('sender' in step && 'function_name' in step) {\n const nonce = await nextNonce(step.sender);\n const [contractAddress, contractName] = step.contract_id.split('.');\n const tx = await makeUnsignedContractCall({\n contractAddress,\n contractName,\n functionName: step.function_name,\n functionArgs: step.function_args ?? [],\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('sender' in step && 'recipient' in step) {\n const nonce = await nextNonce(step.sender);\n const tx = await makeUnsignedSTXTokenTransfer({\n recipient: step.recipient,\n amount: step.amount,\n nonce,\n network,\n publicKey: '',\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('deployer' in step) {\n const nonce = await nextNonce(step.deployer);\n const tx = await makeUnsignedContractDeploy({\n contractName: step.contract_name,\n codeBody: step.source_code,\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.deployer)[1];\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.log(`Invalid simulation step:`, step);\n }\n }\n const id = await runSimulation(\n `${this.apiEndpoint}/simulations`,\n block.block_hash,\n block.block_height,\n txs\n );\n console.log(\n `Simulation will be available at: https://stxer.xyz/simulations/${this.network}/${id}`\n );\n return id;\n }\n\n public pipe(transform: (builder: SimulationBuilder) => SimulationBuilder): SimulationBuilder {\n return transform(this);\n }\n}\n"],"names":["DEFAULT_STXER_API","batchRead","_x","_x2","_batchRead","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","payload","variables","_iterator","_createForOfIteratorHelperLoose","_step","done","variable","value","push","serializeCV","contract","variableName","maps","_iterator2","_step2","map","mapName","mapKey","ibh","index_block_hash","startsWith","substring","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","data","sent","text","includes","Error","results","parse","rs","variablesLength","length","i","result","deserializeCV","Ok","Err","abrupt","stop","batchReadonly","_x3","_x4","_batchReadonly","_callee2","req","readonly","r","functionName","concat","functionArgs","arg","_options$stxerApi2","_context2","_iterator3","_step3","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_runSimulation","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","offset","wrap","_callee5$","_context5","prev","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","set","then","_ref3","_callee4","response","_callee4$","_context4","_x6","id","SimulationBuilder","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","new","_proto","prototype","useBlockHeight","withSender","address","addSTXTransfer","params","_params$sender","_params$fee","_extends","fee","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","deployer","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","key","addVarRead","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","_callee$","isNaN","getNodeInfo","stacksEndpoint","richFetch","json","height","hash","run","_run","_callee3","_this","nonce_by_address","nextNonce","step","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_callee3$","_context3","console","log","Map","_ref2","account","_callee2$","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","auth","spendingCondition","signer","c32addressDecode","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","pipe","transform"],"mappings":"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"}
1
+ {"version":3,"file":"stxer.cjs.development.js","sources":["../src/batch-api.ts","../src/simulation.ts"],"sourcesContent":["import {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n type OptionalCV,\n serializeCV,\n } from '@stacks/transactions';\n \n export interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n index_block_hash?: string;\n }\n \n export interface BatchReadsResult {\n variables: (ClarityValue | Error)[];\n maps: (OptionalCV | Error)[];\n }\n \n export interface BatchApiOptions {\n stxerApi?: string;\n }\n \n const DEFAULT_STXER_API = 'https://api.stxer.xyz';\n \n export async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n ): Promise<BatchReadsResult> {\n const payload: string[][] = [];\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n \n const ibh =\n reads.index_block_hash == null\n ? null\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-reads${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch reads failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: BatchReadsResult = {\n variables: [],\n maps: [],\n };\n let variablesLength = 0;\n if (reads.variables != null) {\n variablesLength = reads.variables.length;\n for (let i = 0; i < variablesLength; i++) {\n const result = results[i];\n if ('Ok' in result) {\n rs.variables.push(deserializeCV(result.Ok));\n } else {\n rs.variables.push(new Error(result.Err));\n }\n }\n }\n if (reads.maps != null) {\n for (let i = 0; i < reads.maps.length; i++) {\n const result = results[i + variablesLength];\n if ('Ok' in result) {\n rs.maps.push(deserializeCV(result.Ok) as OptionalCV);\n } else {\n rs.maps.push(new Error(result.Err));\n }\n }\n }\n return rs;\n }\n \n export interface BatchReadonlyRequest {\n readonly: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n }\n \n export async function batchReadonly(\n req: BatchReadonlyRequest,\n options: BatchApiOptions = {}\n ): Promise<(ClarityValue | Error)[]> {\n const payload = req.readonly.map((r) => [\n serializeCV(r.contract),\n r.functionName,\n ...r.functionArgs.map((arg) => serializeCV(arg)),\n ]);\n \n const ibh =\n req.index_block_hash == null\n ? null\n : req.index_block_hash.startsWith('0x')\n ? req.index_block_hash.substring(2)\n : req.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-readonly${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch readonly failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: (ClarityValue | Error)[] = [];\n for (const result of results) {\n if ('Ok' in result) {\n rs.push(deserializeCV(result.Ok));\n } else {\n rs.push(new Error(result.Err));\n }\n }\n return rs;\n }\n ","import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport {\n type ClarityValue,\n ClarityVersion,\n PostConditionMode,\n type StacksTransactionWire,\n bufferCV,\n contractPrincipalCV,\n deserializeTransaction,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\n\nfunction runTx(tx: StacksTransactionWire) {\n // type 0: run transaction\n return tupleCV({ type: uintCV(0), data: bufferCV(tx.serializeBytes()) });\n}\n\nexport interface SimulationEval {\n contract_id: string;\n code: string;\n}\n\nexport function runEval({ contract_id, code }: SimulationEval) {\n const [contract_address, contract_name] = contract_id.split('.');\n // type 1: eval arbitrary code inside a contract\n return tupleCV({\n type: uintCV(1),\n data: bufferCV(\n serializeCVBytes(\n tupleCV({\n contract: contractPrincipalCV(contract_address, contract_name),\n code: stringAsciiCV(code),\n })\n )\n ),\n });\n}\n\nexport async function runSimulation(\n apiEndpoint: string,\n block_hash: string,\n block_height: number,\n txs: (StacksTransactionWire | SimulationEval)[]\n) {\n // Convert 'sim-v1' to Uint8Array\n const header = new TextEncoder().encode('sim-v1');\n // Create 8 bytes for block height\n const heightBytes = new Uint8Array(8);\n // Convert block height to bytes\n const view = new DataView(heightBytes.buffer);\n view.setBigUint64(0, BigInt(block_height), false); // false for big-endian\n\n // Convert block hash to bytes\n const hashHex = block_hash.startsWith('0x')\n ? block_hash.substring(2)\n : block_hash;\n // Replace non-null assertion with null check\n const matches = hashHex.match(/.{1,2}/g);\n if (!matches) {\n throw new Error('Invalid block hash format');\n }\n const hashBytes = new Uint8Array(\n matches.map((byte) => Number.parseInt(byte, 16))\n );\n\n // Convert transactions to bytes\n const txBytes = txs\n .map((t) => ('contract_id' in t && 'code' in t ? runEval(t) : runTx(t)))\n .map((t) => serializeCVBytes(t));\n\n // Combine all byte arrays\n const totalLength =\n header.length +\n heightBytes.length +\n hashBytes.length +\n txBytes.reduce((acc, curr) => acc + curr.length, 0);\n const body = new Uint8Array(totalLength);\n\n let offset = 0;\n body.set(header, offset);\n offset += header.length;\n body.set(heightBytes, offset);\n offset += heightBytes.length;\n body.set(hashBytes, offset);\n offset += hashBytes.length;\n for (const tx of txBytes) {\n body.set(tx, offset);\n offset += tx.length;\n }\n\n const rs = await fetch(apiEndpoint, {\n method: 'POST',\n body,\n }).then(async (rs) => {\n const response = await rs.text();\n if (!response.startsWith('{')) {\n throw new Error(`failed to submit simulation: ${response}`);\n }\n return JSON.parse(response) as { id: string };\n });\n return rs.id;\n}\n\ninterface SimulationBuilderOptions {\n apiEndpoint?: string;\n stacksNodeAPI?: string;\n network?: StacksNetworkName | string;\n}\n\nexport class SimulationBuilder {\n private apiEndpoint: string;\n private stacksNodeAPI: string;\n private network: StacksNetworkName | string;\n\n private constructor(options: SimulationBuilderOptions = {}) {\n this.apiEndpoint = options.apiEndpoint ?? 'https://api.stxer.xyz';\n this.stacksNodeAPI = options.stacksNodeAPI ?? 'https://api.hiro.so';\n this.network = options.network ?? 'mainnet';\n }\n\n public static new(options?: SimulationBuilderOptions) {\n return new SimulationBuilder(options);\n }\n\n // biome-ignore lint/style/useNumberNamespace: <explanation>\n private block = NaN;\n private sender = '';\n private steps: (\n | {\n // inline simulation\n simulationId: string;\n }\n | {\n // contract call\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender: string;\n fee: number;\n }\n | {\n // contract deploy\n contract_name: string;\n source_code: string;\n deployer: string;\n fee: number;\n clarity_version: ClarityVersion;\n }\n | {\n // STX transfer\n recipient: string;\n amount: number;\n sender: string;\n fee: number;\n }\n | SimulationEval\n )[] = [];\n\n public useBlockHeight(block: number) {\n this.block = block;\n return this;\n }\n public withSender(address: string) {\n this.sender = address;\n return this;\n }\n public inlineSimulation(simulationId: string) {\n this.steps.push({\n simulationId,\n })\n return this;\n }\n public addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n let network = this.network === 'mainnet' ? STACKS_MAINNET : STACKS_TESTNET;\n if (this.stacksNodeAPI) {\n network = {\n ...network,\n client: {\n ...network.client,\n baseUrl: this.stacksNodeAPI,\n },\n };\n }\n for (const step of this.steps) {\n if ('simulationId' in step) {\n const previousSimulation: {steps: ({tx: string} | {code: string, contract: string})[]} = await fetch(`https://api.stxer.xyz/simulations/${step.simulationId}/request`).then(x => x.json())\n for (const step of previousSimulation.steps) {\n if ('tx' in step) {\n txs.push(deserializeTransaction(step.tx));\n } else if ('code' in step && 'contract' in step) {\n txs.push({\n contract_id: step.contract,\n code: step.code,\n });\n }\n }\n } else if ('sender' in step && 'function_name' in step) {\n const nonce = await nextNonce(step.sender);\n const [contractAddress, contractName] = step.contract_id.split('.');\n const tx = await makeUnsignedContractCall({\n contractAddress,\n contractName,\n functionName: step.function_name,\n functionArgs: step.function_args ?? [],\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('sender' in step && 'recipient' in step) {\n const nonce = await nextNonce(step.sender);\n const tx = await makeUnsignedSTXTokenTransfer({\n recipient: step.recipient,\n amount: step.amount,\n nonce,\n network,\n publicKey: '',\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('deployer' in step) {\n const nonce = await nextNonce(step.deployer);\n const tx = await makeUnsignedContractDeploy({\n contractName: step.contract_name,\n codeBody: step.source_code,\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.deployer)[1];\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.log(`Invalid simulation step:`, step);\n }\n }\n const id = await runSimulation(\n `${this.apiEndpoint}/simulations`,\n block.block_hash,\n block.block_height,\n txs\n );\n console.log(\n `Simulation will be available at: https://stxer.xyz/simulations/${this.network}/${id}`\n );\n return id;\n }\n\n public pipe(transform: (builder: SimulationBuilder) => SimulationBuilder): SimulationBuilder {\n return transform(this);\n }\n}\n"],"names":["DEFAULT_STXER_API","batchRead","_x","_x2","_batchRead","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","payload","variables","_iterator","_createForOfIteratorHelperLoose","_step","done","variable","value","push","serializeCV","contract","variableName","maps","_iterator2","_step2","map","mapName","mapKey","ibh","index_block_hash","startsWith","substring","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","data","sent","text","includes","Error","results","parse","rs","variablesLength","length","i","result","deserializeCV","Ok","Err","abrupt","stop","batchReadonly","_x3","_x4","_batchReadonly","_callee2","req","readonly","r","functionName","concat","functionArgs","arg","_options$stxerApi2","_context2","_iterator3","_step3","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_runSimulation","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","offset","_step4","wrap","_callee5$","_context5","prev","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","set","then","_ref3","_callee4","response","_callee4$","_context4","_x6","id","SimulationBuilder","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","new","_proto","prototype","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","params","_params$sender","_params$fee","_extends","fee","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","deployer","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","key","addVarRead","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","_callee$","isNaN","getNodeInfo","stacksEndpoint","richFetch","json","height","hash","run","_run","_callee3","_this","nonce_by_address","nextNonce","step","previousSimulation","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_callee3$","_context3","console","log","Map","_ref2","account","_callee2$","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","x","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","auth","spendingCondition","signer","c32addressDecode","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","pipe","transform"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@stacks/transactions"),e=require("ts-clarity"),r=require("@stacks/network"),n=require("c32check");function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(t,e,r,n,i,o,a){try{var s=t[o](a),c=s.value}catch(t){return void r(t)}s.done?e(c):Promise.resolve(c).then(n,i)}function a(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function s(t){o(a,n,i,s,c,"next",t)}function c(t){o(a,n,i,s,c,"throw",t)}s(void 0)}))}}function s(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(){return c=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},c.apply(null,arguments)}function u(){u=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var o=Object.create((e&&e.prototype instanceof b?e:b).prototype),a=new L(n||[]);return i(o,"_invoke",{value:C(t,r,a)}),o}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=h;var p="suspendedStart",d="suspendedYield",y="executing",v="completed",g={};function b(){}function m(){}function w(){}var x={};l(x,a,(function(){return this}));var k=Object.getPrototypeOf,_=k&&k(k(T([])));_&&_!==r&&n.call(_,a)&&(x=_);var E=w.prototype=b.prototype=Object.create(x);function N(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function r(i,o,a,s){var c=f(t[i],t,o);if("throw"!==c.type){var u=c.arg,l=u.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,s)}),(function(t){r("throw",t,a,s)})):e.resolve(l).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,s)}))}s(c.arg)}var o;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return o=o?o.then(i,i):i()}})}function C(e,r,n){var i=p;return function(o,a){if(i===y)throw Error("Generator is already running");if(i===v){if("throw"===o)throw a;return{value:t,done:!0}}for(n.method=o,n.arg=a;;){var s=n.delegate;if(s){var c=O(s,n);if(c){if(c===g)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===p)throw i=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=y;var u=f(e,r,n);if("normal"===u.type){if(i=n.done?v:d,u.arg===g)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(i=v,n.method="throw",n.arg=u.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var o=f(i,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,g;var a=o.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function T(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function r(){for(;++i<e.length;)if(n.call(e,i))return r.value=e[i],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return m.prototype=w,i(E,"constructor",{value:w,configurable:!0}),i(w,"constructor",{value:m,configurable:!0}),m.displayName=l(w,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===m||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,l(t,c,"GeneratorFunction")),t.prototype=Object.create(E),t},e.awrap=function(t){return{__await:t}},N(S.prototype),l(S.prototype,s,(function(){return this})),e.AsyncIterator=S,e.async=function(t,r,n,i,o){void 0===o&&(o=Promise);var a=new S(h(t,r,n,i),o);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},N(E),l(E,c,"Generator"),l(E,a,(function(){return this})),l(E,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=T,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(P),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function i(n,i){return s.type="throw",s.arg=e,r.next=n,i&&(r.method="next",r.arg=t),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,g):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),g},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:T(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}var l="https://api.stxer.xyz";function h(){return(h=a(u().mark((function e(r,n){var i,o,a,c,h,f,p,d,y,v,g,b,m,w,x,k,_,E,N;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===n&&(n={}),o=[],null!=r.variables)for(a=s(r.variables);!(c=a()).done;)o.push([t.serializeCV((h=c.value).contract),h.variableName]);if(null!=r.maps)for(f=s(r.maps);!(p=f()).done;)o.push([t.serializeCV((d=p.value).contract),d.mapName,t.serializeCV(d.mapKey)]);return y=null==r.index_block_hash?null:r.index_block_hash.startsWith("0x")?r.index_block_hash.substring(2):r.index_block_hash,v=(null!=(i=n.stxerApi)?i:l)+"/sidecar/v2/batch-reads"+(null==y?"":"?tip="+y),e.next=8,fetch(v,{method:"POST",body:JSON.stringify(o)});case 8:return g=e.sent,e.next=11,g.text();case 11:if((b=e.sent).includes("Ok")||b.includes("Err")){e.next=14;break}throw new Error("Requesting batch reads failed: "+b+", url: "+v+", payload: "+JSON.stringify(o));case 14:if(m=JSON.parse(b),w={variables:[],maps:[]},x=0,null!=r.variables)for(x=r.variables.length,k=0;k<x;k++)w.variables.push("Ok"in(_=m[k])?t.deserializeCV(_.Ok):new Error(_.Err));if(null!=r.maps)for(E=0;E<r.maps.length;E++)w.maps.push("Ok"in(N=m[E+x])?t.deserializeCV(N.Ok):new Error(N.Err));return e.abrupt("return",w);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function f(){return(f=a(u().mark((function e(r,n){var i,o,a,c,h,f,p,d,y,v,g;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n={}),o=r.readonly.map((function(e){return[t.serializeCV(e.contract),e.functionName].concat(e.functionArgs.map((function(e){return t.serializeCV(e)})))})),a=null==r.index_block_hash?null:r.index_block_hash.startsWith("0x")?r.index_block_hash.substring(2):r.index_block_hash,c=(null!=(i=n.stxerApi)?i:l)+"/sidecar/v2/batch-readonly"+(null==a?"":"?tip="+a),e.next=6,fetch(c,{method:"POST",body:JSON.stringify(o)});case 6:return h=e.sent,e.next=9,h.text();case 9:if((f=e.sent).includes("Ok")||f.includes("Err")){e.next=12;break}throw new Error("Requesting batch readonly failed: "+f+", url: "+c+", payload: "+JSON.stringify(o));case 12:for(p=JSON.parse(f),d=[],y=s(p);!(v=y()).done;)d.push("Ok"in(g=v.value)?t.deserializeCV(g.Ok):new Error(g.Err));return e.abrupt("return",d);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(e){return t.tupleCV({type:t.uintCV(0),data:t.bufferCV(e.serializeBytes())})}function d(e){var r=e.code,n=e.contract_id.split("."),i=n[0],o=n[1];return t.tupleCV({type:t.uintCV(1),data:t.bufferCV(t.serializeCVBytes(t.tupleCV({contract:t.contractPrincipalCV(i,o),code:t.stringAsciiCV(r)})))})}function y(t,e,r,n){return v.apply(this,arguments)}function v(){return v=a(u().mark((function e(r,n,i,o){var c,l,h,f,y,v,g,b,m,w,x,k;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=(new TextEncoder).encode("sim-v1"),l=new Uint8Array(8),new DataView(l.buffer).setBigUint64(0,BigInt(i),!1),h=n.startsWith("0x")?n.substring(2):n,f=h.match(/.{1,2}/g)){e.next=8;break}throw new Error("Invalid block hash format");case 8:for(y=new Uint8Array(f.map((function(t){return Number.parseInt(t,16)}))),v=o.map((function(t){return"contract_id"in t&&"code"in t?d(t):p(t)})).map((function(e){return t.serializeCVBytes(e)})),g=c.length+l.length+y.length+v.reduce((function(t,e){return t+e.length}),0),(b=new Uint8Array(g)).set(c,m=0),b.set(l,m+=c.length),b.set(y,m+=l.length),m+=y.length,w=s(v);!(x=w()).done;)b.set(k=x.value,m),m+=k.length;return e.next=22,fetch(r,{method:"POST",body:b}).then(function(){var t=a(u().mark((function t(e){var r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.text();case 2:if((r=t.sent).startsWith("{")){t.next=5;break}throw new Error("failed to submit simulation: "+r);case 5:return t.abrupt("return",JSON.parse(r));case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}());case 22:return e.abrupt("return",e.sent.id);case 24:case"end":return e.stop()}}),e)}))),v.apply(this,arguments)}exports.SimulationBuilder=function(){function i(t){var e,r,n;void 0===t&&(t={}),this.apiEndpoint=void 0,this.stacksNodeAPI=void 0,this.network=void 0,this.block=NaN,this.sender="",this.steps=[],this.apiEndpoint=null!=(e=t.apiEndpoint)?e:"https://api.stxer.xyz",this.stacksNodeAPI=null!=(r=t.stacksNodeAPI)?r:"https://api.hiro.so",this.network=null!=(n=t.network)?n:"mainnet"}i.new=function(t){return new i(t)};var o=i.prototype;return o.useBlockHeight=function(t){return this.block=t,this},o.withSender=function(t){return this.sender=t,this},o.addSTXTransfer=function(t){var e,r;if(null==t.sender&&""===this.sender)throw new Error("Please specify a sender with useSender or adding a sender paramenter");return this.steps.push(c({},t,{sender:null!=(e=t.sender)?e:this.sender,fee:null!=(r=t.fee)?r:0})),this},o.addContractCall=function(t){var e,r;if(null==t.sender&&""===this.sender)throw new Error("Please specify a sender with useSender or adding a sender paramenter");return this.steps.push(c({},t,{sender:null!=(e=t.sender)?e:this.sender,fee:null!=(r=t.fee)?r:0})),this},o.addContractDeploy=function(e){var r,n,i;if(null==e.deployer&&""===this.sender)throw new Error("Please specify a deployer with useSender or adding a deployer paramenter");return this.steps.push(c({},e,{deployer:null!=(r=e.deployer)?r:this.sender,fee:null!=(n=e.fee)?n:0,clarity_version:null!=(i=e.clarity_version)?i:t.ClarityVersion.Clarity3})),this},o.addEvalCode=function(t,e){return this.steps.push({contract_id:t,code:e}),this},o.addMapRead=function(t,e,r){return this.steps.push({contract_id:t,code:"(map-get "+e+" "+r+")"}),this},o.addVarRead=function(t,e){return this.steps.push({contract_id:t,code:"(var-get "+e+")"}),this},o.getBlockInfo=function(){var t=a(u().mark((function t(){var r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Number.isNaN(this.block)){t.next=6;break}return t.next=3,e.getNodeInfo({stacksEndpoint:this.stacksNodeAPI});case 3:this.block=t.sent.stacks_tip_height;case 6:return t.next=8,e.richFetch(this.stacksNodeAPI+"/extended/v1/block/by_height/"+this.block+"?unanchored=true").then((function(t){return t.json()}));case 8:if((r=t.sent).height===this.block&&"string"==typeof r.hash&&r.hash.startsWith("0x")){t.next=11;break}throw new Error("failed to get block info for block height "+this.block);case 11:return t.abrupt("return",{block_height:this.block,block_hash:r.hash.substring(2),index_block_hash:r.index_block_hash.substring(2)});case 12:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),o.run=function(){var i=a(u().mark((function i(){var o,l,h,f,p,d,v,g,b,m,w,x,k,_,E,N,S,C,O,A=this;return u().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return console.log("--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------"),i.next=3,this.getBlockInfo();case 3:o=i.sent,console.log("Using block height "+o.block_height+" hash 0x"+o.block_hash+" to run simulation."),l=[],h=new Map,f=function(){var t=a(u().mark((function t(r){var n,i,a;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(null!=(n=h.get(r))){t.next=8;break}return i=A.stacksNodeAPI+"/v2/accounts/"+r+"?proof="+!1+"&tip="+o.index_block_hash,t.next=5,e.richFetch(i).then((function(t){return t.json()}));case 5:return h.set(r,(a=t.sent).nonce+1),t.abrupt("return",a.nonce);case 8:return h.set(r,n+1),t.abrupt("return",n);case 10:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),p=s(this.steps);case 9:if((d=p()).done){i.next=50;break}if(v=d.value,g="mainnet"===this.network?r.STACKS_MAINNET:r.STACKS_TESTNET,this.stacksNodeAPI&&(g=c({},g,{client:c({},g.client,{baseUrl:this.stacksNodeAPI})})),!("sender"in v)||!("function_name"in v)){i.next=25;break}return i.next=16,f(v.sender);case 16:return m=i.sent,w=v.contract_id.split("."),x=w[0],k=w[1],i.next=20,t.makeUnsignedContractCall({contractAddress:x,contractName:k,functionName:v.function_name,functionArgs:null!=(b=v.function_args)?b:[],nonce:m,network:g,publicKey:"",postConditionMode:t.PostConditionMode.Allow,fee:v.fee});case 20:(_=i.sent).auth.spendingCondition.signer=n.c32addressDecode(v.sender)[1],l.push(_),i.next=48;break;case 25:if(!("sender"in v)||!("recipient"in v)){i.next=36;break}return i.next=28,f(v.sender);case 28:return E=i.sent,i.next=31,t.makeUnsignedSTXTokenTransfer({recipient:v.recipient,amount:v.amount,nonce:E,network:g,publicKey:"",fee:v.fee});case 31:(N=i.sent).auth.spendingCondition.signer=n.c32addressDecode(v.sender)[1],l.push(N),i.next=48;break;case 36:if(!("deployer"in v)){i.next=47;break}return i.next=39,f(v.deployer);case 39:return S=i.sent,i.next=42,t.makeUnsignedContractDeploy({contractName:v.contract_name,codeBody:v.source_code,nonce:S,network:g,publicKey:"",postConditionMode:t.PostConditionMode.Allow,fee:v.fee});case 42:(C=i.sent).auth.spendingCondition.signer=n.c32addressDecode(v.deployer)[1],l.push(C),i.next=48;break;case 47:"code"in v?l.push(v):console.log("Invalid simulation step:",v);case 48:i.next=9;break;case 50:return i.next=52,y(this.apiEndpoint+"/simulations",o.block_hash,o.block_height,l);case 52:return O=i.sent,console.log("Simulation will be available at: https://stxer.xyz/simulations/"+this.network+"/"+O),i.abrupt("return",O);case 55:case"end":return i.stop()}}),i,this)})));return function(){return i.apply(this,arguments)}}(),o.pipe=function(t){return t(this)},i}(),exports.batchRead=function(t,e){return h.apply(this,arguments)},exports.batchReadonly=function(t,e){return f.apply(this,arguments)},exports.runEval=d,exports.runSimulation=y;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@stacks/transactions"),e=require("ts-clarity"),r=require("@stacks/network"),n=require("c32check");function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(t,e,r,n,i,o,a){try{var s=t[o](a),c=s.value}catch(t){return void r(t)}s.done?e(c):Promise.resolve(c).then(n,i)}function a(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function s(t){o(a,n,i,s,c,"next",t)}function c(t){o(a,n,i,s,c,"throw",t)}s(void 0)}))}}function s(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(){return c=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},c.apply(null,arguments)}function u(){u=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var o=Object.create((e&&e.prototype instanceof b?e:b).prototype),a=new L(n||[]);return i(o,"_invoke",{value:C(t,r,a)}),o}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=h;var p="suspendedStart",d="suspendedYield",y="executing",v="completed",g={};function b(){}function m(){}function x(){}var w={};l(w,a,(function(){return this}));var k=Object.getPrototypeOf,_=k&&k(k(T([])));_&&_!==r&&n.call(_,a)&&(w=_);var E=x.prototype=b.prototype=Object.create(w);function S(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function N(t,e){function r(i,o,a,s){var c=f(t[i],t,o);if("throw"!==c.type){var u=c.arg,l=u.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,s)}),(function(t){r("throw",t,a,s)})):e.resolve(l).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,s)}))}s(c.arg)}var o;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return o=o?o.then(i,i):i()}})}function C(e,r,n){var i=p;return function(o,a){if(i===y)throw Error("Generator is already running");if(i===v){if("throw"===o)throw a;return{value:t,done:!0}}for(n.method=o,n.arg=a;;){var s=n.delegate;if(s){var c=O(s,n);if(c){if(c===g)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===p)throw i=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=y;var u=f(e,r,n);if("normal"===u.type){if(i=n.done?v:d,u.arg===g)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(i=v,n.method="throw",n.arg=u.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var o=f(i,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,g;var a=o.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function T(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function r(){for(;++i<e.length;)if(n.call(e,i))return r.value=e[i],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return m.prototype=x,i(E,"constructor",{value:x,configurable:!0}),i(x,"constructor",{value:m,configurable:!0}),m.displayName=l(x,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===m||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,x):(t.__proto__=x,l(t,c,"GeneratorFunction")),t.prototype=Object.create(E),t},e.awrap=function(t){return{__await:t}},S(N.prototype),l(N.prototype,s,(function(){return this})),e.AsyncIterator=N,e.async=function(t,r,n,i,o){void 0===o&&(o=Promise);var a=new N(h(t,r,n,i),o);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},S(E),l(E,c,"Generator"),l(E,a,(function(){return this})),l(E,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=T,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(P),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function i(n,i){return s.type="throw",s.arg=e,r.next=n,i&&(r.method="next",r.arg=t),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,g):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),g},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:T(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}var l="https://api.stxer.xyz";function h(){return(h=a(u().mark((function e(r,n){var i,o,a,c,h,f,p,d,y,v,g,b,m,x,w,k,_,E,S;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===n&&(n={}),o=[],null!=r.variables)for(a=s(r.variables);!(c=a()).done;)o.push([t.serializeCV((h=c.value).contract),h.variableName]);if(null!=r.maps)for(f=s(r.maps);!(p=f()).done;)o.push([t.serializeCV((d=p.value).contract),d.mapName,t.serializeCV(d.mapKey)]);return y=null==r.index_block_hash?null:r.index_block_hash.startsWith("0x")?r.index_block_hash.substring(2):r.index_block_hash,v=(null!=(i=n.stxerApi)?i:l)+"/sidecar/v2/batch-reads"+(null==y?"":"?tip="+y),e.next=8,fetch(v,{method:"POST",body:JSON.stringify(o)});case 8:return g=e.sent,e.next=11,g.text();case 11:if((b=e.sent).includes("Ok")||b.includes("Err")){e.next=14;break}throw new Error("Requesting batch reads failed: "+b+", url: "+v+", payload: "+JSON.stringify(o));case 14:if(m=JSON.parse(b),x={variables:[],maps:[]},w=0,null!=r.variables)for(w=r.variables.length,k=0;k<w;k++)x.variables.push("Ok"in(_=m[k])?t.deserializeCV(_.Ok):new Error(_.Err));if(null!=r.maps)for(E=0;E<r.maps.length;E++)x.maps.push("Ok"in(S=m[E+w])?t.deserializeCV(S.Ok):new Error(S.Err));return e.abrupt("return",x);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function f(){return(f=a(u().mark((function e(r,n){var i,o,a,c,h,f,p,d,y,v,g;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n={}),o=r.readonly.map((function(e){return[t.serializeCV(e.contract),e.functionName].concat(e.functionArgs.map((function(e){return t.serializeCV(e)})))})),a=null==r.index_block_hash?null:r.index_block_hash.startsWith("0x")?r.index_block_hash.substring(2):r.index_block_hash,c=(null!=(i=n.stxerApi)?i:l)+"/sidecar/v2/batch-readonly"+(null==a?"":"?tip="+a),e.next=6,fetch(c,{method:"POST",body:JSON.stringify(o)});case 6:return h=e.sent,e.next=9,h.text();case 9:if((f=e.sent).includes("Ok")||f.includes("Err")){e.next=12;break}throw new Error("Requesting batch readonly failed: "+f+", url: "+c+", payload: "+JSON.stringify(o));case 12:for(p=JSON.parse(f),d=[],y=s(p);!(v=y()).done;)d.push("Ok"in(g=v.value)?t.deserializeCV(g.Ok):new Error(g.Err));return e.abrupt("return",d);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(e){return t.tupleCV({type:t.uintCV(0),data:t.bufferCV(e.serializeBytes())})}function d(e){var r=e.code,n=e.contract_id.split("."),i=n[0],o=n[1];return t.tupleCV({type:t.uintCV(1),data:t.bufferCV(t.serializeCVBytes(t.tupleCV({contract:t.contractPrincipalCV(i,o),code:t.stringAsciiCV(r)})))})}function y(t,e,r,n){return v.apply(this,arguments)}function v(){return v=a(u().mark((function e(r,n,i,o){var c,l,h,f,y,v,g,b,m,x,w,k;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=(new TextEncoder).encode("sim-v1"),l=new Uint8Array(8),new DataView(l.buffer).setBigUint64(0,BigInt(i),!1),h=n.startsWith("0x")?n.substring(2):n,f=h.match(/.{1,2}/g)){e.next=8;break}throw new Error("Invalid block hash format");case 8:for(y=new Uint8Array(f.map((function(t){return Number.parseInt(t,16)}))),v=o.map((function(t){return"contract_id"in t&&"code"in t?d(t):p(t)})).map((function(e){return t.serializeCVBytes(e)})),g=c.length+l.length+y.length+v.reduce((function(t,e){return t+e.length}),0),(b=new Uint8Array(g)).set(c,m=0),b.set(l,m+=c.length),b.set(y,m+=l.length),m+=y.length,x=s(v);!(w=x()).done;)b.set(k=w.value,m),m+=k.length;return e.next=22,fetch(r,{method:"POST",body:b}).then(function(){var t=a(u().mark((function t(e){var r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.text();case 2:if((r=t.sent).startsWith("{")){t.next=5;break}throw new Error("failed to submit simulation: "+r);case 5:return t.abrupt("return",JSON.parse(r));case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}());case 22:return e.abrupt("return",e.sent.id);case 24:case"end":return e.stop()}}),e)}))),v.apply(this,arguments)}exports.SimulationBuilder=function(){function i(t){var e,r,n;void 0===t&&(t={}),this.apiEndpoint=void 0,this.stacksNodeAPI=void 0,this.network=void 0,this.block=NaN,this.sender="",this.steps=[],this.apiEndpoint=null!=(e=t.apiEndpoint)?e:"https://api.stxer.xyz",this.stacksNodeAPI=null!=(r=t.stacksNodeAPI)?r:"https://api.hiro.so",this.network=null!=(n=t.network)?n:"mainnet"}i.new=function(t){return new i(t)};var o=i.prototype;return o.useBlockHeight=function(t){return this.block=t,this},o.withSender=function(t){return this.sender=t,this},o.inlineSimulation=function(t){return this.steps.push({simulationId:t}),this},o.addSTXTransfer=function(t){var e,r;if(null==t.sender&&""===this.sender)throw new Error("Please specify a sender with useSender or adding a sender paramenter");return this.steps.push(c({},t,{sender:null!=(e=t.sender)?e:this.sender,fee:null!=(r=t.fee)?r:0})),this},o.addContractCall=function(t){var e,r;if(null==t.sender&&""===this.sender)throw new Error("Please specify a sender with useSender or adding a sender paramenter");return this.steps.push(c({},t,{sender:null!=(e=t.sender)?e:this.sender,fee:null!=(r=t.fee)?r:0})),this},o.addContractDeploy=function(e){var r,n,i;if(null==e.deployer&&""===this.sender)throw new Error("Please specify a deployer with useSender or adding a deployer paramenter");return this.steps.push(c({},e,{deployer:null!=(r=e.deployer)?r:this.sender,fee:null!=(n=e.fee)?n:0,clarity_version:null!=(i=e.clarity_version)?i:t.ClarityVersion.Clarity3})),this},o.addEvalCode=function(t,e){return this.steps.push({contract_id:t,code:e}),this},o.addMapRead=function(t,e,r){return this.steps.push({contract_id:t,code:"(map-get "+e+" "+r+")"}),this},o.addVarRead=function(t,e){return this.steps.push({contract_id:t,code:"(var-get "+e+")"}),this},o.getBlockInfo=function(){var t=a(u().mark((function t(){var r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Number.isNaN(this.block)){t.next=6;break}return t.next=3,e.getNodeInfo({stacksEndpoint:this.stacksNodeAPI});case 3:this.block=t.sent.stacks_tip_height;case 6:return t.next=8,e.richFetch(this.stacksNodeAPI+"/extended/v1/block/by_height/"+this.block+"?unanchored=true").then((function(t){return t.json()}));case 8:if((r=t.sent).height===this.block&&"string"==typeof r.hash&&r.hash.startsWith("0x")){t.next=11;break}throw new Error("failed to get block info for block height "+this.block);case 11:return t.abrupt("return",{block_height:this.block,block_hash:r.hash.substring(2),index_block_hash:r.index_block_hash.substring(2)});case 12:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),o.run=function(){var i=a(u().mark((function i(){var o,l,h,f,p,d,v,g,b,m,x,w,k,_,E,S,N,C,O,A,P,L,T=this;return u().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return console.log("--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------"),i.next=3,this.getBlockInfo();case 3:o=i.sent,console.log("Using block height "+o.block_height+" hash 0x"+o.block_hash+" to run simulation."),l=[],h=new Map,f=function(){var t=a(u().mark((function t(r){var n,i,a;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(null!=(n=h.get(r))){t.next=8;break}return i=T.stacksNodeAPI+"/v2/accounts/"+r+"?proof="+!1+"&tip="+o.index_block_hash,t.next=5,e.richFetch(i).then((function(t){return t.json()}));case 5:return h.set(r,(a=t.sent).nonce+1),t.abrupt("return",a.nonce);case 8:return h.set(r,n+1),t.abrupt("return",n);case 10:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),p="mainnet"===this.network?r.STACKS_MAINNET:r.STACKS_TESTNET,this.stacksNodeAPI&&(p=c({},p,{client:c({},p.client,{baseUrl:this.stacksNodeAPI})})),d=s(this.steps);case 11:if((v=d()).done){i.next=57;break}if(!("simulationId"in(g=v.value))){i.next=20;break}return i.next=16,fetch("https://api.stxer.xyz/simulations/"+g.simulationId+"/request").then((function(t){return t.json()}));case 16:for(b=s(i.sent.steps);!(m=b()).done;)"tx"in(x=m.value)?l.push(t.deserializeTransaction(x.tx)):"code"in x&&"contract"in x&&l.push({contract_id:x.contract,code:x.code});i.next=55;break;case 20:if(!("sender"in g)||!("function_name"in g)){i.next=32;break}return i.next=23,f(g.sender);case 23:return k=i.sent,_=g.contract_id.split("."),E=_[0],S=_[1],i.next=27,t.makeUnsignedContractCall({contractAddress:E,contractName:S,functionName:g.function_name,functionArgs:null!=(w=g.function_args)?w:[],nonce:k,network:p,publicKey:"",postConditionMode:t.PostConditionMode.Allow,fee:g.fee});case 27:(N=i.sent).auth.spendingCondition.signer=n.c32addressDecode(g.sender)[1],l.push(N),i.next=55;break;case 32:if(!("sender"in g)||!("recipient"in g)){i.next=43;break}return i.next=35,f(g.sender);case 35:return C=i.sent,i.next=38,t.makeUnsignedSTXTokenTransfer({recipient:g.recipient,amount:g.amount,nonce:C,network:p,publicKey:"",fee:g.fee});case 38:(O=i.sent).auth.spendingCondition.signer=n.c32addressDecode(g.sender)[1],l.push(O),i.next=55;break;case 43:if(!("deployer"in g)){i.next=54;break}return i.next=46,f(g.deployer);case 46:return A=i.sent,i.next=49,t.makeUnsignedContractDeploy({contractName:g.contract_name,codeBody:g.source_code,nonce:A,network:p,publicKey:"",postConditionMode:t.PostConditionMode.Allow,fee:g.fee});case 49:(P=i.sent).auth.spendingCondition.signer=n.c32addressDecode(g.deployer)[1],l.push(P),i.next=55;break;case 54:"code"in g?l.push(g):console.log("Invalid simulation step:",g);case 55:i.next=11;break;case 57:return i.next=59,y(this.apiEndpoint+"/simulations",o.block_hash,o.block_height,l);case 59:return L=i.sent,console.log("Simulation will be available at: https://stxer.xyz/simulations/"+this.network+"/"+L),i.abrupt("return",L);case 62:case"end":return i.stop()}}),i,this)})));return function(){return i.apply(this,arguments)}}(),o.pipe=function(t){return t(this)},i}(),exports.batchRead=function(t,e){return h.apply(this,arguments)},exports.batchReadonly=function(t,e){return f.apply(this,arguments)},exports.runEval=d,exports.runSimulation=y;
2
2
  //# sourceMappingURL=stxer.cjs.production.min.js.map