stxer 0.2.6 → 0.3.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/dist/batch-api.d.ts +30 -0
- package/dist/index.d.ts +2 -52
- package/dist/sample/read.d.ts +1 -0
- package/dist/simulation.d.ts +52 -0
- package/dist/stxer.cjs.development.js +142 -1
- 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 +141 -2
- package/dist/stxer.esm.js.map +1 -1
- package/package.json +3 -2
- package/src/batch-api.ts +157 -0
- package/src/index.ts +2 -388
- package/src/sample/read.ts +125 -0
- package/src/simulation.ts +387 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stxer.cjs.production.min.js","sources":["../src/index.ts"],"sourcesContent":["import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n networkFrom,\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 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 // 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 addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n for (const step of this.steps) {\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 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":["runTx","tx","tupleCV","type","uintCV","data","bufferCV","serializeBytes","runEval","_ref","code","_contract_id$split","contract_id","split","contract_address","contract_name","serializeCVBytes","contract","contractPrincipalCV","stringAsciiCV","runSimulation","_x","_x2","_x3","_x4","_runSimulation","apply","this","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","hashHex","matches","hashBytes","txBytes","totalLength","body","offset","_iterator2","_step2","wrap","_context5","prev","next","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","startsWith","substring","match","Error","map","byte","Number","parseInt","t","length","reduce","acc","curr","set","_createForOfIteratorHelperLoose","done","value","fetch","method","then","_ref3","_callee4","rs","response","_context4","text","sent","abrupt","JSON","parse","stop","_x6","id","SimulationBuilder","options","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","_proto","prototype","useBlockHeight","withSender","address","addSTXTransfer","params","_params$sender","_params$fee","push","_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","variable","getBlockInfo","_getBlockInfo","_callee","info","_context","isNaN","getNodeInfo","stacksEndpoint","stacks_tip_height","richFetch","r","json","height","hash","index_block_hash","run","_run","_callee3","nonce_by_address","nextNonce","_iterator","_step","step","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_this","_context3","console","log","Map","_ref2","_callee2","url","account","_context2","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","makeUnsignedContractCall","functionName","function_name","functionArgs","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":["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 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 // 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 addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n for (const step of this.steps) {\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 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","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","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","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,6 +1,6 @@
|
|
|
1
|
+
import { deserializeCV, serializeCV, tupleCV, uintCV, bufferCV, serializeCVBytes, contractPrincipalCV, stringAsciiCV, ClarityVersion, makeUnsignedContractDeploy, PostConditionMode, makeUnsignedSTXTokenTransfer, makeUnsignedContractCall } from '@stacks/transactions';
|
|
1
2
|
import { richFetch, getNodeInfo } from 'ts-clarity';
|
|
2
3
|
import { STACKS_MAINNET, STACKS_TESTNET } from '@stacks/network';
|
|
3
|
-
import { tupleCV, uintCV, bufferCV, serializeCVBytes, contractPrincipalCV, stringAsciiCV, ClarityVersion, makeUnsignedContractDeploy, PostConditionMode, makeUnsignedSTXTokenTransfer, makeUnsignedContractCall } from '@stacks/transactions';
|
|
4
4
|
import { c32addressDecode } from 'c32check';
|
|
5
5
|
|
|
6
6
|
function _arrayLikeToArray(r, a) {
|
|
@@ -368,6 +368,145 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
368
368
|
}
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
+
var DEFAULT_STXER_API = 'https://api.stxer.xyz';
|
|
372
|
+
function batchRead(_x, _x2) {
|
|
373
|
+
return _batchRead.apply(this, arguments);
|
|
374
|
+
}
|
|
375
|
+
function _batchRead() {
|
|
376
|
+
_batchRead = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(reads, options) {
|
|
377
|
+
var _options$stxerApi;
|
|
378
|
+
var payload, _iterator, _step, variable, _iterator2, _step2, map, ibh, url, data, text, results, rs, variablesLength, i, result, _i, _result;
|
|
379
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
380
|
+
while (1) switch (_context.prev = _context.next) {
|
|
381
|
+
case 0:
|
|
382
|
+
if (options === void 0) {
|
|
383
|
+
options = {};
|
|
384
|
+
}
|
|
385
|
+
payload = [];
|
|
386
|
+
if (reads.variables != null) {
|
|
387
|
+
for (_iterator = _createForOfIteratorHelperLoose(reads.variables); !(_step = _iterator()).done;) {
|
|
388
|
+
variable = _step.value;
|
|
389
|
+
payload.push([serializeCV(variable.contract), variable.variableName]);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
if (reads.maps != null) {
|
|
393
|
+
for (_iterator2 = _createForOfIteratorHelperLoose(reads.maps); !(_step2 = _iterator2()).done;) {
|
|
394
|
+
map = _step2.value;
|
|
395
|
+
payload.push([serializeCV(map.contract), map.mapName, serializeCV(map.mapKey)]);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
ibh = reads.index_block_hash == null ? null : reads.index_block_hash.startsWith('0x') ? reads.index_block_hash.substring(2) : reads.index_block_hash;
|
|
399
|
+
url = ((_options$stxerApi = options.stxerApi) != null ? _options$stxerApi : DEFAULT_STXER_API) + "/sidecar/v2/batch-reads" + (ibh == null ? '' : "?tip=" + ibh);
|
|
400
|
+
_context.next = 8;
|
|
401
|
+
return fetch(url, {
|
|
402
|
+
method: 'POST',
|
|
403
|
+
body: JSON.stringify(payload)
|
|
404
|
+
});
|
|
405
|
+
case 8:
|
|
406
|
+
data = _context.sent;
|
|
407
|
+
_context.next = 11;
|
|
408
|
+
return data.text();
|
|
409
|
+
case 11:
|
|
410
|
+
text = _context.sent;
|
|
411
|
+
if (!(!text.includes('Ok') && !text.includes('Err'))) {
|
|
412
|
+
_context.next = 14;
|
|
413
|
+
break;
|
|
414
|
+
}
|
|
415
|
+
throw new Error("Requesting batch reads failed: " + text + ", url: " + url + ", payload: " + JSON.stringify(payload));
|
|
416
|
+
case 14:
|
|
417
|
+
results = JSON.parse(text);
|
|
418
|
+
rs = {
|
|
419
|
+
variables: [],
|
|
420
|
+
maps: []
|
|
421
|
+
};
|
|
422
|
+
variablesLength = 0;
|
|
423
|
+
if (reads.variables != null) {
|
|
424
|
+
variablesLength = reads.variables.length;
|
|
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:
|
|
446
|
+
case "end":
|
|
447
|
+
return _context.stop();
|
|
448
|
+
}
|
|
449
|
+
}, _callee);
|
|
450
|
+
}));
|
|
451
|
+
return _batchRead.apply(this, arguments);
|
|
452
|
+
}
|
|
453
|
+
function batchReadonly(_x3, _x4) {
|
|
454
|
+
return _batchReadonly.apply(this, arguments);
|
|
455
|
+
}
|
|
456
|
+
function _batchReadonly() {
|
|
457
|
+
_batchReadonly = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(req, options) {
|
|
458
|
+
var _options$stxerApi2;
|
|
459
|
+
var payload, ibh, url, data, text, results, rs, _iterator3, _step3, result;
|
|
460
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
461
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
462
|
+
case 0:
|
|
463
|
+
if (options === void 0) {
|
|
464
|
+
options = {};
|
|
465
|
+
}
|
|
466
|
+
payload = req.readonly.map(function (r) {
|
|
467
|
+
return [serializeCV(r.contract), r.functionName].concat(r.functionArgs.map(function (arg) {
|
|
468
|
+
return serializeCV(arg);
|
|
469
|
+
}));
|
|
470
|
+
});
|
|
471
|
+
ibh = req.index_block_hash == null ? null : req.index_block_hash.startsWith('0x') ? req.index_block_hash.substring(2) : req.index_block_hash;
|
|
472
|
+
url = ((_options$stxerApi2 = options.stxerApi) != null ? _options$stxerApi2 : DEFAULT_STXER_API) + "/sidecar/v2/batch-readonly" + (ibh == null ? '' : "?tip=" + ibh);
|
|
473
|
+
_context2.next = 6;
|
|
474
|
+
return fetch(url, {
|
|
475
|
+
method: 'POST',
|
|
476
|
+
body: JSON.stringify(payload)
|
|
477
|
+
});
|
|
478
|
+
case 6:
|
|
479
|
+
data = _context2.sent;
|
|
480
|
+
_context2.next = 9;
|
|
481
|
+
return data.text();
|
|
482
|
+
case 9:
|
|
483
|
+
text = _context2.sent;
|
|
484
|
+
if (!(!text.includes('Ok') && !text.includes('Err'))) {
|
|
485
|
+
_context2.next = 12;
|
|
486
|
+
break;
|
|
487
|
+
}
|
|
488
|
+
throw new Error("Requesting batch readonly failed: " + text + ", url: " + url + ", payload: " + JSON.stringify(payload));
|
|
489
|
+
case 12:
|
|
490
|
+
results = JSON.parse(text);
|
|
491
|
+
rs = [];
|
|
492
|
+
for (_iterator3 = _createForOfIteratorHelperLoose(results); !(_step3 = _iterator3()).done;) {
|
|
493
|
+
result = _step3.value;
|
|
494
|
+
if ('Ok' in result) {
|
|
495
|
+
rs.push(deserializeCV(result.Ok));
|
|
496
|
+
} else {
|
|
497
|
+
rs.push(new Error(result.Err));
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
return _context2.abrupt("return", rs);
|
|
501
|
+
case 16:
|
|
502
|
+
case "end":
|
|
503
|
+
return _context2.stop();
|
|
504
|
+
}
|
|
505
|
+
}, _callee2);
|
|
506
|
+
}));
|
|
507
|
+
return _batchReadonly.apply(this, arguments);
|
|
508
|
+
}
|
|
509
|
+
|
|
371
510
|
function runTx(tx) {
|
|
372
511
|
// type 0: run transaction
|
|
373
512
|
return tupleCV({
|
|
@@ -783,5 +922,5 @@ var SimulationBuilder = /*#__PURE__*/function () {
|
|
|
783
922
|
return SimulationBuilder;
|
|
784
923
|
}();
|
|
785
924
|
|
|
786
|
-
export { SimulationBuilder, runEval, runSimulation };
|
|
925
|
+
export { SimulationBuilder, batchRead, batchReadonly, runEval, runSimulation };
|
|
787
926
|
//# sourceMappingURL=stxer.esm.js.map
|
package/dist/stxer.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stxer.esm.js","sources":["../src/index.ts"],"sourcesContent":["import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n networkFrom,\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 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 // 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 addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n for (const step of this.steps) {\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 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":["runTx","tx","tupleCV","type","uintCV","data","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contract","contractPrincipalCV","stringAsciiCV","runSimulation","_x","_x2","_x3","_x4","_runSimulation","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","body","offset","_iterator2","_step2","rs","wrap","_callee5$","_context5","prev","next","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","startsWith","substring","match","Error","map","byte","Number","parseInt","t","length","reduce","acc","curr","set","_createForOfIteratorHelperLoose","done","value","fetch","method","then","_ref3","_callee4","response","_callee4$","_context4","text","sent","abrupt","JSON","parse","stop","_x6","id","SimulationBuilder","options","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","new","_proto","prototype","useBlockHeight","withSender","address","addSTXTransfer","params","_params$sender","_params$fee","push","_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","variable","getBlockInfo","_getBlockInfo","_callee","_yield$getNodeInfo","stacks_tip_height","info","_callee$","_context","isNaN","getNodeInfo","stacksEndpoint","richFetch","r","json","height","hash","index_block_hash","run","_run","_callee3","_this","nonce_by_address","nextNonce","_iterator","_step","step","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_callee3$","_context3","console","log","Map","_ref2","_callee2","url","account","_callee2$","_context2","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","makeUnsignedContractCall","functionName","function_name","functionArgs","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":["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 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 // 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 addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n for (const step of this.steps) {\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 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","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","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","_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","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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stxer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Kyle Fang",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
"size": "size-limit",
|
|
62
62
|
"start": "dts watch",
|
|
63
63
|
"test": "dts test",
|
|
64
|
-
"sample": "tsx src/sample/counter.ts"
|
|
64
|
+
"sample:counter": "tsx src/sample/counter.ts",
|
|
65
|
+
"sample:read": "tsx src/sample/read.ts"
|
|
65
66
|
}
|
|
66
67
|
}
|