stxer 0.4.3 → 0.4.5

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.
@@ -794,7 +794,7 @@ var SimulationBuilder = /*#__PURE__*/function () {
794
794
  this.steps.push(_extends({}, params, {
795
795
  deployer: (_params$deployer = params.deployer) != null ? _params$deployer : this.sender,
796
796
  fee: (_params$fee3 = params.fee) != null ? _params$fee3 : 0,
797
- clarity_version: (_params$clarity_versi = params.clarity_version) != null ? _params$clarity_versi : transactions.ClarityVersion.Clarity3
797
+ clarity_version: (_params$clarity_versi = params.clarity_version) != null ? _params$clarity_versi : transactions.ClarityVersion.Clarity4
798
798
  }));
799
799
  return this;
800
800
  };
@@ -1035,7 +1035,8 @@ var SimulationBuilder = /*#__PURE__*/function () {
1035
1035
  network: network$1,
1036
1036
  publicKey: '',
1037
1037
  postConditionMode: transactions.PostConditionMode.Allow,
1038
- fee: step.fee
1038
+ fee: step.fee,
1039
+ clarityVersion: step.clarity_version
1039
1040
  });
1040
1041
  case 10:
1041
1042
  _tx2 = _context4.v;
@@ -1 +1 @@
1
- {"version":3,"file":"stxer.cjs.development.js","sources":["../src/BatchAPI.ts","../src/BatchProcessor.ts","../src/clarity-api.ts","../src/simulation.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([\n serializeCV(variable.contract),\n variable.variableName,\n ]);\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}\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 contractPrincipalCV,\n type OptionalCV,\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}\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 type {\n InferMapValueType,\n InferReadMapParameterType,\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { decodeAbi, encodeAbi } 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(\n `failed to find function definition for ${params.functionName}`,\n );\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(\n decoded as InferReadonlyCallResultType<Functions, FunctionName>,\n );\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends\n | readonly ClarityAbiMap[]\n | 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 {\n type: ClarityType.OptionalSome;\n value: ClarityValue;\n };\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\n | readonly ClarityAbiVariable[]\n | 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(\n `failed to find variable definition for ${params.variableName}`,\n );\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","import {\n AddressVersion,\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n AddressHashMode,\n bufferCV,\n type ClarityValue,\n ClarityVersion,\n contractPrincipalCV,\n deserializeTransaction,\n type MultiSigSpendingCondition,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n PostConditionMode,\n type StacksTransactionWire,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\nimport { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\n\nfunction setSender(tx: StacksTransactionWire, sender: string) {\n const [addressVersion, signer] = c32addressDecode(sender);\n switch (addressVersion) {\n case AddressVersion.MainnetSingleSig:\n case AddressVersion.TestnetSingleSig:\n tx.auth.spendingCondition.hashMode = AddressHashMode.P2PKH;\n tx.auth.spendingCondition.signer = signer;\n break;\n case AddressVersion.MainnetMultiSig:\n case AddressVersion.TestnetMultiSig: {\n const sc = tx.auth.spendingCondition;\n tx.auth.spendingCondition = {\n hashMode: AddressHashMode.P2SH,\n signer,\n fields: [],\n signaturesRequired: 0,\n nonce: sc.nonce,\n fee: sc.fee,\n } as MultiSigSpendingCondition;\n break;\n }\n }\n return tx;\n}\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 =\n options.apiEndpoint ??\n (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');\n this.stacksNodeAPI =\n 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: ignore this\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 = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json(),\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n 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: {\n steps: ({ tx: string } | { code: string; contract: string })[];\n } = await fetch(\n `https://api.stxer.xyz/simulations/${step.simulationId}/request`,\n ).then(async (rs) => {\n const body = await rs.text();\n if (!body.startsWith('{')) {\n throw new Error(\n `failed to get simulation ${step.simulationId}: ${body}`,\n );\n }\n return JSON.parse(body) as {\n steps: ({ tx: string } | { code: string; contract: string })[];\n };\n });\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 setSender(tx, step.sender);\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 setSender(tx, step.sender);\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 setSender(tx, step.deployer);\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\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(\n transform: (builder: SimulationBuilder) => SimulationBuilder,\n ): SimulationBuilder {\n return transform(this);\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","_regenerator","m","_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","n","fetch","method","body","JSON","stringify","headers","data","text","includes","parse","a","BatchProcessor","_options$stxerAPIEndp","queues","Map","timeoutIds","stxerAPIEndpoint","batchDelayMs","_proto","prototype","getQueueKey","read","request","_this","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","get","has","set","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","_t","w","p","clearTimeout","length","filter","q","mode","_ref","contractPrincipalCV","contractAddress","contractName","_ref2","_ref3","entries","defaultProcessor","callReadonly","_callReadonly","params","_params$batchProcesso","processor","_params$contract$spli","deployer","fn","functionDef","argsKV","args","argDef","batchProcessor","split","String","abi","find","def","name","encodeAbi","type","indexBlockHash","decoded","decodeAbi","outputs","error","readMap","_readMap","_callee2","_params$batchProcesso2","_params$contract$spli2","mapDef","key","_context2","ClarityType","OptionalNone","OptionalSome","someCV","readVariable","_x3","_readVariable","_callee3","_params$batchProcesso3","_params$contract$spli3","varDef","_context3","setSender","tx","sender","_c32addressDecode","c32addressDecode","addressVersion","signer","AddressVersion","MainnetSingleSig","TestnetSingleSig","auth","spendingCondition","hashMode","AddressHashMode","P2PKH","MainnetMultiSig","TestnetMultiSig","sc","P2SH","fields","signaturesRequired","nonce","fee","runTx","tupleCV","uintCV","bufferCV","serializeBytes","runEval","contract_id","code","_contract_id$split","contract_address","contract_name","serializeCVBytes","stringAsciiCV","runSimulation","_x4","_runSimulation","_callee6","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","offset","_context7","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","then","_ref4","_callee5","response","_context6","_x7","id","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","stacksNodeAPI","network","block","NaN","steps","isTestnet","new","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","_params$sender","_params$fee","_extends","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","addVarRead","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","isNaN","getNodeInfo","stacksEndpoint","richFetch","r","json","height","hash","run","_run","_callee4","nonce_by_address","nextNonce","_loop","_context5","console","log","account","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","step","previousSimulation","_step$function_args","_step$contract_id$spl","_nonce","_tx","_nonce2","_tx2","_context4","_x6","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","d","_regeneratorValues","pipe","transform"],"mappings":"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"}
1
+ {"version":3,"file":"stxer.cjs.development.js","sources":["../src/BatchAPI.ts","../src/BatchProcessor.ts","../src/clarity-api.ts","../src/simulation.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([\n serializeCV(variable.contract),\n variable.variableName,\n ]);\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}\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 contractPrincipalCV,\n type OptionalCV,\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}\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 type {\n InferMapValueType,\n InferReadMapParameterType,\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { decodeAbi, encodeAbi } 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(\n `failed to find function definition for ${params.functionName}`,\n );\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(\n decoded as InferReadonlyCallResultType<Functions, FunctionName>,\n );\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends\n | readonly ClarityAbiMap[]\n | 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 {\n type: ClarityType.OptionalSome;\n value: ClarityValue;\n };\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\n | readonly ClarityAbiVariable[]\n | 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(\n `failed to find variable definition for ${params.variableName}`,\n );\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","import {\n AddressVersion,\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n AddressHashMode,\n bufferCV,\n type ClarityValue,\n ClarityVersion,\n contractPrincipalCV,\n deserializeTransaction,\n type MultiSigSpendingCondition,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n PostConditionMode,\n type StacksTransactionWire,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\nimport { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\n\nfunction setSender(tx: StacksTransactionWire, sender: string) {\n const [addressVersion, signer] = c32addressDecode(sender);\n switch (addressVersion) {\n case AddressVersion.MainnetSingleSig:\n case AddressVersion.TestnetSingleSig:\n tx.auth.spendingCondition.hashMode = AddressHashMode.P2PKH;\n tx.auth.spendingCondition.signer = signer;\n break;\n case AddressVersion.MainnetMultiSig:\n case AddressVersion.TestnetMultiSig: {\n const sc = tx.auth.spendingCondition;\n tx.auth.spendingCondition = {\n hashMode: AddressHashMode.P2SH,\n signer,\n fields: [],\n signaturesRequired: 0,\n nonce: sc.nonce,\n fee: sc.fee,\n } as MultiSigSpendingCondition;\n break;\n }\n }\n return tx;\n}\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 =\n options.apiEndpoint ??\n (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');\n this.stacksNodeAPI =\n 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: ignore this\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.Clarity4,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`,\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`,\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`,\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`,\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json(),\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n 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: {\n steps: ({ tx: string } | { code: string; contract: string })[];\n } = await fetch(\n `https://api.stxer.xyz/simulations/${step.simulationId}/request`,\n ).then(async (rs) => {\n const body = await rs.text();\n if (!body.startsWith('{')) {\n throw new Error(\n `failed to get simulation ${step.simulationId}: ${body}`,\n );\n }\n return JSON.parse(body) as {\n steps: ({ tx: string } | { code: string; contract: string })[];\n };\n });\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 setSender(tx, step.sender);\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 setSender(tx, step.sender);\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 clarityVersion: step.clarity_version\n });\n setSender(tx, step.deployer);\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\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(\n transform: (builder: SimulationBuilder) => SimulationBuilder,\n ): SimulationBuilder {\n return transform(this);\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","_regenerator","m","_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","n","fetch","method","body","JSON","stringify","headers","data","text","includes","parse","a","BatchProcessor","_options$stxerAPIEndp","queues","Map","timeoutIds","stxerAPIEndpoint","batchDelayMs","_proto","prototype","getQueueKey","read","request","_this","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","get","has","set","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","_t","w","p","clearTimeout","length","filter","q","mode","_ref","contractPrincipalCV","contractAddress","contractName","_ref2","_ref3","entries","defaultProcessor","callReadonly","_callReadonly","params","_params$batchProcesso","processor","_params$contract$spli","deployer","fn","functionDef","argsKV","args","argDef","batchProcessor","split","String","abi","find","def","name","encodeAbi","type","indexBlockHash","decoded","decodeAbi","outputs","error","readMap","_readMap","_callee2","_params$batchProcesso2","_params$contract$spli2","mapDef","key","_context2","ClarityType","OptionalNone","OptionalSome","someCV","readVariable","_x3","_readVariable","_callee3","_params$batchProcesso3","_params$contract$spli3","varDef","_context3","setSender","tx","sender","_c32addressDecode","c32addressDecode","addressVersion","signer","AddressVersion","MainnetSingleSig","TestnetSingleSig","auth","spendingCondition","hashMode","AddressHashMode","P2PKH","MainnetMultiSig","TestnetMultiSig","sc","P2SH","fields","signaturesRequired","nonce","fee","runTx","tupleCV","uintCV","bufferCV","serializeBytes","runEval","contract_id","code","_contract_id$split","contract_address","contract_name","serializeCVBytes","stringAsciiCV","runSimulation","_x4","_runSimulation","_callee6","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","offset","_context7","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","then","_ref4","_callee5","response","_context6","_x7","id","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","stacksNodeAPI","network","block","NaN","steps","isTestnet","new","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","_params$sender","_params$fee","_extends","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","clarity_version","ClarityVersion","Clarity4","addEvalCode","inside_contract_id","addMapRead","addVarRead","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","isNaN","getNodeInfo","stacksEndpoint","richFetch","r","json","height","hash","run","_run","_callee4","nonce_by_address","nextNonce","_loop","_context5","console","log","account","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","step","previousSimulation","_step$function_args","_step$contract_id$spl","_nonce","_tx","_nonce2","_tx2","_context4","_x6","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","clarityVersion","d","_regeneratorValues","pipe","transform"],"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"),n=require("@stacks/network"),r=require("c32check");function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function a(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function s(e){o(a,r,i,s,c,"next",e)}function c(e){o(a,r,i,s,c,"throw",e)}s(void 0)})}}function s(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}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 n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(null,arguments)}function u(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",i=n.toStringTag||"@@toStringTag";function o(n,r,i,o){var c=Object.create((r&&r.prototype instanceof s?r:s).prototype);return l(c,"_invoke",function(n,r,i){var o,s,c,u=0,l=i||[],d=!1,f={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,n){return o=t,s=0,c=e,f.n=n,a}};function h(n,r){for(s=n,c=r,t=0;!d&&u&&!i&&t<l.length;t++){var i,o=l[t],h=f.p,p=o[2];n>3?(i=p===r)&&(c=o[(s=o[4])?5:(s=3,3)],o[4]=o[5]=e):o[0]<=h&&((i=n<2&&h<o[1])?(s=0,f.v=r,f.n=o[1]):h<p&&(i=n<3||o[0]>r||r>p)&&(o[4]=n,o[5]=r,f.n=p,s=0))}if(i||n>1)return a;throw d=!0,r}return function(i,l,p){if(u>1)throw TypeError("Generator is already running");for(d&&1===l&&h(l,p),s=l,c=p;(t=s<2?e:c)||!d;){o||(s?s<3?(s>1&&(f.n=-1),h(s,c)):f.n=c:f.v=c);try{if(u=2,o){if(s||(i="next"),t=o[i]){if(!(t=t.call(o,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=o.return)&&t.call(o),s<2&&(c=TypeError("The iterator does not provide a '"+i+"' method"),s=1);o=e}else if((t=(d=f.n<0)?c:n.call(r,f))!==a)break}catch(t){o=e,s=1,c=t}finally{u=1}}return{value:t,done:d}}}(n,i,o),!0),c}var a={};function s(){}function c(){}function d(){}t=Object.getPrototypeOf;var f=[][r]?t(t([][r]())):(l(t={},r,function(){return this}),t),h=d.prototype=s.prototype=Object.create(f);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,l(e,i,"GeneratorFunction")),e.prototype=Object.create(h),e}return c.prototype=d,l(h,"constructor",d),l(d,"constructor",c),c.displayName="GeneratorFunction",l(d,i,"GeneratorFunction"),l(h),l(h,i,"Generator"),l(h,r,function(){return this}),l(h,"toString",function(){return"[object Generator]"}),(u=function(){return{w:o,m:p}})()}function l(e,t,n,r){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}l=function(e,t,n,r){function o(t,n){l(e,t,function(e){return this._invoke(t,n,e)})}t?i?i(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},l(e,t,n,r)}function d(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(typeof e+" is not iterable")}function f(t){for(var n,r=[],i=s(t);!(n=i()).done;){var o=n.value;r.push("Ok"in o?e.deserializeCV(o.Ok):new Error(o.Err))}return r}function h(e,t){return p.apply(this,arguments)}function p(){return(p=a(u().m(function t(n,r){var i,o,a,c,l,d,h,p,v,m,y,b,w,g,k,x;return u().w(function(t){for(;;)switch(t.n){case 0:if(void 0===r&&(r={}),o=null==n.index_block_hash?void 0:n.index_block_hash.startsWith("0x")?n.index_block_hash.substring(2):n.index_block_hash,a={vars:[],maps:[],readonly:[],tip:o},null!=n.variables)for(c=s(n.variables);!(l=c()).done;)a.vars.push([e.serializeCV((d=l.value).contract),d.variableName]);if(null!=n.maps)for(h=s(n.maps);!(p=h()).done;)a.maps.push([e.serializeCV((v=p.value).contract),v.mapName,e.serializeCV(v.mapKey)]);if(null!=n.readonly)for(m=s(n.readonly);!(y=m()).done;)a.readonly.push([e.serializeCV((b=y.value).contract),b.functionName].concat(b.functionArgs.map(function(t){return e.serializeCV(t)})));return w=(null!=(i=r.stxerApi)?i:"https://api.stxer.xyz")+"/sidecar/v2/batch",t.n=1,fetch(w,{method:"POST",body:JSON.stringify(a),headers:{"Content-Type":"application/json"}});case 1:return g=t.v,t.n=2,g.text();case 2:if((k=t.v).includes("Ok")||k.includes("Err")){t.n=3;break}throw new Error("Requesting batch reads failed: "+k+", url: "+w+", payload: "+JSON.stringify(a));case 3:return x=JSON.parse(k),t.a(2,{tip:x.tip,vars:f(x.vars),maps:f(x.maps),readonly:f(x.readonly)})}},t)}))).apply(this,arguments)}var v=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 n=t.prototype;return n.getQueueKey=function(e){return null!=e?e:"_undefined"},n.read=function(e){var t=this;return new Promise(function(n,r){t.enqueue({request:e,resolve:n,reject:r})})},n.enqueue=function(e){var t,n=this,r=this.getQueueKey(e.tip),i=null!=(t=this.queues.get(r))?t:[];if(this.queues.has(r)||this.queues.set(r,i),i.push(e),!this.timeoutIds.has(r)){var o=setTimeout(function(){return n.processBatch(r)},this.batchDelayMs);this.timeoutIds.set(r,o)}},n.processBatch=function(){var t=a(u().m(function t(n){var r,i,o,a,c,l,d,f,p,v,m,y,b,w,g,k,x,N,A,_,S,C,P,E,T,I,q;return u().w(function(t){for(;;)switch(t.p=t.n){case 0:if(i=null!=(r=this.queues.get(n))?r:[],this.queues.delete(n),(o=this.timeoutIds.get(n))&&(clearTimeout(o),this.timeoutIds.delete(n)),0!==i.length){t.n=1;break}return t.a(2);case 1:return t.p=1,a=i.filter(function(e){return"readonly"===e.request.mode}),c=i.filter(function(e){return"mapEntry"===e.request.mode}),l=i.filter(function(e){return"variable"===e.request.mode}),d="_undefined"===n?void 0:n,f={readonly:a.map(function(t){var n=t.request;return{contract:e.contractPrincipalCV(n.contractAddress,n.contractName),functionName:n.functionName,functionArgs:n.functionArgs}}),maps:c.map(function(t){var n=t.request;return{contract:e.contractPrincipalCV(n.contractAddress,n.contractName),mapName:n.mapName,mapKey:n.mapKey}}),variables:l.map(function(t){var n=t.request;return{contract:e.contractPrincipalCV(n.contractAddress,n.contractName),variableName:n.variableName}}),index_block_hash:d},t.n=2,h(f,{stxerApi:this.stxerAPIEndpoint});case 2:for(v=s((p=t.v).readonly.entries());!(m=v()).done;)b=(y=m.value)[0],(w=y[1])instanceof Error?a[b].reject(w):a[b].resolve(w);for(g=s(p.vars.entries());!(k=g()).done;)N=(x=k.value)[0],(A=x[1])instanceof Error?l[N].reject(A):l[N].resolve(A);for(_=s(p.maps.entries());!(S=_()).done;)P=(C=S.value)[0],(E=C[1])instanceof Error?c[P].reject(E):c[P].resolve(E);t.n=4;break;case 3:for(t.p=3,q=t.v,T=s(i);!(I=T()).done;)I.value.reject(q);case 4:return t.a(2)}},t,this,[[1,3]])}));return function(e){return t.apply(this,arguments)}}(),t}())({batchDelayMs:100});function m(){return(m=a(u().m(function e(n){var r,i,o,a,c,l,d,f,h,p,m,y;return u().w(function(e){for(;;)switch(e.n){case 0:if(i=null!=(r=n.batchProcessor)?r:v,o=n.contract.split(".",2),a=o[0],c=o[1],l=String(n.functionName),d=n.abi.find(function(e){return e.name===n.functionName})){e.n=1;break}throw new Error("failed to find function definition for "+n.functionName);case 1:for(f=n.args,h=[],p=s(d.args);!(m=p()).done;)h.push(t.encodeAbi((y=m.value).type,f[y.name]));return e.a(2,new Promise(function(e,r){i.enqueue({request:{mode:"readonly",contractAddress:a,contractName:c,functionName:l,functionArgs:h},tip:n.indexBlockHash,resolve:function(n){try{var i=t.decodeAbi(d.outputs.type,n);e(i)}catch(e){r(e)}},reject:r})}))}},e)}))).apply(this,arguments)}function y(){return(y=a(u().m(function n(r){var i,o,a,s,c,l,d;return u().w(function(n){for(;;)switch(n.n){case 0:if(o=null!=(i=r.batchProcessor)?i:v,a=r.contract.split(".",2),s=a[0],c=a[1],l=r.abi.find(function(e){return e.name===r.mapName})){n.n=1;break}throw new Error("failed to find map definition for "+r.mapName);case 1:return d=t.encodeAbi(l.key,r.key),n.a(2,new Promise(function(n,i){o.enqueue({request:{mode:"mapEntry",contractAddress:s,contractName:c,mapName:r.mapName,mapKey:d},tip:r.indexBlockHash,resolve:function(r){try{if(r.type===e.ClarityType.OptionalNone)return void n(null);if(r.type!==e.ClarityType.OptionalSome)throw new Error("unexpected map value: "+r);var o=t.decodeAbi(l.value,r.value);n(o)}catch(e){i(e)}},reject:i})}))}},n)}))).apply(this,arguments)}function b(){return(b=a(u().m(function e(n){var r,i,o,a,s,c;return u().w(function(e){for(;;)switch(e.n){case 0:if(i=null!=(r=n.batchProcessor)?r:v,o=n.contract.split(".",2),a=o[0],s=o[1],c=n.abi.find(function(e){return e.name===n.variableName})){e.n=1;break}throw new Error("failed to find variable definition for "+n.variableName);case 1:return e.a(2,new Promise(function(e,r){i.enqueue({request:{mode:"variable",contractAddress:a,contractName:s,variableName:n.variableName},tip:n.indexBlockHash,resolve:function(n){try{var i=t.decodeAbi(c.type,n);e(i)}catch(e){r(e)}},reject:r})}))}},e)}))).apply(this,arguments)}function w(t,i){var o=r.c32addressDecode(i),a=o[1];switch(o[0]){case n.AddressVersion.MainnetSingleSig:case n.AddressVersion.TestnetSingleSig:t.auth.spendingCondition.hashMode=e.AddressHashMode.P2PKH,t.auth.spendingCondition.signer=a;break;case n.AddressVersion.MainnetMultiSig:case n.AddressVersion.TestnetMultiSig:var s=t.auth.spendingCondition;t.auth.spendingCondition={hashMode:e.AddressHashMode.P2SH,signer:a,fields:[],signaturesRequired:0,nonce:s.nonce,fee:s.fee}}return t}function g(t){return e.tupleCV({type:e.uintCV(0),data:e.bufferCV(t.serializeBytes())})}function k(t){var n=t.code,r=t.contract_id.split("."),i=r[0],o=r[1];return e.tupleCV({type:e.uintCV(1),data:e.bufferCV(e.serializeCVBytes(e.tupleCV({contract:e.contractPrincipalCV(i,o),code:e.stringAsciiCV(n)})))})}function x(e,t,n,r){return N.apply(this,arguments)}function N(){return N=a(u().m(function t(n,r,i,o){var c,l,d,f,h,p,v,m,y,b,w,x;return u().w(function(t){for(;;)switch(t.n){case 0:if(c=(new TextEncoder).encode("sim-v1"),l=new Uint8Array(8),new DataView(l.buffer).setBigUint64(0,BigInt(i),!1),d=r.startsWith("0x")?r.substring(2):r,f=d.match(/.{1,2}/g)){t.n=1;break}throw new Error("Invalid block hash format");case 1:for(h=new Uint8Array(f.map(function(e){return Number.parseInt(e,16)})),p=o.map(function(e){return"contract_id"in e&&"code"in e?k(e):g(e)}).map(function(t){return e.serializeCVBytes(t)}),v=c.length+l.length+h.length+p.reduce(function(e,t){return e+t.length},0),(m=new Uint8Array(v)).set(c,y=0),m.set(l,y+=c.length),m.set(h,y+=l.length),y+=h.length,b=s(p);!(w=b()).done;)m.set(x=w.value,y),y+=x.length;return t.n=2,fetch(n,{method:"POST",body:m}).then(function(){var e=a(u().m(function e(t){var n;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t.text();case 1:if((n=e.v).startsWith("{")){e.n=2;break}throw new Error("failed to submit simulation: "+n);case 2:return e.a(2,JSON.parse(n))}},e)}));return function(t){return e.apply(this,arguments)}}());case 2:return t.a(2,t.v.id)}},t)})),N.apply(this,arguments)}exports.SimulationBuilder=function(){function r(e){var t,n,r;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 i="testnet"===this.network;this.apiEndpoint=null!=(n=e.apiEndpoint)?n:i?"https://testnet-api.stxer.xyz":"https://api.stxer.xyz",this.stacksNodeAPI=null!=(r=e.stacksNodeAPI)?r:i?"https://api.testnet.hiro.so":"https://api.hiro.so"}r.new=function(e){return new r(e)};var i=r.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,n;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!=(n=e.fee)?n:0})),this},i.addContractCall=function(e){var t,n;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!=(n=e.fee)?n:0})),this},i.addContractDeploy=function(t){var n,r,i;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!=(n=t.deployer)?n:this.sender,fee:null!=(r=t.fee)?r:0,clarity_version:null!=(i=t.clarity_version)?i:e.ClarityVersion.Clarity3})),this},i.addEvalCode=function(e,t){return this.steps.push({contract_id:e,code:t}),this},i.addMapRead=function(e,t,n){return this.steps.push({contract_id:e,code:"(map-get "+t+" "+n+")"}),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().m(function e(){var n;return u().w(function(e){for(;;)switch(e.n){case 0:if(!Number.isNaN(this.block)){e.n=2;break}return e.n=1,t.getNodeInfo({stacksEndpoint:this.stacksNodeAPI});case 1:this.block=e.v.stacks_tip_height;case 2:return e.n=3,t.richFetch(this.stacksNodeAPI+"/extended/v1/block/by_height/"+this.block+"?unanchored=true").then(function(e){return e.json()});case 3:if((n=e.v).height===this.block&&"string"==typeof n.hash&&n.hash.startsWith("0x")){e.n=4;break}throw new Error("failed to get block info for block height "+this.block);case 4:return e.a(2,{block_height:this.block,block_hash:n.hash.substring(2),index_block_hash:n.index_block_hash.substring(2)})}},e,this)}));return function(){return e.apply(this,arguments)}}(),i.run=function(){var r=a(u().m(function r(){var i,o,l,f,h,p,v,m,y,b=this;return u().w(function(r){for(;;)switch(r.n){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--------------------------------"),r.n=1,this.getBlockInfo();case 1:i=r.v,console.log("Using block height "+i.block_height+" hash 0x"+i.block_hash+" to run simulation."),o=[],l=new Map,f=function(){var e=a(u().m(function e(n){var r,o,a;return u().w(function(e){for(;;)switch(e.n){case 0:if(null!=(r=l.get(n))){e.n=2;break}return o=b.stacksNodeAPI+"/v2/accounts/"+n+"?proof="+!1+"&tip="+i.index_block_hash,e.n=1,t.richFetch(o).then(function(e){return e.json()});case 1:return l.set(n,(a=e.v).nonce+1),e.a(2,a.nonce);case 2:return l.set(n,r+1),e.a(2,r)}},e)}));return function(t){return e.apply(this,arguments)}}(),h="mainnet"===this.network?n.STACKS_MAINNET:n.STACKS_TESTNET,this.stacksNodeAPI&&(h=c({},h,{client:c({},h.client,{baseUrl:this.stacksNodeAPI})})),p=u().m(function t(){var n,r,i,c,l,d,p,v,y,b,g,k,x,N;return u().w(function(t){for(;;)switch(t.n){case 0:if(!("simulationId"in(n=m.value))){t.n=2;break}return t.n=1,fetch("https://api.stxer.xyz/simulations/"+n.simulationId+"/request").then(function(){var e=a(u().m(function e(t){var r;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t.text();case 1:if((r=e.v).startsWith("{")){e.n=2;break}throw new Error("failed to get simulation "+n.simulationId+": "+r);case 2:return e.a(2,JSON.parse(r))}},e)}));return function(t){return e.apply(this,arguments)}}());case 1:for(r=s(t.v.steps);!(i=r()).done;)"tx"in(c=i.value)?o.push(e.deserializeTransaction(c.tx)):"code"in c&&"contract"in c&&o.push({contract_id:c.contract,code:c.code});t.n=12;break;case 2:if(!("sender"in n)||!("function_name"in n)){t.n=5;break}return t.n=3,f(n.sender);case 3:return d=t.v,p=n.contract_id.split("."),v=p[0],y=p[1],t.n=4,e.makeUnsignedContractCall({contractAddress:v,contractName:y,functionName:n.function_name,functionArgs:null!=(l=n.function_args)?l:[],nonce:d,network:h,publicKey:"",postConditionMode:e.PostConditionMode.Allow,fee:n.fee});case 4:w(b=t.v,n.sender),o.push(b),t.n=12;break;case 5:if(!("sender"in n)||!("recipient"in n)){t.n=8;break}return t.n=6,f(n.sender);case 6:return g=t.v,t.n=7,e.makeUnsignedSTXTokenTransfer({recipient:n.recipient,amount:n.amount,nonce:g,network:h,publicKey:"",fee:n.fee});case 7:w(k=t.v,n.sender),o.push(k),t.n=12;break;case 8:if(!("deployer"in n)){t.n=11;break}return t.n=9,f(n.deployer);case 9:return x=t.v,t.n=10,e.makeUnsignedContractDeploy({contractName:n.contract_name,codeBody:n.source_code,nonce:x,network:h,publicKey:"",postConditionMode:e.PostConditionMode.Allow,fee:n.fee});case 10:w(N=t.v,n.deployer),o.push(N),t.n=12;break;case 11:"code"in n?o.push(n):console.log("Invalid simulation step: "+n);case 12:return t.a(2)}},t)}),v=s(this.steps);case 2:if((m=v()).done){r.n=4;break}return r.d(d(p()),3);case 3:r.n=2;break;case 4:return r.n=5,x(this.apiEndpoint+"/simulations",i.block_hash,i.block_height,o);case 5:return y=r.v,console.log("Simulation will be available at: https://stxer.xyz/simulations/"+this.network+"/"+y),r.a(2,y)}},r,this)}));return function(){return r.apply(this,arguments)}}(),i.pipe=function(e){return e(this)},r}(),exports.batchRead=h,exports.callReadonly=function(e){return m.apply(this,arguments)},exports.readMap=function(e){return y.apply(this,arguments)},exports.readVariable=function(e){return b.apply(this,arguments)},exports.runEval=k,exports.runSimulation=x;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@stacks/transactions"),t=require("ts-clarity"),n=require("@stacks/network"),r=require("c32check");function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function a(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function s(e){o(a,r,i,s,c,"next",e)}function c(e){o(a,r,i,s,c,"throw",e)}s(void 0)})}}function s(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}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 n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(null,arguments)}function u(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",i=n.toStringTag||"@@toStringTag";function o(n,r,i,o){var c=Object.create((r&&r.prototype instanceof s?r:s).prototype);return l(c,"_invoke",function(n,r,i){var o,s,c,u=0,l=i||[],d=!1,f={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,n){return o=t,s=0,c=e,f.n=n,a}};function h(n,r){for(s=n,c=r,t=0;!d&&u&&!i&&t<l.length;t++){var i,o=l[t],h=f.p,p=o[2];n>3?(i=p===r)&&(c=o[(s=o[4])?5:(s=3,3)],o[4]=o[5]=e):o[0]<=h&&((i=n<2&&h<o[1])?(s=0,f.v=r,f.n=o[1]):h<p&&(i=n<3||o[0]>r||r>p)&&(o[4]=n,o[5]=r,f.n=p,s=0))}if(i||n>1)return a;throw d=!0,r}return function(i,l,p){if(u>1)throw TypeError("Generator is already running");for(d&&1===l&&h(l,p),s=l,c=p;(t=s<2?e:c)||!d;){o||(s?s<3?(s>1&&(f.n=-1),h(s,c)):f.n=c:f.v=c);try{if(u=2,o){if(s||(i="next"),t=o[i]){if(!(t=t.call(o,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=o.return)&&t.call(o),s<2&&(c=TypeError("The iterator does not provide a '"+i+"' method"),s=1);o=e}else if((t=(d=f.n<0)?c:n.call(r,f))!==a)break}catch(t){o=e,s=1,c=t}finally{u=1}}return{value:t,done:d}}}(n,i,o),!0),c}var a={};function s(){}function c(){}function d(){}t=Object.getPrototypeOf;var f=[][r]?t(t([][r]())):(l(t={},r,function(){return this}),t),h=d.prototype=s.prototype=Object.create(f);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,l(e,i,"GeneratorFunction")),e.prototype=Object.create(h),e}return c.prototype=d,l(h,"constructor",d),l(d,"constructor",c),c.displayName="GeneratorFunction",l(d,i,"GeneratorFunction"),l(h),l(h,i,"Generator"),l(h,r,function(){return this}),l(h,"toString",function(){return"[object Generator]"}),(u=function(){return{w:o,m:p}})()}function l(e,t,n,r){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}l=function(e,t,n,r){function o(t,n){l(e,t,function(e){return this._invoke(t,n,e)})}t?i?i(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},l(e,t,n,r)}function d(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(typeof e+" is not iterable")}function f(t){for(var n,r=[],i=s(t);!(n=i()).done;){var o=n.value;r.push("Ok"in o?e.deserializeCV(o.Ok):new Error(o.Err))}return r}function h(e,t){return p.apply(this,arguments)}function p(){return(p=a(u().m(function t(n,r){var i,o,a,c,l,d,h,p,v,m,y,b,w,g,k,x;return u().w(function(t){for(;;)switch(t.n){case 0:if(void 0===r&&(r={}),o=null==n.index_block_hash?void 0:n.index_block_hash.startsWith("0x")?n.index_block_hash.substring(2):n.index_block_hash,a={vars:[],maps:[],readonly:[],tip:o},null!=n.variables)for(c=s(n.variables);!(l=c()).done;)a.vars.push([e.serializeCV((d=l.value).contract),d.variableName]);if(null!=n.maps)for(h=s(n.maps);!(p=h()).done;)a.maps.push([e.serializeCV((v=p.value).contract),v.mapName,e.serializeCV(v.mapKey)]);if(null!=n.readonly)for(m=s(n.readonly);!(y=m()).done;)a.readonly.push([e.serializeCV((b=y.value).contract),b.functionName].concat(b.functionArgs.map(function(t){return e.serializeCV(t)})));return w=(null!=(i=r.stxerApi)?i:"https://api.stxer.xyz")+"/sidecar/v2/batch",t.n=1,fetch(w,{method:"POST",body:JSON.stringify(a),headers:{"Content-Type":"application/json"}});case 1:return g=t.v,t.n=2,g.text();case 2:if((k=t.v).includes("Ok")||k.includes("Err")){t.n=3;break}throw new Error("Requesting batch reads failed: "+k+", url: "+w+", payload: "+JSON.stringify(a));case 3:return x=JSON.parse(k),t.a(2,{tip:x.tip,vars:f(x.vars),maps:f(x.maps),readonly:f(x.readonly)})}},t)}))).apply(this,arguments)}var v=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 n=t.prototype;return n.getQueueKey=function(e){return null!=e?e:"_undefined"},n.read=function(e){var t=this;return new Promise(function(n,r){t.enqueue({request:e,resolve:n,reject:r})})},n.enqueue=function(e){var t,n=this,r=this.getQueueKey(e.tip),i=null!=(t=this.queues.get(r))?t:[];if(this.queues.has(r)||this.queues.set(r,i),i.push(e),!this.timeoutIds.has(r)){var o=setTimeout(function(){return n.processBatch(r)},this.batchDelayMs);this.timeoutIds.set(r,o)}},n.processBatch=function(){var t=a(u().m(function t(n){var r,i,o,a,c,l,d,f,p,v,m,y,b,w,g,k,x,N,A,_,S,C,P,E,T,I,q;return u().w(function(t){for(;;)switch(t.p=t.n){case 0:if(i=null!=(r=this.queues.get(n))?r:[],this.queues.delete(n),(o=this.timeoutIds.get(n))&&(clearTimeout(o),this.timeoutIds.delete(n)),0!==i.length){t.n=1;break}return t.a(2);case 1:return t.p=1,a=i.filter(function(e){return"readonly"===e.request.mode}),c=i.filter(function(e){return"mapEntry"===e.request.mode}),l=i.filter(function(e){return"variable"===e.request.mode}),d="_undefined"===n?void 0:n,f={readonly:a.map(function(t){var n=t.request;return{contract:e.contractPrincipalCV(n.contractAddress,n.contractName),functionName:n.functionName,functionArgs:n.functionArgs}}),maps:c.map(function(t){var n=t.request;return{contract:e.contractPrincipalCV(n.contractAddress,n.contractName),mapName:n.mapName,mapKey:n.mapKey}}),variables:l.map(function(t){var n=t.request;return{contract:e.contractPrincipalCV(n.contractAddress,n.contractName),variableName:n.variableName}}),index_block_hash:d},t.n=2,h(f,{stxerApi:this.stxerAPIEndpoint});case 2:for(v=s((p=t.v).readonly.entries());!(m=v()).done;)b=(y=m.value)[0],(w=y[1])instanceof Error?a[b].reject(w):a[b].resolve(w);for(g=s(p.vars.entries());!(k=g()).done;)N=(x=k.value)[0],(A=x[1])instanceof Error?l[N].reject(A):l[N].resolve(A);for(_=s(p.maps.entries());!(S=_()).done;)P=(C=S.value)[0],(E=C[1])instanceof Error?c[P].reject(E):c[P].resolve(E);t.n=4;break;case 3:for(t.p=3,q=t.v,T=s(i);!(I=T()).done;)I.value.reject(q);case 4:return t.a(2)}},t,this,[[1,3]])}));return function(e){return t.apply(this,arguments)}}(),t}())({batchDelayMs:100});function m(){return(m=a(u().m(function e(n){var r,i,o,a,c,l,d,f,h,p,m,y;return u().w(function(e){for(;;)switch(e.n){case 0:if(i=null!=(r=n.batchProcessor)?r:v,o=n.contract.split(".",2),a=o[0],c=o[1],l=String(n.functionName),d=n.abi.find(function(e){return e.name===n.functionName})){e.n=1;break}throw new Error("failed to find function definition for "+n.functionName);case 1:for(f=n.args,h=[],p=s(d.args);!(m=p()).done;)h.push(t.encodeAbi((y=m.value).type,f[y.name]));return e.a(2,new Promise(function(e,r){i.enqueue({request:{mode:"readonly",contractAddress:a,contractName:c,functionName:l,functionArgs:h},tip:n.indexBlockHash,resolve:function(n){try{var i=t.decodeAbi(d.outputs.type,n);e(i)}catch(e){r(e)}},reject:r})}))}},e)}))).apply(this,arguments)}function y(){return(y=a(u().m(function n(r){var i,o,a,s,c,l,d;return u().w(function(n){for(;;)switch(n.n){case 0:if(o=null!=(i=r.batchProcessor)?i:v,a=r.contract.split(".",2),s=a[0],c=a[1],l=r.abi.find(function(e){return e.name===r.mapName})){n.n=1;break}throw new Error("failed to find map definition for "+r.mapName);case 1:return d=t.encodeAbi(l.key,r.key),n.a(2,new Promise(function(n,i){o.enqueue({request:{mode:"mapEntry",contractAddress:s,contractName:c,mapName:r.mapName,mapKey:d},tip:r.indexBlockHash,resolve:function(r){try{if(r.type===e.ClarityType.OptionalNone)return void n(null);if(r.type!==e.ClarityType.OptionalSome)throw new Error("unexpected map value: "+r);var o=t.decodeAbi(l.value,r.value);n(o)}catch(e){i(e)}},reject:i})}))}},n)}))).apply(this,arguments)}function b(){return(b=a(u().m(function e(n){var r,i,o,a,s,c;return u().w(function(e){for(;;)switch(e.n){case 0:if(i=null!=(r=n.batchProcessor)?r:v,o=n.contract.split(".",2),a=o[0],s=o[1],c=n.abi.find(function(e){return e.name===n.variableName})){e.n=1;break}throw new Error("failed to find variable definition for "+n.variableName);case 1:return e.a(2,new Promise(function(e,r){i.enqueue({request:{mode:"variable",contractAddress:a,contractName:s,variableName:n.variableName},tip:n.indexBlockHash,resolve:function(n){try{var i=t.decodeAbi(c.type,n);e(i)}catch(e){r(e)}},reject:r})}))}},e)}))).apply(this,arguments)}function w(t,i){var o=r.c32addressDecode(i),a=o[1];switch(o[0]){case n.AddressVersion.MainnetSingleSig:case n.AddressVersion.TestnetSingleSig:t.auth.spendingCondition.hashMode=e.AddressHashMode.P2PKH,t.auth.spendingCondition.signer=a;break;case n.AddressVersion.MainnetMultiSig:case n.AddressVersion.TestnetMultiSig:var s=t.auth.spendingCondition;t.auth.spendingCondition={hashMode:e.AddressHashMode.P2SH,signer:a,fields:[],signaturesRequired:0,nonce:s.nonce,fee:s.fee}}return t}function g(t){return e.tupleCV({type:e.uintCV(0),data:e.bufferCV(t.serializeBytes())})}function k(t){var n=t.code,r=t.contract_id.split("."),i=r[0],o=r[1];return e.tupleCV({type:e.uintCV(1),data:e.bufferCV(e.serializeCVBytes(e.tupleCV({contract:e.contractPrincipalCV(i,o),code:e.stringAsciiCV(n)})))})}function x(e,t,n,r){return N.apply(this,arguments)}function N(){return N=a(u().m(function t(n,r,i,o){var c,l,d,f,h,p,v,m,y,b,w,x;return u().w(function(t){for(;;)switch(t.n){case 0:if(c=(new TextEncoder).encode("sim-v1"),l=new Uint8Array(8),new DataView(l.buffer).setBigUint64(0,BigInt(i),!1),d=r.startsWith("0x")?r.substring(2):r,f=d.match(/.{1,2}/g)){t.n=1;break}throw new Error("Invalid block hash format");case 1:for(h=new Uint8Array(f.map(function(e){return Number.parseInt(e,16)})),p=o.map(function(e){return"contract_id"in e&&"code"in e?k(e):g(e)}).map(function(t){return e.serializeCVBytes(t)}),v=c.length+l.length+h.length+p.reduce(function(e,t){return e+t.length},0),(m=new Uint8Array(v)).set(c,y=0),m.set(l,y+=c.length),m.set(h,y+=l.length),y+=h.length,b=s(p);!(w=b()).done;)m.set(x=w.value,y),y+=x.length;return t.n=2,fetch(n,{method:"POST",body:m}).then(function(){var e=a(u().m(function e(t){var n;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t.text();case 1:if((n=e.v).startsWith("{")){e.n=2;break}throw new Error("failed to submit simulation: "+n);case 2:return e.a(2,JSON.parse(n))}},e)}));return function(t){return e.apply(this,arguments)}}());case 2:return t.a(2,t.v.id)}},t)})),N.apply(this,arguments)}exports.SimulationBuilder=function(){function r(e){var t,n,r;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 i="testnet"===this.network;this.apiEndpoint=null!=(n=e.apiEndpoint)?n:i?"https://testnet-api.stxer.xyz":"https://api.stxer.xyz",this.stacksNodeAPI=null!=(r=e.stacksNodeAPI)?r:i?"https://api.testnet.hiro.so":"https://api.hiro.so"}r.new=function(e){return new r(e)};var i=r.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,n;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!=(n=e.fee)?n:0})),this},i.addContractCall=function(e){var t,n;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!=(n=e.fee)?n:0})),this},i.addContractDeploy=function(t){var n,r,i;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!=(n=t.deployer)?n:this.sender,fee:null!=(r=t.fee)?r:0,clarity_version:null!=(i=t.clarity_version)?i:e.ClarityVersion.Clarity4})),this},i.addEvalCode=function(e,t){return this.steps.push({contract_id:e,code:t}),this},i.addMapRead=function(e,t,n){return this.steps.push({contract_id:e,code:"(map-get "+t+" "+n+")"}),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().m(function e(){var n;return u().w(function(e){for(;;)switch(e.n){case 0:if(!Number.isNaN(this.block)){e.n=2;break}return e.n=1,t.getNodeInfo({stacksEndpoint:this.stacksNodeAPI});case 1:this.block=e.v.stacks_tip_height;case 2:return e.n=3,t.richFetch(this.stacksNodeAPI+"/extended/v1/block/by_height/"+this.block+"?unanchored=true").then(function(e){return e.json()});case 3:if((n=e.v).height===this.block&&"string"==typeof n.hash&&n.hash.startsWith("0x")){e.n=4;break}throw new Error("failed to get block info for block height "+this.block);case 4:return e.a(2,{block_height:this.block,block_hash:n.hash.substring(2),index_block_hash:n.index_block_hash.substring(2)})}},e,this)}));return function(){return e.apply(this,arguments)}}(),i.run=function(){var r=a(u().m(function r(){var i,o,l,f,h,p,v,m,y,b=this;return u().w(function(r){for(;;)switch(r.n){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--------------------------------"),r.n=1,this.getBlockInfo();case 1:i=r.v,console.log("Using block height "+i.block_height+" hash 0x"+i.block_hash+" to run simulation."),o=[],l=new Map,f=function(){var e=a(u().m(function e(n){var r,o,a;return u().w(function(e){for(;;)switch(e.n){case 0:if(null!=(r=l.get(n))){e.n=2;break}return o=b.stacksNodeAPI+"/v2/accounts/"+n+"?proof="+!1+"&tip="+i.index_block_hash,e.n=1,t.richFetch(o).then(function(e){return e.json()});case 1:return l.set(n,(a=e.v).nonce+1),e.a(2,a.nonce);case 2:return l.set(n,r+1),e.a(2,r)}},e)}));return function(t){return e.apply(this,arguments)}}(),h="mainnet"===this.network?n.STACKS_MAINNET:n.STACKS_TESTNET,this.stacksNodeAPI&&(h=c({},h,{client:c({},h.client,{baseUrl:this.stacksNodeAPI})})),p=u().m(function t(){var n,r,i,c,l,d,p,v,y,b,g,k,x,N;return u().w(function(t){for(;;)switch(t.n){case 0:if(!("simulationId"in(n=m.value))){t.n=2;break}return t.n=1,fetch("https://api.stxer.xyz/simulations/"+n.simulationId+"/request").then(function(){var e=a(u().m(function e(t){var r;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t.text();case 1:if((r=e.v).startsWith("{")){e.n=2;break}throw new Error("failed to get simulation "+n.simulationId+": "+r);case 2:return e.a(2,JSON.parse(r))}},e)}));return function(t){return e.apply(this,arguments)}}());case 1:for(r=s(t.v.steps);!(i=r()).done;)"tx"in(c=i.value)?o.push(e.deserializeTransaction(c.tx)):"code"in c&&"contract"in c&&o.push({contract_id:c.contract,code:c.code});t.n=12;break;case 2:if(!("sender"in n)||!("function_name"in n)){t.n=5;break}return t.n=3,f(n.sender);case 3:return d=t.v,p=n.contract_id.split("."),v=p[0],y=p[1],t.n=4,e.makeUnsignedContractCall({contractAddress:v,contractName:y,functionName:n.function_name,functionArgs:null!=(l=n.function_args)?l:[],nonce:d,network:h,publicKey:"",postConditionMode:e.PostConditionMode.Allow,fee:n.fee});case 4:w(b=t.v,n.sender),o.push(b),t.n=12;break;case 5:if(!("sender"in n)||!("recipient"in n)){t.n=8;break}return t.n=6,f(n.sender);case 6:return g=t.v,t.n=7,e.makeUnsignedSTXTokenTransfer({recipient:n.recipient,amount:n.amount,nonce:g,network:h,publicKey:"",fee:n.fee});case 7:w(k=t.v,n.sender),o.push(k),t.n=12;break;case 8:if(!("deployer"in n)){t.n=11;break}return t.n=9,f(n.deployer);case 9:return x=t.v,t.n=10,e.makeUnsignedContractDeploy({contractName:n.contract_name,codeBody:n.source_code,nonce:x,network:h,publicKey:"",postConditionMode:e.PostConditionMode.Allow,fee:n.fee,clarityVersion:n.clarity_version});case 10:w(N=t.v,n.deployer),o.push(N),t.n=12;break;case 11:"code"in n?o.push(n):console.log("Invalid simulation step: "+n);case 12:return t.a(2)}},t)}),v=s(this.steps);case 2:if((m=v()).done){r.n=4;break}return r.d(d(p()),3);case 3:r.n=2;break;case 4:return r.n=5,x(this.apiEndpoint+"/simulations",i.block_hash,i.block_height,o);case 5:return y=r.v,console.log("Simulation will be available at: https://stxer.xyz/simulations/"+this.network+"/"+y),r.a(2,y)}},r,this)}));return function(){return r.apply(this,arguments)}}(),i.pipe=function(e){return e(this)},r}(),exports.batchRead=h,exports.callReadonly=function(e){return m.apply(this,arguments)},exports.readMap=function(e){return y.apply(this,arguments)},exports.readVariable=function(e){return b.apply(this,arguments)},exports.runEval=k,exports.runSimulation=x;
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/BatchProcessor.ts","../src/clarity-api.ts","../src/simulation.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([\n serializeCV(variable.contract),\n variable.variableName,\n ]);\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}\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 contractPrincipalCV,\n type OptionalCV,\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}\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 type {\n InferMapValueType,\n InferReadMapParameterType,\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { decodeAbi, encodeAbi } 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(\n `failed to find function definition for ${params.functionName}`,\n );\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(\n decoded as InferReadonlyCallResultType<Functions, FunctionName>,\n );\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends\n | readonly ClarityAbiMap[]\n | 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 {\n type: ClarityType.OptionalSome;\n value: ClarityValue;\n };\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\n | readonly ClarityAbiVariable[]\n | 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(\n `failed to find variable definition for ${params.variableName}`,\n );\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","import {\n AddressVersion,\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n AddressHashMode,\n bufferCV,\n type ClarityValue,\n ClarityVersion,\n contractPrincipalCV,\n deserializeTransaction,\n type MultiSigSpendingCondition,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n PostConditionMode,\n type StacksTransactionWire,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\nimport { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\n\nfunction setSender(tx: StacksTransactionWire, sender: string) {\n const [addressVersion, signer] = c32addressDecode(sender);\n switch (addressVersion) {\n case AddressVersion.MainnetSingleSig:\n case AddressVersion.TestnetSingleSig:\n tx.auth.spendingCondition.hashMode = AddressHashMode.P2PKH;\n tx.auth.spendingCondition.signer = signer;\n break;\n case AddressVersion.MainnetMultiSig:\n case AddressVersion.TestnetMultiSig: {\n const sc = tx.auth.spendingCondition;\n tx.auth.spendingCondition = {\n hashMode: AddressHashMode.P2SH,\n signer,\n fields: [],\n signaturesRequired: 0,\n nonce: sc.nonce,\n fee: sc.fee,\n } as MultiSigSpendingCondition;\n break;\n }\n }\n return tx;\n}\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 =\n options.apiEndpoint ??\n (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');\n this.stacksNodeAPI =\n 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: ignore this\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 = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json(),\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n 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: {\n steps: ({ tx: string } | { code: string; contract: string })[];\n } = await fetch(\n `https://api.stxer.xyz/simulations/${step.simulationId}/request`,\n ).then(async (rs) => {\n const body = await rs.text();\n if (!body.startsWith('{')) {\n throw new Error(\n `failed to get simulation ${step.simulationId}: ${body}`,\n );\n }\n return JSON.parse(body) as {\n steps: ({ tx: string } | { code: string; contract: string })[];\n };\n });\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 setSender(tx, step.sender);\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 setSender(tx, step.sender);\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 setSender(tx, step.deployer);\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\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(\n transform: (builder: SimulationBuilder) => SimulationBuilder,\n ): SimulationBuilder {\n return transform(this);\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","_regenerator","m","_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","n","fetch","method","body","JSON","stringify","headers","data","text","includes","parse","a","defaultProcessor","BatchProcessor","_options$stxerAPIEndp","queues","Map","timeoutIds","stxerAPIEndpoint","batchDelayMs","_proto","prototype","getQueueKey","read","request","_this","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","get","has","set","timeoutId","setTimeout","processBatch","_processBatch","_this$queues$get2","currentQueue","readonlyRequests","mapRequests","variableRequests","batchRequest","_step$value","index","result","_step2$value","_index","_result","_step3$value","_index2","_result2","_t","w","p","clearTimeout","length","filter","q","mode","_ref","contractPrincipalCV","contractAddress","contractName","_ref2","_ref3","entries","_callReadonly","params","_params$batchProcesso","processor","_params$contract$spli","deployer","fn","functionDef","argsKV","args","argDef","batchProcessor","split","String","abi","find","def","name","encodeAbi","type","indexBlockHash","decoded","decodeAbi","outputs","error","_readMap","_callee2","_params$batchProcesso2","_params$contract$spli2","mapDef","key","_context2","ClarityType","OptionalNone","OptionalSome","_readVariable","_callee3","_params$batchProcesso3","_params$contract$spli3","varDef","_context3","setSender","tx","sender","_c32addressDecode","c32addressDecode","signer","AddressVersion","MainnetSingleSig","TestnetSingleSig","auth","spendingCondition","hashMode","AddressHashMode","P2PKH","MainnetMultiSig","TestnetMultiSig","sc","P2SH","fields","signaturesRequired","nonce","fee","runTx","tupleCV","uintCV","bufferCV","serializeBytes","runEval","code","_contract_id$split","contract_id","contract_address","contract_name","serializeCVBytes","stringAsciiCV","runSimulation","_x3","_x4","_runSimulation","_callee6","apiEndpoint","block_hash","block_height","txs","header","heightBytes","hashHex","matches","hashBytes","txBytes","totalLength","offset","_context7","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","then","_ref4","_callee5","response","_context6","_x7","id","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","stacksNodeAPI","network","block","NaN","steps","isTestnet","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","_params$sender","_params$fee","_extends","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","addVarRead","getBlockInfo","_getBlockInfo","info","isNaN","getNodeInfo","stacksEndpoint","stacks_tip_height","richFetch","r","json","height","hash","run","_run","_callee4","nonce_by_address","nextNonce","_loop","_context5","console","log","account","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","step","_step$function_args","_step$contract_id$spl","_nonce","_tx","_nonce2","_tx2","_context4","_x6","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","d","_regeneratorValues","pipe","transform","callReadonly","readMap","readVariable"],"mappings":"iyHA6CA,SAASA,EACPC,GAGA,IADA,IACkBC,EADZC,EAAoC,GAC1CC,EAAAC,EAAgBJ,KAAEC,EAAAE,KAAAE,MAAE,CAAA,IAATC,EAACL,EAAAM,MAERL,EAAQM,KADN,OAAQF,EACGG,EAAAA,cAAcH,EAAEI,IAEhB,IAAIC,MAAML,EAAEM,KAE7B,CACA,OAAOV,CACT,CAEA,SAAsBW,EAASC,EAAAC,GAAA,OAAAC,EAAAC,MAAAC,KAAAC,UAAA,CA8E9B,SAAAH,IAAA,OAAAA,EAAAI,EAAAC,IAAAC,EA9EM,SAAAC,EACLC,EACAC,0FAgBA,YAhBAA,IAAAA,EAA2B,CAAA,GAErBC,EACsB,MAA1BF,EAAMG,sBACFC,EACAJ,EAAMG,iBAAiBE,WAAW,MAChCL,EAAMG,iBAAiBG,UAAU,GACjCN,EAAMG,iBAERI,EAKF,CAAEC,KAAM,GAAIC,KAAM,GAAIC,SAAU,GAAIC,IAAKT,GAEtB,MAAnBF,EAAMY,UACR,IAAAC,EAAAjC,EAAuBoB,EAAMY,aAASE,EAAAD,KAAAhC,MACpC0B,EAAQC,KAAKxB,KAAK,CAChB+B,EAAWA,aAFJC,EAAQF,EAAA/B,OAEMkC,UACrBD,EAASE,eAKf,GAAkB,MAAdlB,EAAMS,KACR,IAAAU,EAAAvC,EAAkBoB,EAAMS,QAAIW,EAAAD,KAAAtC,MAC1B0B,EAAQE,KAAKzB,KAAK,CAChB+B,EAAWA,aAFJM,EAAGD,EAAArC,OAEMkC,UAChBI,EAAIC,QACJP,EAAWA,YAACM,EAAIE,UAKtB,GAAsB,MAAlBvB,EAAMU,SACR,IAAAc,EAAA5C,EAAiBoB,EAAMU,YAAQe,EAAAD,KAAA3C,MAC7B0B,EAAQG,SAAS1B,KAAI,CACnB+B,EAAAA,aAFOW,EAAED,EAAA1C,OAEMkC,UACfS,EAAGC,cAAYC,OACZF,EAAGG,aAAaR,IAAI,SAACvC,GAAC,OAAKiC,EAAAA,YAAYjC,EAAE,KAKE,OAA9CgD,GAAyB,OAAtBC,EAAM9B,EAAQ+B,UAAQD,EA/DP,yBA+D4B,oBAAAE,EAAAC,EAAA,EACjCC,MAAML,EAAK,CAC5BM,OAAQ,OACRC,KAAMC,KAAKC,UAAUhC,GACrBiC,QAAS,CACP,eAAgB,sBAElB,KAAA,EANQ,OAAJC,EAAIR,EAAAnD,EAAAmD,EAAAC,EAAA,EAQSO,EAAKC,OAAM,KAAA,EAApB,IAAJA,EAAIT,EAAAnD,GACA6D,SAAS,OAAUD,EAAKC,SAAS,OAAM,CAAAV,EAAAC,EAAA,EAAA,KAAA,CAAA,MACzC,IAAI/C,MAC0BuD,kCAAAA,EAAcZ,UAAAA,EAAiBQ,cAAAA,KAAKC,UACpEhC,IAEH,KAAA,EAQF,OALK/B,EAAK8D,KAAKM,MAAMF,GAKrBT,EAAAY,EAEM,EAAA,CACLlC,IAAKnC,EAAGmC,IACRH,KAAMjC,EAAeC,EAAGgC,MACxBC,KAAMlC,EAAeC,EAAGiC,MACxBC,SAAUnC,EAAeC,EAAGkC,YAC7B,EAAAX,EACF,KAAAN,MAAAC,KAAAC,UAAA,CC3FD,ICtBMmD,EAAmB,IDsBE,WAOzB,SAAAC,EAAY9C,GAA4D,IAAA+C,EAAAtD,KANhEuD,OAAS,IAAIC,IAA8BxD,KAC3CyD,WAAa,IAAID,IAA4CxD,KAEpD0D,sBAAgB,EAAA1D,KAChB2D,kBAAY,EAG3B3D,KAAK0D,iBAA2C,OAA3BJ,EAAG/C,EAAQmD,kBAAgBJ,EAAI,wBACpDtD,KAAK2D,aAAepD,EAAQoD,YAC9B,CAAC,IAAAC,EAAAP,EAAAQ,UA8ByB,OA9BzBD,EAEOE,YAAA,SAAY7C,GAClB,OAAU,MAAHA,EAAAA,EAAO,cACf2C,EAEDG,KAAA,SAAKC,GAAqB,IAAAC,EAAAjE,KACxB,OAAO,IAAIkE,QAAQ,SAACC,EAASC,GAC3BH,EAAKI,QAAQ,CAAEL,QAAAA,EAASG,QAAAA,EAASC,OAAAA,GACnC,IACDR,EAEDS,QAAA,SAAQL,GAAsB,IAAAM,EAAAC,EAAAvE,KACtBwE,EAAWxE,KAAK8D,YAAYE,EAAQ/C,KAEpCwD,EAAiCH,OAA5BA,EAAGtE,KAAKuD,OAAOmB,IAAIF,IAASF,EAAI,GAM3C,GALKtE,KAAKuD,OAAOoB,IAAIH,IACnBxE,KAAKuD,OAAOqB,IAAIJ,EAAUC,GAE5BA,EAAMnF,KAAK0E,IAENhE,KAAKyD,WAAWkB,IAAIH,GAAW,CAClC,IAAMK,EAAYC,WAChB,WAAA,OAAMP,EAAKQ,aAAaP,IACxBxE,KAAK2D,cAEP3D,KAAKyD,WAAWmB,IAAIJ,EAAUK,EAChC,GACDjB,EAEamB,aAAY,WAAA,IAAAC,EAAA9E,EAAAC,IAAAC,EAAlB,SAAAC,EAAmBmE,GAAgB,IAAAS,EAAAC,EAAAL,EAAAM,EAAAC,EAAAC,EAAApE,EAAAqE,EAAAtG,EAAAC,EAAAF,EAAAwG,EAAAC,EAAAC,EAAAtE,EAAAC,EAAAsE,EAAAC,EAAAC,EAAAnE,EAAAC,EAAAmE,EAAAC,EAAAC,EAAAjE,EAAAC,EAAAiE,EAAA,OAAA7F,IAAA8F,EAAA,SAAA1D,GAAA,cAAAA,EAAA2D,EAAA3D,EAAAC,GAAA,KAAA,EAQxC,GAPK0C,EAAwCD,OAA5BA,EAAGjF,KAAKuD,OAAOmB,IAAIF,IAASS,EAAI,GAClDjF,KAAKuD,OAAa,OAACiB,IAEbK,EAAY7E,KAAKyD,WAAWiB,IAAIF,MAEpC2B,aAAatB,GACb7E,KAAKyD,WAAiB,OAACe,IAGG,IAAxBU,EAAakB,OAAY,CAAA7D,EAAAC,EAAA,EAAA,KAAA,CAAA,OAAAD,EAAAY,EAAA,GAAA,KAAA,EA2C1B,OA3C0BZ,EAAA2D,EAAA,EAGrBf,EAAmBD,EAAamB,OACpC,SAACC,GAAC,MACmB,aAAnBA,EAAEtC,QAAQuC,OAERnB,EAAcF,EAAamB,OAC/B,SAACC,GAAC,MACmB,aAAnBA,EAAEtC,QAAQuC,OAERlB,EAAmBH,EAAamB,OACpC,SAACC,GAAC,MACmB,aAAnBA,EAAEtC,QAAQuC,OAGRtF,EAAmB,eAAbuD,OAA4B9D,EAAY8D,EAE9Cc,EAA2B,CAC/BtE,SAAUmE,EAAiBxD,IAAI,SAAA6E,GAAA,IAAGxC,EAAOwC,EAAPxC,QAAO,MAAQ,CAC/CzC,SAAUkF,EAAAA,oBACRzC,EAAQ0C,gBACR1C,EAAQ2C,cAEV1E,aAAc+B,EAAQ/B,aACtBE,aAAc6B,EAAQ7B,aACvB,GACDpB,KAAMqE,EAAYzD,IAAI,SAAAiF,GAAA,IAAG5C,EAAO4C,EAAP5C,QAAO,MAAQ,CACtCzC,SAAUkF,EAAAA,oBACRzC,EAAQ0C,gBACR1C,EAAQ2C,cAEV/E,QAASoC,EAAQpC,QACjBC,OAAQmC,EAAQnC,OACjB,GACDX,UAAWmE,EAAiB1D,IAAI,SAAAkF,GAAA,IAAG7C,EAAO6C,EAAP7C,QAAO,MAAQ,CAChDzC,SAAUkF,EAAAA,oBACRzC,EAAQ0C,gBACR1C,EAAQ2C,cAEVnF,aAAcwC,EAAQxC,aACvB,GACDf,iBAAkBQ,GACnBsB,EAAAC,EAAA,EAEqB7C,EAAU2F,EAAc,CAC5ChD,SAAUtC,KAAK0D,mBACf,KAAA,EAGF,IAAAzE,EAAAC,GALMF,EAAOuD,EAAAnD,GAKyB4B,SAAS8F,aAAS/H,EAAAE,KAAAE,MAA5CqG,GAA8CD,EAAAxG,EAAAM,OAAzC,IAAEoG,EAAMF,EAAA,cACD9F,MACpB0F,EAAiBK,GAAOpB,OAAOqB,GAE/BN,EAAiBK,GAAOrB,QAAQsB,GAKpC,IAAAtE,EAAAjC,EAA8BF,EAAQ8B,KAAKgG,aAAS1F,EAAAD,KAAAhC,MAAxCqG,GAA0CE,EAAAtE,EAAA/B,OAArC,IAAEoG,EAAMC,EAAA,cACDjG,MACpB4F,EAAiBG,GAAOpB,OAAOqB,GAE/BJ,EAAiBG,GAAOrB,QAAQsB,GAKpC,IAAAhE,EAAAvC,EAA8BF,EAAQ+B,KAAK+F,aAASpF,EAAAD,KAAAtC,MAAxCqG,GAA0CK,EAAAnE,EAAArC,OAArC,IAAEoG,EAAMI,EAAA,cACDpG,MACpB2F,EAAYI,GAAOpB,OAAOqB,GAE1BL,EAAYI,GAAOrB,QAAQsB,GAE9BlD,EAAAC,EAAA,EAAA,MAAA,KAAA,EAED,IAFCD,EAAA2D,EAAA,EAAAF,EAAAzD,EAAAnD,EAED0C,EAAA5C,EAAmBgG,KAAYnD,EAAAD,KAAA3C,MAAhB4C,EAAA1C,MACR+E,OAAM4B,GACZ,KAAA,EAAA,OAAAzD,EAAAY,EAAA,GAAA,EAAA9C,EAAAL,KAAA,CAAA,CAAA,EAAA,IAEJ,IA1FyB,OA0FzB,SA1FyBJ,GAAA,OAAAoF,EAAAjF,MAAAC,KAAAC,UAAA,CAAA,CAAA,GAAAoD,CAAA,CAxCD,GCtBF,CAAmB,CAC1CM,aAAc,MA4Ef,SAAAoD,IAAA,OAAAA,EAAA7G,EAAAC,IAAAC,EAjDM,SAAAC,EAIL2G,GAC4B,IAAAC,EAAAC,EAAAC,EAAAC,EAAAT,EAAAU,EAAAC,EAAAC,EAAAC,EAAAvI,EAAAF,EAAA0I,EAAA,OAAAtH,IAAA8F,EAAA,SAAA1D,GAAA,cAAAA,EAAAC,GAAA,KAAA,EAQ3B,GANK0E,EAAiC,OAAxBD,EAAGD,EAAOU,gBAAcT,EAAI7D,EAAgB+D,EAC1BH,EAAOzF,SAASoG,MAAM,IAAK,GAArDP,EAAQD,EAAER,GAAAA,EAAYQ,EAAA,GACvBE,EAAKO,OAAOZ,EAAO/E,cAEnBqF,EAAeN,EAAOa,IAAsCC,KAChE,SAACC,GAAG,OAAKA,EAAIC,OAAShB,EAAO/E,eAEf,CAAAM,EAAAC,EAAA,EAAA,KAAA,CAAA,MACR,IAAI/C,MAAK,0CAC6BuH,EAAO/E,cAClD,KAAA,EAKH,IAFMsF,EAAUP,EAAwDQ,KAClEA,EAAuB,GAC7BvI,EAAAC,EAAqBoI,EAAYE,QAAIzI,EAAAE,KAAAE,MACnCqI,EAAKlI,KAAK2I,EAASA,WADVR,EAAM1I,EAAAM,OACY6I,KAAMX,EAAOE,EAAOO,QAChD,OAAAzF,EAAAY,EAEM,EAAA,IAAIe,QAAQ,SAACC,EAASC,GAC3B8C,EAAU7C,QAAQ,CAChBL,QAAS,CACPuC,KAAM,WACNG,gBAAiBU,EACjBT,aAAcA,EACd1E,aAAcoF,EACdlF,aAAcqF,GAEhBvG,IAAK+F,EAAOmB,eACZhE,QAAS,SAACsB,GACR,IACE,IAAM2C,EAAUC,EAAAA,UAAUf,EAAYgB,QAAQJ,KAAMzC,GACpDtB,EACEiE,EAEH,CAAC,MAAOG,GACPnE,EAAOmE,EACT,CACD,EACDnE,OAAAA,GAEH,IAAC,EAAA/D,EACH,KAAAN,MAAAC,KAAAC,UAAA,CAsDA,SAAAuI,IAAA,OAAAA,EAAAtI,EAAAC,IAAAC,EApDM,SAAAqI,EAMLzB,GAA2E,IAAA0B,EAAAxB,EAAAyB,EAAAvB,EAAAT,EAAAiC,EAAAC,EAAA,OAAA1I,IAAA8F,EAAA,SAAA6C,GAAA,cAAAA,EAAAtG,GAAA,KAAA,EAO1E,GALK0E,EAAiC,OAAxBwB,EAAG1B,EAAOU,gBAAcgB,EAAItF,EAAgBuF,EAC1B3B,EAAOzF,SAASoG,MAAM,IAAK,GAArDP,EAAQuB,EAAEhC,GAAAA,EAAYgC,EAAA,GAEvBC,EAAU5B,EAAOa,IAAiCC,KACtD,SAAC1H,GAAC,OAAKA,EAAE4H,OAAShB,EAAOpF,UAEhB,CAAAkH,EAAAtG,EAAA,EAAA,KAAA,CAAA,MACH,IAAI/C,MAAK,qCAAsCuH,EAAOpF,SAAU,KAAA,EAGb,OAArDiH,EAAoBZ,EAASA,UAACW,EAAOC,IAAK7B,EAAO6B,KAAIC,EAAA3F,EAEpD,EAAA,IAAIe,QAAQ,SAACC,EAASC,GAC3B8C,EAAU7C,QAAQ,CAChBL,QAAS,CACPuC,KAAM,WACNG,gBAAiBU,EACjBT,aAAcA,EACd/E,QAASoF,EAAOpF,QAChBC,OAAQgH,GAEV5H,IAAK+F,EAAOmB,eACZhE,QAAS,SAACsB,GACR,IACE,GAAIA,EAAOyC,OAASa,EAAWA,YAACC,aAE9B,YADA7E,EAAQ,MAGV,GAAIsB,EAAOyC,OAASa,EAAWA,YAACE,aAC9B,MAAM,IAAIxJ,MAA+BgG,yBAAAA,GAE3C,IAIM2C,EAAUC,EAAAA,UAAUO,EAAOvJ,MAJlBoG,EAIgCpG,OAC/C8E,EAAQiE,EACT,CAAC,MAAOG,GACPnE,EAAOmE,EACT,CACD,EACDnE,OAAAA,GAEH,IAAC,EAAAqE,EACH,KAAA1I,MAAAC,KAAAC,UAAA,CA2CA,SAAAiJ,IAAA,OAAAA,EAAAhJ,EAAAC,IAAAC,EAzCM,SAAA+I,EAMLnC,GACkC,IAAAoC,EAAAlC,EAAAmC,EAAAjC,EAAAT,EAAA2C,EAAA,OAAAnJ,IAAA8F,EAAA,SAAAsD,GAAA,cAAAA,EAAA/G,GAAA,KAAA,EAOjC,GALK0E,EAAiC,OAAxBkC,EAAGpC,EAAOU,gBAAc0B,EAAIhG,EAAgBiG,EAC1BrC,EAAOzF,SAASoG,MAAM,IAAK,GAArDP,EAAQiC,EAAE1C,GAAAA,EAAY0C,EAAA,GAEvBC,EAAUtC,EAAOa,IAAsCC,KAC3D,SAACC,GAAG,OAAKA,EAAIC,OAAShB,EAAOxF,eAEpB,CAAA+H,EAAA/G,EAAA,EAAA,KAAA,CAAA,MACH,IAAI/C,MAAK,0CAC6BuH,EAAOxF,cAClD,KAAA,EAAA,OAAA+H,EAAApG,EAGI,EAAA,IAAIe,QAAQ,SAACC,EAASC,GAC3B8C,EAAU7C,QAAQ,CAChBL,QAAS,CACPuC,KAAM,WACNG,gBAAiBU,EACjBT,aAAcA,EACdnF,aAAcwF,EAAOxF,cAEvBP,IAAK+F,EAAOmB,eACZhE,QAAS,SAACsB,GACR,IACE,IAAM2C,EAAUC,EAASA,UAACiB,EAAOpB,KAAMzC,GACvCtB,EAAQiE,EACT,CAAC,MAAOG,GACPnE,EAAOmE,EACT,CACD,EACDnE,OAAAA,GAEH,IAAC,EAAA+E,EACH,KAAApJ,MAAAC,KAAAC,UAAA,CC1KD,SAASuJ,EAAUC,EAA2BC,GAC5C,IAAAC,EAAiCC,EAAgBA,iBAACF,GAA3BG,EAAMF,EAAA,GAC7B,OADqBA,EAAA,IAEnB,KAAKG,EAAAA,eAAeC,iBACpB,KAAKD,EAAcA,eAACE,iBAClBP,EAAGQ,KAAKC,kBAAkBC,SAAWC,EAAAA,gBAAgBC,MACrDZ,EAAGQ,KAAKC,kBAAkBL,OAASA,EACnC,MACF,KAAKC,EAAAA,eAAeQ,gBACpB,KAAKR,EAAcA,eAACS,gBAClB,IAAMC,EAAKf,EAAGQ,KAAKC,kBACnBT,EAAGQ,KAAKC,kBAAoB,CAC1BC,SAAUC,EAAeA,gBAACK,KAC1BZ,OAAAA,EACAa,OAAQ,GACRC,mBAAoB,EACpBC,MAAOJ,EAAGI,MACVC,IAAKL,EAAGK,KAKd,OAAOpB,CACT,CAEA,SAASqB,EAAMrB,GAEb,OAAOsB,UAAQ,CAAE7C,KAAM8C,EAAMA,OAAC,GAAIjI,KAAMkI,EAAQA,SAACxB,EAAGyB,mBACtD,UAOgBC,EAAO3E,GAAsC,IAAtB4E,EAAI5E,EAAJ4E,KACrCC,EADmC7E,EAAX8E,YAC8B3D,MAAM,KAArD4D,EAAgBF,EAAA,GAAEG,EAAaH,EAAA,GAEtC,OAAON,UAAQ,CACb7C,KAAM8C,EAAMA,OAAC,GACbjI,KAAMkI,EAAAA,SACJQ,EAAgBA,iBACdV,UAAQ,CACNxJ,SAAUkF,EAAAA,oBAAoB8E,EAAkBC,GAChDJ,KAAMM,EAAaA,cAACN,QAK9B,CAEsBO,SAAAA,EAAa/L,EAAAC,EAAA+L,EAAAC,GAAA,OAAAC,EAAA/L,MAAAC,KAAAC,UAAA,CA+DlC,SAAA6L,IAAA,OAAAA,EAAA5L,EAAAC,IAAAC,EA/DM,SAAA2L,EACLC,EACAC,EACAC,EACAC,GAA+C,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA/J,EAAAgK,EAAAlL,EAAAM,EAAA0H,EAAA,OAAAtJ,IAAA8F,EAAA,SAAA2G,GAAA,cAAAA,EAAApK,GAAA,KAAA,EAeP,GAZlC4J,GAAS,IAAIS,aAAcC,OAAO,UAElCT,EAAc,IAAIU,WAAW,GAEtB,IAAIC,SAASX,EAAYY,QACjCC,aAAa,EAAGC,OAAOjB,IAAe,GAGrCI,EAAUL,EAAWtL,WAAW,MAClCsL,EAAWrL,UAAU,GACrBqL,EAEEM,EAAUD,EAAQc,MAAM,WAClB,CAAAR,EAAApK,EAAA,EAAA,KAAA,CAAA,MACJ,IAAI/C,MAAM,6BAA4B,KAAA,EA0B9C,IAxBM+M,EAAY,IAAIO,WACpBR,EAAQ5K,IAAI,SAAC0L,GAAI,OAAKC,OAAOC,SAASF,EAAM,GAAG,IAI3CZ,EAAUN,EACbxK,IAAI,SAAC6L,GAAC,MAAM,gBAAiBA,GAAK,SAAUA,EAAIrC,EAAQqC,GAAK1C,EAAM0C,EAAE,GACrE7L,IAAI,SAAC6L,GAAC,OAAK/B,EAAAA,iBAAiB+B,EAAE,GAG3Bd,EACJN,EAAOhG,OACPiG,EAAYjG,OACZoG,EAAUpG,OACVqG,EAAQgB,OAAO,SAACC,EAAKC,GAAI,OAAKD,EAAMC,EAAKvH,MAAM,EAAE,IAC7CzD,EAAO,IAAIoK,WAAWL,IAGvB9H,IAAIwH,EADLO,EAAS,GAGbhK,EAAKiC,IAAIyH,EADTM,GAAUP,EAAOhG,QAGjBzD,EAAKiC,IAAI4H,EADTG,GAAUN,EAAYjG,QAEtBuG,GAAUH,EAAUpG,OACpB3E,EAAAvC,EAAiBuN,KAAO1K,EAAAN,KAAAtC,MACtBwD,EAAKiC,IADI6E,EAAE1H,EAAA1C,MACEsN,GACbA,GAAUlD,EAAGrD,OACd,OAAAwG,EAAApK,EAAA,EAEgBC,MAAMuJ,EAAa,CAClCtJ,OAAQ,OACRC,KAAAA,IACCiL,KAAI,WAAA,IAAAC,EAAA3N,EAAAC,IAAAC,EAAC,SAAA0N,EAAOhP,GAAE,IAAAiP,EAAA,OAAA5N,IAAA8F,EAAA,SAAA+H,GAAA,cAAAA,EAAAxL,GAAA,KAAA,EAAA,OAAAwL,EAAAxL,EAAA,EACQ1D,EAAGkE,OAAM,KAAA,EAAlB,IAAR+K,EAAQC,EAAA5O,GACAuB,WAAW,KAAI,CAAAqN,EAAAxL,EAAA,EAAA,KAAA,CAAA,MACrB,IAAI/C,MAAsCsO,gCAAAA,GAAW,KAAA,EAAA,OAAAC,EAAA7K,EAAA,EAEtDP,KAAKM,MAAM6K,IAA2B,EAAAD,EAC9C,IAAA,OAAA,SAAAG,GAAA,OAAAJ,EAAA9N,MAAAC,KAAAC,UAAA,CAAC,CANK,IAML,KAAA,EATM,OAAA2M,EAAAzJ,EAUDrE,EAVC8N,EAAAxN,EAUE8O,IAAE,EAAAnC,EACb,IAAAD,EAAA/L,MAAAC,KAAAC,UAAA,2BAQ6B,WAK5B,SAAAkO,EAAoB5N,GAAsC,IAAA6N,EAAAC,EAAAC,WAAtC/N,IAAAA,EAAoC,CAAA,GAAEP,KAJlDgM,iBAAW,EAAAhM,KACXuO,mBAAa,EAAAvO,KACbwO,aAAO,EAkBfxO,KACQyO,MAAQC,IAAG1O,KACX0J,OAAS,GAAE1J,KACX2O,MA6BF,GA/CJ3O,KAAKwO,QAAyB,OAAlBJ,EAAG7N,EAAQiO,SAAOJ,EAAI,UAClC,IAAMQ,EAA6B,YAAjB5O,KAAKwO,QAEvBxO,KAAKgM,YACgB,OADLqC,EACd9N,EAAQyL,aAAWqC,EAClBO,EAAY,gCAAkC,wBACjD5O,KAAKuO,cACkB,OADLD,EAChB/N,EAAQgO,eAAaD,EACpBM,EAAY,8BAAgC,qBACjD,CAACT,EAEM,IAAA,SAAW5N,GAChB,OAAO,IAAI4N,EAAkB5N,IAC9B,IAAAqD,EAAAuK,EAAAtK,UAgSA,OAhSAD,EAoCMiL,eAAA,SAAeJ,GAEpB,OADAzO,KAAKyO,MAAQA,EACNzO,MACR4D,EACMkL,WAAA,SAAWC,GAEhB,OADA/O,KAAK0J,OAASqF,EACP/O,MACR4D,EACMoL,iBAAA,SAAiBC,GAItB,OAHAjP,KAAK2O,MAAMrP,KAAK,CACd2P,aAAAA,IAEKjP,MACR4D,EACMsL,eAAA,SAAelI,GAKrB,IAAAmI,EAAAC,EACC,GAAqB,MAAjBpI,EAAO0C,QAAkC,KAAhB1J,KAAK0J,OAChC,MAAM,IAAIjK,MACR,wEAQJ,OALAO,KAAK2O,MAAMrP,KAAI+P,KACVrI,EAAM,CACT0C,OAAqB,OAAfyF,EAAEnI,EAAO0C,QAAMyF,EAAInP,KAAK0J,OAC9BmB,IAAe,OAAZuE,EAAEpI,EAAO6D,KAAGuE,EAAI,KAEdpP,MACR4D,EACM0L,gBAAA,SAAgBtI,GAMtB,IAAAuI,EAAAC,EACC,GAAqB,MAAjBxI,EAAO0C,QAAkC,KAAhB1J,KAAK0J,OAChC,MAAM,IAAIjK,MACR,wEAQJ,OALAO,KAAK2O,MAAMrP,KAAI+P,KACVrI,EAAM,CACT0C,OAAqB,OAAf6F,EAAEvI,EAAO0C,QAAM6F,EAAIvP,KAAK0J,OAC9BmB,IAAe,OAAZ2E,EAAExI,EAAO6D,KAAG2E,EAAI,KAEdxP,MACR4D,EACM6L,kBAAA,SAAkBzI,GAMxB,IAAA0I,EAAAC,EAAAC,EACC,GAAuB,MAAnB5I,EAAOI,UAAoC,KAAhBpH,KAAK0J,OAClC,MAAM,IAAIjK,MACR,4EASJ,OANAO,KAAK2O,MAAMrP,KAAI+P,KACVrI,EAAM,CACTI,SAAyB,OAAjBsI,EAAE1I,EAAOI,UAAQsI,EAAI1P,KAAK0J,OAClCmB,IAAe,OAAZ8E,EAAE3I,EAAO6D,KAAG8E,EAAI,EACnBE,gBAAuCD,OAAxBA,EAAE5I,EAAO6I,iBAAeD,EAAIE,EAAAA,eAAeC,YAErD/P,MACR4D,EACMoM,YAAA,SAAYC,EAA4B7E,GAK7C,OAJApL,KAAK2O,MAAMrP,KAAK,CACdgM,YAAa2E,EACb7E,KAAAA,IAEKpL,MACR4D,EACMsM,WAAA,SAAW5E,EAAqB3J,EAAakH,GAKlD,OAJA7I,KAAK2O,MAAMrP,KAAK,CACdgM,YAAAA,EACAF,KAAI,YAAczJ,EAAG,IAAIkH,EAAG,MAEvB7I,MACR4D,EACMuM,WAAA,SAAW7E,EAAqBhK,GAKrC,OAJAtB,KAAK2O,MAAMrP,KAAK,CACdgM,YAAAA,EACAF,iBAAkB9J,EAAQ,MAErBtB,MACR4D,EAEawM,aAAY,WAAA,IAAAC,EAAAnQ,EAAAC,IAAAC,EAAlB,SAAAC,IAAA,IAAAiQ,EAAA,OAAAnQ,IAAA8F,EAAA,SAAA1D,GAAA,cAAAA,EAAAC,GAAA,KAAA,EAAA,IACF8K,OAAOiD,MAAMvQ,KAAKyO,OAAM,CAAAlM,EAAAC,EAAA,EAAA,KAAA,CAAA,OAAAD,EAAAC,EAAA,EACUgO,cAAY,CAC9CC,eAAgBzQ,KAAKuO,gBACrB,KAAA,EACFvO,KAAKyO,MADHlM,EAAAnD,EAFMsR,kBAGuB,KAAA,EAAA,OAAAnO,EAAAC,EAAA,EAEPmO,YACrB3Q,KAAKuO,cAA6C,gCAAAvO,KAAKyO,0BAC1Db,KAAK,SAACgD,GAAC,OAAKA,EAAEC,SAAO,KAAA,EAFb,IAAJP,EAAI/N,EAAAnD,GAIH0R,SAAW9Q,KAAKyO,OACA,iBAAd6B,EAAKS,MACXT,EAAKS,KAAKpQ,WAAW,MAAK,CAAA4B,EAAAC,EAAA,EAAA,KAAA,CAAA,MAErB,IAAI/C,MAAK,6CACgCO,KAAKyO,OACnD,KAAA,EAAA,OAAAlM,EAAAY,EAEI,EAAA,CACL+I,aAAclM,KAAKyO,MACnBxC,WAAYqE,EAAKS,KAAKnQ,UAAU,GAChCH,iBAAkB6P,EAAK7P,iBAAiBG,UAAU,KACnD,EAAAP,EAAAL,KACF,IAxByB,OAwBzB,WAxByB,OAAAqQ,EAAAtQ,MAAAC,KAAAC,UAAA,CAAA,CAAA,GAAA2D,EA0BboN,IAAG,WAAA,IAAAC,EAAA/Q,EAAAC,IAAAC,EAAT,SAAA8Q,IAAA,IAAAzC,EAAAtC,EAAAgF,EAAAC,EAAA5C,EAAA6C,EAAApS,EAAAF,EAAAmP,EAAAjK,EAAAjE,KAAA,OAAAG,IAAA8F,EAAA,SAAAqL,GAAA,cAAAA,EAAA9O,GAAA,KAAA,EAWH,OAVF+O,QAAQC,IAAG,8RAUTF,EAAA9O,EAAA,EACkBxC,KAAKoQ,eAAc,KAAA,EAAjC3B,EAAK6C,EAAAlS,EACXmS,QAAQC,IAAG,sBACa/C,EAAMvC,aAAY,WAAWuC,EAAMxC,WAAU,uBAE/DE,EAAkD,GAClDgF,EAAmB,IAAI3N,IACvB4N,EAAS,WAAA,IAAAxK,EAAA1G,EAAAC,IAAAC,EAAG,SAAAqI,EAAOiB,GAAc,IAAAkB,EAAAxI,EAAAqP,EAAA,OAAAtR,IAAA8F,EAAA,SAAA6C,GAAA,cAAAA,EAAAtG,GAAA,KAAA,EACK,GAC7B,OADPoI,EAAQuG,EAAiBzM,IAAIgF,IAClB,CAAAZ,EAAAtG,EAAA,EAAA,KAAA,CAGoD,OAF7DJ,EACJ6B,EAAKsK,cACP,gBAAgB7E,EAAM,WAAU,EAAK,QAAQ+E,EAAMhO,iBAAgBqI,EAAAtG,EAAA,EACxBmO,EAASA,UAACvO,GAAKwL,KAAK,SAACgD,GAAC,OAC/DA,EAAEC,SACH,KAAA,EAC+C,OAAhDM,EAAiBvM,IAAI8E,GAHf+H,EAAO3I,EAAA1J,GAGwBwL,MAAQ,GAAG9B,EAAA3F,EACzCsO,EAAAA,EAAQ7G,OAAK,KAAA,EAEkB,OAAxCuG,EAAiBvM,IAAI8E,EAAQkB,EAAQ,GAAG9B,EAAA3F,EAAA,EACjCyH,GAAK,EAAAnC,EACb,IAAA,OAdK2I,SAASM,GAAA,OAAA9K,EAAA7G,MAAAC,KAAAC,UAAA,CAAA,CAAA,GAeXuO,EAA2B,YAAjBxO,KAAKwO,QAAwBmD,EAAAA,eAAiBC,EAAAA,eACxD5R,KAAKuO,gBACPC,EAAOa,EAAA,CAAA,EACFb,EAAO,CACVqD,OAAMxC,EACDb,GAAAA,EAAQqD,OAAM,CACjBC,QAAS9R,KAAKuO,mBAGnB8C,EAAAlR,IAAAC,WAAAiR,IAAA,IAAAU,EAAA5Q,EAAAC,EAAAM,EAAAsQ,EAAApH,EAAAqH,EAAAvL,EAAAC,EAAA8C,EAAAyI,EAAAC,EAAAC,EAAAC,EAAA,OAAAlS,IAAA8F,EAAA,SAAAqM,GAAA,cAAAA,EAAA9P,GAAA,KAAA,EACc,KACT,iBADKuP,EAAIhT,EAAAM,QACa,CAAAiT,EAAA9P,EAAA,EAAA,KAAA,CAAA,OAAA8P,EAAA9P,EAAA,EAGdC,2CAC6BsP,EAAK9C,aAAsB,YAChErB,KAAI,WAAA,IAAA/G,EAAA3G,EAAAC,IAAAC,EAAC,SAAA+I,EAAOrK,GAAE,IAAA6D,EAAA,OAAAxC,IAAA8F,EAAA,SAAAsD,GAAA,cAAAA,EAAA/G,GAAA,KAAA,EAAA,OAAA+G,EAAA/G,EAAA,EACK1D,EAAGkE,OAAM,KAAA,EAAlB,IAAJL,EAAI4G,EAAAnK,GACAuB,WAAW,KAAI,CAAA4I,EAAA/G,EAAA,EAAA,KAAA,CAAA,MACjB,IAAI/C,MACoBsS,4BAAAA,EAAK9C,aAAY,KAAKtM,GACnD,KAAA,EAAA,OAAA4G,EAAApG,EAAA,EAEIP,KAAKM,MAAMP,IAEjB,EAAAwG,EACF,IAAA,OAAA,SAAAoJ,GAAA,OAAA1L,EAAA9G,MAAAC,KAAAC,UAAA,CAAC,CAVI,IAUJ,KAAA,EACF,IAAAkB,EAAAjC,EAfwBoT,EAAAlT,EAecuP,SAAKvN,EAAAD,KAAAhC,MACrC,OADK4S,EAAI3Q,EAAA/B,OAEX8M,EAAI7M,KAAKkT,EAAAA,uBAAuBT,EAAKtI,KAC5B,SAAUsI,GAAQ,aAAcA,GACzC5F,EAAI7M,KAAK,CACPgM,YAAayG,EAAKxQ,SAClB6J,KAAM2G,EAAK3G,OAGhBkH,EAAA9P,EAAA,GAAA,MAAA,KAAA,EAAA,KACQ,WAAYuP,MAAQ,kBAAmBA,GAAI,CAAAO,EAAA9P,EAAA,EAAA,KAAA,CAAA,OAAA8P,EAAA9P,EAAA,EAChC4O,EAAUW,EAAKrI,QAAO,KAAA,EACN,OAD9BkB,EAAK0H,EAAAlT,EAAA6S,EAC6BF,EAAKzG,YAAY3D,MAAM,KAAxDjB,EAAeuL,EAAEtL,GAAAA,EAAYsL,EAAA,GAAAK,EAAA9P,EAAA,EACnBiQ,2BAAyB,CACxC/L,gBAAAA,EACAC,aAAAA,EACA1E,aAAc8P,EAAKW,cACnBvQ,aAAgC,OAApB6P,EAAED,EAAKY,eAAaX,EAAI,GACpCpH,MAAAA,EACA4D,QAAAA,EACAoE,UAAW,GACXC,kBAAmBC,EAAiBA,kBAACC,MACrClI,IAAKkH,EAAKlH,MACV,KAAA,EACFrB,EAXMC,EAAE6I,EAAAlT,EAWM2S,EAAKrI,QACnByC,EAAI7M,KAAKmK,GAAI6I,EAAA9P,EAAA,GAAA,MAAA,KAAA,EAAA,KACJ,WAAYuP,MAAQ,cAAeA,GAAI,CAAAO,EAAA9P,EAAA,EAAA,KAAA,CAAA,OAAA8P,EAAA9P,EAAA,EAC5B4O,EAAUW,EAAKrI,QAAO,KAAA,EAA/B,OAALkB,EAAK0H,EAAAlT,EAAAkT,EAAA9P,EAAA,EACMwQ,+BAA6B,CAC5CC,UAAWlB,EAAKkB,UAChBC,OAAQnB,EAAKmB,OACbtI,MAAAA,EACA4D,QAAAA,EACAoE,UAAW,GACX/H,IAAKkH,EAAKlH,MACV,KAAA,EACFrB,EARMC,EAAE6I,EAAAlT,EAQM2S,EAAKrI,QACnByC,EAAI7M,KAAKmK,GAAI6I,EAAA9P,EAAA,GAAA,MAAA,KAAA,EAAA,KACJ,aAAcuP,GAAI,CAAAO,EAAA9P,EAAA,GAAA,KAAA,CAAA,OAAA8P,EAAA9P,EAAA,EACP4O,EAAUW,EAAK3K,UAAS,KAAA,EAAjC,OAALwD,EAAK0H,EAAAlT,EAAAkT,EAAA9P,EAAA,GACM2Q,6BAA2B,CAC1CxM,aAAcoL,EAAKvG,cACnB4H,SAAUrB,EAAKsB,YACfzI,MAAAA,EACA4D,QAAAA,EACAoE,UAAW,GACXC,kBAAmBC,EAAiBA,kBAACC,MACrClI,IAAKkH,EAAKlH,MACV,KAAA,GACFrB,EATMC,EAAE6I,EAAAlT,EASM2S,EAAK3K,UACnB+E,EAAI7M,KAAKmK,GAAI6I,EAAA9P,EAAA,GAAA,MAAA,KAAA,GACJ,SAAUuP,EACnB5F,EAAI7M,KAAKyS,GAETR,QAAQC,IAAgCO,4BAAAA,GACzC,KAAA,GAAA,OAAAO,EAAAnP,EAAA,GAAA,EAAAkO,EAAA,GAAApS,EAAAC,EAxEgBc,KAAK2O,OAAK,KAAA,EAAA,IAAA5P,EAAAE,KAAAE,KAAA,CAAAmS,EAAA9O,EAAA,EAAA,KAAA,CAAA,OAAA8O,EAAAgC,EAAAC,EAAAlC,KAAA,GAAA,KAAA,EAAAC,EAAA9O,EAAA,EAAA,MAAA,KAAA,EAAA,OAAA8O,EAAA9O,EAAA,EA0EZmJ,EACZ3L,KAAKgM,YACRyC,eAAAA,EAAMxC,WACNwC,EAAMvC,aACNC,GACD,KAAA,EAGC,OARI+B,EAAEoD,EAAAlS,EAMRmS,QAAQC,IAC4D,kEAAAxR,KAAKwO,QAAO,IAAIN,GAClFoD,EAAAnO,EAAA,EACK+K,GAAE,EAAAgD,EAAAlR,KACV,IA/He,OA+Hf,WA/He,OAAAiR,EAAAlR,MAAAC,KAAAC,UAAA,CAAA,CAAA,GAAA2D,EAiIT4P,KAAA,SACLC,GAEA,OAAOA,EAAUzT,OAClBmO,CAAA,CAnT2B,4CDlGRuF,SAAY9T,GAAA,OAAAmH,EAAAhH,MAAAC,KAAAC,UAAA,kBAmDZ0T,SAAO9T,GAAA,OAAA2I,EAAAzI,MAAAC,KAAAC,UAAA,uBAsDP2T,SAAYhI,GAAA,OAAA1C,EAAAnJ,MAAAC,KAAAC,UAAA"}
1
+ {"version":3,"file":"stxer.cjs.production.min.js","sources":["../src/BatchAPI.ts","../src/BatchProcessor.ts","../src/clarity-api.ts","../src/simulation.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([\n serializeCV(variable.contract),\n variable.variableName,\n ]);\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}\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 contractPrincipalCV,\n type OptionalCV,\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}\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 type {\n InferMapValueType,\n InferReadMapParameterType,\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { decodeAbi, encodeAbi } 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(\n `failed to find function definition for ${params.functionName}`,\n );\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(\n decoded as InferReadonlyCallResultType<Functions, FunctionName>,\n );\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends\n | readonly ClarityAbiMap[]\n | 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 {\n type: ClarityType.OptionalSome;\n value: ClarityValue;\n };\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\n | readonly ClarityAbiVariable[]\n | 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(\n `failed to find variable definition for ${params.variableName}`,\n );\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","import {\n AddressVersion,\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n AddressHashMode,\n bufferCV,\n type ClarityValue,\n ClarityVersion,\n contractPrincipalCV,\n deserializeTransaction,\n type MultiSigSpendingCondition,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n PostConditionMode,\n type StacksTransactionWire,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\nimport { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\n\nfunction setSender(tx: StacksTransactionWire, sender: string) {\n const [addressVersion, signer] = c32addressDecode(sender);\n switch (addressVersion) {\n case AddressVersion.MainnetSingleSig:\n case AddressVersion.TestnetSingleSig:\n tx.auth.spendingCondition.hashMode = AddressHashMode.P2PKH;\n tx.auth.spendingCondition.signer = signer;\n break;\n case AddressVersion.MainnetMultiSig:\n case AddressVersion.TestnetMultiSig: {\n const sc = tx.auth.spendingCondition;\n tx.auth.spendingCondition = {\n hashMode: AddressHashMode.P2SH,\n signer,\n fields: [],\n signaturesRequired: 0,\n nonce: sc.nonce,\n fee: sc.fee,\n } as MultiSigSpendingCondition;\n break;\n }\n }\n return tx;\n}\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 =\n options.apiEndpoint ??\n (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');\n this.stacksNodeAPI =\n 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: ignore this\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.Clarity4,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`,\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`,\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`,\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`,\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json(),\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n 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: {\n steps: ({ tx: string } | { code: string; contract: string })[];\n } = await fetch(\n `https://api.stxer.xyz/simulations/${step.simulationId}/request`,\n ).then(async (rs) => {\n const body = await rs.text();\n if (!body.startsWith('{')) {\n throw new Error(\n `failed to get simulation ${step.simulationId}: ${body}`,\n );\n }\n return JSON.parse(body) as {\n steps: ({ tx: string } | { code: string; contract: string })[];\n };\n });\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 setSender(tx, step.sender);\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 setSender(tx, step.sender);\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 clarityVersion: step.clarity_version\n });\n setSender(tx, step.deployer);\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\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(\n transform: (builder: SimulationBuilder) => SimulationBuilder,\n ): SimulationBuilder {\n return transform(this);\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","_regenerator","m","_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","n","fetch","method","body","JSON","stringify","headers","data","text","includes","parse","a","defaultProcessor","BatchProcessor","_options$stxerAPIEndp","queues","Map","timeoutIds","stxerAPIEndpoint","batchDelayMs","_proto","prototype","getQueueKey","read","request","_this","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","get","has","set","timeoutId","setTimeout","processBatch","_processBatch","_this$queues$get2","currentQueue","readonlyRequests","mapRequests","variableRequests","batchRequest","_step$value","index","result","_step2$value","_index","_result","_step3$value","_index2","_result2","_t","w","p","clearTimeout","length","filter","q","mode","_ref","contractPrincipalCV","contractAddress","contractName","_ref2","_ref3","entries","_callReadonly","params","_params$batchProcesso","processor","_params$contract$spli","deployer","fn","functionDef","argsKV","args","argDef","batchProcessor","split","String","abi","find","def","name","encodeAbi","type","indexBlockHash","decoded","decodeAbi","outputs","error","_readMap","_callee2","_params$batchProcesso2","_params$contract$spli2","mapDef","key","_context2","ClarityType","OptionalNone","OptionalSome","_readVariable","_callee3","_params$batchProcesso3","_params$contract$spli3","varDef","_context3","setSender","tx","sender","_c32addressDecode","c32addressDecode","signer","AddressVersion","MainnetSingleSig","TestnetSingleSig","auth","spendingCondition","hashMode","AddressHashMode","P2PKH","MainnetMultiSig","TestnetMultiSig","sc","P2SH","fields","signaturesRequired","nonce","fee","runTx","tupleCV","uintCV","bufferCV","serializeBytes","runEval","code","_contract_id$split","contract_id","contract_address","contract_name","serializeCVBytes","stringAsciiCV","runSimulation","_x3","_x4","_runSimulation","_callee6","apiEndpoint","block_hash","block_height","txs","header","heightBytes","hashHex","matches","hashBytes","txBytes","totalLength","offset","_context7","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","then","_ref4","_callee5","response","_context6","_x7","id","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","stacksNodeAPI","network","block","NaN","steps","isTestnet","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","_params$sender","_params$fee","_extends","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","clarity_version","ClarityVersion","Clarity4","addEvalCode","inside_contract_id","addMapRead","addVarRead","getBlockInfo","_getBlockInfo","info","isNaN","getNodeInfo","stacksEndpoint","stacks_tip_height","richFetch","r","json","height","hash","run","_run","_callee4","nonce_by_address","nextNonce","_loop","_context5","console","log","account","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","step","_step$function_args","_step$contract_id$spl","_nonce","_tx","_nonce2","_tx2","_context4","_x6","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","clarityVersion","d","_regeneratorValues","pipe","transform","callReadonly","readMap","readVariable"],"mappings":"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"}
package/dist/stxer.esm.js CHANGED
@@ -790,7 +790,7 @@ var SimulationBuilder = /*#__PURE__*/function () {
790
790
  this.steps.push(_extends({}, params, {
791
791
  deployer: (_params$deployer = params.deployer) != null ? _params$deployer : this.sender,
792
792
  fee: (_params$fee3 = params.fee) != null ? _params$fee3 : 0,
793
- clarity_version: (_params$clarity_versi = params.clarity_version) != null ? _params$clarity_versi : ClarityVersion.Clarity3
793
+ clarity_version: (_params$clarity_versi = params.clarity_version) != null ? _params$clarity_versi : ClarityVersion.Clarity4
794
794
  }));
795
795
  return this;
796
796
  };
@@ -1031,7 +1031,8 @@ var SimulationBuilder = /*#__PURE__*/function () {
1031
1031
  network: network,
1032
1032
  publicKey: '',
1033
1033
  postConditionMode: PostConditionMode.Allow,
1034
- fee: step.fee
1034
+ fee: step.fee,
1035
+ clarityVersion: step.clarity_version
1035
1036
  });
1036
1037
  case 10:
1037
1038
  _tx2 = _context4.v;
@@ -1 +1 @@
1
- {"version":3,"file":"stxer.esm.js","sources":["../src/BatchAPI.ts","../src/BatchProcessor.ts","../src/clarity-api.ts","../src/simulation.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([\n serializeCV(variable.contract),\n variable.variableName,\n ]);\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}\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 contractPrincipalCV,\n type OptionalCV,\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}\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 type {\n InferMapValueType,\n InferReadMapParameterType,\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { decodeAbi, encodeAbi } 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(\n `failed to find function definition for ${params.functionName}`,\n );\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(\n decoded as InferReadonlyCallResultType<Functions, FunctionName>,\n );\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends\n | readonly ClarityAbiMap[]\n | 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 {\n type: ClarityType.OptionalSome;\n value: ClarityValue;\n };\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\n | readonly ClarityAbiVariable[]\n | 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(\n `failed to find variable definition for ${params.variableName}`,\n );\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","import {\n AddressVersion,\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n AddressHashMode,\n bufferCV,\n type ClarityValue,\n ClarityVersion,\n contractPrincipalCV,\n deserializeTransaction,\n type MultiSigSpendingCondition,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n PostConditionMode,\n type StacksTransactionWire,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\nimport { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\n\nfunction setSender(tx: StacksTransactionWire, sender: string) {\n const [addressVersion, signer] = c32addressDecode(sender);\n switch (addressVersion) {\n case AddressVersion.MainnetSingleSig:\n case AddressVersion.TestnetSingleSig:\n tx.auth.spendingCondition.hashMode = AddressHashMode.P2PKH;\n tx.auth.spendingCondition.signer = signer;\n break;\n case AddressVersion.MainnetMultiSig:\n case AddressVersion.TestnetMultiSig: {\n const sc = tx.auth.spendingCondition;\n tx.auth.spendingCondition = {\n hashMode: AddressHashMode.P2SH,\n signer,\n fields: [],\n signaturesRequired: 0,\n nonce: sc.nonce,\n fee: sc.fee,\n } as MultiSigSpendingCondition;\n break;\n }\n }\n return tx;\n}\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 =\n options.apiEndpoint ??\n (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');\n this.stacksNodeAPI =\n 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: ignore this\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 = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json(),\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n 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: {\n steps: ({ tx: string } | { code: string; contract: string })[];\n } = await fetch(\n `https://api.stxer.xyz/simulations/${step.simulationId}/request`,\n ).then(async (rs) => {\n const body = await rs.text();\n if (!body.startsWith('{')) {\n throw new Error(\n `failed to get simulation ${step.simulationId}: ${body}`,\n );\n }\n return JSON.parse(body) as {\n steps: ({ tx: string } | { code: string; contract: string })[];\n };\n });\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 setSender(tx, step.sender);\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 setSender(tx, step.sender);\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 setSender(tx, step.deployer);\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\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(\n transform: (builder: SimulationBuilder) => SimulationBuilder,\n ): SimulationBuilder {\n return transform(this);\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","_regenerator","m","_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","n","fetch","method","body","JSON","stringify","headers","data","text","includes","parse","a","BatchProcessor","_options$stxerAPIEndp","queues","Map","timeoutIds","stxerAPIEndpoint","batchDelayMs","_proto","prototype","getQueueKey","read","request","_this","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","get","has","set","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","_t","w","p","clearTimeout","length","filter","q","mode","_ref","contractPrincipalCV","contractAddress","contractName","_ref2","_ref3","entries","defaultProcessor","callReadonly","_callReadonly","params","_params$batchProcesso","processor","_params$contract$spli","deployer","fn","functionDef","argsKV","args","argDef","batchProcessor","split","String","abi","find","def","name","encodeAbi","type","indexBlockHash","decoded","decodeAbi","outputs","error","readMap","_readMap","_callee2","_params$batchProcesso2","_params$contract$spli2","mapDef","key","_context2","ClarityType","OptionalNone","OptionalSome","someCV","readVariable","_x3","_readVariable","_callee3","_params$batchProcesso3","_params$contract$spli3","varDef","_context3","setSender","tx","sender","_c32addressDecode","c32addressDecode","addressVersion","signer","AddressVersion","MainnetSingleSig","TestnetSingleSig","auth","spendingCondition","hashMode","AddressHashMode","P2PKH","MainnetMultiSig","TestnetMultiSig","sc","P2SH","fields","signaturesRequired","nonce","fee","runTx","tupleCV","uintCV","bufferCV","serializeBytes","runEval","contract_id","code","_contract_id$split","contract_address","contract_name","serializeCVBytes","stringAsciiCV","runSimulation","_x4","_runSimulation","_callee6","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","offset","_context7","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","then","_ref4","_callee5","response","_context6","_x7","id","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","stacksNodeAPI","network","block","NaN","steps","isTestnet","new","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","_params$sender","_params$fee","_extends","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","addVarRead","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","isNaN","getNodeInfo","stacksEndpoint","richFetch","r","json","height","hash","run","_run","_callee4","nonce_by_address","nextNonce","_loop","_context5","console","log","account","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","step","previousSimulation","_step$function_args","_step$contract_id$spl","_nonce","_tx","_nonce2","_tx2","_context4","_x6","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","d","_regeneratorValues","pipe","transform"],"mappings":"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"}
1
+ {"version":3,"file":"stxer.esm.js","sources":["../src/BatchAPI.ts","../src/BatchProcessor.ts","../src/clarity-api.ts","../src/simulation.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([\n serializeCV(variable.contract),\n variable.variableName,\n ]);\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}\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 contractPrincipalCV,\n type OptionalCV,\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}\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 type {\n InferMapValueType,\n InferReadMapParameterType,\n InferReadonlyCallParameterType,\n InferReadonlyCallResultType,\n InferReadVariableParameterType,\n InferVariableType,\n} from 'ts-clarity';\nimport { decodeAbi, encodeAbi } 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(\n `failed to find function definition for ${params.functionName}`,\n );\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(\n decoded as InferReadonlyCallResultType<Functions, FunctionName>,\n );\n } catch (error) {\n reject(error);\n }\n },\n reject,\n });\n });\n}\n\nexport async function readMap<\n Maps extends\n | readonly ClarityAbiMap[]\n | 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 {\n type: ClarityType.OptionalSome;\n value: ClarityValue;\n };\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\n | readonly ClarityAbiVariable[]\n | 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(\n `failed to find variable definition for ${params.variableName}`,\n );\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","import {\n AddressVersion,\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n AddressHashMode,\n bufferCV,\n type ClarityValue,\n ClarityVersion,\n contractPrincipalCV,\n deserializeTransaction,\n type MultiSigSpendingCondition,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n PostConditionMode,\n type StacksTransactionWire,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\nimport { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\n\nfunction setSender(tx: StacksTransactionWire, sender: string) {\n const [addressVersion, signer] = c32addressDecode(sender);\n switch (addressVersion) {\n case AddressVersion.MainnetSingleSig:\n case AddressVersion.TestnetSingleSig:\n tx.auth.spendingCondition.hashMode = AddressHashMode.P2PKH;\n tx.auth.spendingCondition.signer = signer;\n break;\n case AddressVersion.MainnetMultiSig:\n case AddressVersion.TestnetMultiSig: {\n const sc = tx.auth.spendingCondition;\n tx.auth.spendingCondition = {\n hashMode: AddressHashMode.P2SH,\n signer,\n fields: [],\n signaturesRequired: 0,\n nonce: sc.nonce,\n fee: sc.fee,\n } as MultiSigSpendingCondition;\n break;\n }\n }\n return tx;\n}\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 =\n options.apiEndpoint ??\n (isTestnet ? 'https://testnet-api.stxer.xyz' : 'https://api.stxer.xyz');\n this.stacksNodeAPI =\n 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: ignore this\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.Clarity4,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`,\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`,\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`,\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`,\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json(),\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n 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: {\n steps: ({ tx: string } | { code: string; contract: string })[];\n } = await fetch(\n `https://api.stxer.xyz/simulations/${step.simulationId}/request`,\n ).then(async (rs) => {\n const body = await rs.text();\n if (!body.startsWith('{')) {\n throw new Error(\n `failed to get simulation ${step.simulationId}: ${body}`,\n );\n }\n return JSON.parse(body) as {\n steps: ({ tx: string } | { code: string; contract: string })[];\n };\n });\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 setSender(tx, step.sender);\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 setSender(tx, step.sender);\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 clarityVersion: step.clarity_version\n });\n setSender(tx, step.deployer);\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\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(\n transform: (builder: SimulationBuilder) => SimulationBuilder,\n ): SimulationBuilder {\n return transform(this);\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","_regenerator","m","_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","n","fetch","method","body","JSON","stringify","headers","data","text","includes","parse","a","BatchProcessor","_options$stxerAPIEndp","queues","Map","timeoutIds","stxerAPIEndpoint","batchDelayMs","_proto","prototype","getQueueKey","read","request","_this","Promise","resolve","reject","enqueue","_this$queues$get","_this2","queueKey","queue","get","has","set","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","_t","w","p","clearTimeout","length","filter","q","mode","_ref","contractPrincipalCV","contractAddress","contractName","_ref2","_ref3","entries","defaultProcessor","callReadonly","_callReadonly","params","_params$batchProcesso","processor","_params$contract$spli","deployer","fn","functionDef","argsKV","args","argDef","batchProcessor","split","String","abi","find","def","name","encodeAbi","type","indexBlockHash","decoded","decodeAbi","outputs","error","readMap","_readMap","_callee2","_params$batchProcesso2","_params$contract$spli2","mapDef","key","_context2","ClarityType","OptionalNone","OptionalSome","someCV","readVariable","_x3","_readVariable","_callee3","_params$batchProcesso3","_params$contract$spli3","varDef","_context3","setSender","tx","sender","_c32addressDecode","c32addressDecode","addressVersion","signer","AddressVersion","MainnetSingleSig","TestnetSingleSig","auth","spendingCondition","hashMode","AddressHashMode","P2PKH","MainnetMultiSig","TestnetMultiSig","sc","P2SH","fields","signaturesRequired","nonce","fee","runTx","tupleCV","uintCV","bufferCV","serializeBytes","runEval","contract_id","code","_contract_id$split","contract_address","contract_name","serializeCVBytes","stringAsciiCV","runSimulation","_x4","_runSimulation","_callee6","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","offset","_context7","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","then","_ref4","_callee5","response","_context6","_x7","id","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","stacksNodeAPI","network","block","NaN","steps","isTestnet","new","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","_params$sender","_params$fee","_extends","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","clarity_version","ClarityVersion","Clarity4","addEvalCode","inside_contract_id","addMapRead","addVarRead","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","isNaN","getNodeInfo","stacksEndpoint","richFetch","r","json","height","hash","run","_run","_callee4","nonce_by_address","nextNonce","_loop","_context5","console","log","account","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","step","previousSimulation","_step$function_args","_step$contract_id$spl","_nonce","_tx","_nonce2","_tx2","_context4","_x6","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","clarityVersion","d","_regeneratorValues","pipe","transform"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stxer",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "license": "MIT",
5
5
  "author": "Kyle Fang",
6
6
  "repository": {
@@ -42,21 +42,21 @@
42
42
  }
43
43
  ],
44
44
  "devDependencies": {
45
- "@biomejs/biome": "^2.2.4",
45
+ "@biomejs/biome": "^2.3.6",
46
46
  "@size-limit/preset-small-lib": "^11.2.0",
47
- "@tsconfig/recommended": "^1.0.10",
48
- "@types/node": "^24.3.3",
47
+ "@tsconfig/recommended": "^1.0.13",
48
+ "@types/node": "^24.10.1",
49
49
  "dts-cli": "^2.0.5",
50
50
  "husky": "^9.1.7",
51
51
  "size-limit": "^11.2.0",
52
52
  "tslib": "^2.8.1",
53
- "tsx": "^4.20.5",
54
- "typescript": "^5.9.2"
53
+ "tsx": "^4.20.6",
54
+ "typescript": "^5.9.3"
55
55
  },
56
56
  "dependencies": {
57
57
  "@stacks/network": "^7.2.0",
58
58
  "@stacks/stacks-blockchain-api-types": "^7.14.1",
59
- "@stacks/transactions": "^7.2.0",
59
+ "@stacks/transactions": "^7.3.0",
60
60
  "c32check": "^2.0.0",
61
61
  "clarity-abi": "^0.1.0",
62
62
  "ts-clarity": "^0.1.1"
@@ -64,7 +64,7 @@
64
64
  "scripts": {
65
65
  "analyze": "size-limit --why",
66
66
  "build": "dts build",
67
- "lint": "dts lint && biome check .",
67
+ "lint": "biome check .",
68
68
  "size": "size-limit",
69
69
  "start": "dts watch",
70
70
  "test": "dts test",
package/src/simulation.ts CHANGED
@@ -270,7 +270,7 @@ export class SimulationBuilder {
270
270
  ...params,
271
271
  deployer: params.deployer ?? this.sender,
272
272
  fee: params.fee ?? 0,
273
- clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,
273
+ clarity_version: params.clarity_version ?? ClarityVersion.Clarity4,
274
274
  });
275
275
  return this;
276
276
  }
@@ -430,6 +430,7 @@ To get in touch: contact@stxer.xyz
430
430
  publicKey: '',
431
431
  postConditionMode: PostConditionMode.Allow,
432
432
  fee: step.fee,
433
+ clarityVersion: step.clarity_version
433
434
  });
434
435
  setSender(tx, step.deployer);
435
436
  txs.push(tx);