stxer 0.4.1 → 0.4.2

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.
@@ -575,7 +575,7 @@ function _runSimulation() {
575
575
  }
576
576
  var SimulationBuilder = /*#__PURE__*/function () {
577
577
  function SimulationBuilder(options) {
578
- var _options$apiEndpoint, _options$stacksNodeAP, _options$network;
578
+ var _options$network, _options$apiEndpoint, _options$stacksNodeAP;
579
579
  if (options === void 0) {
580
580
  options = {};
581
581
  }
@@ -586,9 +586,10 @@ var SimulationBuilder = /*#__PURE__*/function () {
586
586
  this.block = NaN;
587
587
  this.sender = '';
588
588
  this.steps = [];
589
- this.apiEndpoint = (_options$apiEndpoint = options.apiEndpoint) != null ? _options$apiEndpoint : 'https://api.stxer.xyz';
590
- this.stacksNodeAPI = (_options$stacksNodeAP = options.stacksNodeAPI) != null ? _options$stacksNodeAP : 'https://api.hiro.so';
591
589
  this.network = (_options$network = options.network) != null ? _options$network : 'mainnet';
590
+ var isTestnet = this.network === 'testnet';
591
+ this.apiEndpoint = (_options$apiEndpoint = options.apiEndpoint) != null ? _options$apiEndpoint : isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz';
592
+ this.stacksNodeAPI = (_options$stacksNodeAP = options.stacksNodeAPI) != null ? _options$stacksNodeAP : isTestnet ? 'https://api.testnet.hiro.so' : 'https://api.hiro.so';
592
593
  }
593
594
  SimulationBuilder["new"] = function _new(options) {
594
595
  return new SimulationBuilder(options);
@@ -1 +1 @@
1
- {"version":3,"file":"stxer.cjs.development.js","sources":["../src/BatchAPI.ts","../src/simulation.ts","../src/BatchProcessor.ts","../src/clarity-api.ts"],"sourcesContent":["/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n serializeCV,\n} from '@stacks/transactions';\n\nexport interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n readonly?: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport interface BatchReadsResult {\n tip: string;\n vars: (ClarityValue | Error)[];\n maps: (ClarityValue | Error)[];\n readonly: (ClarityValue | Error)[];\n}\n\nexport interface BatchApiOptions {\n stxerApi?: string;\n}\n\nconst DEFAULT_STXER_API = 'https://api.stxer.xyz';\n\nfunction convertResults(\n rs: ({ Ok: string } | { Err: string })[],\n): (ClarityValue | Error)[] {\n const results: (ClarityValue | Error)[] = [];\n for (const v of rs) {\n if ('Ok' in v) {\n results.push(deserializeCV(v.Ok));\n } else {\n results.push(new Error(v.Err));\n }\n }\n return results;\n}\n\nexport async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n): Promise<BatchReadsResult> {\n const ibh =\n reads.index_block_hash == null\n ? undefined\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n\n const payload: {\n tip?: string;\n vars: string[][];\n maps: string[][];\n readonly: string[][];\n } = { vars: [], maps: [], readonly: [], tip: ibh };\n\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.vars.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.maps.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n\n if (reads.readonly != null) {\n for (const ro of reads.readonly) {\n payload.readonly.push([\n serializeCV(ro.contract),\n ro.functionName,\n ...ro.functionArgs.map(v => serializeCV(v)),\n ]);\n }\n }\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\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\n const rs = JSON.parse(text) as {\n tip: string;\n vars: ({ Ok: string } | { Err: string })[];\n maps: ({ Ok: string } | { Err: string })[];\n readonly: ({ Ok: string } | { Err: string })[];\n };\n\n return {\n tip: rs.tip,\n vars: convertResults(rs.vars),\n maps: convertResults(rs.maps),\n readonly: convertResults(rs.readonly),\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","/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type OptionalCV,\n contractPrincipalCV,\n} from '@stacks/transactions';\nimport { type BatchReads, batchRead } from './BatchAPI';\n\nexport interface ReadOnlyRequest {\n mode: 'readonly';\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: ClarityValue[];\n}\n\nexport interface MapEntryRequest {\n mode: 'mapEntry';\n contractAddress: string;\n contractName: string;\n mapName: string;\n mapKey: ClarityValue;\n}\n\nexport interface VariableRequest {\n mode: 'variable';\n contractAddress: string;\n contractName: string;\n variableName: string;\n}\n\nexport type BatchRequest = MapEntryRequest | VariableRequest | ReadOnlyRequest;\n\nexport interface QueuedRequest {\n request: BatchRequest;\n tip?: string;\n resolve: (value: ClarityValue | OptionalCV) => void;\n reject: (error: Error) => void;\n}\n\nexport class BatchProcessor {\n private queues = new Map<string, QueuedRequest[]>();\n private timeoutIds = new Map<string, ReturnType<typeof setTimeout>>();\n\n private readonly stxerAPIEndpoint: string;\n private readonly batchDelayMs: number;\n\n constructor(options: { stxerAPIEndpoint?: string; batchDelayMs: number }) {\n this.stxerAPIEndpoint = options.stxerAPIEndpoint ?? 'https://api.stxer.xyz';\n this.batchDelayMs = options.batchDelayMs;\n }\n\n private getQueueKey(tip?: string): string {\n return tip ?? '_undefined';\n }\n\n read(request: BatchRequest): Promise<ClarityValue | OptionalCV> {\n return new Promise((resolve, reject) => {\n this.enqueue({ request, resolve, reject });\n });\n }\n\n enqueue(request: QueuedRequest): void {\n const queueKey = this.getQueueKey(request.tip);\n\n const queue = this.queues.get(queueKey) ?? [];\n if (!this.queues.has(queueKey)) {\n this.queues.set(queueKey, queue);\n }\n queue.push(request);\n\n if (!this.timeoutIds.has(queueKey)) {\n const timeoutId = setTimeout(\n () => this.processBatch(queueKey),\n this.batchDelayMs,\n );\n this.timeoutIds.set(queueKey, timeoutId);\n }\n }\n\n private async processBatch(queueKey: string): Promise<void> {\n const currentQueue = this.queues.get(queueKey) ?? [];\n this.queues.delete(queueKey);\n\n const timeoutId = this.timeoutIds.get(queueKey);\n if (timeoutId) {\n clearTimeout(timeoutId);\n this.timeoutIds.delete(queueKey);\n }\n\n if (currentQueue.length === 0) return;\n\n try {\n const readonlyRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: ReadOnlyRequest } =>\n q.request.mode === 'readonly',\n );\n const mapRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: MapEntryRequest } =>\n q.request.mode === 'mapEntry',\n );\n const variableRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: VariableRequest } =>\n q.request.mode === 'variable',\n );\n\n const tip = queueKey === '_undefined' ? undefined : queueKey;\n\n const batchRequest: BatchReads = {\n readonly: readonlyRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n functionName: request.functionName,\n functionArgs: request.functionArgs,\n })),\n maps: mapRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n mapName: request.mapName,\n mapKey: request.mapKey,\n })),\n variables: variableRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n variableName: request.variableName,\n })),\n index_block_hash: tip,\n };\n\n const results = await batchRead(batchRequest, {\n stxerApi: this.stxerAPIEndpoint,\n });\n\n // Handle readonly results\n for (const [index, result] of results.readonly.entries()) {\n if (result instanceof Error) {\n readonlyRequests[index].reject(result);\n } else {\n readonlyRequests[index].resolve(result);\n }\n }\n\n // Handle variable results\n for (const [index, result] of results.vars.entries()) {\n if (result instanceof Error) {\n variableRequests[index].reject(result);\n } else {\n variableRequests[index].resolve(result);\n }\n }\n\n // Handle map results\n for (const [index, result] of results.maps.entries()) {\n if (result instanceof Error) {\n mapRequests[index].reject(result);\n } else {\n mapRequests[index].resolve(result);\n }\n }\n } catch (error) {\n for (const item of currentQueue) {\n item.reject(error as Error);\n }\n }\n }\n} ","import {\n ClarityType,\n type ClarityValue,\n type OptionalCV,\n} from '@stacks/transactions';\nimport type {\n ClarityAbiFunction,\n ClarityAbiMap,\n ClarityAbiVariable,\n TContractPrincipal,\n TPrincipal,\n} from 'clarity-abi';\nimport { decodeAbi, encodeAbi } from 'ts-clarity';\nimport type {\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferMapValueType,\n InferReadMapParameterType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { BatchProcessor } from './BatchProcessor';\n\n// Shared processor instance with default settings\nconst defaultProcessor = new BatchProcessor({\n batchDelayMs: 100,\n});\n\nexport type ReadonlyCallRuntimeOptions = {\n sender?: TPrincipal;\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadMapRuntimeParameters = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadVariableRuntimeParameterType = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport async function callReadonly<\n Functions extends readonly ClarityAbiFunction[] | readonly unknown[],\n FunctionName extends string,\n>(\n params: InferReadonlyCallParameterType<Functions, FunctionName> &\n ReadonlyCallRuntimeOptions,\n): Promise<InferReadonlyCallResultType<Functions, FunctionName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n const fn = String(params.functionName);\n \n const functionDef = (params.abi as readonly ClarityAbiFunction[]).find(\n (def) => def.name === params.functionName,\n );\n if (!functionDef) {\n throw new Error(`failed to find function definition for ${params.functionName}`);\n }\n \n const argsKV = (params as unknown as { args: Record<string, unknown> }).args;\n const args: ClarityValue[] = [];\n for (const argDef of functionDef.args) {\n args.push(encodeAbi(argDef.type, argsKV[argDef.name]));\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'readonly',\n contractAddress: deployer,\n contractName: contractName,\n functionName: fn,\n functionArgs: args,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(functionDef.outputs.type, result);\n resolve(decoded as InferReadonlyCallResultType<Functions, FunctionName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends readonly ClarityAbiMap[] | readonly unknown[] = readonly ClarityAbiMap[],\n MapName extends string = string,\n>(\n params: InferReadMapParameterType<Maps, MapName> & ReadMapRuntimeParameters,\n): Promise<InferMapValueType<Maps, MapName> | null> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const mapDef = (params.abi as readonly ClarityAbiMap[]).find(\n (m) => m.name === params.mapName,\n );\n if (!mapDef) {\n throw new Error(`failed to find map definition for ${params.mapName}`);\n }\n \n const key: ClarityValue = encodeAbi(mapDef.key, params.key);\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'mapEntry',\n contractAddress: deployer,\n contractName: contractName,\n mapName: params.mapName,\n mapKey: key,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n if (result.type === ClarityType.OptionalNone) {\n resolve(null);\n return;\n }\n if (result.type !== ClarityType.OptionalSome) {\n throw new Error(`unexpected map value: ${result}`);\n }\n const someCV = result as { type: ClarityType.OptionalSome; value: ClarityValue };\n const decoded = decodeAbi(mapDef.value, someCV.value);\n resolve(decoded as InferMapValueType<Maps, MapName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readVariable<\n Variables extends readonly ClarityAbiVariable[] | readonly unknown[] = readonly ClarityAbiVariable[],\n VariableName extends string = string,\n>(\n params: InferReadVariableParameterType<Variables, VariableName> &\n ReadVariableRuntimeParameterType,\n): Promise<InferVariableType<Variables, VariableName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const varDef = (params.abi as readonly ClarityAbiVariable[]).find(\n (def) => def.name === params.variableName,\n );\n if (!varDef) {\n throw new Error(`failed to find variable definition for ${params.variableName}`);\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'variable',\n contractAddress: deployer,\n contractName: contractName,\n variableName: params.variableName,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(varDef.type, result);\n resolve(decoded as InferVariableType<Variables, VariableName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}"],"names":["DEFAULT_STXER_API","convertResults","rs","results","_iterator","_createForOfIteratorHelperLoose","_step","done","v","value","push","deserializeCV","Ok","Error","Err","batchRead","_x","_x2","_batchRead","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","ibh","index_block_hash","undefined","startsWith","substring","payload","vars","maps","readonly","tip","variables","_iterator2","_step2","variable","serializeCV","contract","variableName","_iterator3","_step3","map","mapName","mapKey","_iterator4","_step4","ro","functionName","concat","functionArgs","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","headers","data","sent","text","includes","parse","abrupt","stop","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_x3","_x4","_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","length","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","r","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","_callee2","account","_callee2$","_context2","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","BatchProcessor","_options$stxerAPIEndp","queues","timeoutIds","stxerAPIEndpoint","batchDelayMs","getQueueKey","read","request","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","has","timeoutId","setTimeout","processBatch","_processBatch","_this$queues$get2","currentQueue","readonlyRequests","mapRequests","variableRequests","batchRequest","_step$value","index","result","_step2$value","_index","_result","_step3$value","_index2","_result2","item","clearTimeout","filter","q","mode","entries","t0","defaultProcessor","callReadonly","_callReadonly","_params$batchProcesso","processor","_params$contract$spli","fn","functionDef","argsKV","args","argDef","batchProcessor","String","abi","find","def","name","encodeAbi","indexBlockHash","decoded","decodeAbi","outputs","error","readMap","_readMap","_params$batchProcesso2","_params$contract$spli2","mapDef","m","ClarityType","OptionalNone","OptionalSome","someCV","readVariable","_readVariable","_params$batchProcesso3","_params$contract$spli3","varDef"],"mappings":"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"}
1
+ {"version":3,"file":"stxer.cjs.development.js","sources":["../src/BatchAPI.ts","../src/simulation.ts","../src/BatchProcessor.ts","../src/clarity-api.ts"],"sourcesContent":["/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n serializeCV,\n} from '@stacks/transactions';\n\nexport interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n readonly?: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport interface BatchReadsResult {\n tip: string;\n vars: (ClarityValue | Error)[];\n maps: (ClarityValue | Error)[];\n readonly: (ClarityValue | Error)[];\n}\n\nexport interface BatchApiOptions {\n stxerApi?: string;\n}\n\nconst DEFAULT_STXER_API = 'https://api.stxer.xyz';\n\nfunction convertResults(\n rs: ({ Ok: string } | { Err: string })[],\n): (ClarityValue | Error)[] {\n const results: (ClarityValue | Error)[] = [];\n for (const v of rs) {\n if ('Ok' in v) {\n results.push(deserializeCV(v.Ok));\n } else {\n results.push(new Error(v.Err));\n }\n }\n return results;\n}\n\nexport async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n): Promise<BatchReadsResult> {\n const ibh =\n reads.index_block_hash == null\n ? undefined\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n\n const payload: {\n tip?: string;\n vars: string[][];\n maps: string[][];\n readonly: string[][];\n } = { vars: [], maps: [], readonly: [], tip: ibh };\n\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.vars.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.maps.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n\n if (reads.readonly != null) {\n for (const ro of reads.readonly) {\n payload.readonly.push([\n serializeCV(ro.contract),\n ro.functionName,\n ...ro.functionArgs.map(v => serializeCV(v)),\n ]);\n }\n }\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\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\n const rs = JSON.parse(text) as {\n tip: string;\n vars: ({ Ok: string } | { Err: string })[];\n maps: ({ Ok: string } | { Err: string })[];\n readonly: ({ Ok: string } | { Err: string })[];\n };\n\n return {\n tip: rs.tip,\n vars: convertResults(rs.vars),\n maps: convertResults(rs.maps),\n readonly: convertResults(rs.readonly),\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.network = options.network ?? 'mainnet';\n const isTestnet = this.network === 'testnet';\n \n this.apiEndpoint = options.apiEndpoint ?? \n (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');\n this.stacksNodeAPI = options.stacksNodeAPI ?? \n (isTestnet ? 'https://api.testnet.hiro.so' : 'https://api.hiro.so');\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","/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type OptionalCV,\n contractPrincipalCV,\n} from '@stacks/transactions';\nimport { type BatchReads, batchRead } from './BatchAPI';\n\nexport interface ReadOnlyRequest {\n mode: 'readonly';\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: ClarityValue[];\n}\n\nexport interface MapEntryRequest {\n mode: 'mapEntry';\n contractAddress: string;\n contractName: string;\n mapName: string;\n mapKey: ClarityValue;\n}\n\nexport interface VariableRequest {\n mode: 'variable';\n contractAddress: string;\n contractName: string;\n variableName: string;\n}\n\nexport type BatchRequest = MapEntryRequest | VariableRequest | ReadOnlyRequest;\n\nexport interface QueuedRequest {\n request: BatchRequest;\n tip?: string;\n resolve: (value: ClarityValue | OptionalCV) => void;\n reject: (error: Error) => void;\n}\n\nexport class BatchProcessor {\n private queues = new Map<string, QueuedRequest[]>();\n private timeoutIds = new Map<string, ReturnType<typeof setTimeout>>();\n\n private readonly stxerAPIEndpoint: string;\n private readonly batchDelayMs: number;\n\n constructor(options: { stxerAPIEndpoint?: string; batchDelayMs: number }) {\n this.stxerAPIEndpoint = options.stxerAPIEndpoint ?? 'https://api.stxer.xyz';\n this.batchDelayMs = options.batchDelayMs;\n }\n\n private getQueueKey(tip?: string): string {\n return tip ?? '_undefined';\n }\n\n read(request: BatchRequest): Promise<ClarityValue | OptionalCV> {\n return new Promise((resolve, reject) => {\n this.enqueue({ request, resolve, reject });\n });\n }\n\n enqueue(request: QueuedRequest): void {\n const queueKey = this.getQueueKey(request.tip);\n\n const queue = this.queues.get(queueKey) ?? [];\n if (!this.queues.has(queueKey)) {\n this.queues.set(queueKey, queue);\n }\n queue.push(request);\n\n if (!this.timeoutIds.has(queueKey)) {\n const timeoutId = setTimeout(\n () => this.processBatch(queueKey),\n this.batchDelayMs,\n );\n this.timeoutIds.set(queueKey, timeoutId);\n }\n }\n\n private async processBatch(queueKey: string): Promise<void> {\n const currentQueue = this.queues.get(queueKey) ?? [];\n this.queues.delete(queueKey);\n\n const timeoutId = this.timeoutIds.get(queueKey);\n if (timeoutId) {\n clearTimeout(timeoutId);\n this.timeoutIds.delete(queueKey);\n }\n\n if (currentQueue.length === 0) return;\n\n try {\n const readonlyRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: ReadOnlyRequest } =>\n q.request.mode === 'readonly',\n );\n const mapRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: MapEntryRequest } =>\n q.request.mode === 'mapEntry',\n );\n const variableRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: VariableRequest } =>\n q.request.mode === 'variable',\n );\n\n const tip = queueKey === '_undefined' ? undefined : queueKey;\n\n const batchRequest: BatchReads = {\n readonly: readonlyRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n functionName: request.functionName,\n functionArgs: request.functionArgs,\n })),\n maps: mapRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n mapName: request.mapName,\n mapKey: request.mapKey,\n })),\n variables: variableRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n variableName: request.variableName,\n })),\n index_block_hash: tip,\n };\n\n const results = await batchRead(batchRequest, {\n stxerApi: this.stxerAPIEndpoint,\n });\n\n // Handle readonly results\n for (const [index, result] of results.readonly.entries()) {\n if (result instanceof Error) {\n readonlyRequests[index].reject(result);\n } else {\n readonlyRequests[index].resolve(result);\n }\n }\n\n // Handle variable results\n for (const [index, result] of results.vars.entries()) {\n if (result instanceof Error) {\n variableRequests[index].reject(result);\n } else {\n variableRequests[index].resolve(result);\n }\n }\n\n // Handle map results\n for (const [index, result] of results.maps.entries()) {\n if (result instanceof Error) {\n mapRequests[index].reject(result);\n } else {\n mapRequests[index].resolve(result);\n }\n }\n } catch (error) {\n for (const item of currentQueue) {\n item.reject(error as Error);\n }\n }\n }\n} ","import {\n ClarityType,\n type ClarityValue,\n type OptionalCV,\n} from '@stacks/transactions';\nimport type {\n ClarityAbiFunction,\n ClarityAbiMap,\n ClarityAbiVariable,\n TContractPrincipal,\n TPrincipal,\n} from 'clarity-abi';\nimport { decodeAbi, encodeAbi } from 'ts-clarity';\nimport type {\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferMapValueType,\n InferReadMapParameterType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { BatchProcessor } from './BatchProcessor';\n\n// Shared processor instance with default settings\nconst defaultProcessor = new BatchProcessor({\n batchDelayMs: 100,\n});\n\nexport type ReadonlyCallRuntimeOptions = {\n sender?: TPrincipal;\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadMapRuntimeParameters = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadVariableRuntimeParameterType = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport async function callReadonly<\n Functions extends readonly ClarityAbiFunction[] | readonly unknown[],\n FunctionName extends string,\n>(\n params: InferReadonlyCallParameterType<Functions, FunctionName> &\n ReadonlyCallRuntimeOptions,\n): Promise<InferReadonlyCallResultType<Functions, FunctionName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n const fn = String(params.functionName);\n \n const functionDef = (params.abi as readonly ClarityAbiFunction[]).find(\n (def) => def.name === params.functionName,\n );\n if (!functionDef) {\n throw new Error(`failed to find function definition for ${params.functionName}`);\n }\n \n const argsKV = (params as unknown as { args: Record<string, unknown> }).args;\n const args: ClarityValue[] = [];\n for (const argDef of functionDef.args) {\n args.push(encodeAbi(argDef.type, argsKV[argDef.name]));\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'readonly',\n contractAddress: deployer,\n contractName: contractName,\n functionName: fn,\n functionArgs: args,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(functionDef.outputs.type, result);\n resolve(decoded as InferReadonlyCallResultType<Functions, FunctionName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends readonly ClarityAbiMap[] | readonly unknown[] = readonly ClarityAbiMap[],\n MapName extends string = string,\n>(\n params: InferReadMapParameterType<Maps, MapName> & ReadMapRuntimeParameters,\n): Promise<InferMapValueType<Maps, MapName> | null> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const mapDef = (params.abi as readonly ClarityAbiMap[]).find(\n (m) => m.name === params.mapName,\n );\n if (!mapDef) {\n throw new Error(`failed to find map definition for ${params.mapName}`);\n }\n \n const key: ClarityValue = encodeAbi(mapDef.key, params.key);\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'mapEntry',\n contractAddress: deployer,\n contractName: contractName,\n mapName: params.mapName,\n mapKey: key,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n if (result.type === ClarityType.OptionalNone) {\n resolve(null);\n return;\n }\n if (result.type !== ClarityType.OptionalSome) {\n throw new Error(`unexpected map value: ${result}`);\n }\n const someCV = result as { type: ClarityType.OptionalSome; value: ClarityValue };\n const decoded = decodeAbi(mapDef.value, someCV.value);\n resolve(decoded as InferMapValueType<Maps, MapName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readVariable<\n Variables extends readonly ClarityAbiVariable[] | readonly unknown[] = readonly ClarityAbiVariable[],\n VariableName extends string = string,\n>(\n params: InferReadVariableParameterType<Variables, VariableName> &\n ReadVariableRuntimeParameterType,\n): Promise<InferVariableType<Variables, VariableName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const varDef = (params.abi as readonly ClarityAbiVariable[]).find(\n (def) => def.name === params.variableName,\n );\n if (!varDef) {\n throw new Error(`failed to find variable definition for ${params.variableName}`);\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'variable',\n contractAddress: deployer,\n contractName: contractName,\n variableName: params.variableName,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(varDef.type, result);\n resolve(decoded as InferVariableType<Variables, VariableName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}"],"names":["DEFAULT_STXER_API","convertResults","rs","results","_iterator","_createForOfIteratorHelperLoose","_step","done","v","value","push","deserializeCV","Ok","Error","Err","batchRead","_x","_x2","_batchRead","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","ibh","index_block_hash","undefined","startsWith","substring","payload","vars","maps","readonly","tip","variables","_iterator2","_step2","variable","serializeCV","contract","variableName","_iterator3","_step3","map","mapName","mapKey","_iterator4","_step4","ro","functionName","concat","functionArgs","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","headers","data","sent","text","includes","parse","abrupt","stop","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_x3","_x4","_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","length","reduce","acc","curr","set","then","_ref3","_callee4","response","_callee4$","_context4","_x6","id","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","stacksNodeAPI","network","block","NaN","sender","steps","isTestnet","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","r","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","_callee2","account","_callee2$","_context2","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","BatchProcessor","_options$stxerAPIEndp","queues","timeoutIds","stxerAPIEndpoint","batchDelayMs","getQueueKey","read","request","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","has","timeoutId","setTimeout","processBatch","_processBatch","_this$queues$get2","currentQueue","readonlyRequests","mapRequests","variableRequests","batchRequest","_step$value","index","result","_step2$value","_index","_result","_step3$value","_index2","_result2","item","clearTimeout","filter","q","mode","entries","t0","defaultProcessor","callReadonly","_callReadonly","_params$batchProcesso","processor","_params$contract$spli","fn","functionDef","argsKV","args","argDef","batchProcessor","String","abi","find","def","name","encodeAbi","indexBlockHash","decoded","decodeAbi","outputs","error","readMap","_readMap","_params$batchProcesso2","_params$contract$spli2","mapDef","m","ClarityType","OptionalNone","OptionalSome","someCV","readVariable","_readVariable","_params$batchProcesso3","_params$contract$spli3","varDef"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@stacks/transactions"),t=require("ts-clarity"),r=require("@stacks/network"),n=require("c32check");function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function i(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function a(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function s(e){i(a,n,o,s,c,"next",e)}function c(e){i(a,n,o,s,c,"throw",e)}s(void 0)}))}}function s(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[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(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(null,arguments)}function u(){u=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var i=Object.create((t&&t.prototype instanceof b?t:b).prototype),a=new j(n||[]);return o(i,"_invoke",{value:P(e,r,a)}),i}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var p="suspendedStart",d="suspendedYield",v="executing",y="completed",m={};function b(){}function g(){}function w(){}var x={};l(x,a,(function(){return this}));var k=Object.getPrototypeOf,N=k&&k(k(O([])));N&&N!==r&&n.call(N,a)&&(x=N);var E=w.prototype=b.prototype=Object.create(x);function _(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function A(e,t){function r(o,i,a,s){var c=f(e[o],e,i);if("throw"!==c.type){var u=c.arg,l=u.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(l).then((function(e){u.value=e,a(u)}),(function(e){return r("throw",e,a,s)}))}s(c.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function P(t,r,n){var o=p;return function(i,a){if(o===v)throw Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var c=C(s,n);if(c){if(c===m)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var u=f(t,r,n);if("normal"===u.type){if(o=n.done?y:d,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=y,n.method="throw",n.arg=u.arg)}}}function C(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,C(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function I(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return g.prototype=w,o(E,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=l(w,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,l(e,c,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},_(A.prototype),l(A.prototype,s,(function(){return this})),t.AsyncIterator=A,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new A(h(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},_(E),l(E,c,"Generator"),l(E,a,(function(){return this})),l(E,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=O,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(I),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("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 o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),I(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;I(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:O(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function l(t){for(var r,n=[],o=s(t);!(r=o()).done;){var i=r.value;n.push("Ok"in i?e.deserializeCV(i.Ok):new Error(i.Err))}return n}function h(e,t){return f.apply(this,arguments)}function f(){return(f=a(u().mark((function t(r,n){var o,i,a,c,h,f,p,d,v,y,m,b,g,w,x,k;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(void 0===n&&(n={}),i=null==r.index_block_hash?void 0:r.index_block_hash.startsWith("0x")?r.index_block_hash.substring(2):r.index_block_hash,a={vars:[],maps:[],readonly:[],tip:i},null!=r.variables)for(c=s(r.variables);!(h=c()).done;)a.vars.push([e.serializeCV((f=h.value).contract),f.variableName]);if(null!=r.maps)for(p=s(r.maps);!(d=p()).done;)a.maps.push([e.serializeCV((v=d.value).contract),v.mapName,e.serializeCV(v.mapKey)]);if(null!=r.readonly)for(y=s(r.readonly);!(m=y()).done;)a.readonly.push([e.serializeCV((b=m.value).contract),b.functionName].concat(b.functionArgs.map((function(t){return e.serializeCV(t)}))));return g=(null!=(o=n.stxerApi)?o:"https://api.stxer.xyz")+"/sidecar/v2/batch",t.next=9,fetch(g,{method:"POST",body:JSON.stringify(a),headers:{"Content-Type":"application/json"}});case 9:return w=t.sent,t.next=12,w.text();case 12:if((x=t.sent).includes("Ok")||x.includes("Err")){t.next=15;break}throw new Error("Requesting batch reads failed: "+x+", url: "+g+", payload: "+JSON.stringify(a));case 15:return k=JSON.parse(x),t.abrupt("return",{tip:k.tip,vars:l(k.vars),maps:l(k.maps),readonly:l(k.readonly)});case 17:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function p(t){return e.tupleCV({type:e.uintCV(0),data:e.bufferCV(t.serializeBytes())})}function d(t){var r=t.code,n=t.contract_id.split("."),o=n[0],i=n[1];return e.tupleCV({type:e.uintCV(1),data:e.bufferCV(e.serializeCVBytes(e.tupleCV({contract:e.contractPrincipalCV(o,i),code:e.stringAsciiCV(r)})))})}function v(e,t,r,n){return y.apply(this,arguments)}function y(){return y=a(u().mark((function t(r,n,o,i){var c,l,h,f,v,y,m,b,g,w,x,k;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(c=(new TextEncoder).encode("sim-v1"),l=new Uint8Array(8),new DataView(l.buffer).setBigUint64(0,BigInt(o),!1),h=n.startsWith("0x")?n.substring(2):n,f=h.match(/.{1,2}/g)){t.next=8;break}throw new Error("Invalid block hash format");case 8:for(v=new Uint8Array(f.map((function(e){return Number.parseInt(e,16)}))),y=i.map((function(e){return"contract_id"in e&&"code"in e?d(e):p(e)})).map((function(t){return e.serializeCVBytes(t)})),m=c.length+l.length+v.length+y.reduce((function(e,t){return e+t.length}),0),(b=new Uint8Array(m)).set(c,g=0),b.set(l,g+=c.length),b.set(v,g+=l.length),g+=v.length,w=s(y);!(x=w()).done;)b.set(k=x.value,g),g+=k.length;return t.next=22,fetch(r,{method:"POST",body:b}).then(function(){var e=a(u().mark((function e(t){var r;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.text();case 2:if((r=e.sent).startsWith("{")){e.next=5;break}throw new Error("failed to submit simulation: "+r);case 5:return e.abrupt("return",JSON.parse(r));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());case 22:return t.abrupt("return",t.sent.id);case 24:case"end":return t.stop()}}),t)}))),y.apply(this,arguments)}var m=function(){function o(e){var t,r,n;void 0===e&&(e={}),this.apiEndpoint=void 0,this.stacksNodeAPI=void 0,this.network=void 0,this.block=NaN,this.sender="",this.steps=[],this.apiEndpoint=null!=(t=e.apiEndpoint)?t:"https://api.stxer.xyz",this.stacksNodeAPI=null!=(r=e.stacksNodeAPI)?r:"https://api.hiro.so",this.network=null!=(n=e.network)?n:"mainnet"}o.new=function(e){return new o(e)};var i=o.prototype;return i.useBlockHeight=function(e){return this.block=e,this},i.withSender=function(e){return this.sender=e,this},i.inlineSimulation=function(e){return this.steps.push({simulationId:e}),this},i.addSTXTransfer=function(e){var t,r;if(null==e.sender&&""===this.sender)throw new Error("Please specify a sender with useSender or adding a sender paramenter");return this.steps.push(c({},e,{sender:null!=(t=e.sender)?t:this.sender,fee:null!=(r=e.fee)?r:0})),this},i.addContractCall=function(e){var t,r;if(null==e.sender&&""===this.sender)throw new Error("Please specify a sender with useSender or adding a sender paramenter");return this.steps.push(c({},e,{sender:null!=(t=e.sender)?t:this.sender,fee:null!=(r=e.fee)?r:0})),this},i.addContractDeploy=function(t){var r,n,o;if(null==t.deployer&&""===this.sender)throw new Error("Please specify a deployer with useSender or adding a deployer paramenter");return this.steps.push(c({},t,{deployer:null!=(r=t.deployer)?r:this.sender,fee:null!=(n=t.fee)?n:0,clarity_version:null!=(o=t.clarity_version)?o:e.ClarityVersion.Clarity3})),this},i.addEvalCode=function(e,t){return this.steps.push({contract_id:e,code:t}),this},i.addMapRead=function(e,t,r){return this.steps.push({contract_id:e,code:"(map-get "+t+" "+r+")"}),this},i.addVarRead=function(e,t){return this.steps.push({contract_id:e,code:"(var-get "+t+")"}),this},i.getBlockInfo=function(){var e=a(u().mark((function e(){var r;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!Number.isNaN(this.block)){e.next=6;break}return e.next=3,t.getNodeInfo({stacksEndpoint:this.stacksNodeAPI});case 3:this.block=e.sent.stacks_tip_height;case 6:return e.next=8,t.richFetch(this.stacksNodeAPI+"/extended/v1/block/by_height/"+this.block+"?unanchored=true").then((function(e){return e.json()}));case 8:if((r=e.sent).height===this.block&&"string"==typeof r.hash&&r.hash.startsWith("0x")){e.next=11;break}throw new Error("failed to get block info for block height "+this.block);case 11:return e.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 e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),i.run=function(){var o=a(u().mark((function o(){var i,l,h,f,p,d,y,m,b,g,w,x,k,N,E,_,A,P,C,S,I,j,O=this;return u().wrap((function(o){for(;;)switch(o.prev=o.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--------------------------------"),o.next=3,this.getBlockInfo();case 3:i=o.sent,console.log("Using block height "+i.block_height+" hash 0x"+i.block_hash+" to run simulation."),l=[],h=new Map,f=function(){var e=a(u().mark((function e(r){var n,o,a;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=(n=h.get(r))){e.next=8;break}return o=O.stacksNodeAPI+"/v2/accounts/"+r+"?proof="+!1+"&tip="+i.index_block_hash,e.next=5,t.richFetch(o).then((function(e){return e.json()}));case 5:return h.set(r,(a=e.sent).nonce+1),e.abrupt("return",a.nonce);case 8:return h.set(r,n+1),e.abrupt("return",n);case 10:case"end":return e.stop()}}),e)})));return function(t){return e.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((y=d()).done){o.next=57;break}if(!("simulationId"in(m=y.value))){o.next=20;break}return o.next=16,fetch("https://api.stxer.xyz/simulations/"+m.simulationId+"/request").then((function(e){return e.json()}));case 16:for(b=s(o.sent.steps);!(g=b()).done;)"tx"in(w=g.value)?l.push(e.deserializeTransaction(w.tx)):"code"in w&&"contract"in w&&l.push({contract_id:w.contract,code:w.code});o.next=55;break;case 20:if(!("sender"in m)||!("function_name"in m)){o.next=32;break}return o.next=23,f(m.sender);case 23:return k=o.sent,N=m.contract_id.split("."),E=N[0],_=N[1],o.next=27,e.makeUnsignedContractCall({contractAddress:E,contractName:_,functionName:m.function_name,functionArgs:null!=(x=m.function_args)?x:[],nonce:k,network:p,publicKey:"",postConditionMode:e.PostConditionMode.Allow,fee:m.fee});case 27:(A=o.sent).auth.spendingCondition.signer=n.c32addressDecode(m.sender)[1],l.push(A),o.next=55;break;case 32:if(!("sender"in m)||!("recipient"in m)){o.next=43;break}return o.next=35,f(m.sender);case 35:return P=o.sent,o.next=38,e.makeUnsignedSTXTokenTransfer({recipient:m.recipient,amount:m.amount,nonce:P,network:p,publicKey:"",fee:m.fee});case 38:(C=o.sent).auth.spendingCondition.signer=n.c32addressDecode(m.sender)[1],l.push(C),o.next=55;break;case 43:if(!("deployer"in m)){o.next=54;break}return o.next=46,f(m.deployer);case 46:return S=o.sent,o.next=49,e.makeUnsignedContractDeploy({contractName:m.contract_name,codeBody:m.source_code,nonce:S,network:p,publicKey:"",postConditionMode:e.PostConditionMode.Allow,fee:m.fee});case 49:(I=o.sent).auth.spendingCondition.signer=n.c32addressDecode(m.deployer)[1],l.push(I),o.next=55;break;case 54:"code"in m?l.push(m):console.log("Invalid simulation step:",m);case 55:o.next=11;break;case 57:return o.next=59,v(this.apiEndpoint+"/simulations",i.block_hash,i.block_height,l);case 59:return j=o.sent,console.log("Simulation will be available at: https://stxer.xyz/simulations/"+this.network+"/"+j),o.abrupt("return",j);case 62:case"end":return o.stop()}}),o,this)})));return function(){return o.apply(this,arguments)}}(),i.pipe=function(e){return e(this)},o}(),b=new(function(){function t(e){var t;this.queues=new Map,this.timeoutIds=new Map,this.stxerAPIEndpoint=void 0,this.batchDelayMs=void 0,this.stxerAPIEndpoint=null!=(t=e.stxerAPIEndpoint)?t:"https://api.stxer.xyz",this.batchDelayMs=e.batchDelayMs}var r=t.prototype;return r.getQueueKey=function(e){return null!=e?e:"_undefined"},r.read=function(e){var t=this;return new Promise((function(r,n){t.enqueue({request:e,resolve:r,reject:n})}))},r.enqueue=function(e){var t,r=this,n=this.getQueueKey(e.tip),o=null!=(t=this.queues.get(n))?t:[];if(this.queues.has(n)||this.queues.set(n,o),o.push(e),!this.timeoutIds.has(n)){var i=setTimeout((function(){return r.processBatch(n)}),this.batchDelayMs);this.timeoutIds.set(n,i)}},r.processBatch=function(){var t=a(u().mark((function t(r){var n,o,i,a,c,l,f,p,d,v,y,m,b,g,w,x,k,N,E,_,A,P,C,S,I,j;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=null!=(n=this.queues.get(r))?n:[],this.queues.delete(r),(i=this.timeoutIds.get(r))&&(clearTimeout(i),this.timeoutIds.delete(r)),0!==o.length){t.next=6;break}return t.abrupt("return");case 6:return t.prev=6,a=o.filter((function(e){return"readonly"===e.request.mode})),c=o.filter((function(e){return"mapEntry"===e.request.mode})),l=o.filter((function(e){return"variable"===e.request.mode})),f="_undefined"===r?void 0:r,p={readonly:a.map((function(t){var r=t.request;return{contract:e.contractPrincipalCV(r.contractAddress,r.contractName),functionName:r.functionName,functionArgs:r.functionArgs}})),maps:c.map((function(t){var r=t.request;return{contract:e.contractPrincipalCV(r.contractAddress,r.contractName),mapName:r.mapName,mapKey:r.mapKey}})),variables:l.map((function(t){var r=t.request;return{contract:e.contractPrincipalCV(r.contractAddress,r.contractName),variableName:r.variableName}})),index_block_hash:f},t.next=14,h(p,{stxerApi:this.stxerAPIEndpoint});case 14:for(v=s((d=t.sent).readonly.entries());!(y=v()).done;)b=(m=y.value)[0],(g=m[1])instanceof Error?a[b].reject(g):a[b].resolve(g);for(w=s(d.vars.entries());!(x=w()).done;)N=(k=x.value)[0],(E=k[1])instanceof Error?l[N].reject(E):l[N].resolve(E);for(_=s(d.maps.entries());!(A=_()).done;)C=(P=A.value)[0],(S=P[1])instanceof Error?c[C].reject(S):c[C].resolve(S);t.next=23;break;case 20:for(t.prev=20,t.t0=t.catch(6),I=s(o);!(j=I()).done;)j.value.reject(t.t0);case 23:case"end":return t.stop()}}),t,this,[[6,20]])})));return function(e){return t.apply(this,arguments)}}(),t}())({batchDelayMs:100});function g(){return(g=a(u().mark((function e(r){var n,o,i,a,c,l,h,f,p,d,v,y;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=null!=(n=r.batchProcessor)?n:b,i=r.contract.split(".",2),a=i[0],c=i[1],l=String(r.functionName),h=r.abi.find((function(e){return e.name===r.functionName}))){e.next=6;break}throw new Error("failed to find function definition for "+r.functionName);case 6:for(f=r.args,p=[],d=s(h.args);!(v=d()).done;)p.push(t.encodeAbi((y=v.value).type,f[y.name]));return e.abrupt("return",new Promise((function(e,n){o.enqueue({request:{mode:"readonly",contractAddress:a,contractName:c,functionName:l,functionArgs:p},tip:r.indexBlockHash,resolve:function(r){try{var o=t.decodeAbi(h.outputs.type,r);e(o)}catch(e){n(e)}},reject:n})})));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function w(){return(w=a(u().mark((function r(n){var o,i,a,s,c,l,h;return u().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(i=null!=(o=n.batchProcessor)?o:b,a=n.contract.split(".",2),s=a[0],c=a[1],l=n.abi.find((function(e){return e.name===n.mapName}))){r.next=5;break}throw new Error("failed to find map definition for "+n.mapName);case 5:return h=t.encodeAbi(l.key,n.key),r.abrupt("return",new Promise((function(r,o){i.enqueue({request:{mode:"mapEntry",contractAddress:s,contractName:c,mapName:n.mapName,mapKey:h},tip:n.indexBlockHash,resolve:function(n){try{if(n.type===e.ClarityType.OptionalNone)return void r(null);if(n.type!==e.ClarityType.OptionalSome)throw new Error("unexpected map value: "+n);var i=t.decodeAbi(l.value,n.value);r(i)}catch(e){o(e)}},reject:o})})));case 7:case"end":return r.stop()}}),r)})))).apply(this,arguments)}function x(){return(x=a(u().mark((function e(r){var n,o,i,a,s,c;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=null!=(n=r.batchProcessor)?n:b,i=r.contract.split(".",2),a=i[0],s=i[1],c=r.abi.find((function(e){return e.name===r.variableName}))){e.next=5;break}throw new Error("failed to find variable definition for "+r.variableName);case 5:return e.abrupt("return",new Promise((function(e,n){o.enqueue({request:{mode:"variable",contractAddress:a,contractName:s,variableName:r.variableName},tip:r.indexBlockHash,resolve:function(r){try{var o=t.decodeAbi(c.type,r);e(o)}catch(e){n(e)}},reject:n})})));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}exports.SimulationBuilder=m,exports.batchRead=h,exports.callReadonly=function(e){return g.apply(this,arguments)},exports.readMap=function(e){return w.apply(this,arguments)},exports.readVariable=function(e){return x.apply(this,arguments)},exports.runEval=d,exports.runSimulation=v;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@stacks/transactions"),t=require("ts-clarity"),r=require("@stacks/network"),n=require("c32check");function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function i(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function a(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function s(e){i(a,n,o,s,c,"next",e)}function c(e){i(a,n,o,s,c,"throw",e)}s(void 0)}))}}function s(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[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(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(null,arguments)}function u(){u=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var i=Object.create((t&&t.prototype instanceof b?t:b).prototype),a=new j(n||[]);return o(i,"_invoke",{value:P(e,r,a)}),i}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var p="suspendedStart",d="suspendedYield",v="executing",y="completed",m={};function b(){}function g(){}function w(){}var x={};l(x,a,(function(){return this}));var k=Object.getPrototypeOf,N=k&&k(k(O([])));N&&N!==r&&n.call(N,a)&&(x=N);var E=w.prototype=b.prototype=Object.create(x);function _(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function A(e,t){function r(o,i,a,s){var c=f(e[o],e,i);if("throw"!==c.type){var u=c.arg,l=u.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(l).then((function(e){u.value=e,a(u)}),(function(e){return r("throw",e,a,s)}))}s(c.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function P(t,r,n){var o=p;return function(i,a){if(o===v)throw Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var c=C(s,n);if(c){if(c===m)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var u=f(t,r,n);if("normal"===u.type){if(o=n.done?y:d,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=y,n.method="throw",n.arg=u.arg)}}}function C(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,C(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function I(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return g.prototype=w,o(E,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=l(w,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,l(e,c,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},_(A.prototype),l(A.prototype,s,(function(){return this})),t.AsyncIterator=A,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new A(h(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},_(E),l(E,c,"Generator"),l(E,a,(function(){return this})),l(E,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=O,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(I),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("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 o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),I(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;I(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:O(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function l(t){for(var r,n=[],o=s(t);!(r=o()).done;){var i=r.value;n.push("Ok"in i?e.deserializeCV(i.Ok):new Error(i.Err))}return n}function h(e,t){return f.apply(this,arguments)}function f(){return(f=a(u().mark((function t(r,n){var o,i,a,c,h,f,p,d,v,y,m,b,g,w,x,k;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(void 0===n&&(n={}),i=null==r.index_block_hash?void 0:r.index_block_hash.startsWith("0x")?r.index_block_hash.substring(2):r.index_block_hash,a={vars:[],maps:[],readonly:[],tip:i},null!=r.variables)for(c=s(r.variables);!(h=c()).done;)a.vars.push([e.serializeCV((f=h.value).contract),f.variableName]);if(null!=r.maps)for(p=s(r.maps);!(d=p()).done;)a.maps.push([e.serializeCV((v=d.value).contract),v.mapName,e.serializeCV(v.mapKey)]);if(null!=r.readonly)for(y=s(r.readonly);!(m=y()).done;)a.readonly.push([e.serializeCV((b=m.value).contract),b.functionName].concat(b.functionArgs.map((function(t){return e.serializeCV(t)}))));return g=(null!=(o=n.stxerApi)?o:"https://api.stxer.xyz")+"/sidecar/v2/batch",t.next=9,fetch(g,{method:"POST",body:JSON.stringify(a),headers:{"Content-Type":"application/json"}});case 9:return w=t.sent,t.next=12,w.text();case 12:if((x=t.sent).includes("Ok")||x.includes("Err")){t.next=15;break}throw new Error("Requesting batch reads failed: "+x+", url: "+g+", payload: "+JSON.stringify(a));case 15:return k=JSON.parse(x),t.abrupt("return",{tip:k.tip,vars:l(k.vars),maps:l(k.maps),readonly:l(k.readonly)});case 17:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function p(t){return e.tupleCV({type:e.uintCV(0),data:e.bufferCV(t.serializeBytes())})}function d(t){var r=t.code,n=t.contract_id.split("."),o=n[0],i=n[1];return e.tupleCV({type:e.uintCV(1),data:e.bufferCV(e.serializeCVBytes(e.tupleCV({contract:e.contractPrincipalCV(o,i),code:e.stringAsciiCV(r)})))})}function v(e,t,r,n){return y.apply(this,arguments)}function y(){return y=a(u().mark((function t(r,n,o,i){var c,l,h,f,v,y,m,b,g,w,x,k;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(c=(new TextEncoder).encode("sim-v1"),l=new Uint8Array(8),new DataView(l.buffer).setBigUint64(0,BigInt(o),!1),h=n.startsWith("0x")?n.substring(2):n,f=h.match(/.{1,2}/g)){t.next=8;break}throw new Error("Invalid block hash format");case 8:for(v=new Uint8Array(f.map((function(e){return Number.parseInt(e,16)}))),y=i.map((function(e){return"contract_id"in e&&"code"in e?d(e):p(e)})).map((function(t){return e.serializeCVBytes(t)})),m=c.length+l.length+v.length+y.reduce((function(e,t){return e+t.length}),0),(b=new Uint8Array(m)).set(c,g=0),b.set(l,g+=c.length),b.set(v,g+=l.length),g+=v.length,w=s(y);!(x=w()).done;)b.set(k=x.value,g),g+=k.length;return t.next=22,fetch(r,{method:"POST",body:b}).then(function(){var e=a(u().mark((function e(t){var r;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.text();case 2:if((r=e.sent).startsWith("{")){e.next=5;break}throw new Error("failed to submit simulation: "+r);case 5:return e.abrupt("return",JSON.parse(r));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());case 22:return t.abrupt("return",t.sent.id);case 24:case"end":return t.stop()}}),t)}))),y.apply(this,arguments)}var m=function(){function o(e){var t,r,n;void 0===e&&(e={}),this.apiEndpoint=void 0,this.stacksNodeAPI=void 0,this.network=void 0,this.block=NaN,this.sender="",this.steps=[],this.network=null!=(t=e.network)?t:"mainnet";var o="testnet"===this.network;this.apiEndpoint=null!=(r=e.apiEndpoint)?r:o?"https://testnet-api.stxer.xyz":"https://api.stxer.xyz",this.stacksNodeAPI=null!=(n=e.stacksNodeAPI)?n:o?"https://api.testnet.hiro.so":"https://api.hiro.so"}o.new=function(e){return new o(e)};var i=o.prototype;return i.useBlockHeight=function(e){return this.block=e,this},i.withSender=function(e){return this.sender=e,this},i.inlineSimulation=function(e){return this.steps.push({simulationId:e}),this},i.addSTXTransfer=function(e){var t,r;if(null==e.sender&&""===this.sender)throw new Error("Please specify a sender with useSender or adding a sender paramenter");return this.steps.push(c({},e,{sender:null!=(t=e.sender)?t:this.sender,fee:null!=(r=e.fee)?r:0})),this},i.addContractCall=function(e){var t,r;if(null==e.sender&&""===this.sender)throw new Error("Please specify a sender with useSender or adding a sender paramenter");return this.steps.push(c({},e,{sender:null!=(t=e.sender)?t:this.sender,fee:null!=(r=e.fee)?r:0})),this},i.addContractDeploy=function(t){var r,n,o;if(null==t.deployer&&""===this.sender)throw new Error("Please specify a deployer with useSender or adding a deployer paramenter");return this.steps.push(c({},t,{deployer:null!=(r=t.deployer)?r:this.sender,fee:null!=(n=t.fee)?n:0,clarity_version:null!=(o=t.clarity_version)?o:e.ClarityVersion.Clarity3})),this},i.addEvalCode=function(e,t){return this.steps.push({contract_id:e,code:t}),this},i.addMapRead=function(e,t,r){return this.steps.push({contract_id:e,code:"(map-get "+t+" "+r+")"}),this},i.addVarRead=function(e,t){return this.steps.push({contract_id:e,code:"(var-get "+t+")"}),this},i.getBlockInfo=function(){var e=a(u().mark((function e(){var r;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!Number.isNaN(this.block)){e.next=6;break}return e.next=3,t.getNodeInfo({stacksEndpoint:this.stacksNodeAPI});case 3:this.block=e.sent.stacks_tip_height;case 6:return e.next=8,t.richFetch(this.stacksNodeAPI+"/extended/v1/block/by_height/"+this.block+"?unanchored=true").then((function(e){return e.json()}));case 8:if((r=e.sent).height===this.block&&"string"==typeof r.hash&&r.hash.startsWith("0x")){e.next=11;break}throw new Error("failed to get block info for block height "+this.block);case 11:return e.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 e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),i.run=function(){var o=a(u().mark((function o(){var i,l,h,f,p,d,y,m,b,g,w,x,k,N,E,_,A,P,C,S,I,j,O=this;return u().wrap((function(o){for(;;)switch(o.prev=o.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--------------------------------"),o.next=3,this.getBlockInfo();case 3:i=o.sent,console.log("Using block height "+i.block_height+" hash 0x"+i.block_hash+" to run simulation."),l=[],h=new Map,f=function(){var e=a(u().mark((function e(r){var n,o,a;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=(n=h.get(r))){e.next=8;break}return o=O.stacksNodeAPI+"/v2/accounts/"+r+"?proof="+!1+"&tip="+i.index_block_hash,e.next=5,t.richFetch(o).then((function(e){return e.json()}));case 5:return h.set(r,(a=e.sent).nonce+1),e.abrupt("return",a.nonce);case 8:return h.set(r,n+1),e.abrupt("return",n);case 10:case"end":return e.stop()}}),e)})));return function(t){return e.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((y=d()).done){o.next=57;break}if(!("simulationId"in(m=y.value))){o.next=20;break}return o.next=16,fetch("https://api.stxer.xyz/simulations/"+m.simulationId+"/request").then((function(e){return e.json()}));case 16:for(b=s(o.sent.steps);!(g=b()).done;)"tx"in(w=g.value)?l.push(e.deserializeTransaction(w.tx)):"code"in w&&"contract"in w&&l.push({contract_id:w.contract,code:w.code});o.next=55;break;case 20:if(!("sender"in m)||!("function_name"in m)){o.next=32;break}return o.next=23,f(m.sender);case 23:return k=o.sent,N=m.contract_id.split("."),E=N[0],_=N[1],o.next=27,e.makeUnsignedContractCall({contractAddress:E,contractName:_,functionName:m.function_name,functionArgs:null!=(x=m.function_args)?x:[],nonce:k,network:p,publicKey:"",postConditionMode:e.PostConditionMode.Allow,fee:m.fee});case 27:(A=o.sent).auth.spendingCondition.signer=n.c32addressDecode(m.sender)[1],l.push(A),o.next=55;break;case 32:if(!("sender"in m)||!("recipient"in m)){o.next=43;break}return o.next=35,f(m.sender);case 35:return P=o.sent,o.next=38,e.makeUnsignedSTXTokenTransfer({recipient:m.recipient,amount:m.amount,nonce:P,network:p,publicKey:"",fee:m.fee});case 38:(C=o.sent).auth.spendingCondition.signer=n.c32addressDecode(m.sender)[1],l.push(C),o.next=55;break;case 43:if(!("deployer"in m)){o.next=54;break}return o.next=46,f(m.deployer);case 46:return S=o.sent,o.next=49,e.makeUnsignedContractDeploy({contractName:m.contract_name,codeBody:m.source_code,nonce:S,network:p,publicKey:"",postConditionMode:e.PostConditionMode.Allow,fee:m.fee});case 49:(I=o.sent).auth.spendingCondition.signer=n.c32addressDecode(m.deployer)[1],l.push(I),o.next=55;break;case 54:"code"in m?l.push(m):console.log("Invalid simulation step:",m);case 55:o.next=11;break;case 57:return o.next=59,v(this.apiEndpoint+"/simulations",i.block_hash,i.block_height,l);case 59:return j=o.sent,console.log("Simulation will be available at: https://stxer.xyz/simulations/"+this.network+"/"+j),o.abrupt("return",j);case 62:case"end":return o.stop()}}),o,this)})));return function(){return o.apply(this,arguments)}}(),i.pipe=function(e){return e(this)},o}(),b=new(function(){function t(e){var t;this.queues=new Map,this.timeoutIds=new Map,this.stxerAPIEndpoint=void 0,this.batchDelayMs=void 0,this.stxerAPIEndpoint=null!=(t=e.stxerAPIEndpoint)?t:"https://api.stxer.xyz",this.batchDelayMs=e.batchDelayMs}var r=t.prototype;return r.getQueueKey=function(e){return null!=e?e:"_undefined"},r.read=function(e){var t=this;return new Promise((function(r,n){t.enqueue({request:e,resolve:r,reject:n})}))},r.enqueue=function(e){var t,r=this,n=this.getQueueKey(e.tip),o=null!=(t=this.queues.get(n))?t:[];if(this.queues.has(n)||this.queues.set(n,o),o.push(e),!this.timeoutIds.has(n)){var i=setTimeout((function(){return r.processBatch(n)}),this.batchDelayMs);this.timeoutIds.set(n,i)}},r.processBatch=function(){var t=a(u().mark((function t(r){var n,o,i,a,c,l,f,p,d,v,y,m,b,g,w,x,k,N,E,_,A,P,C,S,I,j;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=null!=(n=this.queues.get(r))?n:[],this.queues.delete(r),(i=this.timeoutIds.get(r))&&(clearTimeout(i),this.timeoutIds.delete(r)),0!==o.length){t.next=6;break}return t.abrupt("return");case 6:return t.prev=6,a=o.filter((function(e){return"readonly"===e.request.mode})),c=o.filter((function(e){return"mapEntry"===e.request.mode})),l=o.filter((function(e){return"variable"===e.request.mode})),f="_undefined"===r?void 0:r,p={readonly:a.map((function(t){var r=t.request;return{contract:e.contractPrincipalCV(r.contractAddress,r.contractName),functionName:r.functionName,functionArgs:r.functionArgs}})),maps:c.map((function(t){var r=t.request;return{contract:e.contractPrincipalCV(r.contractAddress,r.contractName),mapName:r.mapName,mapKey:r.mapKey}})),variables:l.map((function(t){var r=t.request;return{contract:e.contractPrincipalCV(r.contractAddress,r.contractName),variableName:r.variableName}})),index_block_hash:f},t.next=14,h(p,{stxerApi:this.stxerAPIEndpoint});case 14:for(v=s((d=t.sent).readonly.entries());!(y=v()).done;)b=(m=y.value)[0],(g=m[1])instanceof Error?a[b].reject(g):a[b].resolve(g);for(w=s(d.vars.entries());!(x=w()).done;)N=(k=x.value)[0],(E=k[1])instanceof Error?l[N].reject(E):l[N].resolve(E);for(_=s(d.maps.entries());!(A=_()).done;)C=(P=A.value)[0],(S=P[1])instanceof Error?c[C].reject(S):c[C].resolve(S);t.next=23;break;case 20:for(t.prev=20,t.t0=t.catch(6),I=s(o);!(j=I()).done;)j.value.reject(t.t0);case 23:case"end":return t.stop()}}),t,this,[[6,20]])})));return function(e){return t.apply(this,arguments)}}(),t}())({batchDelayMs:100});function g(){return(g=a(u().mark((function e(r){var n,o,i,a,c,l,h,f,p,d,v,y;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=null!=(n=r.batchProcessor)?n:b,i=r.contract.split(".",2),a=i[0],c=i[1],l=String(r.functionName),h=r.abi.find((function(e){return e.name===r.functionName}))){e.next=6;break}throw new Error("failed to find function definition for "+r.functionName);case 6:for(f=r.args,p=[],d=s(h.args);!(v=d()).done;)p.push(t.encodeAbi((y=v.value).type,f[y.name]));return e.abrupt("return",new Promise((function(e,n){o.enqueue({request:{mode:"readonly",contractAddress:a,contractName:c,functionName:l,functionArgs:p},tip:r.indexBlockHash,resolve:function(r){try{var o=t.decodeAbi(h.outputs.type,r);e(o)}catch(e){n(e)}},reject:n})})));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function w(){return(w=a(u().mark((function r(n){var o,i,a,s,c,l,h;return u().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(i=null!=(o=n.batchProcessor)?o:b,a=n.contract.split(".",2),s=a[0],c=a[1],l=n.abi.find((function(e){return e.name===n.mapName}))){r.next=5;break}throw new Error("failed to find map definition for "+n.mapName);case 5:return h=t.encodeAbi(l.key,n.key),r.abrupt("return",new Promise((function(r,o){i.enqueue({request:{mode:"mapEntry",contractAddress:s,contractName:c,mapName:n.mapName,mapKey:h},tip:n.indexBlockHash,resolve:function(n){try{if(n.type===e.ClarityType.OptionalNone)return void r(null);if(n.type!==e.ClarityType.OptionalSome)throw new Error("unexpected map value: "+n);var i=t.decodeAbi(l.value,n.value);r(i)}catch(e){o(e)}},reject:o})})));case 7:case"end":return r.stop()}}),r)})))).apply(this,arguments)}function x(){return(x=a(u().mark((function e(r){var n,o,i,a,s,c;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=null!=(n=r.batchProcessor)?n:b,i=r.contract.split(".",2),a=i[0],s=i[1],c=r.abi.find((function(e){return e.name===r.variableName}))){e.next=5;break}throw new Error("failed to find variable definition for "+r.variableName);case 5:return e.abrupt("return",new Promise((function(e,n){o.enqueue({request:{mode:"variable",contractAddress:a,contractName:s,variableName:r.variableName},tip:r.indexBlockHash,resolve:function(r){try{var o=t.decodeAbi(c.type,r);e(o)}catch(e){n(e)}},reject:n})})));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}exports.SimulationBuilder=m,exports.batchRead=h,exports.callReadonly=function(e){return g.apply(this,arguments)},exports.readMap=function(e){return w.apply(this,arguments)},exports.readVariable=function(e){return x.apply(this,arguments)},exports.runEval=d,exports.runSimulation=v;
2
2
  //# sourceMappingURL=stxer.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stxer.cjs.production.min.js","sources":["../src/BatchAPI.ts","../src/simulation.ts","../src/clarity-api.ts","../src/BatchProcessor.ts"],"sourcesContent":["/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n serializeCV,\n} from '@stacks/transactions';\n\nexport interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n readonly?: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport interface BatchReadsResult {\n tip: string;\n vars: (ClarityValue | Error)[];\n maps: (ClarityValue | Error)[];\n readonly: (ClarityValue | Error)[];\n}\n\nexport interface BatchApiOptions {\n stxerApi?: string;\n}\n\nconst DEFAULT_STXER_API = 'https://api.stxer.xyz';\n\nfunction convertResults(\n rs: ({ Ok: string } | { Err: string })[],\n): (ClarityValue | Error)[] {\n const results: (ClarityValue | Error)[] = [];\n for (const v of rs) {\n if ('Ok' in v) {\n results.push(deserializeCV(v.Ok));\n } else {\n results.push(new Error(v.Err));\n }\n }\n return results;\n}\n\nexport async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n): Promise<BatchReadsResult> {\n const ibh =\n reads.index_block_hash == null\n ? undefined\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n\n const payload: {\n tip?: string;\n vars: string[][];\n maps: string[][];\n readonly: string[][];\n } = { vars: [], maps: [], readonly: [], tip: ibh };\n\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.vars.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.maps.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n\n if (reads.readonly != null) {\n for (const ro of reads.readonly) {\n payload.readonly.push([\n serializeCV(ro.contract),\n ro.functionName,\n ...ro.functionArgs.map(v => serializeCV(v)),\n ]);\n }\n }\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\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\n const rs = JSON.parse(text) as {\n tip: string;\n vars: ({ Ok: string } | { Err: string })[];\n maps: ({ Ok: string } | { Err: string })[];\n readonly: ({ Ok: string } | { Err: string })[];\n };\n\n return {\n tip: rs.tip,\n vars: convertResults(rs.vars),\n maps: convertResults(rs.maps),\n readonly: convertResults(rs.readonly),\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","import {\n ClarityType,\n type ClarityValue,\n type OptionalCV,\n} from '@stacks/transactions';\nimport type {\n ClarityAbiFunction,\n ClarityAbiMap,\n ClarityAbiVariable,\n TContractPrincipal,\n TPrincipal,\n} from 'clarity-abi';\nimport { decodeAbi, encodeAbi } from 'ts-clarity';\nimport type {\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferMapValueType,\n InferReadMapParameterType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { BatchProcessor } from './BatchProcessor';\n\n// Shared processor instance with default settings\nconst defaultProcessor = new BatchProcessor({\n batchDelayMs: 100,\n});\n\nexport type ReadonlyCallRuntimeOptions = {\n sender?: TPrincipal;\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadMapRuntimeParameters = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadVariableRuntimeParameterType = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport async function callReadonly<\n Functions extends readonly ClarityAbiFunction[] | readonly unknown[],\n FunctionName extends string,\n>(\n params: InferReadonlyCallParameterType<Functions, FunctionName> &\n ReadonlyCallRuntimeOptions,\n): Promise<InferReadonlyCallResultType<Functions, FunctionName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n const fn = String(params.functionName);\n \n const functionDef = (params.abi as readonly ClarityAbiFunction[]).find(\n (def) => def.name === params.functionName,\n );\n if (!functionDef) {\n throw new Error(`failed to find function definition for ${params.functionName}`);\n }\n \n const argsKV = (params as unknown as { args: Record<string, unknown> }).args;\n const args: ClarityValue[] = [];\n for (const argDef of functionDef.args) {\n args.push(encodeAbi(argDef.type, argsKV[argDef.name]));\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'readonly',\n contractAddress: deployer,\n contractName: contractName,\n functionName: fn,\n functionArgs: args,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(functionDef.outputs.type, result);\n resolve(decoded as InferReadonlyCallResultType<Functions, FunctionName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends readonly ClarityAbiMap[] | readonly unknown[] = readonly ClarityAbiMap[],\n MapName extends string = string,\n>(\n params: InferReadMapParameterType<Maps, MapName> & ReadMapRuntimeParameters,\n): Promise<InferMapValueType<Maps, MapName> | null> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const mapDef = (params.abi as readonly ClarityAbiMap[]).find(\n (m) => m.name === params.mapName,\n );\n if (!mapDef) {\n throw new Error(`failed to find map definition for ${params.mapName}`);\n }\n \n const key: ClarityValue = encodeAbi(mapDef.key, params.key);\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'mapEntry',\n contractAddress: deployer,\n contractName: contractName,\n mapName: params.mapName,\n mapKey: key,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n if (result.type === ClarityType.OptionalNone) {\n resolve(null);\n return;\n }\n if (result.type !== ClarityType.OptionalSome) {\n throw new Error(`unexpected map value: ${result}`);\n }\n const someCV = result as { type: ClarityType.OptionalSome; value: ClarityValue };\n const decoded = decodeAbi(mapDef.value, someCV.value);\n resolve(decoded as InferMapValueType<Maps, MapName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readVariable<\n Variables extends readonly ClarityAbiVariable[] | readonly unknown[] = readonly ClarityAbiVariable[],\n VariableName extends string = string,\n>(\n params: InferReadVariableParameterType<Variables, VariableName> &\n ReadVariableRuntimeParameterType,\n): Promise<InferVariableType<Variables, VariableName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const varDef = (params.abi as readonly ClarityAbiVariable[]).find(\n (def) => def.name === params.variableName,\n );\n if (!varDef) {\n throw new Error(`failed to find variable definition for ${params.variableName}`);\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'variable',\n contractAddress: deployer,\n contractName: contractName,\n variableName: params.variableName,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(varDef.type, result);\n resolve(decoded as InferVariableType<Variables, VariableName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}","/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type OptionalCV,\n contractPrincipalCV,\n} from '@stacks/transactions';\nimport { type BatchReads, batchRead } from './BatchAPI';\n\nexport interface ReadOnlyRequest {\n mode: 'readonly';\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: ClarityValue[];\n}\n\nexport interface MapEntryRequest {\n mode: 'mapEntry';\n contractAddress: string;\n contractName: string;\n mapName: string;\n mapKey: ClarityValue;\n}\n\nexport interface VariableRequest {\n mode: 'variable';\n contractAddress: string;\n contractName: string;\n variableName: string;\n}\n\nexport type BatchRequest = MapEntryRequest | VariableRequest | ReadOnlyRequest;\n\nexport interface QueuedRequest {\n request: BatchRequest;\n tip?: string;\n resolve: (value: ClarityValue | OptionalCV) => void;\n reject: (error: Error) => void;\n}\n\nexport class BatchProcessor {\n private queues = new Map<string, QueuedRequest[]>();\n private timeoutIds = new Map<string, ReturnType<typeof setTimeout>>();\n\n private readonly stxerAPIEndpoint: string;\n private readonly batchDelayMs: number;\n\n constructor(options: { stxerAPIEndpoint?: string; batchDelayMs: number }) {\n this.stxerAPIEndpoint = options.stxerAPIEndpoint ?? 'https://api.stxer.xyz';\n this.batchDelayMs = options.batchDelayMs;\n }\n\n private getQueueKey(tip?: string): string {\n return tip ?? '_undefined';\n }\n\n read(request: BatchRequest): Promise<ClarityValue | OptionalCV> {\n return new Promise((resolve, reject) => {\n this.enqueue({ request, resolve, reject });\n });\n }\n\n enqueue(request: QueuedRequest): void {\n const queueKey = this.getQueueKey(request.tip);\n\n const queue = this.queues.get(queueKey) ?? [];\n if (!this.queues.has(queueKey)) {\n this.queues.set(queueKey, queue);\n }\n queue.push(request);\n\n if (!this.timeoutIds.has(queueKey)) {\n const timeoutId = setTimeout(\n () => this.processBatch(queueKey),\n this.batchDelayMs,\n );\n this.timeoutIds.set(queueKey, timeoutId);\n }\n }\n\n private async processBatch(queueKey: string): Promise<void> {\n const currentQueue = this.queues.get(queueKey) ?? [];\n this.queues.delete(queueKey);\n\n const timeoutId = this.timeoutIds.get(queueKey);\n if (timeoutId) {\n clearTimeout(timeoutId);\n this.timeoutIds.delete(queueKey);\n }\n\n if (currentQueue.length === 0) return;\n\n try {\n const readonlyRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: ReadOnlyRequest } =>\n q.request.mode === 'readonly',\n );\n const mapRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: MapEntryRequest } =>\n q.request.mode === 'mapEntry',\n );\n const variableRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: VariableRequest } =>\n q.request.mode === 'variable',\n );\n\n const tip = queueKey === '_undefined' ? undefined : queueKey;\n\n const batchRequest: BatchReads = {\n readonly: readonlyRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n functionName: request.functionName,\n functionArgs: request.functionArgs,\n })),\n maps: mapRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n mapName: request.mapName,\n mapKey: request.mapKey,\n })),\n variables: variableRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n variableName: request.variableName,\n })),\n index_block_hash: tip,\n };\n\n const results = await batchRead(batchRequest, {\n stxerApi: this.stxerAPIEndpoint,\n });\n\n // Handle readonly results\n for (const [index, result] of results.readonly.entries()) {\n if (result instanceof Error) {\n readonlyRequests[index].reject(result);\n } else {\n readonlyRequests[index].resolve(result);\n }\n }\n\n // Handle variable results\n for (const [index, result] of results.vars.entries()) {\n if (result instanceof Error) {\n variableRequests[index].reject(result);\n } else {\n variableRequests[index].resolve(result);\n }\n }\n\n // Handle map results\n for (const [index, result] of results.maps.entries()) {\n if (result instanceof Error) {\n mapRequests[index].reject(result);\n } else {\n mapRequests[index].resolve(result);\n }\n }\n } catch (error) {\n for (const item of currentQueue) {\n item.reject(error as Error);\n }\n }\n }\n} "],"names":["convertResults","rs","_step","results","_iterator","_createForOfIteratorHelperLoose","done","v","value","push","deserializeCV","Ok","Error","Err","batchRead","_x","_x2","_batchRead","apply","this","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","ibh","index_block_hash","undefined","startsWith","substring","payload","vars","maps","readonly","tip","variables","_iterator2","_step2","serializeCV","variable","contract","variableName","_iterator3","_step3","map","mapName","mapKey","_iterator4","_step4","ro","functionName","concat","functionArgs","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","headers","data","sent","text","includes","parse","abrupt","stop","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","code","_contract_id$split","contract_id","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_x3","_x4","_runSimulation","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","hashHex","matches","hashBytes","txBytes","totalLength","offset","wrap","_context5","prev","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","length","reduce","acc","curr","set","then","_ref3","_callee4","response","_context4","_x6","id","SimulationBuilder","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","_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","info","isNaN","getNodeInfo","stacksEndpoint","stacks_tip_height","richFetch","r","json","height","hash","run","_run","_callee3","nonce_by_address","nextNonce","step","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_this","_context3","console","log","Map","_ref2","_callee2","account","_context2","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","defaultProcessor","BatchProcessor","_options$stxerAPIEndp","queues","timeoutIds","stxerAPIEndpoint","batchDelayMs","getQueueKey","read","request","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","has","timeoutId","setTimeout","processBatch","_processBatch","_this$queues$get2","currentQueue","readonlyRequests","mapRequests","variableRequests","batchRequest","_step$value","index","result","_step2$value","_index","_result","_step3$value","_index2","_result2","clearTimeout","filter","q","mode","entries","t0","_callReadonly","_params$batchProcesso","processor","_params$contract$spli","fn","functionDef","argsKV","args","argDef","batchProcessor","String","abi","find","def","name","encodeAbi","indexBlockHash","decoded","decodeAbi","outputs","error","_readMap","_params$batchProcesso2","_params$contract$spli2","mapDef","m","ClarityType","OptionalNone","OptionalSome","_readVariable","_params$batchProcesso3","_params$contract$spli3","varDef","callReadonly","readMap","readVariable"],"mappings":"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"}
1
+ {"version":3,"file":"stxer.cjs.production.min.js","sources":["../src/BatchAPI.ts","../src/simulation.ts","../src/clarity-api.ts","../src/BatchProcessor.ts"],"sourcesContent":["/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n serializeCV,\n} from '@stacks/transactions';\n\nexport interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n readonly?: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport interface BatchReadsResult {\n tip: string;\n vars: (ClarityValue | Error)[];\n maps: (ClarityValue | Error)[];\n readonly: (ClarityValue | Error)[];\n}\n\nexport interface BatchApiOptions {\n stxerApi?: string;\n}\n\nconst DEFAULT_STXER_API = 'https://api.stxer.xyz';\n\nfunction convertResults(\n rs: ({ Ok: string } | { Err: string })[],\n): (ClarityValue | Error)[] {\n const results: (ClarityValue | Error)[] = [];\n for (const v of rs) {\n if ('Ok' in v) {\n results.push(deserializeCV(v.Ok));\n } else {\n results.push(new Error(v.Err));\n }\n }\n return results;\n}\n\nexport async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n): Promise<BatchReadsResult> {\n const ibh =\n reads.index_block_hash == null\n ? undefined\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n\n const payload: {\n tip?: string;\n vars: string[][];\n maps: string[][];\n readonly: string[][];\n } = { vars: [], maps: [], readonly: [], tip: ibh };\n\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.vars.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.maps.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n\n if (reads.readonly != null) {\n for (const ro of reads.readonly) {\n payload.readonly.push([\n serializeCV(ro.contract),\n ro.functionName,\n ...ro.functionArgs.map(v => serializeCV(v)),\n ]);\n }\n }\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\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\n const rs = JSON.parse(text) as {\n tip: string;\n vars: ({ Ok: string } | { Err: string })[];\n maps: ({ Ok: string } | { Err: string })[];\n readonly: ({ Ok: string } | { Err: string })[];\n };\n\n return {\n tip: rs.tip,\n vars: convertResults(rs.vars),\n maps: convertResults(rs.maps),\n readonly: convertResults(rs.readonly),\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.network = options.network ?? 'mainnet';\n const isTestnet = this.network === 'testnet';\n \n this.apiEndpoint = options.apiEndpoint ?? \n (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');\n this.stacksNodeAPI = options.stacksNodeAPI ?? \n (isTestnet ? 'https://api.testnet.hiro.so' : 'https://api.hiro.so');\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","import {\n ClarityType,\n type ClarityValue,\n type OptionalCV,\n} from '@stacks/transactions';\nimport type {\n ClarityAbiFunction,\n ClarityAbiMap,\n ClarityAbiVariable,\n TContractPrincipal,\n TPrincipal,\n} from 'clarity-abi';\nimport { decodeAbi, encodeAbi } from 'ts-clarity';\nimport type {\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferMapValueType,\n InferReadMapParameterType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { BatchProcessor } from './BatchProcessor';\n\n// Shared processor instance with default settings\nconst defaultProcessor = new BatchProcessor({\n batchDelayMs: 100,\n});\n\nexport type ReadonlyCallRuntimeOptions = {\n sender?: TPrincipal;\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadMapRuntimeParameters = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadVariableRuntimeParameterType = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport async function callReadonly<\n Functions extends readonly ClarityAbiFunction[] | readonly unknown[],\n FunctionName extends string,\n>(\n params: InferReadonlyCallParameterType<Functions, FunctionName> &\n ReadonlyCallRuntimeOptions,\n): Promise<InferReadonlyCallResultType<Functions, FunctionName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n const fn = String(params.functionName);\n \n const functionDef = (params.abi as readonly ClarityAbiFunction[]).find(\n (def) => def.name === params.functionName,\n );\n if (!functionDef) {\n throw new Error(`failed to find function definition for ${params.functionName}`);\n }\n \n const argsKV = (params as unknown as { args: Record<string, unknown> }).args;\n const args: ClarityValue[] = [];\n for (const argDef of functionDef.args) {\n args.push(encodeAbi(argDef.type, argsKV[argDef.name]));\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'readonly',\n contractAddress: deployer,\n contractName: contractName,\n functionName: fn,\n functionArgs: args,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(functionDef.outputs.type, result);\n resolve(decoded as InferReadonlyCallResultType<Functions, FunctionName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends readonly ClarityAbiMap[] | readonly unknown[] = readonly ClarityAbiMap[],\n MapName extends string = string,\n>(\n params: InferReadMapParameterType<Maps, MapName> & ReadMapRuntimeParameters,\n): Promise<InferMapValueType<Maps, MapName> | null> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const mapDef = (params.abi as readonly ClarityAbiMap[]).find(\n (m) => m.name === params.mapName,\n );\n if (!mapDef) {\n throw new Error(`failed to find map definition for ${params.mapName}`);\n }\n \n const key: ClarityValue = encodeAbi(mapDef.key, params.key);\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'mapEntry',\n contractAddress: deployer,\n contractName: contractName,\n mapName: params.mapName,\n mapKey: key,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n if (result.type === ClarityType.OptionalNone) {\n resolve(null);\n return;\n }\n if (result.type !== ClarityType.OptionalSome) {\n throw new Error(`unexpected map value: ${result}`);\n }\n const someCV = result as { type: ClarityType.OptionalSome; value: ClarityValue };\n const decoded = decodeAbi(mapDef.value, someCV.value);\n resolve(decoded as InferMapValueType<Maps, MapName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readVariable<\n Variables extends readonly ClarityAbiVariable[] | readonly unknown[] = readonly ClarityAbiVariable[],\n VariableName extends string = string,\n>(\n params: InferReadVariableParameterType<Variables, VariableName> &\n ReadVariableRuntimeParameterType,\n): Promise<InferVariableType<Variables, VariableName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const varDef = (params.abi as readonly ClarityAbiVariable[]).find(\n (def) => def.name === params.variableName,\n );\n if (!varDef) {\n throw new Error(`failed to find variable definition for ${params.variableName}`);\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'variable',\n contractAddress: deployer,\n contractName: contractName,\n variableName: params.variableName,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(varDef.type, result);\n resolve(decoded as InferVariableType<Variables, VariableName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}","/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type OptionalCV,\n contractPrincipalCV,\n} from '@stacks/transactions';\nimport { type BatchReads, batchRead } from './BatchAPI';\n\nexport interface ReadOnlyRequest {\n mode: 'readonly';\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: ClarityValue[];\n}\n\nexport interface MapEntryRequest {\n mode: 'mapEntry';\n contractAddress: string;\n contractName: string;\n mapName: string;\n mapKey: ClarityValue;\n}\n\nexport interface VariableRequest {\n mode: 'variable';\n contractAddress: string;\n contractName: string;\n variableName: string;\n}\n\nexport type BatchRequest = MapEntryRequest | VariableRequest | ReadOnlyRequest;\n\nexport interface QueuedRequest {\n request: BatchRequest;\n tip?: string;\n resolve: (value: ClarityValue | OptionalCV) => void;\n reject: (error: Error) => void;\n}\n\nexport class BatchProcessor {\n private queues = new Map<string, QueuedRequest[]>();\n private timeoutIds = new Map<string, ReturnType<typeof setTimeout>>();\n\n private readonly stxerAPIEndpoint: string;\n private readonly batchDelayMs: number;\n\n constructor(options: { stxerAPIEndpoint?: string; batchDelayMs: number }) {\n this.stxerAPIEndpoint = options.stxerAPIEndpoint ?? 'https://api.stxer.xyz';\n this.batchDelayMs = options.batchDelayMs;\n }\n\n private getQueueKey(tip?: string): string {\n return tip ?? '_undefined';\n }\n\n read(request: BatchRequest): Promise<ClarityValue | OptionalCV> {\n return new Promise((resolve, reject) => {\n this.enqueue({ request, resolve, reject });\n });\n }\n\n enqueue(request: QueuedRequest): void {\n const queueKey = this.getQueueKey(request.tip);\n\n const queue = this.queues.get(queueKey) ?? [];\n if (!this.queues.has(queueKey)) {\n this.queues.set(queueKey, queue);\n }\n queue.push(request);\n\n if (!this.timeoutIds.has(queueKey)) {\n const timeoutId = setTimeout(\n () => this.processBatch(queueKey),\n this.batchDelayMs,\n );\n this.timeoutIds.set(queueKey, timeoutId);\n }\n }\n\n private async processBatch(queueKey: string): Promise<void> {\n const currentQueue = this.queues.get(queueKey) ?? [];\n this.queues.delete(queueKey);\n\n const timeoutId = this.timeoutIds.get(queueKey);\n if (timeoutId) {\n clearTimeout(timeoutId);\n this.timeoutIds.delete(queueKey);\n }\n\n if (currentQueue.length === 0) return;\n\n try {\n const readonlyRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: ReadOnlyRequest } =>\n q.request.mode === 'readonly',\n );\n const mapRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: MapEntryRequest } =>\n q.request.mode === 'mapEntry',\n );\n const variableRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: VariableRequest } =>\n q.request.mode === 'variable',\n );\n\n const tip = queueKey === '_undefined' ? undefined : queueKey;\n\n const batchRequest: BatchReads = {\n readonly: readonlyRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n functionName: request.functionName,\n functionArgs: request.functionArgs,\n })),\n maps: mapRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n mapName: request.mapName,\n mapKey: request.mapKey,\n })),\n variables: variableRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n variableName: request.variableName,\n })),\n index_block_hash: tip,\n };\n\n const results = await batchRead(batchRequest, {\n stxerApi: this.stxerAPIEndpoint,\n });\n\n // Handle readonly results\n for (const [index, result] of results.readonly.entries()) {\n if (result instanceof Error) {\n readonlyRequests[index].reject(result);\n } else {\n readonlyRequests[index].resolve(result);\n }\n }\n\n // Handle variable results\n for (const [index, result] of results.vars.entries()) {\n if (result instanceof Error) {\n variableRequests[index].reject(result);\n } else {\n variableRequests[index].resolve(result);\n }\n }\n\n // Handle map results\n for (const [index, result] of results.maps.entries()) {\n if (result instanceof Error) {\n mapRequests[index].reject(result);\n } else {\n mapRequests[index].resolve(result);\n }\n }\n } catch (error) {\n for (const item of currentQueue) {\n item.reject(error as Error);\n }\n }\n }\n} "],"names":["convertResults","rs","_step","results","_iterator","_createForOfIteratorHelperLoose","done","v","value","push","deserializeCV","Ok","Error","Err","batchRead","_x","_x2","_batchRead","apply","this","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","ibh","index_block_hash","undefined","startsWith","substring","payload","vars","maps","readonly","tip","variables","_iterator2","_step2","serializeCV","variable","contract","variableName","_iterator3","_step3","map","mapName","mapKey","_iterator4","_step4","ro","functionName","concat","functionArgs","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","headers","data","sent","text","includes","parse","abrupt","stop","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","code","_contract_id$split","contract_id","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_x3","_x4","_runSimulation","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","hashHex","matches","hashBytes","txBytes","totalLength","offset","wrap","_context5","prev","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","length","reduce","acc","curr","set","then","_ref3","_callee4","response","_context4","_x6","id","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","stacksNodeAPI","network","block","NaN","sender","steps","isTestnet","_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","info","isNaN","getNodeInfo","stacksEndpoint","stacks_tip_height","richFetch","r","json","height","hash","run","_run","_callee3","nonce_by_address","nextNonce","step","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_this","_context3","console","log","Map","_ref2","_callee2","account","_context2","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","defaultProcessor","BatchProcessor","_options$stxerAPIEndp","queues","timeoutIds","stxerAPIEndpoint","batchDelayMs","getQueueKey","read","request","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","has","timeoutId","setTimeout","processBatch","_processBatch","_this$queues$get2","currentQueue","readonlyRequests","mapRequests","variableRequests","batchRequest","_step$value","index","result","_step2$value","_index","_result","_step3$value","_index2","_result2","clearTimeout","filter","q","mode","entries","t0","_callReadonly","_params$batchProcesso","processor","_params$contract$spli","fn","functionDef","argsKV","args","argDef","batchProcessor","String","abi","find","def","name","encodeAbi","indexBlockHash","decoded","decodeAbi","outputs","error","_readMap","_params$batchProcesso2","_params$contract$spli2","mapDef","m","ClarityType","OptionalNone","OptionalSome","_readVariable","_params$batchProcesso3","_params$contract$spli3","varDef","callReadonly","readMap","readVariable"],"mappings":"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"}
package/dist/stxer.esm.js CHANGED
@@ -571,7 +571,7 @@ function _runSimulation() {
571
571
  }
572
572
  var SimulationBuilder = /*#__PURE__*/function () {
573
573
  function SimulationBuilder(options) {
574
- var _options$apiEndpoint, _options$stacksNodeAP, _options$network;
574
+ var _options$network, _options$apiEndpoint, _options$stacksNodeAP;
575
575
  if (options === void 0) {
576
576
  options = {};
577
577
  }
@@ -582,9 +582,10 @@ var SimulationBuilder = /*#__PURE__*/function () {
582
582
  this.block = NaN;
583
583
  this.sender = '';
584
584
  this.steps = [];
585
- this.apiEndpoint = (_options$apiEndpoint = options.apiEndpoint) != null ? _options$apiEndpoint : 'https://api.stxer.xyz';
586
- this.stacksNodeAPI = (_options$stacksNodeAP = options.stacksNodeAPI) != null ? _options$stacksNodeAP : 'https://api.hiro.so';
587
585
  this.network = (_options$network = options.network) != null ? _options$network : 'mainnet';
586
+ var isTestnet = this.network === 'testnet';
587
+ this.apiEndpoint = (_options$apiEndpoint = options.apiEndpoint) != null ? _options$apiEndpoint : isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz';
588
+ this.stacksNodeAPI = (_options$stacksNodeAP = options.stacksNodeAPI) != null ? _options$stacksNodeAP : isTestnet ? 'https://api.testnet.hiro.so' : 'https://api.hiro.so';
588
589
  }
589
590
  SimulationBuilder["new"] = function _new(options) {
590
591
  return new SimulationBuilder(options);
@@ -1 +1 @@
1
- {"version":3,"file":"stxer.esm.js","sources":["../src/BatchAPI.ts","../src/simulation.ts","../src/BatchProcessor.ts","../src/clarity-api.ts"],"sourcesContent":["/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n serializeCV,\n} from '@stacks/transactions';\n\nexport interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n readonly?: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport interface BatchReadsResult {\n tip: string;\n vars: (ClarityValue | Error)[];\n maps: (ClarityValue | Error)[];\n readonly: (ClarityValue | Error)[];\n}\n\nexport interface BatchApiOptions {\n stxerApi?: string;\n}\n\nconst DEFAULT_STXER_API = 'https://api.stxer.xyz';\n\nfunction convertResults(\n rs: ({ Ok: string } | { Err: string })[],\n): (ClarityValue | Error)[] {\n const results: (ClarityValue | Error)[] = [];\n for (const v of rs) {\n if ('Ok' in v) {\n results.push(deserializeCV(v.Ok));\n } else {\n results.push(new Error(v.Err));\n }\n }\n return results;\n}\n\nexport async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n): Promise<BatchReadsResult> {\n const ibh =\n reads.index_block_hash == null\n ? undefined\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n\n const payload: {\n tip?: string;\n vars: string[][];\n maps: string[][];\n readonly: string[][];\n } = { vars: [], maps: [], readonly: [], tip: ibh };\n\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.vars.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.maps.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n\n if (reads.readonly != null) {\n for (const ro of reads.readonly) {\n payload.readonly.push([\n serializeCV(ro.contract),\n ro.functionName,\n ...ro.functionArgs.map(v => serializeCV(v)),\n ]);\n }\n }\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\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\n const rs = JSON.parse(text) as {\n tip: string;\n vars: ({ Ok: string } | { Err: string })[];\n maps: ({ Ok: string } | { Err: string })[];\n readonly: ({ Ok: string } | { Err: string })[];\n };\n\n return {\n tip: rs.tip,\n vars: convertResults(rs.vars),\n maps: convertResults(rs.maps),\n readonly: convertResults(rs.readonly),\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","/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type OptionalCV,\n contractPrincipalCV,\n} from '@stacks/transactions';\nimport { type BatchReads, batchRead } from './BatchAPI';\n\nexport interface ReadOnlyRequest {\n mode: 'readonly';\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: ClarityValue[];\n}\n\nexport interface MapEntryRequest {\n mode: 'mapEntry';\n contractAddress: string;\n contractName: string;\n mapName: string;\n mapKey: ClarityValue;\n}\n\nexport interface VariableRequest {\n mode: 'variable';\n contractAddress: string;\n contractName: string;\n variableName: string;\n}\n\nexport type BatchRequest = MapEntryRequest | VariableRequest | ReadOnlyRequest;\n\nexport interface QueuedRequest {\n request: BatchRequest;\n tip?: string;\n resolve: (value: ClarityValue | OptionalCV) => void;\n reject: (error: Error) => void;\n}\n\nexport class BatchProcessor {\n private queues = new Map<string, QueuedRequest[]>();\n private timeoutIds = new Map<string, ReturnType<typeof setTimeout>>();\n\n private readonly stxerAPIEndpoint: string;\n private readonly batchDelayMs: number;\n\n constructor(options: { stxerAPIEndpoint?: string; batchDelayMs: number }) {\n this.stxerAPIEndpoint = options.stxerAPIEndpoint ?? 'https://api.stxer.xyz';\n this.batchDelayMs = options.batchDelayMs;\n }\n\n private getQueueKey(tip?: string): string {\n return tip ?? '_undefined';\n }\n\n read(request: BatchRequest): Promise<ClarityValue | OptionalCV> {\n return new Promise((resolve, reject) => {\n this.enqueue({ request, resolve, reject });\n });\n }\n\n enqueue(request: QueuedRequest): void {\n const queueKey = this.getQueueKey(request.tip);\n\n const queue = this.queues.get(queueKey) ?? [];\n if (!this.queues.has(queueKey)) {\n this.queues.set(queueKey, queue);\n }\n queue.push(request);\n\n if (!this.timeoutIds.has(queueKey)) {\n const timeoutId = setTimeout(\n () => this.processBatch(queueKey),\n this.batchDelayMs,\n );\n this.timeoutIds.set(queueKey, timeoutId);\n }\n }\n\n private async processBatch(queueKey: string): Promise<void> {\n const currentQueue = this.queues.get(queueKey) ?? [];\n this.queues.delete(queueKey);\n\n const timeoutId = this.timeoutIds.get(queueKey);\n if (timeoutId) {\n clearTimeout(timeoutId);\n this.timeoutIds.delete(queueKey);\n }\n\n if (currentQueue.length === 0) return;\n\n try {\n const readonlyRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: ReadOnlyRequest } =>\n q.request.mode === 'readonly',\n );\n const mapRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: MapEntryRequest } =>\n q.request.mode === 'mapEntry',\n );\n const variableRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: VariableRequest } =>\n q.request.mode === 'variable',\n );\n\n const tip = queueKey === '_undefined' ? undefined : queueKey;\n\n const batchRequest: BatchReads = {\n readonly: readonlyRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n functionName: request.functionName,\n functionArgs: request.functionArgs,\n })),\n maps: mapRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n mapName: request.mapName,\n mapKey: request.mapKey,\n })),\n variables: variableRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n variableName: request.variableName,\n })),\n index_block_hash: tip,\n };\n\n const results = await batchRead(batchRequest, {\n stxerApi: this.stxerAPIEndpoint,\n });\n\n // Handle readonly results\n for (const [index, result] of results.readonly.entries()) {\n if (result instanceof Error) {\n readonlyRequests[index].reject(result);\n } else {\n readonlyRequests[index].resolve(result);\n }\n }\n\n // Handle variable results\n for (const [index, result] of results.vars.entries()) {\n if (result instanceof Error) {\n variableRequests[index].reject(result);\n } else {\n variableRequests[index].resolve(result);\n }\n }\n\n // Handle map results\n for (const [index, result] of results.maps.entries()) {\n if (result instanceof Error) {\n mapRequests[index].reject(result);\n } else {\n mapRequests[index].resolve(result);\n }\n }\n } catch (error) {\n for (const item of currentQueue) {\n item.reject(error as Error);\n }\n }\n }\n} ","import {\n ClarityType,\n type ClarityValue,\n type OptionalCV,\n} from '@stacks/transactions';\nimport type {\n ClarityAbiFunction,\n ClarityAbiMap,\n ClarityAbiVariable,\n TContractPrincipal,\n TPrincipal,\n} from 'clarity-abi';\nimport { decodeAbi, encodeAbi } from 'ts-clarity';\nimport type {\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferMapValueType,\n InferReadMapParameterType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { BatchProcessor } from './BatchProcessor';\n\n// Shared processor instance with default settings\nconst defaultProcessor = new BatchProcessor({\n batchDelayMs: 100,\n});\n\nexport type ReadonlyCallRuntimeOptions = {\n sender?: TPrincipal;\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadMapRuntimeParameters = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadVariableRuntimeParameterType = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport async function callReadonly<\n Functions extends readonly ClarityAbiFunction[] | readonly unknown[],\n FunctionName extends string,\n>(\n params: InferReadonlyCallParameterType<Functions, FunctionName> &\n ReadonlyCallRuntimeOptions,\n): Promise<InferReadonlyCallResultType<Functions, FunctionName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n const fn = String(params.functionName);\n \n const functionDef = (params.abi as readonly ClarityAbiFunction[]).find(\n (def) => def.name === params.functionName,\n );\n if (!functionDef) {\n throw new Error(`failed to find function definition for ${params.functionName}`);\n }\n \n const argsKV = (params as unknown as { args: Record<string, unknown> }).args;\n const args: ClarityValue[] = [];\n for (const argDef of functionDef.args) {\n args.push(encodeAbi(argDef.type, argsKV[argDef.name]));\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'readonly',\n contractAddress: deployer,\n contractName: contractName,\n functionName: fn,\n functionArgs: args,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(functionDef.outputs.type, result);\n resolve(decoded as InferReadonlyCallResultType<Functions, FunctionName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends readonly ClarityAbiMap[] | readonly unknown[] = readonly ClarityAbiMap[],\n MapName extends string = string,\n>(\n params: InferReadMapParameterType<Maps, MapName> & ReadMapRuntimeParameters,\n): Promise<InferMapValueType<Maps, MapName> | null> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const mapDef = (params.abi as readonly ClarityAbiMap[]).find(\n (m) => m.name === params.mapName,\n );\n if (!mapDef) {\n throw new Error(`failed to find map definition for ${params.mapName}`);\n }\n \n const key: ClarityValue = encodeAbi(mapDef.key, params.key);\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'mapEntry',\n contractAddress: deployer,\n contractName: contractName,\n mapName: params.mapName,\n mapKey: key,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n if (result.type === ClarityType.OptionalNone) {\n resolve(null);\n return;\n }\n if (result.type !== ClarityType.OptionalSome) {\n throw new Error(`unexpected map value: ${result}`);\n }\n const someCV = result as { type: ClarityType.OptionalSome; value: ClarityValue };\n const decoded = decodeAbi(mapDef.value, someCV.value);\n resolve(decoded as InferMapValueType<Maps, MapName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readVariable<\n Variables extends readonly ClarityAbiVariable[] | readonly unknown[] = readonly ClarityAbiVariable[],\n VariableName extends string = string,\n>(\n params: InferReadVariableParameterType<Variables, VariableName> &\n ReadVariableRuntimeParameterType,\n): Promise<InferVariableType<Variables, VariableName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const varDef = (params.abi as readonly ClarityAbiVariable[]).find(\n (def) => def.name === params.variableName,\n );\n if (!varDef) {\n throw new Error(`failed to find variable definition for ${params.variableName}`);\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'variable',\n contractAddress: deployer,\n contractName: contractName,\n variableName: params.variableName,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(varDef.type, result);\n resolve(decoded as InferVariableType<Variables, VariableName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}"],"names":["DEFAULT_STXER_API","convertResults","rs","results","_iterator","_createForOfIteratorHelperLoose","_step","done","v","value","push","deserializeCV","Ok","Error","Err","batchRead","_x","_x2","_batchRead","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","ibh","index_block_hash","undefined","startsWith","substring","payload","vars","maps","readonly","tip","variables","_iterator2","_step2","variable","serializeCV","contract","variableName","_iterator3","_step3","map","mapName","mapKey","_iterator4","_step4","ro","functionName","concat","functionArgs","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","headers","data","sent","text","includes","parse","abrupt","stop","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_x3","_x4","_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","length","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","r","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","_callee2","account","_callee2$","_context2","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","BatchProcessor","_options$stxerAPIEndp","queues","timeoutIds","stxerAPIEndpoint","batchDelayMs","getQueueKey","read","request","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","has","timeoutId","setTimeout","processBatch","_processBatch","_this$queues$get2","currentQueue","readonlyRequests","mapRequests","variableRequests","batchRequest","_step$value","index","result","_step2$value","_index","_result","_step3$value","_index2","_result2","item","clearTimeout","filter","q","mode","entries","t0","defaultProcessor","callReadonly","_callReadonly","_params$batchProcesso","processor","_params$contract$spli","fn","functionDef","argsKV","args","argDef","batchProcessor","String","abi","find","def","name","encodeAbi","indexBlockHash","decoded","decodeAbi","outputs","error","readMap","_readMap","_params$batchProcesso2","_params$contract$spli2","mapDef","m","ClarityType","OptionalNone","OptionalSome","someCV","readVariable","_readVariable","_params$batchProcesso3","_params$contract$spli3","varDef"],"mappings":"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"}
1
+ {"version":3,"file":"stxer.esm.js","sources":["../src/BatchAPI.ts","../src/simulation.ts","../src/BatchProcessor.ts","../src/clarity-api.ts"],"sourcesContent":["/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n serializeCV,\n} from '@stacks/transactions';\n\nexport interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n readonly?: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport interface BatchReadsResult {\n tip: string;\n vars: (ClarityValue | Error)[];\n maps: (ClarityValue | Error)[];\n readonly: (ClarityValue | Error)[];\n}\n\nexport interface BatchApiOptions {\n stxerApi?: string;\n}\n\nconst DEFAULT_STXER_API = 'https://api.stxer.xyz';\n\nfunction convertResults(\n rs: ({ Ok: string } | { Err: string })[],\n): (ClarityValue | Error)[] {\n const results: (ClarityValue | Error)[] = [];\n for (const v of rs) {\n if ('Ok' in v) {\n results.push(deserializeCV(v.Ok));\n } else {\n results.push(new Error(v.Err));\n }\n }\n return results;\n}\n\nexport async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n): Promise<BatchReadsResult> {\n const ibh =\n reads.index_block_hash == null\n ? undefined\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n\n const payload: {\n tip?: string;\n vars: string[][];\n maps: string[][];\n readonly: string[][];\n } = { vars: [], maps: [], readonly: [], tip: ibh };\n\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.vars.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.maps.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n\n if (reads.readonly != null) {\n for (const ro of reads.readonly) {\n payload.readonly.push([\n serializeCV(ro.contract),\n ro.functionName,\n ...ro.functionArgs.map(v => serializeCV(v)),\n ]);\n }\n }\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\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\n const rs = JSON.parse(text) as {\n tip: string;\n vars: ({ Ok: string } | { Err: string })[];\n maps: ({ Ok: string } | { Err: string })[];\n readonly: ({ Ok: string } | { Err: string })[];\n };\n\n return {\n tip: rs.tip,\n vars: convertResults(rs.vars),\n maps: convertResults(rs.maps),\n readonly: convertResults(rs.readonly),\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.network = options.network ?? 'mainnet';\n const isTestnet = this.network === 'testnet';\n \n this.apiEndpoint = options.apiEndpoint ?? \n (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');\n this.stacksNodeAPI = options.stacksNodeAPI ?? \n (isTestnet ? 'https://api.testnet.hiro.so' : 'https://api.hiro.so');\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","/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type OptionalCV,\n contractPrincipalCV,\n} from '@stacks/transactions';\nimport { type BatchReads, batchRead } from './BatchAPI';\n\nexport interface ReadOnlyRequest {\n mode: 'readonly';\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: ClarityValue[];\n}\n\nexport interface MapEntryRequest {\n mode: 'mapEntry';\n contractAddress: string;\n contractName: string;\n mapName: string;\n mapKey: ClarityValue;\n}\n\nexport interface VariableRequest {\n mode: 'variable';\n contractAddress: string;\n contractName: string;\n variableName: string;\n}\n\nexport type BatchRequest = MapEntryRequest | VariableRequest | ReadOnlyRequest;\n\nexport interface QueuedRequest {\n request: BatchRequest;\n tip?: string;\n resolve: (value: ClarityValue | OptionalCV) => void;\n reject: (error: Error) => void;\n}\n\nexport class BatchProcessor {\n private queues = new Map<string, QueuedRequest[]>();\n private timeoutIds = new Map<string, ReturnType<typeof setTimeout>>();\n\n private readonly stxerAPIEndpoint: string;\n private readonly batchDelayMs: number;\n\n constructor(options: { stxerAPIEndpoint?: string; batchDelayMs: number }) {\n this.stxerAPIEndpoint = options.stxerAPIEndpoint ?? 'https://api.stxer.xyz';\n this.batchDelayMs = options.batchDelayMs;\n }\n\n private getQueueKey(tip?: string): string {\n return tip ?? '_undefined';\n }\n\n read(request: BatchRequest): Promise<ClarityValue | OptionalCV> {\n return new Promise((resolve, reject) => {\n this.enqueue({ request, resolve, reject });\n });\n }\n\n enqueue(request: QueuedRequest): void {\n const queueKey = this.getQueueKey(request.tip);\n\n const queue = this.queues.get(queueKey) ?? [];\n if (!this.queues.has(queueKey)) {\n this.queues.set(queueKey, queue);\n }\n queue.push(request);\n\n if (!this.timeoutIds.has(queueKey)) {\n const timeoutId = setTimeout(\n () => this.processBatch(queueKey),\n this.batchDelayMs,\n );\n this.timeoutIds.set(queueKey, timeoutId);\n }\n }\n\n private async processBatch(queueKey: string): Promise<void> {\n const currentQueue = this.queues.get(queueKey) ?? [];\n this.queues.delete(queueKey);\n\n const timeoutId = this.timeoutIds.get(queueKey);\n if (timeoutId) {\n clearTimeout(timeoutId);\n this.timeoutIds.delete(queueKey);\n }\n\n if (currentQueue.length === 0) return;\n\n try {\n const readonlyRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: ReadOnlyRequest } =>\n q.request.mode === 'readonly',\n );\n const mapRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: MapEntryRequest } =>\n q.request.mode === 'mapEntry',\n );\n const variableRequests = currentQueue.filter(\n (q): q is QueuedRequest & { request: VariableRequest } =>\n q.request.mode === 'variable',\n );\n\n const tip = queueKey === '_undefined' ? undefined : queueKey;\n\n const batchRequest: BatchReads = {\n readonly: readonlyRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n functionName: request.functionName,\n functionArgs: request.functionArgs,\n })),\n maps: mapRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n mapName: request.mapName,\n mapKey: request.mapKey,\n })),\n variables: variableRequests.map(({ request }) => ({\n contract: contractPrincipalCV(\n request.contractAddress,\n request.contractName,\n ),\n variableName: request.variableName,\n })),\n index_block_hash: tip,\n };\n\n const results = await batchRead(batchRequest, {\n stxerApi: this.stxerAPIEndpoint,\n });\n\n // Handle readonly results\n for (const [index, result] of results.readonly.entries()) {\n if (result instanceof Error) {\n readonlyRequests[index].reject(result);\n } else {\n readonlyRequests[index].resolve(result);\n }\n }\n\n // Handle variable results\n for (const [index, result] of results.vars.entries()) {\n if (result instanceof Error) {\n variableRequests[index].reject(result);\n } else {\n variableRequests[index].resolve(result);\n }\n }\n\n // Handle map results\n for (const [index, result] of results.maps.entries()) {\n if (result instanceof Error) {\n mapRequests[index].reject(result);\n } else {\n mapRequests[index].resolve(result);\n }\n }\n } catch (error) {\n for (const item of currentQueue) {\n item.reject(error as Error);\n }\n }\n }\n} ","import {\n ClarityType,\n type ClarityValue,\n type OptionalCV,\n} from '@stacks/transactions';\nimport type {\n ClarityAbiFunction,\n ClarityAbiMap,\n ClarityAbiVariable,\n TContractPrincipal,\n TPrincipal,\n} from 'clarity-abi';\nimport { decodeAbi, encodeAbi } from 'ts-clarity';\nimport type {\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferMapValueType,\n InferReadMapParameterType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { BatchProcessor } from './BatchProcessor';\n\n// Shared processor instance with default settings\nconst defaultProcessor = new BatchProcessor({\n batchDelayMs: 100,\n});\n\nexport type ReadonlyCallRuntimeOptions = {\n sender?: TPrincipal;\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadMapRuntimeParameters = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport type ReadVariableRuntimeParameterType = {\n contract: TContractPrincipal;\n stacksEndpoint?: string;\n proof?: boolean;\n indexBlockHash?: string;\n batchProcessor?: BatchProcessor;\n};\n\nexport async function callReadonly<\n Functions extends readonly ClarityAbiFunction[] | readonly unknown[],\n FunctionName extends string,\n>(\n params: InferReadonlyCallParameterType<Functions, FunctionName> &\n ReadonlyCallRuntimeOptions,\n): Promise<InferReadonlyCallResultType<Functions, FunctionName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n const fn = String(params.functionName);\n \n const functionDef = (params.abi as readonly ClarityAbiFunction[]).find(\n (def) => def.name === params.functionName,\n );\n if (!functionDef) {\n throw new Error(`failed to find function definition for ${params.functionName}`);\n }\n \n const argsKV = (params as unknown as { args: Record<string, unknown> }).args;\n const args: ClarityValue[] = [];\n for (const argDef of functionDef.args) {\n args.push(encodeAbi(argDef.type, argsKV[argDef.name]));\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'readonly',\n contractAddress: deployer,\n contractName: contractName,\n functionName: fn,\n functionArgs: args,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(functionDef.outputs.type, result);\n resolve(decoded as InferReadonlyCallResultType<Functions, FunctionName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends readonly ClarityAbiMap[] | readonly unknown[] = readonly ClarityAbiMap[],\n MapName extends string = string,\n>(\n params: InferReadMapParameterType<Maps, MapName> & ReadMapRuntimeParameters,\n): Promise<InferMapValueType<Maps, MapName> | null> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const mapDef = (params.abi as readonly ClarityAbiMap[]).find(\n (m) => m.name === params.mapName,\n );\n if (!mapDef) {\n throw new Error(`failed to find map definition for ${params.mapName}`);\n }\n \n const key: ClarityValue = encodeAbi(mapDef.key, params.key);\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'mapEntry',\n contractAddress: deployer,\n contractName: contractName,\n mapName: params.mapName,\n mapKey: key,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n if (result.type === ClarityType.OptionalNone) {\n resolve(null);\n return;\n }\n if (result.type !== ClarityType.OptionalSome) {\n throw new Error(`unexpected map value: ${result}`);\n }\n const someCV = result as { type: ClarityType.OptionalSome; value: ClarityValue };\n const decoded = decodeAbi(mapDef.value, someCV.value);\n resolve(decoded as InferMapValueType<Maps, MapName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readVariable<\n Variables extends readonly ClarityAbiVariable[] | readonly unknown[] = readonly ClarityAbiVariable[],\n VariableName extends string = string,\n>(\n params: InferReadVariableParameterType<Variables, VariableName> &\n ReadVariableRuntimeParameterType,\n): Promise<InferVariableType<Variables, VariableName>> {\n const processor = params.batchProcessor ?? defaultProcessor;\n const [deployer, contractName] = params.contract.split('.', 2);\n \n const varDef = (params.abi as readonly ClarityAbiVariable[]).find(\n (def) => def.name === params.variableName,\n );\n if (!varDef) {\n throw new Error(`failed to find variable definition for ${params.variableName}`);\n }\n\n return new Promise((resolve, reject) => {\n processor.enqueue({\n request: {\n mode: 'variable',\n contractAddress: deployer,\n contractName: contractName,\n variableName: params.variableName,\n },\n tip: params.indexBlockHash,\n resolve: (result: ClarityValue | OptionalCV) => {\n try {\n const decoded = decodeAbi(varDef.type, result);\n resolve(decoded as InferVariableType<Variables, VariableName>);\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}"],"names":["DEFAULT_STXER_API","convertResults","rs","results","_iterator","_createForOfIteratorHelperLoose","_step","done","v","value","push","deserializeCV","Ok","Error","Err","batchRead","_x","_x2","_batchRead","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","ibh","index_block_hash","undefined","startsWith","substring","payload","vars","maps","readonly","tip","variables","_iterator2","_step2","variable","serializeCV","contract","variableName","_iterator3","_step3","map","mapName","mapKey","_iterator4","_step4","ro","functionName","concat","functionArgs","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","headers","data","sent","text","includes","parse","abrupt","stop","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_x3","_x4","_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","length","reduce","acc","curr","set","then","_ref3","_callee4","response","_callee4$","_context4","_x6","id","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","stacksNodeAPI","network","block","NaN","sender","steps","isTestnet","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","r","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","_callee2","account","_callee2$","_context2","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","BatchProcessor","_options$stxerAPIEndp","queues","timeoutIds","stxerAPIEndpoint","batchDelayMs","getQueueKey","read","request","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","has","timeoutId","setTimeout","processBatch","_processBatch","_this$queues$get2","currentQueue","readonlyRequests","mapRequests","variableRequests","batchRequest","_step$value","index","result","_step2$value","_index","_result","_step3$value","_index2","_result2","item","clearTimeout","filter","q","mode","entries","t0","defaultProcessor","callReadonly","_callReadonly","_params$batchProcesso","processor","_params$contract$spli","fn","functionDef","argsKV","args","argDef","batchProcessor","String","abi","find","def","name","encodeAbi","indexBlockHash","decoded","decodeAbi","outputs","error","readMap","_readMap","_params$batchProcesso2","_params$contract$spli2","mapDef","m","ClarityType","OptionalNone","OptionalSome","someCV","readVariable","_readVariable","_params$batchProcesso3","_params$contract$spli3","varDef"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stxer",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "license": "MIT",
5
5
  "author": "Kyle Fang",
6
6
  "repository": {
package/src/simulation.ts CHANGED
@@ -126,9 +126,13 @@ export class SimulationBuilder {
126
126
  private network: StacksNetworkName | string;
127
127
 
128
128
  private constructor(options: SimulationBuilderOptions = {}) {
129
- this.apiEndpoint = options.apiEndpoint ?? 'https://api.stxer.xyz';
130
- this.stacksNodeAPI = options.stacksNodeAPI ?? 'https://api.hiro.so';
131
129
  this.network = options.network ?? 'mainnet';
130
+ const isTestnet = this.network === 'testnet';
131
+
132
+ this.apiEndpoint = options.apiEndpoint ??
133
+ (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');
134
+ this.stacksNodeAPI = options.stacksNodeAPI ??
135
+ (isTestnet ? 'https://api.testnet.hiro.so' : 'https://api.hiro.so');
132
136
  }
133
137
 
134
138
  public static new(options?: SimulationBuilderOptions) {