stxer 0.4.5 → 0.7.0
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/README.md +388 -18
- package/dist/ast.d.ts +32 -0
- package/dist/{BatchAPI.d.ts → batch-api.d.ts} +2 -1
- package/dist/clarity-api.d.ts +1 -1
- package/dist/constants.d.ts +9 -0
- package/dist/index.d.ts +6 -1
- package/dist/simulation-api.d.ts +138 -0
- package/dist/simulation.d.ts +12 -4
- package/dist/stxer.cjs.development.js +705 -287
- 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 +696 -288
- package/dist/stxer.esm.js.map +1 -1
- package/dist/tip.d.ts +16 -0
- package/dist/types.d.ts +598 -0
- package/package.json +19 -12
- package/src/ast.ts +120 -0
- package/src/{BatchAPI.ts → batch-api.ts} +9 -8
- package/src/{BatchProcessor.ts → batch-processor.ts} +1 -1
- package/src/clarity-api.ts +1 -1
- package/src/constants.ts +12 -0
- package/src/index.ts +10 -1
- package/src/simulation-api.ts +273 -0
- package/src/simulation.ts +169 -138
- package/src/tip.ts +42 -0
- package/src/types.ts +700 -0
- package/dist/sample/counter.d.ts +0 -1
- package/dist/sample/read.d.ts +0 -1
- package/src/sample/counter.ts +0 -42
- package/src/sample/read.ts +0 -139
- /package/dist/{BatchProcessor.d.ts → batch-processor.d.ts} +0 -0
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.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
|
+
{"version":3,"file":"stxer.esm.js","sources":["../src/constants.ts","../src/ast.ts","../src/batch-api.ts","../src/batch-processor.ts","../src/clarity-api.ts","../src/simulation-api.ts","../src/simulation.ts","../src/tip.ts","../src/types.ts"],"sourcesContent":["/**\n * API endpoint constants\n */\n\n/** Default stxer API endpoint for mainnet */\nexport const STXER_API_MAINNET = 'https://api.stxer.xyz';\n\n/** stxer API endpoint for testnet */\nexport const STXER_API_TESTNET = 'https://testnet-api.stxer.xyz';\n\n/** Default stxer API endpoint (mainnet) */\nexport const DEFAULT_STXER_API = STXER_API_MAINNET;\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 { DEFAULT_STXER_API } from './constants';\nimport type { ClarityEpoch, ContractAST } from './types';\n\nexport interface AstOptions {\n stxerApi?: string;\n}\n\nexport interface GetContractAstOptions extends AstOptions {\n contractId: string;\n}\n\n/**\n * Fetch the AST for an on-chain contract.\n * @param options - Contract ID and optional API endpoint\n * @returns The contract AST with metadata\n */\nexport async function getContractAST(\n options: GetContractAstOptions,\n): Promise<ContractAST> {\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/contracts/${options.contractId}`;\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Failed to fetch contract AST: ${response.status} ${response.statusText}`,\n );\n }\n\n const text = await response.text();\n if (!text.startsWith('{')) {\n throw new Error(`Invalid response from contracts endpoint: ${text}`);\n }\n\n return JSON.parse(text) as ContractAST;\n}\n\nexport interface ParseContractOptions extends AstOptions {\n sourceCode: string;\n contractId: string;\n clarityVersion?: '1' | '2' | '3' | '4';\n epoch?: ClarityEpoch;\n}\n\n/**\n * Parse contract source code into an AST.\n * @param options - Source code, contract ID, and optional configuration\n * @returns The parsed contract AST\n */\nexport async function parseContract(\n options: ParseContractOptions,\n): Promise<ContractAST> {\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/contracts:parse`;\n\n const payload: {\n contract_id: string;\n source_code: string;\n clarity_version?: string;\n epoch?: string;\n } = {\n contract_id: options.contractId,\n source_code: options.sourceCode,\n };\n\n if (options.clarityVersion !== undefined) {\n payload.clarity_version = options.clarityVersion;\n }\n if (options.epoch !== undefined) {\n payload.epoch = options.epoch;\n }\n\n const response = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Failed to parse contract: ${response.status} ${response.statusText}`,\n );\n }\n\n const text = await response.text();\n if (!text.startsWith('{')) {\n throw new Error(`Invalid response from contract parse endpoint: ${text}`);\n }\n\n return JSON.parse(text) as ContractAST;\n}\n\n// Re-export AST-related types for convenience\nexport type {\n ClarityAbi,\n ClarityAbiFunction,\n ClarityAbiFungibleToken,\n ClarityAbiMap,\n ClarityAbiNonFungibleToken,\n ClarityAbiType,\n ClarityAbiVariable,\n ClarityEpoch,\n ClarityVersion,\n ContractAST,\n SymbolicExpression,\n} from './types';\n","/**\n * WARNING:\n *\n * this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),\n * so please be careful when adding `import`s to it.\n */\n\nimport {\n type ClarityValue,\n type 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 /** Index block hash the batch ran against. Matches the wire field name. */\n index_block_hash: 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 })[] | undefined,\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 index_block_hash: string;\n vars?: ({ Ok: string } | { Err: string })[];\n maps?: ({ Ok: string } | { Err: string })[];\n readonly?: ({ Ok: string } | { Err: string })[];\n };\n\n return {\n index_block_hash: rs.index_block_hash,\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 './batch-api';\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 './batch-processor';\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","/**\n * Low-level programmatic simulation APIs\n *\n * These functions provide direct access to the stxer V2 simulation endpoints\n * for programmatic use cases where you need more control than SimulationBuilder provides.\n */\n\nimport { DEFAULT_STXER_API } from './constants';\nimport type {\n InstantSimulationRequest,\n InstantSimulationResponse,\n SimulationBatchReadsRequest,\n SimulationBatchReadsResponse,\n SimulationResult,\n SubmitSimulationStepsRequest,\n SubmitSimulationStepsResponse,\n} from './types';\n\n/**\n * Options for API calls\n */\nexport interface SimulationApiOptions {\n /** stxer API endpoint (default: https://api.stxer.xyz) */\n stxerApi?: string;\n}\n\n/**\n * Create simulation session options\n */\nexport interface CreateSessionOptions {\n /** Block height for simulation (optional, uses tip if not provided) */\n block_height?: number;\n /** Block hash corresponding to block_height */\n block_hash?: string;\n /** Skip debug tracing for faster simulations */\n skip_tracing?: boolean;\n}\n\n/**\n * Instantly simulate a transaction\n *\n * This is useful for apps/wallets to get the result of a transaction before sending it.\n * Lightweight - no debug tracing information.\n *\n * @param request - Instant simulation request\n * @param options - API options\n * @returns Instant simulation response with receipt and optional reads\n *\n * @example\n * ```typescript\n * import { instantSimulation } from 'stxer';\n *\n * const result = await instantSimulation({\n * transaction: '0x...',\n * block_height: 130818,\n * block_hash: '0x...',\n * reads: [\n * { DataVar: ['SP...contract', 'my-var'] },\n * { StxBalance: 'SP...' }\n * ]\n * });\n * console.log(result.receipt.result);\n * ```\n */\nexport async function instantSimulation(\n request: InstantSimulationRequest,\n options: SimulationApiOptions = {},\n): Promise<InstantSimulationResponse> {\n const apiEndpoint = options.stxerApi ?? DEFAULT_STXER_API;\n\n const response = await fetch(\n `${apiEndpoint}/devtools/v2/simulations:instant`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n },\n },\n );\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Instant simulation failed: ${text}`);\n }\n\n return response.json() as Promise<InstantSimulationResponse>;\n}\n\n/**\n * Create a new simulation session\n *\n * A session allows you to run multiple steps in a forked chain state.\n *\n * @param options - Create session options\n * @param apiOptions - API options\n * @returns Session ID\n *\n * @example\n * ```typescript\n * import { createSimulationSession } from 'stxer';\n *\n * const sessionId = await createSimulationSession({\n * block_height: 130818,\n * skip_tracing: false\n * });\n * ```\n */\nexport async function createSimulationSession(\n options: CreateSessionOptions = {},\n apiOptions: SimulationApiOptions = {},\n): Promise<string> {\n const apiEndpoint = apiOptions.stxerApi ?? DEFAULT_STXER_API;\n\n const response = await fetch(`${apiEndpoint}/devtools/v2/simulations`, {\n method: 'POST',\n body: JSON.stringify(options),\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n },\n });\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Failed to create simulation session: ${text}`);\n }\n\n const result = (await response.json()) as { id: string };\n return result.id;\n}\n\n/**\n * Submit steps to a simulation session\n *\n * Steps are executed sequentially in the session's forked chain state.\n *\n * @param sessionId - Simulation session ID\n * @param request - Steps to submit\n * @param options - API options\n * @returns Array of step results\n *\n * @example\n * ```typescript\n * import { submitSimulationSteps } from 'stxer';\n *\n * const results = await submitSimulationSteps(sessionId, {\n * steps: [\n * { Transaction: '0x...' },\n * { Eval: ['SP...', '', 'SP...contract', '(var-get my-var)'] },\n * { Reads: [{ DataVar: ['SP...contract', 'my-var'] }] }\n * ]\n * });\n * ```\n */\nexport async function submitSimulationSteps(\n sessionId: string,\n request: SubmitSimulationStepsRequest,\n options: SimulationApiOptions = {},\n): Promise<SubmitSimulationStepsResponse> {\n const apiEndpoint = options.stxerApi ?? DEFAULT_STXER_API;\n\n const response = await fetch(\n `${apiEndpoint}/devtools/v2/simulations/${sessionId}`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n },\n },\n );\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Failed to submit simulation steps: ${text}`);\n }\n\n return response.json() as Promise<SubmitSimulationStepsResponse>;\n}\n\n/**\n * Get simulation session results\n *\n * Returns the full simulation result including metadata and all step results.\n *\n * @param sessionId - Simulation session ID\n * @param options - API options\n * @returns Complete simulation result\n *\n * @example\n * ```typescript\n * import { getSimulationResult } from 'stxer';\n *\n * const result = await getSimulationResult(sessionId);\n * console.log(result.metadata);\n * console.log(result.steps);\n * ```\n */\nexport async function getSimulationResult(\n sessionId: string,\n options: SimulationApiOptions = {},\n): Promise<SimulationResult> {\n const apiEndpoint = options.stxerApi ?? DEFAULT_STXER_API;\n\n const response = await fetch(\n `${apiEndpoint}/devtools/v2/simulations/${sessionId}`,\n {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n },\n },\n );\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Failed to get simulation result: ${text}`);\n }\n\n return response.json() as Promise<SimulationResult>;\n}\n\n/**\n * Batch reads from a simulation session\n *\n * Similar to sidecar batch reads, but reads from the simulation's forked state.\n *\n * @param sessionId - Simulation session ID\n * @param request - Batch reads request\n * @param options - API options\n * @returns Batch read results\n *\n * @example\n * ```typescript\n * import { simulationBatchReads } from 'stxer';\n *\n * const results = await simulationBatchReads(sessionId, {\n * vars: [['SP...contract', 'my-var']],\n * maps: [['SP...contract', 'my-map', '0x...']],\n * stx: ['SP...']\n * });\n * console.log(results.vars);\n * ```\n */\nexport async function simulationBatchReads(\n sessionId: string,\n request: SimulationBatchReadsRequest,\n options: SimulationApiOptions = {},\n): Promise<SimulationBatchReadsResponse> {\n const apiEndpoint = options.stxerApi ?? DEFAULT_STXER_API;\n\n const response = await fetch(\n `${apiEndpoint}/devtools/v2/simulations/${sessionId}/reads`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n },\n },\n );\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Failed to batch reads from simulation: ${text}`);\n }\n\n return response.json() as Promise<SimulationBatchReadsResponse>;\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 type ClarityValue,\n ClarityVersion,\n type MultiSigSpendingCondition,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n PostConditionMode,\n type StacksTransactionWire,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\nimport { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport { STXER_API_MAINNET, STXER_API_TESTNET } from './constants';\nimport {\n createSimulationSession,\n submitSimulationSteps,\n} from './simulation-api';\nimport type { ReadStep, SimulationStepInput } from './types';\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\nexport interface SimulationEval {\n contract_id: string;\n code: string;\n}\n\ninterface SimulationBuilderOptions {\n apiEndpoint?: string;\n stacksNodeAPI?: string;\n network?: StacksNetworkName | string;\n skipTracing?: boolean;\n}\n\nexport class SimulationBuilder {\n private apiEndpoint: string;\n private stacksNodeAPI: string;\n private network: StacksNetworkName | string;\n private skipTracing: boolean;\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 ? STXER_API_TESTNET : STXER_API_MAINNET);\n this.stacksNodeAPI =\n options.stacksNodeAPI ??\n (isTestnet ? 'https://api.testnet.hiro.so' : 'https://api.hiro.so');\n this.skipTracing = options.skipTracing ?? false;\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 (V1 - not supported in V2, but kept for potential future support)\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 // SetContractCode - V2 native step type\n type: 'SetContractCode';\n contract_id: string;\n source_code: string;\n clarity_version: ClarityVersion;\n }\n | {\n // Reads - V2 native batch reads step type\n type: 'Reads';\n reads: ReadStep[];\n }\n | {\n // TenureExtend - V2 native step type\n type: 'TenureExtend';\n }\n )[] = [];\n\n public useBlockHeight(block: number) {\n this.block = block;\n return this;\n }\n\n public withSender(address: string) {\n this.sender = address;\n return this;\n }\n\n public inlineSimulation(simulationId: string) {\n this.steps.push({\n simulationId,\n });\n return this;\n }\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\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\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\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\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\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 public addSetContractCode(params: {\n contract_id: string;\n source_code: string;\n clarity_version?: ClarityVersion;\n }) {\n this.steps.push({\n type: 'SetContractCode',\n contract_id: params.contract_id,\n source_code: params.source_code,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity4,\n });\n return this;\n }\n\n public addReads(reads: ReadStep[]) {\n this.steps.push({\n type: 'Reads',\n reads,\n });\n return this;\n }\n\n public addTenureExtend() {\n this.steps.push({\n type: 'TenureExtend',\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(): Promise<string> {\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\n const v2Steps: SimulationStepInput[] = [];\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\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\n for (const step of this.steps) {\n if ('simulationId' in step) {\n // Inline simulation - for V2 we would need to fetch the previous simulation\n // and convert its steps to V2 format. This is complex and may not be\n // commonly used, so for now we'll throw an error.\n throw new Error(\n 'inlineSimulation is not yet supported in V2 API. Please run simulations from scratch.',\n );\n }\n if ('sender' in step && 'function_name' in step) {\n const nonce = await nextNonce(step.sender);\n const tx = await makeUnsignedContractCall({\n contractAddress: step.contract_id.split('.')[0] as string,\n contractName: step.contract_id.split('.')[1] as string,\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 v2Steps.push({ Transaction: bytesToHex(tx.serializeBytes()) });\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 v2Steps.push({ Transaction: bytesToHex(tx.serializeBytes()) });\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 v2Steps.push({ Transaction: bytesToHex(tx.serializeBytes()) });\n } else if ('code' in step) {\n // Eval step - format: [sender, sponsor, contract_id, code]\n // For eval without a sender, we use empty string for sponsor\n const [contractAddress, contractName] = step.contract_id.split('.');\n v2Steps.push({\n Eval: [\n this.sender || contractAddress,\n '',\n `${contractAddress}.${contractName}`,\n step.code,\n ],\n });\n } else if (step.type === 'SetContractCode') {\n // SetContractCode - format: [contract_id, code, clarity_version]\n v2Steps.push({\n SetContractCode: [\n step.contract_id,\n step.source_code,\n clarityVersionToNumber(step.clarity_version),\n ],\n });\n } else if (step.type === 'Reads') {\n // Reads - batch read operations\n v2Steps.push({\n Reads: step.reads,\n });\n } else if (step.type === 'TenureExtend') {\n // TenureExtend - format: []\n v2Steps.push({\n TenureExtend: [],\n });\n } else {\n console.log(`Invalid simulation step: ${step}`);\n }\n }\n\n // Create V2 simulation session\n const simulationId = await createSimulationSession(\n {\n block_height: block.block_height,\n block_hash: block.block_hash,\n skip_tracing: this.skipTracing,\n },\n { stxerApi: this.apiEndpoint },\n );\n\n // Submit steps\n await submitSimulationSteps(\n simulationId,\n { steps: v2Steps },\n { stxerApi: this.apiEndpoint },\n );\n\n console.log(\n `Simulation will be available at: https://stxer.xyz/simulations/${this.network}/${simulationId}`,\n );\n return simulationId;\n }\n\n public pipe(\n transform: (builder: SimulationBuilder) => SimulationBuilder,\n ): SimulationBuilder {\n return transform(this);\n }\n}\n\n// Helper function to convert Uint8Array to hex string\nfunction bytesToHex(bytes: Uint8Array): string {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('');\n}\n\n// Helper function to convert ClarityVersion to number\nfunction clarityVersionToNumber(version: ClarityVersion): number {\n switch (version) {\n case ClarityVersion.Clarity1:\n return 1;\n case ClarityVersion.Clarity2:\n return 2;\n case ClarityVersion.Clarity3:\n return 3;\n case ClarityVersion.Clarity4:\n return 4;\n default:\n return 4;\n }\n}\n\n// Re-export simulation types\nexport type {\n CreateSimulationRequest,\n ExecutionCost,\n InstantSimulationRequest,\n InstantSimulationResponse,\n ReadResult,\n ReadStep,\n SimulationMetadata,\n SimulationResult,\n SimulationStepInput,\n TransactionReceipt,\n} from './types';\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 { DEFAULT_STXER_API } from './constants';\nimport type { SidecarTip } from './types';\n\nexport interface TipOptions {\n stxerApi?: string;\n}\n\n/**\n * Fetch the current tip information from the sidecar.\n * @param options - Optional API endpoint configuration\n * @returns The current chain tip information\n */\nexport async function getTip(options: TipOptions = {}): Promise<SidecarTip> {\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/tip`;\n\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(\n `Failed to fetch tip: ${response.status} ${response.statusText}`,\n );\n }\n\n const text = await response.text();\n if (!text.startsWith('{')) {\n throw new Error(`Invalid response from tip endpoint: ${text}`);\n }\n\n return JSON.parse(text) as SidecarTip;\n}\n","/**\n * Type definitions for stxer-api V2 endpoints\n * Hand-written types based on OpenAPI spec at https://api.stxer.xyz/openapi.json\n */\n\n// =============================================================================\n// Sidecar Tip Types\n// =============================================================================\n\nexport interface TenureCost {\n read_count: number;\n read_length: number;\n write_count: number;\n write_length: number;\n runtime: number;\n}\n\nexport interface SidecarTip {\n bitcoin_height: number;\n block_hash: string;\n block_height: number;\n block_time: number;\n burn_block_height: number;\n burn_block_time: number;\n consensus_hash: string;\n index_block_hash: string;\n is_nakamoto: boolean;\n tenure_cost: TenureCost;\n tenure_height: number;\n sortition_id: string;\n epoch_id: string;\n}\n\n// =============================================================================\n// AST Types\n// =============================================================================\n\nexport interface ClarityAbiType {\n readonly?: { type: ClarityAbiTypeName; length?: number } | string;\n tuple?: { name: string; type: ClarityAbiType }[];\n list?: { type: ClarityAbiType; length: number };\n buffer?: { length: number };\n string_ascii?: { length: number };\n string_utf8?: { length: number };\n principal?: [];\n bool?: [];\n int?: { length: number };\n uint?: { length: number };\n response?: { ok: ClarityAbiType; error: ClarityAbiType };\n optional?: ClarityAbiType;\n contract?: { name: string; address: string };\n}\n\nexport type ClarityAbiTypeName =\n | 'optional'\n | 'response'\n | 'bool'\n | 'int'\n | 'uint'\n | 'string-ascii'\n | 'string-utf8'\n | 'buff'\n | 'list'\n | 'tuple'\n | 'principal'\n | 'trait-reference'\n | 'contract';\n\nexport interface ClarityAbiFunction {\n name: string;\n access: 'private' | 'public' | 'read_only';\n args: Array<{ name: string; type: ClarityAbiType }>;\n outputs: { type: ClarityAbiType };\n}\n\nexport interface ClarityAbiVariable {\n name: string;\n access: 'variable' | 'constant';\n type: ClarityAbiType;\n}\n\nexport interface ClarityAbiMap {\n name: string;\n key: ClarityAbiType;\n value: ClarityAbiType;\n}\n\nexport interface ClarityAbiFungibleToken {\n name: string;\n}\n\nexport interface ClarityAbiNonFungibleToken {\n name: string;\n type: ClarityAbiType;\n}\n\nexport type ClarityEpoch =\n | 'Epoch10'\n | 'Epoch20'\n | 'Epoch2_05'\n | 'Epoch21'\n | 'Epoch22'\n | 'Epoch23'\n | 'Epoch24'\n | 'Epoch25'\n | 'Epoch30'\n | 'Epoch31'\n | 'Epoch32'\n | 'Epoch33'\n | 'Epoch34'\n | 'Epoch35';\n\nexport type ClarityVersion = 'Clarity1' | 'Clarity2' | 'Clarity3' | 'Clarity4';\n\nexport interface ClarityAbi {\n functions: ClarityAbiFunction[];\n variables: ClarityAbiVariable[];\n maps: ClarityAbiMap[];\n fungible_tokens: ClarityAbiFungibleToken[];\n non_fungible_tokens: ClarityAbiNonFungibleToken[];\n epoch: ClarityEpoch;\n clarity_version: ClarityVersion;\n}\n\nexport interface SymbolicExpressionField {\n field: string;\n}\n\nexport interface SymbolicExpressionTraitReference {\n trait_reference: {\n clarity_name: string;\n trait_definition: string;\n trait_definition_type: 'Defined' | 'Imported';\n };\n}\n\nexport interface SymbolicExpressionAtom {\n atom: string;\n}\n\nexport interface SymbolicExpressionAtomValue {\n atom_value: string;\n}\n\nexport interface SymbolicExpressionLiteralValue {\n literal_value: string;\n}\n\nexport interface SymbolicExpressionList {\n list: SymbolicExpression[];\n}\n\nexport type SymbolicExpression = {\n id: number;\n span: string;\n expr:\n | SymbolicExpressionAtom\n | SymbolicExpressionAtomValue\n | SymbolicExpressionLiteralValue\n | SymbolicExpressionList\n | SymbolicExpressionField\n | SymbolicExpressionTraitReference;\n pre_comments?: Array<{ comment: string; span: string }>;\n post_comments?: Array<{ comment: string; span: string }>;\n end_line_comment?: string;\n};\n\nexport interface ContractAST {\n contract_identifier: string;\n expressions: SymbolicExpression[];\n top_level_expression_sorting: number[];\n referenced_traits: Record<\n string,\n { trait_definition: string; trait_definition_type: 'Defined' | 'Imported' }\n >;\n implemented_traits: string[];\n tx_id?: string;\n canonical?: boolean;\n contract_id?: string;\n block_height?: number;\n source_code?: string;\n abi?: ClarityAbi;\n}\n\n// =============================================================================\n// V2 Simulation Types\n// =============================================================================\n\nexport interface ExecutionCost {\n read_count: number;\n read_length: number;\n write_count: number;\n write_length: number;\n runtime: number;\n}\n\n/**\n * Receipt for a transaction that the engine executed to completion.\n *\n * \"Successful execution\" does NOT imply contract-level success. Four\n * failure signals to check, in this order:\n * 1. Outer `Err` on `Result.Transaction` — engine could not run the tx\n * at all (deserialization failure etc.); no receipt is produced.\n * 2. `post_condition_aborted: true` — execution ran, post-condition\n * tripped, state was rolled back.\n * 3. `vm_error: string` (without `post_condition_aborted`) — Clarity\n * VM raised a runtime error or static analysis failed.\n * 4. `(err uX)` inside `result` — contract returned a Clarity error\n * response. Application-level; NOT signalled by any field above.\n * Decode `result` to detect.\n *\n * `post_condition_aborted` and `vm_error` are NOT independent: when a\n * PC trips the upstream sets `post_condition_aborted: true` AND writes\n * the PC abort reason into `vm_error` as a side effect. The reverse is\n * not true — `vm_error` alone (with `post_condition_aborted: false`)\n * means a VM / analysis failure that is not a PC abort.\n */\nexport interface TransactionReceipt {\n /**\n * Clarity return value, SIP-005 hex-serialized. For contract-call txs\n * this includes the `(ok ...)` / `(err ...)` response wrapper —\n * Clarity-level `(err uX)` lives here, NOT on `vm_error` or the outer\n * `Err`.\n */\n result: string;\n stx_burned: number;\n tx_index: number;\n /**\n * Error message from the upstream Clarity VM. `null` when the tx had\n * no VM-level issue. When `post_condition_aborted` is `true` this\n * field is also populated with the PC abort reason — check\n * `post_condition_aborted` first to disambiguate.\n */\n vm_error: string | null;\n /**\n * `true` when one or more post-conditions failed and the tx was\n * aborted. Implies `vm_error` is also set (to the abort reason); the\n * reverse does not hold.\n */\n post_condition_aborted: boolean;\n /** Wall-clock simulation time in milliseconds. */\n costs: number;\n execution_cost: ExecutionCost;\n /**\n * Events emitted during execution (contract logs, STX transfers,\n * FT/NFT events, etc.). Each entry is a JSON-encoded **string** —\n * call `JSON.parse(events[i])` to get the event object. Items are\n * NOT JSON objects in the array.\n *\n * For typed access, use {@link parseSimulationEvent} or cast:\n * `JSON.parse(events[i]) as SimulationEvent`.\n */\n events: string[];\n}\n\nexport interface TransactionOkResult {\n Ok: TransactionReceipt;\n}\n\nexport interface TransactionErrResult {\n Err: string;\n}\n\n// =============================================================================\n// Simulation Events\n// =============================================================================\n// Wire format for entries inside `TransactionReceipt.events[]` (each entry\n// there is a JSON-encoded string carrying one of these payloads).\n//\n// Source of truth: `clarity/src/vm/events.rs` in\n// https://github.com/stacks-network/stacks-core —\n// `StacksTransactionEvent::json_serialize`. These types intentionally\n// differ from `@stacks/stacks-blockchain-api-types.TransactionEvent`,\n// which describes Hiro API responses with a different envelope.\n//\n// Numeric fields that the rust source emits via `format!(\"{}\", u128)` /\n// `format!(\"{}\", u64)` are typed as `string`, not `number` — the wire\n// carries them as decimal strings to preserve full precision.\n\n/** Common envelope present on every event variant. */\ninterface SimulationEventBase {\n /** Hex txid with leading `0x`. */\n txid: string;\n event_index: number;\n /**\n * `true` when the event was emitted from successfully committed code.\n * `false` when the tx was rolled back (post-condition abort, vm_error).\n * Tracks rust `tx_receipt.vm_error.is_none() && !post_condition_aborted`.\n */\n committed: boolean;\n}\n\n/** Payload for `print` events and other contract-emitted events. */\nexport interface SmartContractEventData {\n /** `<address>.<contract_name>` of the contract that emitted the event. */\n contract_identifier: string;\n /** Topic key — `\"print\"` for `(print …)` calls. */\n topic: string;\n /**\n * Structured Clarity Value JSON (the rust `Value` enum's serde output).\n * The shape is complex and varies by Clarity type; prefer `raw_value`\n * for typed decoding.\n */\n value: unknown;\n /**\n * SIP-005 hex of the value, with leading `0x`. Pass to\n * `deserializeCV()` from `@stacks/transactions` for typed decoding.\n */\n raw_value: string;\n}\n\nexport interface StxTransferEventData {\n sender: string;\n recipient: string;\n /** uSTX amount as a decimal string (rust serializes u128 via Display). */\n amount: string;\n /** Hex memo, possibly empty. */\n memo: string;\n}\n\nexport interface StxMintEventData {\n recipient: string;\n amount: string;\n}\n\nexport interface StxBurnEventData {\n sender: string;\n amount: string;\n}\n\nexport interface StxLockEventData {\n locked_amount: string;\n /** Decimal string (rust serializes u64 via Display). */\n unlock_height: string;\n locked_address: string;\n contract_identifier: string;\n}\n\nexport interface NftTransferEventData {\n /** `<contract_id>::<asset_name>`. */\n asset_identifier: string;\n sender: string;\n recipient: string;\n value: unknown;\n raw_value: string;\n}\n\nexport interface NftMintEventData {\n asset_identifier: string;\n recipient: string;\n value: unknown;\n raw_value: string;\n}\n\nexport interface NftBurnEventData {\n asset_identifier: string;\n sender: string;\n value: unknown;\n raw_value: string;\n}\n\nexport interface FtTransferEventData {\n asset_identifier: string;\n sender: string;\n recipient: string;\n amount: string;\n}\n\nexport interface FtMintEventData {\n asset_identifier: string;\n recipient: string;\n amount: string;\n}\n\nexport interface FtBurnEventData {\n asset_identifier: string;\n sender: string;\n amount: string;\n}\n\n/**\n * Discriminated union of every event variant the simulator emits.\n * The `type` discriminator names the per-variant payload key — e.g.\n * `type: 'contract_event'` carries the payload at `event.contract_event`.\n *\n * ```ts\n * const event = parseSimulationEvent(receipt.events[0]);\n * if (event.type === 'contract_event') {\n * // event.contract_event.{contract_identifier, topic, raw_value, value}\n * }\n * ```\n */\nexport type SimulationEvent =\n | (SimulationEventBase & {\n type: 'contract_event';\n contract_event: SmartContractEventData;\n })\n | (SimulationEventBase & {\n type: 'stx_transfer_event';\n stx_transfer_event: StxTransferEventData;\n })\n | (SimulationEventBase & {\n type: 'stx_mint_event';\n stx_mint_event: StxMintEventData;\n })\n | (SimulationEventBase & {\n type: 'stx_burn_event';\n stx_burn_event: StxBurnEventData;\n })\n | (SimulationEventBase & {\n type: 'stx_lock_event';\n stx_lock_event: StxLockEventData;\n })\n | (SimulationEventBase & {\n type: 'nft_transfer_event';\n nft_transfer_event: NftTransferEventData;\n })\n | (SimulationEventBase & {\n type: 'nft_mint_event';\n nft_mint_event: NftMintEventData;\n })\n | (SimulationEventBase & {\n type: 'nft_burn_event';\n nft_burn_event: NftBurnEventData;\n })\n | (SimulationEventBase & {\n type: 'ft_transfer_event';\n ft_transfer_event: FtTransferEventData;\n })\n | (SimulationEventBase & {\n type: 'ft_mint_event';\n ft_mint_event: FtMintEventData;\n })\n | (SimulationEventBase & {\n type: 'ft_burn_event';\n ft_burn_event: FtBurnEventData;\n });\n\n/** Convenience parser for `TransactionReceipt.events[i]`. */\nexport function parseSimulationEvent(raw: string): SimulationEvent {\n return JSON.parse(raw) as SimulationEvent;\n}\n\n// Read step types\nexport interface MapEntryStep {\n MapEntry: [contract_id: string, map_name: string, key_hex: string];\n}\n\nexport interface DataVarStep {\n DataVar: [contract_id: string, variable_name: string];\n}\n\nexport interface EvalReadonlyStep {\n /** `sponsor` is `\"\"` (empty string) when there is no sponsor. */\n EvalReadonly: [\n sender: string,\n sponsor: string,\n contract_id: string,\n code: string,\n ];\n}\n\nexport interface StxBalanceStep {\n /** Principal whose STX balance to read. */\n StxBalance: string;\n}\n\nexport interface FtBalanceStep {\n /**\n * Reads the FT balance via three separate parameters. Note: the batch\n * `ft_balance` field on `SimulationBatchReadsRequest` uses a different\n * `<contract_id>::<token_name>` combined identifier shape.\n */\n FtBalance: [contract_id: string, token_name: string, principal: string];\n}\n\nexport interface FtSupplyStep {\n FtSupply: [contract_id: string, token_name: string];\n}\n\nexport interface NonceStep {\n /** Principal whose nonce to read. */\n Nonce: string;\n}\n\nexport type ReadStep =\n | MapEntryStep\n | DataVarStep\n | EvalReadonlyStep\n | StxBalanceStep\n | FtBalanceStep\n | FtSupplyStep\n | NonceStep;\n\nexport interface ReadOkResult {\n Ok: string; // clarity value hex OR number string for balances/nonces\n}\n\nexport interface ReadErrResult {\n Err: string;\n}\n\nexport type ReadResult = ReadOkResult | ReadErrResult;\n\n/**\n * Per-step result returned by `POST /devtools/v2/simulations/{id}` (the\n * \"submit steps\" endpoint). Mirrors the rust `RunSimulationStepResult`\n * enum — externally tagged, exactly one variant key present.\n *\n * Distinct from `SimulationStepSummary`, which is what\n * `GET /devtools/v2/simulations/{id}` returns and includes the original\n * step input alongside the result.\n */\nexport type SimulationStepResult =\n | { Transaction: TransactionOkResult | TransactionErrResult }\n | { Eval: { Ok: string } | { Err: string } }\n | { SetContractCode: { Ok: null } | { Err: string } }\n | { Reads: ReadResult[] }\n | { TenureExtend: ExecutionCost };\n\n// Simulation step types (summary format from GET /devtools/v2/simulations/{id})\nexport interface TransactionStepSummary {\n /** Transaction serialized to hex. */\n Transaction: string;\n /** Hex-encoded txid. Empty string `\"\"` when the tx failed engine-level. */\n TxId: string;\n Result: {\n Transaction: TransactionOkResult | TransactionErrResult;\n };\n ExecutionCost: ExecutionCost;\n}\n\nexport interface ReadsStepSummary {\n Reads: ReadStep[];\n Result: {\n Reads: ReadResult[];\n };\n}\n\nexport interface SetContractCodeStepSummary {\n SetContractCode: [contract_id: string, code: string, clarity_version: number];\n Result: {\n SetContractCode: { Ok: null } | { Err: string };\n };\n}\n\nexport interface EvalStepSummary {\n /** `sponsor` is `\"\"` (empty string) when there is no sponsor. */\n Eval: [sender: string, sponsor: string, contract_id: string, code: string];\n Result: {\n Eval: { Ok: string } | { Err: string };\n };\n}\n\nexport interface TenureExtendStepSummary {\n Result: {\n TenureExtend: ExecutionCost;\n };\n}\n\nexport type SimulationStepSummary =\n | TransactionStepSummary\n | ReadsStepSummary\n | SetContractCodeStepSummary\n | EvalStepSummary\n | TenureExtendStepSummary;\n\n// Simulation metadata\nexport interface SimulationMetadata {\n block_height: number;\n block_hash: string;\n burn_block_height: number;\n burn_block_hash: string;\n consensus_hash: string;\n epoch: string;\n index_block_hash: string;\n skip_tracing: boolean;\n sortition_id: string;\n}\n\n// Full simulation result\nexport interface SimulationResult {\n metadata: SimulationMetadata;\n steps: SimulationStepSummary[];\n}\n\n// Create session request\nexport interface CreateSimulationRequest {\n block_height?: number;\n block_hash?: string;\n skip_tracing?: boolean;\n}\n\nexport interface CreateSimulationResponse {\n id: string;\n}\n\n// Submit steps request\nexport type SimulationStepInput =\n | { Transaction: string }\n | {\n /** `sponsor` is `\"\"` when there is no sponsor. */\n Eval: [\n sender: string,\n sponsor: string,\n contract_id: string,\n code: string,\n ];\n }\n | {\n SetContractCode: [\n contract_id: string,\n code: string,\n clarity_version: number,\n ];\n }\n | { Reads: ReadStep[] }\n | { TenureExtend: [] };\n\nexport interface SubmitSimulationStepsRequest {\n steps: SimulationStepInput[];\n}\n\nexport interface SubmitSimulationStepsResponse {\n steps: SimulationStepResult[];\n}\n\n// Batch reads from simulation\nexport interface SimulationBatchReadsRequest {\n /** `[contract_id, variable_name]` per entry. */\n vars?: [contract_id: string, variable_name: string][];\n /** `[contract_id, map_name, key_hex]` per entry. */\n maps?: [contract_id: string, map_name: string, key_hex: string][];\n /**\n * `[contract_id, function_name, ...arg_hex]` per entry. The first two\n * positions are fixed; remaining elements are hex-encoded Clarity\n * values, one per function argument (so the length matches the\n * function's arity, not arbitrary).\n */\n readonly?: [\n contract_id: string,\n function_name: string,\n ...args_hex: string[],\n ][];\n /**\n * `[sender, sponsor, contract_id, function_name, ...arg_hex]` per\n * entry. The first four positions are fixed (`sponsor` is `\"\"` when\n * there is no sponsor); remaining elements are hex-encoded Clarity\n * values, one per function argument.\n */\n readonly_with_sender?: [\n sender: string,\n sponsor: string,\n contract_id: string,\n function_name: string,\n ...args_hex: string[],\n ][];\n /** Principals to read STX balances for. */\n stx?: string[];\n /** Principals to read nonces for. */\n nonces?: string[];\n /** `[<contract_id>::<token_name>, principal]` per entry. */\n ft_balance?: [token_identifier: string, principal: string][];\n /**\n * Flat array of FT identifiers in `<contract_id>::<token_name>` form,\n * one entry per token to look up. Any length.\n */\n ft_supply?: string[];\n}\n\n/**\n * Each category is omitted from the JSON response when the corresponding\n * request field was empty/absent (rust uses\n * `serde(skip_serializing_if = \"Vec::is_empty\")` per field).\n */\nexport interface SimulationBatchReadsResponse {\n vars?: ReadResult[];\n maps?: ReadResult[];\n readonly?: ReadResult[];\n readonly_with_sender?: ReadResult[];\n stx?: ReadResult[];\n nonces?: ReadResult[];\n ft_balance?: ReadResult[];\n ft_supply?: ReadResult[];\n}\n\n// Instant simulation\nexport interface InstantSimulationRequest {\n /** Transaction serialized to hex. */\n transaction: string;\n block_height?: number;\n block_hash?: string;\n reads?: ReadStep[];\n}\n\nexport interface InstantSimulationResponse {\n /** Always present (may be `[]`). Aligned positionally with the request `reads`. */\n reads: ReadResult[];\n receipt: TransactionReceipt;\n}\n"],"names":["STXER_API_MAINNET","STXER_API_TESTNET","DEFAULT_STXER_API","getContractAST","_x","_getContractAST","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","options","_options$stxerApi","url","response","text","w","_context","n","stxerApi","contractId","fetch","method","headers","Accept","v","ok","Error","status","statusText","startsWith","a","JSON","parse","parseContract","_x2","_parseContract","_callee2","_options$stxerApi2","payload","_context2","contract_id","source_code","sourceCode","clarityVersion","undefined","clarity_version","epoch","body","stringify","convertResults","rs","results","_iterator","_createForOfIteratorHelperLoose","_step","done","value","push","deserializeCV","Ok","Err","batchRead","_batchRead","reads","ibh","index_block_hash","substring","vars","maps","readonly","tip","variables","_iterator2","_step2","variable","serializeCV","contract","variableName","_iterator3","_step3","map","mapName","mapKey","_iterator4","_step4","ro","functionName","concat","functionArgs","data","includes","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","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","_params$batchProcesso2","_params$contract$spli2","mapDef","key","ClarityType","OptionalNone","OptionalSome","someCV","readVariable","_x3","_readVariable","_callee3","_params$batchProcesso3","_params$contract$spli3","varDef","_context3","instantSimulation","_instantSimulation","apiEndpoint","json","createSimulationSession","_x4","_createSimulationSession","apiOptions","_apiOptions$stxerApi","id","submitSimulationSteps","_x5","_x6","_x7","_submitSimulationSteps","sessionId","getSimulationResult","_x8","_x9","_getSimulationResult","_callee4","_options$stxerApi3","_context4","simulationBatchReads","_x0","_x1","_x10","_simulationBatchReads","_callee5","_options$stxerApi4","_context5","setSender","tx","sender","_c32addressDecode","c32addressDecode","addressVersion","signer","AddressVersion","MainnetSingleSig","TestnetSingleSig","auth","spendingCondition","hashMode","AddressHashMode","P2PKH","MainnetMultiSig","TestnetMultiSig","sc","P2SH","fields","signaturesRequired","nonce","fee","SimulationBuilder","_options$network","_options$apiEndpoint","_options$stacksNodeAP","_options$skipTracing","stacksNodeAPI","network","skipTracing","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","ClarityVersion","Clarity4","addEvalCode","inside_contract_id","code","addMapRead","addVarRead","addSetContractCode","_params$clarity_versi2","addReads","addTenureExtend","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","Number","isNaN","getNodeInfo","stacksEndpoint","richFetch","then","r","height","hash","block_height","block_hash","run","_run","v2Steps","nonce_by_address","nextNonce","step","_step$function_args","_nonce","_tx","_nonce2","_tx2","_step$contract_id$spl","console","log","account","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","Transaction","bytesToHex","serializeBytes","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","contract_name","codeBody","Eval","SetContractCode","clarityVersionToNumber","Reads","TenureExtend","skip_tracing","pipe","transform","bytes","Array","from","b","toString","padStart","join","version","Clarity1","Clarity2","Clarity3","getTip","_getTip","parseSimulationEvent","raw"],"mappings":"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"}
|
package/dist/tip.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WARNING:
|
|
3
|
+
*
|
|
4
|
+
* this file will be used in cross-runtime environments (browser, cloudflare workers, XLinkSDK, etc.),
|
|
5
|
+
* so please be careful when adding `import`s to it.
|
|
6
|
+
*/
|
|
7
|
+
import type { SidecarTip } from './types';
|
|
8
|
+
export interface TipOptions {
|
|
9
|
+
stxerApi?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Fetch the current tip information from the sidecar.
|
|
13
|
+
* @param options - Optional API endpoint configuration
|
|
14
|
+
* @returns The current chain tip information
|
|
15
|
+
*/
|
|
16
|
+
export declare function getTip(options?: TipOptions): Promise<SidecarTip>;
|