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.
- package/dist/stxer.cjs.development.js +3 -2
- package/dist/stxer.cjs.development.js.map +1 -1
- package/dist/stxer.cjs.production.min.js +1 -1
- package/dist/stxer.cjs.production.min.js.map +1 -1
- package/dist/stxer.esm.js +3 -2
- package/dist/stxer.esm.js.map +1 -1
- package/package.json +8 -8
- package/src/simulation.ts +2 -1
|
@@ -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.
|
|
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":"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"}
|
|
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.
|
|
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;
|
package/dist/stxer.esm.js.map
CHANGED
|
@@ -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
|
+
"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.
|
|
45
|
+
"@biomejs/biome": "^2.3.6",
|
|
46
46
|
"@size-limit/preset-small-lib": "^11.2.0",
|
|
47
|
-
"@tsconfig/recommended": "^1.0.
|
|
48
|
-
"@types/node": "^24.
|
|
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.
|
|
54
|
-
"typescript": "^5.9.
|
|
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.
|
|
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": "
|
|
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.
|
|
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);
|