stxer 0.3.1 → 0.3.3
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 +93 -4
- package/dist/batch-api.d.ts +16 -3
- package/dist/stxer.cjs.development.js +56 -49
- 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 +57 -50
- package/dist/stxer.esm.js.map +1 -1
- package/package.json +5 -1
- package/src/batch-api.ts +174 -143
- package/src/sample/read.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stxer.cjs.production.min.js","sources":["../src/batch-api.ts","../src/simulation.ts"],"sourcesContent":["import {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n type OptionalCV,\n serializeCV,\n } from '@stacks/transactions';\n \n export interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n index_block_hash?: string;\n }\n \n export interface BatchReadsResult {\n variables: (ClarityValue | Error)[];\n maps: (OptionalCV | Error)[];\n }\n \n export interface BatchApiOptions {\n stxerApi?: string;\n }\n \n const DEFAULT_STXER_API = 'https://api.stxer.xyz';\n \n export async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n ): Promise<BatchReadsResult> {\n const payload: string[][] = [];\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n \n const ibh =\n reads.index_block_hash == null\n ? null\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-reads${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch reads failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: BatchReadsResult = {\n variables: [],\n maps: [],\n };\n let variablesLength = 0;\n if (reads.variables != null) {\n variablesLength = reads.variables.length;\n for (let i = 0; i < variablesLength; i++) {\n const result = results[i];\n if ('Ok' in result) {\n rs.variables.push(deserializeCV(result.Ok));\n } else {\n rs.variables.push(new Error(result.Err));\n }\n }\n }\n if (reads.maps != null) {\n for (let i = 0; i < reads.maps.length; i++) {\n const result = results[i + variablesLength];\n if ('Ok' in result) {\n rs.maps.push(deserializeCV(result.Ok) as OptionalCV);\n } else {\n rs.maps.push(new Error(result.Err));\n }\n }\n }\n return rs;\n }\n \n export interface BatchReadonlyRequest {\n readonly: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n }\n \n export async function batchReadonly(\n req: BatchReadonlyRequest,\n options: BatchApiOptions = {}\n ): Promise<(ClarityValue | Error)[]> {\n const payload = req.readonly.map((r) => [\n serializeCV(r.contract),\n r.functionName,\n ...r.functionArgs.map((arg) => serializeCV(arg)),\n ]);\n \n const ibh =\n req.index_block_hash == null\n ? null\n : req.index_block_hash.startsWith('0x')\n ? req.index_block_hash.substring(2)\n : req.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-readonly${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch readonly failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: (ClarityValue | Error)[] = [];\n for (const result of results) {\n if ('Ok' in result) {\n rs.push(deserializeCV(result.Ok));\n } else {\n rs.push(new Error(result.Err));\n }\n }\n return rs;\n }\n ","import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport {\n type ClarityValue,\n ClarityVersion,\n PostConditionMode,\n type StacksTransactionWire,\n bufferCV,\n contractPrincipalCV,\n deserializeTransaction,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\n\nfunction runTx(tx: StacksTransactionWire) {\n // type 0: run transaction\n return tupleCV({ type: uintCV(0), data: bufferCV(tx.serializeBytes()) });\n}\n\nexport interface SimulationEval {\n contract_id: string;\n code: string;\n}\n\nexport function runEval({ contract_id, code }: SimulationEval) {\n const [contract_address, contract_name] = contract_id.split('.');\n // type 1: eval arbitrary code inside a contract\n return tupleCV({\n type: uintCV(1),\n data: bufferCV(\n serializeCVBytes(\n tupleCV({\n contract: contractPrincipalCV(contract_address, contract_name),\n code: stringAsciiCV(code),\n })\n )\n ),\n });\n}\n\nexport async function runSimulation(\n apiEndpoint: string,\n block_hash: string,\n block_height: number,\n txs: (StacksTransactionWire | SimulationEval)[]\n) {\n // Convert 'sim-v1' to Uint8Array\n const header = new TextEncoder().encode('sim-v1');\n // Create 8 bytes for block height\n const heightBytes = new Uint8Array(8);\n // Convert block height to bytes\n const view = new DataView(heightBytes.buffer);\n view.setBigUint64(0, BigInt(block_height), false); // false for big-endian\n\n // Convert block hash to bytes\n const hashHex = block_hash.startsWith('0x')\n ? block_hash.substring(2)\n : block_hash;\n // Replace non-null assertion with null check\n const matches = hashHex.match(/.{1,2}/g);\n if (!matches) {\n throw new Error('Invalid block hash format');\n }\n const hashBytes = new Uint8Array(\n matches.map((byte) => Number.parseInt(byte, 16))\n );\n\n // Convert transactions to bytes\n const txBytes = txs\n .map((t) => ('contract_id' in t && 'code' in t ? runEval(t) : runTx(t)))\n .map((t) => serializeCVBytes(t));\n\n // Combine all byte arrays\n const totalLength =\n header.length +\n heightBytes.length +\n hashBytes.length +\n txBytes.reduce((acc, curr) => acc + curr.length, 0);\n const body = new Uint8Array(totalLength);\n\n let offset = 0;\n body.set(header, offset);\n offset += header.length;\n body.set(heightBytes, offset);\n offset += heightBytes.length;\n body.set(hashBytes, offset);\n offset += hashBytes.length;\n for (const tx of txBytes) {\n body.set(tx, offset);\n offset += tx.length;\n }\n\n const rs = await fetch(apiEndpoint, {\n method: 'POST',\n body,\n }).then(async (rs) => {\n const response = await rs.text();\n if (!response.startsWith('{')) {\n throw new Error(`failed to submit simulation: ${response}`);\n }\n return JSON.parse(response) as { id: string };\n });\n return rs.id;\n}\n\ninterface SimulationBuilderOptions {\n apiEndpoint?: string;\n stacksNodeAPI?: string;\n network?: StacksNetworkName | string;\n}\n\nexport class SimulationBuilder {\n private apiEndpoint: string;\n private stacksNodeAPI: string;\n private network: StacksNetworkName | string;\n\n private constructor(options: SimulationBuilderOptions = {}) {\n this.apiEndpoint = options.apiEndpoint ?? 'https://api.stxer.xyz';\n this.stacksNodeAPI = options.stacksNodeAPI ?? 'https://api.hiro.so';\n this.network = options.network ?? 'mainnet';\n }\n\n public static new(options?: SimulationBuilderOptions) {\n return new SimulationBuilder(options);\n }\n\n // biome-ignore lint/style/useNumberNamespace: <explanation>\n private block = NaN;\n private sender = '';\n private steps: (\n | {\n // inline simulation\n simulationId: string;\n }\n | {\n // contract call\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender: string;\n fee: number;\n }\n | {\n // contract deploy\n contract_name: string;\n source_code: string;\n deployer: string;\n fee: number;\n clarity_version: ClarityVersion;\n }\n | {\n // STX transfer\n recipient: string;\n amount: number;\n sender: string;\n fee: number;\n }\n | SimulationEval\n )[] = [];\n\n public useBlockHeight(block: number) {\n this.block = block;\n return this;\n }\n public withSender(address: string) {\n this.sender = address;\n return this;\n }\n public inlineSimulation(simulationId: string) {\n this.steps.push({\n simulationId,\n })\n return this;\n }\n public addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n let network = this.network === 'mainnet' ? STACKS_MAINNET : STACKS_TESTNET;\n if (this.stacksNodeAPI) {\n network = {\n ...network,\n client: {\n ...network.client,\n baseUrl: this.stacksNodeAPI,\n },\n };\n }\n for (const step of this.steps) {\n if ('simulationId' in step) {\n const previousSimulation: {steps: ({tx: string} | {code: string, contract: string})[]} = await fetch(`https://api.stxer.xyz/simulations/${step.simulationId}/request`).then(x => x.json())\n for (const step of previousSimulation.steps) {\n if ('tx' in step) {\n txs.push(deserializeTransaction(step.tx));\n } else if ('code' in step && 'contract' in step) {\n txs.push({\n contract_id: step.contract,\n code: step.code,\n });\n }\n }\n } else if ('sender' in step && 'function_name' in step) {\n const nonce = await nextNonce(step.sender);\n const [contractAddress, contractName] = step.contract_id.split('.');\n const tx = await makeUnsignedContractCall({\n contractAddress,\n contractName,\n functionName: step.function_name,\n functionArgs: step.function_args ?? [],\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('sender' in step && 'recipient' in step) {\n const nonce = await nextNonce(step.sender);\n const tx = await makeUnsignedSTXTokenTransfer({\n recipient: step.recipient,\n amount: step.amount,\n nonce,\n network,\n publicKey: '',\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('deployer' in step) {\n const nonce = await nextNonce(step.deployer);\n const tx = await makeUnsignedContractDeploy({\n contractName: step.contract_name,\n codeBody: step.source_code,\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.deployer)[1];\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.log(`Invalid simulation step:`, step);\n }\n }\n const id = await runSimulation(\n `${this.apiEndpoint}/simulations`,\n block.block_hash,\n block.block_height,\n txs\n );\n console.log(\n `Simulation will be available at: https://stxer.xyz/simulations/${this.network}/${id}`\n );\n return id;\n }\n\n public pipe(transform: (builder: SimulationBuilder) => SimulationBuilder): SimulationBuilder {\n return transform(this);\n }\n}\n"],"names":["DEFAULT_STXER_API","_batchRead","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","payload","variables","_iterator","_createForOfIteratorHelperLoose","_step","done","push","serializeCV","variable","value","contract","variableName","maps","_iterator2","_step2","map","mapName","mapKey","ibh","index_block_hash","startsWith","substring","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","data","sent","text","includes","Error","results","parse","rs","variablesLength","length","i","result","deserializeCV","Ok","Err","abrupt","stop","apply","this","arguments","_batchReadonly","_callee2","req","readonly","r","functionName","concat","functionArgs","arg","_options$stxerApi2","_context2","_iterator3","_step3","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","code","_contract_id$split","contract_id","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_x","_x2","_x3","_x4","_runSimulation","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","hashHex","matches","hashBytes","txBytes","totalLength","offset","_step4","wrap","_context5","prev","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","set","then","_ref3","_callee4","response","_context4","_x6","id","SimulationBuilder","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","_proto","prototype","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","params","_params$sender","_params$fee","_extends","fee","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","deployer","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","key","addVarRead","getBlockInfo","_getBlockInfo","info","isNaN","getNodeInfo","stacksEndpoint","stacks_tip_height","richFetch","json","height","hash","run","_run","_callee3","nonce_by_address","nextNonce","step","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_this","_context3","console","log","Map","_ref2","account","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","x","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","auth","spendingCondition","signer","c32addressDecode","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","pipe","transform"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stxer.cjs.production.min.js","sources":["../src/batch-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 type OptionalCV,\n serializeCV,\n} from '@stacks/transactions';\n\nexport interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n readonly?: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport interface BatchReadsResult {\n tip: string;\n vars: (ClarityValue | Error)[];\n maps: (ClarityValue | Error)[];\n readonly: (ClarityValue | Error)[];\n}\n\nexport interface BatchApiOptions {\n stxerApi?: string;\n}\n\nconst DEFAULT_STXER_API = 'https://api.stxer.xyz';\n\nfunction convertResults(\n rs: ({ Ok: string } | { Err: string })[],\n): (ClarityValue | Error)[] {\n const results: (ClarityValue | Error)[] = [];\n for (const v of rs) {\n if ('Ok' in v) {\n results.push(deserializeCV(v.Ok));\n } else {\n results.push(new Error(v.Err));\n }\n }\n return results;\n}\n\nexport async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n): Promise<BatchReadsResult> {\n const ibh =\n reads.index_block_hash == null\n ? undefined\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n\n const payload: {\n tip?: string;\n vars: string[][];\n maps: string[][];\n readonly: string[][];\n } = { vars: [], maps: [], readonly: [], tip: ibh };\n\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.vars.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.maps.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n\n if (reads.readonly != null) {\n for (const ro of reads.readonly) {\n payload.readonly.push([\n serializeCV(ro.contract),\n ro.functionName,\n ...ro.functionArgs.map(v => serializeCV(v)),\n ]);\n }\n }\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch reads failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload,\n )}`,\n );\n }\n\n const rs = JSON.parse(text) as {\n tip: string;\n vars: ({ Ok: string } | { Err: string })[];\n maps: ({ Ok: string } | { Err: string })[];\n readonly: ({ Ok: string } | { Err: string })[];\n };\n\n return {\n tip: rs.tip,\n vars: convertResults(rs.vars),\n maps: convertResults(rs.maps),\n readonly: convertResults(rs.readonly),\n };\n}\n\nexport interface BatchReadonlyRequest {\n readonly: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport async function batchReadonly(\n req: BatchReadonlyRequest,\n options: BatchApiOptions = {}\n): Promise<(ClarityValue | Error)[]> {\n const payload = req.readonly.map((r) => [\n serializeCV(r.contract),\n r.functionName,\n ...r.functionArgs.map((arg) => serializeCV(arg)),\n ]);\n\n const ibh =\n req.index_block_hash == null\n ? null\n : req.index_block_hash.startsWith('0x')\n ? req.index_block_hash.substring(2)\n : req.index_block_hash;\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-readonly${ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch readonly failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: (ClarityValue | Error)[] = [];\n for (const result of results) {\n if ('Ok' in result) {\n rs.push(deserializeCV(result.Ok));\n } else {\n rs.push(new Error(result.Err));\n }\n }\n return rs;\n}\n","import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport {\n type ClarityValue,\n ClarityVersion,\n PostConditionMode,\n type StacksTransactionWire,\n bufferCV,\n contractPrincipalCV,\n deserializeTransaction,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\n\nfunction runTx(tx: StacksTransactionWire) {\n // type 0: run transaction\n return tupleCV({ type: uintCV(0), data: bufferCV(tx.serializeBytes()) });\n}\n\nexport interface SimulationEval {\n contract_id: string;\n code: string;\n}\n\nexport function runEval({ contract_id, code }: SimulationEval) {\n const [contract_address, contract_name] = contract_id.split('.');\n // type 1: eval arbitrary code inside a contract\n return tupleCV({\n type: uintCV(1),\n data: bufferCV(\n serializeCVBytes(\n tupleCV({\n contract: contractPrincipalCV(contract_address, contract_name),\n code: stringAsciiCV(code),\n })\n )\n ),\n });\n}\n\nexport async function runSimulation(\n apiEndpoint: string,\n block_hash: string,\n block_height: number,\n txs: (StacksTransactionWire | SimulationEval)[]\n) {\n // Convert 'sim-v1' to Uint8Array\n const header = new TextEncoder().encode('sim-v1');\n // Create 8 bytes for block height\n const heightBytes = new Uint8Array(8);\n // Convert block height to bytes\n const view = new DataView(heightBytes.buffer);\n view.setBigUint64(0, BigInt(block_height), false); // false for big-endian\n\n // Convert block hash to bytes\n const hashHex = block_hash.startsWith('0x')\n ? block_hash.substring(2)\n : block_hash;\n // Replace non-null assertion with null check\n const matches = hashHex.match(/.{1,2}/g);\n if (!matches) {\n throw new Error('Invalid block hash format');\n }\n const hashBytes = new Uint8Array(\n matches.map((byte) => Number.parseInt(byte, 16))\n );\n\n // Convert transactions to bytes\n const txBytes = txs\n .map((t) => ('contract_id' in t && 'code' in t ? runEval(t) : runTx(t)))\n .map((t) => serializeCVBytes(t));\n\n // Combine all byte arrays\n const totalLength =\n header.length +\n heightBytes.length +\n hashBytes.length +\n txBytes.reduce((acc, curr) => acc + curr.length, 0);\n const body = new Uint8Array(totalLength);\n\n let offset = 0;\n body.set(header, offset);\n offset += header.length;\n body.set(heightBytes, offset);\n offset += heightBytes.length;\n body.set(hashBytes, offset);\n offset += hashBytes.length;\n for (const tx of txBytes) {\n body.set(tx, offset);\n offset += tx.length;\n }\n\n const rs = await fetch(apiEndpoint, {\n method: 'POST',\n body,\n }).then(async (rs) => {\n const response = await rs.text();\n if (!response.startsWith('{')) {\n throw new Error(`failed to submit simulation: ${response}`);\n }\n return JSON.parse(response) as { id: string };\n });\n return rs.id;\n}\n\ninterface SimulationBuilderOptions {\n apiEndpoint?: string;\n stacksNodeAPI?: string;\n network?: StacksNetworkName | string;\n}\n\nexport class SimulationBuilder {\n private apiEndpoint: string;\n private stacksNodeAPI: string;\n private network: StacksNetworkName | string;\n\n private constructor(options: SimulationBuilderOptions = {}) {\n this.apiEndpoint = options.apiEndpoint ?? 'https://api.stxer.xyz';\n this.stacksNodeAPI = options.stacksNodeAPI ?? 'https://api.hiro.so';\n this.network = options.network ?? 'mainnet';\n }\n\n public static new(options?: SimulationBuilderOptions) {\n return new SimulationBuilder(options);\n }\n\n // biome-ignore lint/style/useNumberNamespace: <explanation>\n private block = NaN;\n private sender = '';\n private steps: (\n | {\n // inline simulation\n simulationId: string;\n }\n | {\n // contract call\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender: string;\n fee: number;\n }\n | {\n // contract deploy\n contract_name: string;\n source_code: string;\n deployer: string;\n fee: number;\n clarity_version: ClarityVersion;\n }\n | {\n // STX transfer\n recipient: string;\n amount: number;\n sender: string;\n fee: number;\n }\n | SimulationEval\n )[] = [];\n\n public useBlockHeight(block: number) {\n this.block = block;\n return this;\n }\n public withSender(address: string) {\n this.sender = address;\n return this;\n }\n public inlineSimulation(simulationId: string) {\n this.steps.push({\n simulationId,\n })\n return this;\n }\n public addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n let network = this.network === 'mainnet' ? STACKS_MAINNET : STACKS_TESTNET;\n if (this.stacksNodeAPI) {\n network = {\n ...network,\n client: {\n ...network.client,\n baseUrl: this.stacksNodeAPI,\n },\n };\n }\n for (const step of this.steps) {\n if ('simulationId' in step) {\n const previousSimulation: {steps: ({tx: string} | {code: string, contract: string})[]} = await fetch(`https://api.stxer.xyz/simulations/${step.simulationId}/request`).then(x => x.json())\n for (const step of previousSimulation.steps) {\n if ('tx' in step) {\n txs.push(deserializeTransaction(step.tx));\n } else if ('code' in step && 'contract' in step) {\n txs.push({\n contract_id: step.contract,\n code: step.code,\n });\n }\n }\n } else if ('sender' in step && 'function_name' in step) {\n const nonce = await nextNonce(step.sender);\n const [contractAddress, contractName] = step.contract_id.split('.');\n const tx = await makeUnsignedContractCall({\n contractAddress,\n contractName,\n functionName: step.function_name,\n functionArgs: step.function_args ?? [],\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('sender' in step && 'recipient' in step) {\n const nonce = await nextNonce(step.sender);\n const tx = await makeUnsignedSTXTokenTransfer({\n recipient: step.recipient,\n amount: step.amount,\n nonce,\n network,\n publicKey: '',\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('deployer' in step) {\n const nonce = await nextNonce(step.deployer);\n const tx = await makeUnsignedContractDeploy({\n contractName: step.contract_name,\n codeBody: step.source_code,\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.deployer)[1];\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.log(`Invalid simulation step:`, step);\n }\n }\n const id = await runSimulation(\n `${this.apiEndpoint}/simulations`,\n block.block_hash,\n block.block_height,\n txs\n );\n console.log(\n `Simulation will be available at: https://stxer.xyz/simulations/${this.network}/${id}`\n );\n return id;\n }\n\n public pipe(transform: (builder: SimulationBuilder) => SimulationBuilder): SimulationBuilder {\n return transform(this);\n }\n}\n"],"names":["DEFAULT_STXER_API","convertResults","rs","_step","results","_iterator","_createForOfIteratorHelperLoose","done","v","value","push","deserializeCV","Ok","Error","Err","_batchRead","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","ibh","index_block_hash","undefined","startsWith","substring","payload","vars","maps","readonly","tip","variables","_iterator2","_step2","serializeCV","variable","contract","variableName","_iterator3","_step3","map","mapName","mapKey","_iterator4","_step4","ro","functionName","concat","functionArgs","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","headers","data","sent","text","includes","parse","abrupt","stop","apply","this","arguments","_batchReadonly","_callee2","req","r","arg","_options$stxerApi2","_context2","_iterator5","_step5","result","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","code","_contract_id$split","contract_id","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_x","_x2","_x3","_x4","_runSimulation","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","hashHex","matches","hashBytes","txBytes","totalLength","offset","wrap","_context5","prev","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","length","reduce","acc","curr","set","then","_ref3","_callee4","response","_context4","_x6","id","SimulationBuilder","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","_proto","prototype","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","params","_params$sender","_params$fee","_extends","fee","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","deployer","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","key","addVarRead","getBlockInfo","_getBlockInfo","info","isNaN","getNodeInfo","stacksEndpoint","stacks_tip_height","richFetch","json","height","hash","run","_run","_callee3","nonce_by_address","nextNonce","step","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_this","_context3","console","log","Map","_ref2","account","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","x","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","auth","spendingCondition","signer","c32addressDecode","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","pipe","transform"],"mappings":"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"}
|
package/dist/stxer.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { serializeCV, deserializeCV, tupleCV, uintCV, bufferCV, serializeCVBytes, contractPrincipalCV, stringAsciiCV, ClarityVersion, makeUnsignedContractDeploy, PostConditionMode, makeUnsignedSTXTokenTransfer, makeUnsignedContractCall, deserializeTransaction } from '@stacks/transactions';
|
|
2
2
|
import { richFetch, getNodeInfo } from 'ts-clarity';
|
|
3
3
|
import { STACKS_MAINNET, STACKS_TESTNET } from '@stacks/network';
|
|
4
4
|
import { c32addressDecode } from 'c32check';
|
|
@@ -369,80 +369,87 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
369
369
|
}
|
|
370
370
|
|
|
371
371
|
var DEFAULT_STXER_API = 'https://api.stxer.xyz';
|
|
372
|
+
function convertResults(rs) {
|
|
373
|
+
var results = [];
|
|
374
|
+
for (var _iterator = _createForOfIteratorHelperLoose(rs), _step; !(_step = _iterator()).done;) {
|
|
375
|
+
var v = _step.value;
|
|
376
|
+
if ('Ok' in v) {
|
|
377
|
+
results.push(deserializeCV(v.Ok));
|
|
378
|
+
} else {
|
|
379
|
+
results.push(new Error(v.Err));
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
return results;
|
|
383
|
+
}
|
|
372
384
|
function batchRead(_x, _x2) {
|
|
373
385
|
return _batchRead.apply(this, arguments);
|
|
374
386
|
}
|
|
375
387
|
function _batchRead() {
|
|
376
388
|
_batchRead = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(reads, options) {
|
|
377
389
|
var _options$stxerApi;
|
|
378
|
-
var
|
|
390
|
+
var ibh, payload, _iterator2, _step2, variable, _iterator3, _step3, map, _iterator4, _step4, ro, url, data, text, rs;
|
|
379
391
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
380
392
|
while (1) switch (_context.prev = _context.next) {
|
|
381
393
|
case 0:
|
|
382
394
|
if (options === void 0) {
|
|
383
395
|
options = {};
|
|
384
396
|
}
|
|
385
|
-
|
|
397
|
+
ibh = reads.index_block_hash == null ? undefined : reads.index_block_hash.startsWith('0x') ? reads.index_block_hash.substring(2) : reads.index_block_hash;
|
|
398
|
+
payload = {
|
|
399
|
+
vars: [],
|
|
400
|
+
maps: [],
|
|
401
|
+
readonly: [],
|
|
402
|
+
tip: ibh
|
|
403
|
+
};
|
|
386
404
|
if (reads.variables != null) {
|
|
387
|
-
for (
|
|
388
|
-
variable =
|
|
389
|
-
payload.push([serializeCV(variable.contract), variable.variableName]);
|
|
405
|
+
for (_iterator2 = _createForOfIteratorHelperLoose(reads.variables); !(_step2 = _iterator2()).done;) {
|
|
406
|
+
variable = _step2.value;
|
|
407
|
+
payload.vars.push([serializeCV(variable.contract), variable.variableName]);
|
|
390
408
|
}
|
|
391
409
|
}
|
|
392
410
|
if (reads.maps != null) {
|
|
393
|
-
for (
|
|
394
|
-
map =
|
|
395
|
-
payload.push([serializeCV(map.contract), map.mapName, serializeCV(map.mapKey)]);
|
|
411
|
+
for (_iterator3 = _createForOfIteratorHelperLoose(reads.maps); !(_step3 = _iterator3()).done;) {
|
|
412
|
+
map = _step3.value;
|
|
413
|
+
payload.maps.push([serializeCV(map.contract), map.mapName, serializeCV(map.mapKey)]);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
if (reads.readonly != null) {
|
|
417
|
+
for (_iterator4 = _createForOfIteratorHelperLoose(reads.readonly); !(_step4 = _iterator4()).done;) {
|
|
418
|
+
ro = _step4.value;
|
|
419
|
+
payload.readonly.push([serializeCV(ro.contract), ro.functionName].concat(ro.functionArgs.map(function (v) {
|
|
420
|
+
return serializeCV(v);
|
|
421
|
+
})));
|
|
396
422
|
}
|
|
397
423
|
}
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
_context.next = 8;
|
|
424
|
+
url = ((_options$stxerApi = options.stxerApi) != null ? _options$stxerApi : DEFAULT_STXER_API) + "/sidecar/v2/batch";
|
|
425
|
+
_context.next = 9;
|
|
401
426
|
return fetch(url, {
|
|
402
427
|
method: 'POST',
|
|
403
|
-
body: JSON.stringify(payload)
|
|
428
|
+
body: JSON.stringify(payload),
|
|
429
|
+
headers: {
|
|
430
|
+
'Content-Type': 'application/json'
|
|
431
|
+
}
|
|
404
432
|
});
|
|
405
|
-
case
|
|
433
|
+
case 9:
|
|
406
434
|
data = _context.sent;
|
|
407
|
-
_context.next =
|
|
435
|
+
_context.next = 12;
|
|
408
436
|
return data.text();
|
|
409
|
-
case
|
|
437
|
+
case 12:
|
|
410
438
|
text = _context.sent;
|
|
411
439
|
if (!(!text.includes('Ok') && !text.includes('Err'))) {
|
|
412
|
-
_context.next =
|
|
440
|
+
_context.next = 15;
|
|
413
441
|
break;
|
|
414
442
|
}
|
|
415
443
|
throw new Error("Requesting batch reads failed: " + text + ", url: " + url + ", payload: " + JSON.stringify(payload));
|
|
416
|
-
case
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
for (i = 0; i < variablesLength; i++) {
|
|
426
|
-
result = results[i];
|
|
427
|
-
if ('Ok' in result) {
|
|
428
|
-
rs.variables.push(deserializeCV(result.Ok));
|
|
429
|
-
} else {
|
|
430
|
-
rs.variables.push(new Error(result.Err));
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
if (reads.maps != null) {
|
|
435
|
-
for (_i = 0; _i < reads.maps.length; _i++) {
|
|
436
|
-
_result = results[_i + variablesLength];
|
|
437
|
-
if ('Ok' in _result) {
|
|
438
|
-
rs.maps.push(deserializeCV(_result.Ok));
|
|
439
|
-
} else {
|
|
440
|
-
rs.maps.push(new Error(_result.Err));
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
return _context.abrupt("return", rs);
|
|
445
|
-
case 20:
|
|
444
|
+
case 15:
|
|
445
|
+
rs = JSON.parse(text);
|
|
446
|
+
return _context.abrupt("return", {
|
|
447
|
+
tip: rs.tip,
|
|
448
|
+
vars: convertResults(rs.vars),
|
|
449
|
+
maps: convertResults(rs.maps),
|
|
450
|
+
readonly: convertResults(rs.readonly)
|
|
451
|
+
});
|
|
452
|
+
case 17:
|
|
446
453
|
case "end":
|
|
447
454
|
return _context.stop();
|
|
448
455
|
}
|
|
@@ -456,7 +463,7 @@ function batchReadonly(_x3, _x4) {
|
|
|
456
463
|
function _batchReadonly() {
|
|
457
464
|
_batchReadonly = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(req, options) {
|
|
458
465
|
var _options$stxerApi2;
|
|
459
|
-
var payload, ibh, url, data, text, results, rs,
|
|
466
|
+
var payload, ibh, url, data, text, results, rs, _iterator5, _step5, result;
|
|
460
467
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
461
468
|
while (1) switch (_context2.prev = _context2.next) {
|
|
462
469
|
case 0:
|
|
@@ -489,8 +496,8 @@ function _batchReadonly() {
|
|
|
489
496
|
case 12:
|
|
490
497
|
results = JSON.parse(text);
|
|
491
498
|
rs = [];
|
|
492
|
-
for (
|
|
493
|
-
result =
|
|
499
|
+
for (_iterator5 = _createForOfIteratorHelperLoose(results); !(_step5 = _iterator5()).done;) {
|
|
500
|
+
result = _step5.value;
|
|
494
501
|
if ('Ok' in result) {
|
|
495
502
|
rs.push(deserializeCV(result.Ok));
|
|
496
503
|
} else {
|
package/dist/stxer.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stxer.esm.js","sources":["../src/batch-api.ts","../src/simulation.ts"],"sourcesContent":["import {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n type OptionalCV,\n serializeCV,\n } from '@stacks/transactions';\n \n export interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n index_block_hash?: string;\n }\n \n export interface BatchReadsResult {\n variables: (ClarityValue | Error)[];\n maps: (OptionalCV | Error)[];\n }\n \n export interface BatchApiOptions {\n stxerApi?: string;\n }\n \n const DEFAULT_STXER_API = 'https://api.stxer.xyz';\n \n export async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n ): Promise<BatchReadsResult> {\n const payload: string[][] = [];\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n \n const ibh =\n reads.index_block_hash == null\n ? null\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-reads${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch reads failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: BatchReadsResult = {\n variables: [],\n maps: [],\n };\n let variablesLength = 0;\n if (reads.variables != null) {\n variablesLength = reads.variables.length;\n for (let i = 0; i < variablesLength; i++) {\n const result = results[i];\n if ('Ok' in result) {\n rs.variables.push(deserializeCV(result.Ok));\n } else {\n rs.variables.push(new Error(result.Err));\n }\n }\n }\n if (reads.maps != null) {\n for (let i = 0; i < reads.maps.length; i++) {\n const result = results[i + variablesLength];\n if ('Ok' in result) {\n rs.maps.push(deserializeCV(result.Ok) as OptionalCV);\n } else {\n rs.maps.push(new Error(result.Err));\n }\n }\n }\n return rs;\n }\n \n export interface BatchReadonlyRequest {\n readonly: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n }\n \n export async function batchReadonly(\n req: BatchReadonlyRequest,\n options: BatchApiOptions = {}\n ): Promise<(ClarityValue | Error)[]> {\n const payload = req.readonly.map((r) => [\n serializeCV(r.contract),\n r.functionName,\n ...r.functionArgs.map((arg) => serializeCV(arg)),\n ]);\n \n const ibh =\n req.index_block_hash == null\n ? null\n : req.index_block_hash.startsWith('0x')\n ? req.index_block_hash.substring(2)\n : req.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-readonly${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch readonly failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: (ClarityValue | Error)[] = [];\n for (const result of results) {\n if ('Ok' in result) {\n rs.push(deserializeCV(result.Ok));\n } else {\n rs.push(new Error(result.Err));\n }\n }\n return rs;\n }\n ","import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport {\n type ClarityValue,\n ClarityVersion,\n PostConditionMode,\n type StacksTransactionWire,\n bufferCV,\n contractPrincipalCV,\n deserializeTransaction,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\n\nfunction runTx(tx: StacksTransactionWire) {\n // type 0: run transaction\n return tupleCV({ type: uintCV(0), data: bufferCV(tx.serializeBytes()) });\n}\n\nexport interface SimulationEval {\n contract_id: string;\n code: string;\n}\n\nexport function runEval({ contract_id, code }: SimulationEval) {\n const [contract_address, contract_name] = contract_id.split('.');\n // type 1: eval arbitrary code inside a contract\n return tupleCV({\n type: uintCV(1),\n data: bufferCV(\n serializeCVBytes(\n tupleCV({\n contract: contractPrincipalCV(contract_address, contract_name),\n code: stringAsciiCV(code),\n })\n )\n ),\n });\n}\n\nexport async function runSimulation(\n apiEndpoint: string,\n block_hash: string,\n block_height: number,\n txs: (StacksTransactionWire | SimulationEval)[]\n) {\n // Convert 'sim-v1' to Uint8Array\n const header = new TextEncoder().encode('sim-v1');\n // Create 8 bytes for block height\n const heightBytes = new Uint8Array(8);\n // Convert block height to bytes\n const view = new DataView(heightBytes.buffer);\n view.setBigUint64(0, BigInt(block_height), false); // false for big-endian\n\n // Convert block hash to bytes\n const hashHex = block_hash.startsWith('0x')\n ? block_hash.substring(2)\n : block_hash;\n // Replace non-null assertion with null check\n const matches = hashHex.match(/.{1,2}/g);\n if (!matches) {\n throw new Error('Invalid block hash format');\n }\n const hashBytes = new Uint8Array(\n matches.map((byte) => Number.parseInt(byte, 16))\n );\n\n // Convert transactions to bytes\n const txBytes = txs\n .map((t) => ('contract_id' in t && 'code' in t ? runEval(t) : runTx(t)))\n .map((t) => serializeCVBytes(t));\n\n // Combine all byte arrays\n const totalLength =\n header.length +\n heightBytes.length +\n hashBytes.length +\n txBytes.reduce((acc, curr) => acc + curr.length, 0);\n const body = new Uint8Array(totalLength);\n\n let offset = 0;\n body.set(header, offset);\n offset += header.length;\n body.set(heightBytes, offset);\n offset += heightBytes.length;\n body.set(hashBytes, offset);\n offset += hashBytes.length;\n for (const tx of txBytes) {\n body.set(tx, offset);\n offset += tx.length;\n }\n\n const rs = await fetch(apiEndpoint, {\n method: 'POST',\n body,\n }).then(async (rs) => {\n const response = await rs.text();\n if (!response.startsWith('{')) {\n throw new Error(`failed to submit simulation: ${response}`);\n }\n return JSON.parse(response) as { id: string };\n });\n return rs.id;\n}\n\ninterface SimulationBuilderOptions {\n apiEndpoint?: string;\n stacksNodeAPI?: string;\n network?: StacksNetworkName | string;\n}\n\nexport class SimulationBuilder {\n private apiEndpoint: string;\n private stacksNodeAPI: string;\n private network: StacksNetworkName | string;\n\n private constructor(options: SimulationBuilderOptions = {}) {\n this.apiEndpoint = options.apiEndpoint ?? 'https://api.stxer.xyz';\n this.stacksNodeAPI = options.stacksNodeAPI ?? 'https://api.hiro.so';\n this.network = options.network ?? 'mainnet';\n }\n\n public static new(options?: SimulationBuilderOptions) {\n return new SimulationBuilder(options);\n }\n\n // biome-ignore lint/style/useNumberNamespace: <explanation>\n private block = NaN;\n private sender = '';\n private steps: (\n | {\n // inline simulation\n simulationId: string;\n }\n | {\n // contract call\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender: string;\n fee: number;\n }\n | {\n // contract deploy\n contract_name: string;\n source_code: string;\n deployer: string;\n fee: number;\n clarity_version: ClarityVersion;\n }\n | {\n // STX transfer\n recipient: string;\n amount: number;\n sender: string;\n fee: number;\n }\n | SimulationEval\n )[] = [];\n\n public useBlockHeight(block: number) {\n this.block = block;\n return this;\n }\n public withSender(address: string) {\n this.sender = address;\n return this;\n }\n public inlineSimulation(simulationId: string) {\n this.steps.push({\n simulationId,\n })\n return this;\n }\n public addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n let network = this.network === 'mainnet' ? STACKS_MAINNET : STACKS_TESTNET;\n if (this.stacksNodeAPI) {\n network = {\n ...network,\n client: {\n ...network.client,\n baseUrl: this.stacksNodeAPI,\n },\n };\n }\n for (const step of this.steps) {\n if ('simulationId' in step) {\n const previousSimulation: {steps: ({tx: string} | {code: string, contract: string})[]} = await fetch(`https://api.stxer.xyz/simulations/${step.simulationId}/request`).then(x => x.json())\n for (const step of previousSimulation.steps) {\n if ('tx' in step) {\n txs.push(deserializeTransaction(step.tx));\n } else if ('code' in step && 'contract' in step) {\n txs.push({\n contract_id: step.contract,\n code: step.code,\n });\n }\n }\n } else if ('sender' in step && 'function_name' in step) {\n const nonce = await nextNonce(step.sender);\n const [contractAddress, contractName] = step.contract_id.split('.');\n const tx = await makeUnsignedContractCall({\n contractAddress,\n contractName,\n functionName: step.function_name,\n functionArgs: step.function_args ?? [],\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('sender' in step && 'recipient' in step) {\n const nonce = await nextNonce(step.sender);\n const tx = await makeUnsignedSTXTokenTransfer({\n recipient: step.recipient,\n amount: step.amount,\n nonce,\n network,\n publicKey: '',\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('deployer' in step) {\n const nonce = await nextNonce(step.deployer);\n const tx = await makeUnsignedContractDeploy({\n contractName: step.contract_name,\n codeBody: step.source_code,\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.deployer)[1];\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.log(`Invalid simulation step:`, step);\n }\n }\n const id = await runSimulation(\n `${this.apiEndpoint}/simulations`,\n block.block_hash,\n block.block_height,\n txs\n );\n console.log(\n `Simulation will be available at: https://stxer.xyz/simulations/${this.network}/${id}`\n );\n return id;\n }\n\n public pipe(transform: (builder: SimulationBuilder) => SimulationBuilder): SimulationBuilder {\n return transform(this);\n }\n}\n"],"names":["DEFAULT_STXER_API","batchRead","_x","_x2","_batchRead","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","payload","variables","_iterator","_createForOfIteratorHelperLoose","_step","done","variable","value","push","serializeCV","contract","variableName","maps","_iterator2","_step2","map","mapName","mapKey","ibh","index_block_hash","startsWith","substring","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","data","sent","text","includes","Error","results","parse","rs","variablesLength","length","i","result","deserializeCV","Ok","Err","abrupt","stop","batchReadonly","_x3","_x4","_batchReadonly","_callee2","req","readonly","r","functionName","concat","functionArgs","arg","_options$stxerApi2","_context2","_iterator3","_step3","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_runSimulation","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","offset","_step4","wrap","_callee5$","_context5","prev","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","set","then","_ref3","_callee4","response","_callee4$","_context4","_x6","id","SimulationBuilder","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","new","_proto","prototype","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","params","_params$sender","_params$fee","_extends","fee","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","deployer","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","key","addVarRead","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","_callee$","isNaN","getNodeInfo","stacksEndpoint","richFetch","json","height","hash","run","_run","_callee3","_this","nonce_by_address","nextNonce","step","previousSimulation","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_callee3$","_context3","console","log","Map","_ref2","account","_callee2$","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","x","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","auth","spendingCondition","signer","c32addressDecode","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","pipe","transform"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stxer.esm.js","sources":["../src/batch-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 type OptionalCV,\n serializeCV,\n} from '@stacks/transactions';\n\nexport interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n readonly?: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport interface BatchReadsResult {\n tip: string;\n vars: (ClarityValue | Error)[];\n maps: (ClarityValue | Error)[];\n readonly: (ClarityValue | Error)[];\n}\n\nexport interface BatchApiOptions {\n stxerApi?: string;\n}\n\nconst DEFAULT_STXER_API = 'https://api.stxer.xyz';\n\nfunction convertResults(\n rs: ({ Ok: string } | { Err: string })[],\n): (ClarityValue | Error)[] {\n const results: (ClarityValue | Error)[] = [];\n for (const v of rs) {\n if ('Ok' in v) {\n results.push(deserializeCV(v.Ok));\n } else {\n results.push(new Error(v.Err));\n }\n }\n return results;\n}\n\nexport async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n): Promise<BatchReadsResult> {\n const ibh =\n reads.index_block_hash == null\n ? undefined\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n\n const payload: {\n tip?: string;\n vars: string[][];\n maps: string[][];\n readonly: string[][];\n } = { vars: [], maps: [], readonly: [], tip: ibh };\n\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.vars.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.maps.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n\n if (reads.readonly != null) {\n for (const ro of reads.readonly) {\n payload.readonly.push([\n serializeCV(ro.contract),\n ro.functionName,\n ...ro.functionArgs.map(v => serializeCV(v)),\n ]);\n }\n }\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch reads failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload,\n )}`,\n );\n }\n\n const rs = JSON.parse(text) as {\n tip: string;\n vars: ({ Ok: string } | { Err: string })[];\n maps: ({ Ok: string } | { Err: string })[];\n readonly: ({ Ok: string } | { Err: string })[];\n };\n\n return {\n tip: rs.tip,\n vars: convertResults(rs.vars),\n maps: convertResults(rs.maps),\n readonly: convertResults(rs.readonly),\n };\n}\n\nexport interface BatchReadonlyRequest {\n readonly: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n}\n\nexport async function batchReadonly(\n req: BatchReadonlyRequest,\n options: BatchApiOptions = {}\n): Promise<(ClarityValue | Error)[]> {\n const payload = req.readonly.map((r) => [\n serializeCV(r.contract),\n r.functionName,\n ...r.functionArgs.map((arg) => serializeCV(arg)),\n ]);\n\n const ibh =\n req.index_block_hash == null\n ? null\n : req.index_block_hash.startsWith('0x')\n ? req.index_block_hash.substring(2)\n : req.index_block_hash;\n\n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-readonly${ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch readonly failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: (ClarityValue | Error)[] = [];\n for (const result of results) {\n if ('Ok' in result) {\n rs.push(deserializeCV(result.Ok));\n } else {\n rs.push(new Error(result.Err));\n }\n }\n return rs;\n}\n","import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport {\n type ClarityValue,\n ClarityVersion,\n PostConditionMode,\n type StacksTransactionWire,\n bufferCV,\n contractPrincipalCV,\n deserializeTransaction,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\n\nfunction runTx(tx: StacksTransactionWire) {\n // type 0: run transaction\n return tupleCV({ type: uintCV(0), data: bufferCV(tx.serializeBytes()) });\n}\n\nexport interface SimulationEval {\n contract_id: string;\n code: string;\n}\n\nexport function runEval({ contract_id, code }: SimulationEval) {\n const [contract_address, contract_name] = contract_id.split('.');\n // type 1: eval arbitrary code inside a contract\n return tupleCV({\n type: uintCV(1),\n data: bufferCV(\n serializeCVBytes(\n tupleCV({\n contract: contractPrincipalCV(contract_address, contract_name),\n code: stringAsciiCV(code),\n })\n )\n ),\n });\n}\n\nexport async function runSimulation(\n apiEndpoint: string,\n block_hash: string,\n block_height: number,\n txs: (StacksTransactionWire | SimulationEval)[]\n) {\n // Convert 'sim-v1' to Uint8Array\n const header = new TextEncoder().encode('sim-v1');\n // Create 8 bytes for block height\n const heightBytes = new Uint8Array(8);\n // Convert block height to bytes\n const view = new DataView(heightBytes.buffer);\n view.setBigUint64(0, BigInt(block_height), false); // false for big-endian\n\n // Convert block hash to bytes\n const hashHex = block_hash.startsWith('0x')\n ? block_hash.substring(2)\n : block_hash;\n // Replace non-null assertion with null check\n const matches = hashHex.match(/.{1,2}/g);\n if (!matches) {\n throw new Error('Invalid block hash format');\n }\n const hashBytes = new Uint8Array(\n matches.map((byte) => Number.parseInt(byte, 16))\n );\n\n // Convert transactions to bytes\n const txBytes = txs\n .map((t) => ('contract_id' in t && 'code' in t ? runEval(t) : runTx(t)))\n .map((t) => serializeCVBytes(t));\n\n // Combine all byte arrays\n const totalLength =\n header.length +\n heightBytes.length +\n hashBytes.length +\n txBytes.reduce((acc, curr) => acc + curr.length, 0);\n const body = new Uint8Array(totalLength);\n\n let offset = 0;\n body.set(header, offset);\n offset += header.length;\n body.set(heightBytes, offset);\n offset += heightBytes.length;\n body.set(hashBytes, offset);\n offset += hashBytes.length;\n for (const tx of txBytes) {\n body.set(tx, offset);\n offset += tx.length;\n }\n\n const rs = await fetch(apiEndpoint, {\n method: 'POST',\n body,\n }).then(async (rs) => {\n const response = await rs.text();\n if (!response.startsWith('{')) {\n throw new Error(`failed to submit simulation: ${response}`);\n }\n return JSON.parse(response) as { id: string };\n });\n return rs.id;\n}\n\ninterface SimulationBuilderOptions {\n apiEndpoint?: string;\n stacksNodeAPI?: string;\n network?: StacksNetworkName | string;\n}\n\nexport class SimulationBuilder {\n private apiEndpoint: string;\n private stacksNodeAPI: string;\n private network: StacksNetworkName | string;\n\n private constructor(options: SimulationBuilderOptions = {}) {\n this.apiEndpoint = options.apiEndpoint ?? 'https://api.stxer.xyz';\n this.stacksNodeAPI = options.stacksNodeAPI ?? 'https://api.hiro.so';\n this.network = options.network ?? 'mainnet';\n }\n\n public static new(options?: SimulationBuilderOptions) {\n return new SimulationBuilder(options);\n }\n\n // biome-ignore lint/style/useNumberNamespace: <explanation>\n private block = NaN;\n private sender = '';\n private steps: (\n | {\n // inline simulation\n simulationId: string;\n }\n | {\n // contract call\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender: string;\n fee: number;\n }\n | {\n // contract deploy\n contract_name: string;\n source_code: string;\n deployer: string;\n fee: number;\n clarity_version: ClarityVersion;\n }\n | {\n // STX transfer\n recipient: string;\n amount: number;\n sender: string;\n fee: number;\n }\n | SimulationEval\n )[] = [];\n\n public useBlockHeight(block: number) {\n this.block = block;\n return this;\n }\n public withSender(address: string) {\n this.sender = address;\n return this;\n }\n public inlineSimulation(simulationId: string) {\n this.steps.push({\n simulationId,\n })\n return this;\n }\n public addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n let network = this.network === 'mainnet' ? STACKS_MAINNET : STACKS_TESTNET;\n if (this.stacksNodeAPI) {\n network = {\n ...network,\n client: {\n ...network.client,\n baseUrl: this.stacksNodeAPI,\n },\n };\n }\n for (const step of this.steps) {\n if ('simulationId' in step) {\n const previousSimulation: {steps: ({tx: string} | {code: string, contract: string})[]} = await fetch(`https://api.stxer.xyz/simulations/${step.simulationId}/request`).then(x => x.json())\n for (const step of previousSimulation.steps) {\n if ('tx' in step) {\n txs.push(deserializeTransaction(step.tx));\n } else if ('code' in step && 'contract' in step) {\n txs.push({\n contract_id: step.contract,\n code: step.code,\n });\n }\n }\n } else if ('sender' in step && 'function_name' in step) {\n const nonce = await nextNonce(step.sender);\n const [contractAddress, contractName] = step.contract_id.split('.');\n const tx = await makeUnsignedContractCall({\n contractAddress,\n contractName,\n functionName: step.function_name,\n functionArgs: step.function_args ?? [],\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('sender' in step && 'recipient' in step) {\n const nonce = await nextNonce(step.sender);\n const tx = await makeUnsignedSTXTokenTransfer({\n recipient: step.recipient,\n amount: step.amount,\n nonce,\n network,\n publicKey: '',\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('deployer' in step) {\n const nonce = await nextNonce(step.deployer);\n const tx = await makeUnsignedContractDeploy({\n contractName: step.contract_name,\n codeBody: step.source_code,\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.deployer)[1];\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.log(`Invalid simulation step:`, step);\n }\n }\n const id = await runSimulation(\n `${this.apiEndpoint}/simulations`,\n block.block_hash,\n block.block_height,\n txs\n );\n console.log(\n `Simulation will be available at: https://stxer.xyz/simulations/${this.network}/${id}`\n );\n return id;\n }\n\n public pipe(transform: (builder: SimulationBuilder) => SimulationBuilder): SimulationBuilder {\n return transform(this);\n }\n}\n"],"names":["DEFAULT_STXER_API","convertResults","rs","results","_iterator","_createForOfIteratorHelperLoose","_step","done","v","value","push","deserializeCV","Ok","Error","Err","batchRead","_x","_x2","_batchRead","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","ibh","index_block_hash","undefined","startsWith","substring","payload","vars","maps","readonly","tip","variables","_iterator2","_step2","variable","serializeCV","contract","variableName","_iterator3","_step3","map","mapName","mapKey","_iterator4","_step4","ro","functionName","concat","functionArgs","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","headers","data","sent","text","includes","parse","abrupt","stop","batchReadonly","_x3","_x4","_batchReadonly","_callee2","req","r","arg","_options$stxerApi2","_context2","_iterator5","_step5","result","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_runSimulation","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","offset","wrap","_callee5$","_context5","prev","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","length","reduce","acc","curr","set","then","_ref3","_callee4","response","_callee4$","_context4","_x6","id","SimulationBuilder","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","new","_proto","prototype","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","params","_params$sender","_params$fee","_extends","fee","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","deployer","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","key","addVarRead","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","_callee$","isNaN","getNodeInfo","stacksEndpoint","richFetch","json","height","hash","run","_run","_callee3","_this","nonce_by_address","nextNonce","step","previousSimulation","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_callee3$","_context3","console","log","Map","_ref2","account","_callee2$","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","x","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","auth","spendingCondition","signer","c32addressDecode","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","pipe","transform"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stxer",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Kyle Fang",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/stxer/stxer-sdk"
|
|
9
|
+
},
|
|
6
10
|
"main": "dist/index.js",
|
|
7
11
|
"module": "dist/stxer.esm.js",
|
|
8
12
|
"typings": "dist/index.d.ts",
|