@secondlayer/cli 9.0.2 → 9.0.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.
@@ -1263,6 +1263,8 @@ import { Cl } from '@secondlayer/stacks/clarity'
1263
1263
  import type { ExtractFunctionArgs, ExtractFunctionNames, AbiContract } from '@secondlayer/stacks/clarity'
1264
1264
  import type { PostCondition } from '@secondlayer/stacks/postconditions'
1265
1265
  import { validateStacksAddress } from '@secondlayer/stacks/utils'
1266
+ import { createPublicClient, http } from '@secondlayer/stacks'
1267
+ import { getTransaction, waitForTransactionReceipt } from '@secondlayer/stacks/actions'
1266
1268
 
1267
1269
  const API_URLS: Record<string, string> = {
1268
1270
  mainnet: 'https://api.hiro.so',
@@ -1270,6 +1272,10 @@ const API_URLS: Record<string, string> = {
1270
1272
  devnet: 'http://localhost:3999'
1271
1273
  }
1272
1274
 
1275
+ function getStacksClient({ network, apiUrl }: { network?: string; apiUrl?: string }) {
1276
+ return createPublicClient({ transport: http(apiUrl || API_URLS[network || 'mainnet']) })
1277
+ }
1278
+
1273
1279
  async function callReadOnly(params: {
1274
1280
  contractAddress: string;
1275
1281
  contractName: string;
@@ -1298,13 +1304,6 @@ async function callReadOnly(params: {
1298
1304
  return deserializeCV(data.result)
1299
1305
  }
1300
1306
 
1301
- async function fetchTransaction({ txId, network, apiUrl }: { txId: string; network?: string; apiUrl?: string }): Promise<any> {
1302
- const baseUrl = apiUrl || API_URLS[network || 'mainnet']
1303
- const response = await fetch(\`\${baseUrl}/extended/v1/tx/\${txId}\`)
1304
- if (!response.ok) throw new Error(\`Failed to fetch transaction: \${response.statusText}\`)
1305
- return response.json()
1306
- }
1307
-
1308
1307
  async function fetchBlock({ height, network, apiUrl }: { height: number; network?: string; apiUrl?: string }): Promise<any> {
1309
1308
  const baseUrl = apiUrl || API_URLS[network || 'mainnet']
1310
1309
  const response = await fetch(\`\${baseUrl}/extended/v1/block/by_height/\${height}\`)
@@ -1550,14 +1549,10 @@ function generateGenericHook(hookName) {
1550
1549
  case "useTransaction":
1551
1550
  return `export function useTransaction(txId?: string) {
1552
1551
  const config = useSecondLayerConfig()
1553
-
1552
+
1554
1553
  return useQuery({
1555
1554
  queryKey: ['transaction', txId, config.network],
1556
- queryFn: () => fetchTransaction({
1557
- txId: txId!,
1558
- network: config.network,
1559
- apiUrl: config.apiUrl
1560
- }),
1555
+ queryFn: () => getTransaction(getStacksClient(config), { txid: txId! }),
1561
1556
  enabled: !!txId
1562
1557
  })
1563
1558
  }`;
@@ -1590,29 +1585,20 @@ function generateGenericHook(hookName) {
1590
1585
  })
1591
1586
  }`;
1592
1587
  case "useWaitForTransaction":
1593
- return `export function useWaitForTransaction(txId?: string) {
1588
+ return `export function useWaitForTransaction(txId?: string, options?: { confirmations?: number }) {
1594
1589
  const config = useSecondLayerConfig()
1595
-
1590
+
1591
+ // waitForTransactionReceipt polls internally (reorg-tolerant, typed
1592
+ // abort/drop/timeout rejections) — no react-query refetchInterval needed.
1596
1593
  return useQuery({
1597
- queryKey: ['wait-for-transaction', txId, config.network],
1598
- queryFn: () => fetchTransaction({
1599
- txId: txId!,
1600
- network: config.network,
1601
- apiUrl: config.apiUrl
1594
+ queryKey: ['wait-for-transaction', txId, config.network, options?.confirmations],
1595
+ queryFn: () => waitForTransactionReceipt(getStacksClient(config), {
1596
+ txid: txId!,
1597
+ confirmations: options?.confirmations
1602
1598
  }),
1603
1599
  enabled: !!txId,
1604
- refetchInterval: (queryOrData: any) => {
1605
- // react-query v5 passes the query object, v4 passed the data — support both
1606
- const tx = queryOrData?.state?.data ?? queryOrData
1607
- // Stop polling when transaction is complete
1608
- if (tx?.tx_status === 'success' ||
1609
- tx?.tx_status === 'abort_by_response' ||
1610
- tx?.tx_status === 'abort_by_post_condition') {
1611
- return false
1612
- }
1613
- return 2000 // Poll every 2 seconds
1614
- },
1615
- staleTime: 0 // Always refetch
1600
+ retry: false,
1601
+ staleTime: Infinity
1616
1602
  })
1617
1603
  }`;
1618
1604
  case "useOpenSTXTransfer":
@@ -2143,5 +2129,5 @@ export {
2143
2129
  PluginManager
2144
2130
  };
2145
2131
 
2146
- //# debugId=15CE4A0BEE59E1A664756E2164756E21
2132
+ //# debugId=8AE230CD4F0ABD0C64756E2164756E21
2147
2133
  //# sourceMappingURL=index.js.map
@@ -17,14 +17,14 @@
17
17
  "export {\n\tclarityTypeToTS,\n\tgenerateArgsTypeSignature,\n\tgetTypeForArg,\n} from \"@secondlayer/scaffold\";\n",
18
18
  "/**\n * Utility functions for React hook generation\n */\n\nimport type { FunctionArg } from \"@secondlayer/stacks/clarity\";\nimport { capitalize, toCamelCase } from \"../../../utils/case-conversion\";\nimport { clarityTypeToTS } from \"../../../utils/type-mapping\";\n\n// Re-export for use in other files\nexport { toCamelCase, clarityTypeToTS, capitalize };\n\nexport function generateHookArgsSignature(\n\targs: ReadonlyArray<FunctionArg>,\n): string {\n\tif (args.length === 0) return \"\";\n\n\tconst argsList = args\n\t\t.map((arg) => `${toCamelCase(arg.name)}: ${clarityTypeToTS(arg.type)}`)\n\t\t.join(\", \");\n\treturn `${argsList}`;\n}\n\nexport function generateArgsType(args: ReadonlyArray<FunctionArg>): string {\n\tif (args.length === 0) return \"void\";\n\n\tconst argsList = args\n\t\t.map((arg) => `${toCamelCase(arg.name)}: ${clarityTypeToTS(arg.type)}`)\n\t\t.join(\"; \");\n\treturn `{ ${argsList} }`;\n}\n\nexport function generateArgNames(args: ReadonlyArray<FunctionArg>): string {\n\tif (args.length === 0) return \"\";\n\treturn args.map((arg) => toCamelCase(arg.name)).join(\", \");\n}\n\nexport function generateEnabledCondition(\n\targs: ReadonlyArray<FunctionArg>,\n): string {\n\treturn args\n\t\t.map((arg) => {\n\t\t\tconst camelName = toCamelCase(arg.name);\n\t\t\tconst type = clarityTypeToTS(arg.type);\n\t\t\tif (type === \"string\") return `!!${camelName}`;\n\t\t\tif (type === \"bigint\") return `${camelName} !== undefined`;\n\t\t\treturn `${camelName} !== undefined`;\n\t\t})\n\t\t.join(\" && \");\n}\n\nexport function generateObjectArgs(args: ReadonlyArray<FunctionArg>): string {\n\tif (args.length === 0) return \"\";\n\treturn args.map((arg) => `${arg.name}: ${toCamelCase(arg.name)}`).join(\", \");\n}\n",
19
19
  "/**\n * Shared template for the useContract hook.\n * Used by both the base hooks generator and the react plugin generic generator.\n */\n\nexport const USE_CONTRACT_TEMPLATE = `export function useContract() {\n const config = useSecondLayerConfig()\n const queryClient = useQueryClient()\n const [isRequestPending, setIsRequestPending] = useState(false)\n\n // Helper function to convert JS values to Clarity values based on ABI\n const convertArgsWithAbi = (args: any, abiArgs: any[]): any[] => {\n if (!abiArgs || abiArgs.length === 0) return []\n\n return abiArgs.map((abiArg, index) => {\n const argValue = Array.isArray(args)\n ? args[index]\n : args[abiArg.name] || args[abiArg.name.replace(/-/g, '').replace(/_/g, '')]\n return convertJSValueToClarityValue(argValue, abiArg.type)\n })\n }\n\n // Helper function to convert buffer values with auto-detection\n const convertBufferValue = (value: any): any => {\n // Direct Uint8Array\n if (value instanceof Uint8Array) {\n return Cl.buffer(value)\n }\n\n // Object notation with explicit type\n if (typeof value === 'object' && value !== null && value.type && value.value) {\n switch (value.type) {\n case 'ascii':\n return Cl.bufferFromAscii(value.value)\n case 'utf8':\n return Cl.bufferFromUtf8(value.value)\n case 'hex':\n return Cl.bufferFromHex(value.value)\n default:\n throw new Error(\\`Unsupported buffer type: \\${value.type}\\`)\n }\n }\n\n // Auto-detect string type\n if (typeof value === 'string') {\n // 1. Check for hex (0x prefix or pure hex pattern)\n if (value.startsWith('0x') || /^[0-9a-fA-F]+$/.test(value)) {\n return Cl.bufferFromHex(value)\n }\n\n // 2. Check for non-ASCII characters (UTF-8)\n if (!/^[\\\\x00-\\\\x7F]*$/.test(value)) {\n return Cl.bufferFromUtf8(value)\n }\n\n // 3. Default to ASCII for simple ASCII strings\n return Cl.bufferFromAscii(value)\n }\n\n throw new Error(\\`Invalid buffer value: \\${value}\\`)\n }\n\n // Helper function to convert a single JS value to ClarityValue\n const convertJSValueToClarityValue = (value: any, type: any): any => {\n if (typeof type === 'string') {\n switch (type) {\n case 'uint128':\n return Cl.uint(value)\n case 'int128':\n return Cl.int(value)\n case 'bool':\n return Cl.bool(value)\n case 'principal':\n if (!validateStacksAddress(value.split('.')[0])) {\n throw new Error('Invalid Stacks address format')\n }\n if (value.includes('.')) {\n const [address, contractName] = value.split('.')\n return Cl.contractPrincipal(address, contractName)\n } else {\n return Cl.standardPrincipal(value)\n }\n default:\n return value\n }\n }\n\n if (type['string-ascii']) {\n return Cl.stringAscii(value)\n }\n\n if (type['string-utf8']) {\n return Cl.stringUtf8(value)\n }\n\n if (type.buff) {\n return convertBufferValue(value)\n }\n\n if (type.optional) {\n return value !== null ? Cl.some(convertJSValueToClarityValue(value, type.optional)) : Cl.none()\n }\n\n if (type.list) {\n return Cl.list(value.map((item: any) => convertJSValueToClarityValue(item, type.list.type)))\n }\n\n if (type.tuple) {\n const tupleData = type.tuple.reduce((acc: any, field: any) => {\n acc[field.name] = convertJSValueToClarityValue(value[field.name], field.type)\n return acc\n }, {})\n return Cl.tuple(tupleData)\n }\n\n if (type.response) {\n return 'ok' in value\n ? Cl.ok(convertJSValueToClarityValue(value.ok, type.response.ok))\n : Cl.error(convertJSValueToClarityValue(value.err, type.response.error))\n }\n\n return value\n }\n\n // Helper function to find a function in an ABI by name\n const findFunctionInAbi = (abi: any, functionName: string): any => {\n if (!abi || !abi.functions) return null\n return abi.functions.find((func: any) => func.name === functionName)\n }\n\n // Legacy function - pre-converted Clarity values\n const legacyOpenContractCall = useCallback(async (params: {\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: any[];\n network?: string;\n postConditions?: PostCondition[];\n attachment?: string;\n onFinish?: (data: any) => void;\n onCancel?: () => void;\n }) => {\n setIsRequestPending(true)\n\n try {\n const { contractAddress, contractName, functionName, functionArgs, onFinish, onCancel, ...options } = params\n const network = params.network || config.network || 'mainnet'\n const contract = \\`\\${contractAddress}.\\${contractName}\\`\n\n const result = await request('stx_callContract', {\n contract,\n functionName,\n functionArgs,\n network,\n ...options\n })\n\n queryClient.invalidateQueries({ queryKey: ['stacks-account'] })\n onFinish?.(result)\n return result\n } catch (error) {\n console.error('Contract call failed:', error)\n throw error instanceof Error ? error : new Error('Contract call failed')\n } finally {\n setIsRequestPending(false)\n }\n }, [config.network, queryClient])\n\n // Enhanced function - requires ABI, auto-converts JS values\n const openContractCall = useCallback(async <\n T extends AbiContract,\n FN extends ExtractFunctionNames<T>\n >(params: {\n contractAddress: string;\n contractName: string;\n functionName: FN;\n abi: T;\n functionArgs: ExtractFunctionArgs<T, FN>;\n network?: string;\n postConditions?: PostCondition[];\n attachment?: string;\n onFinish?: (data: any) => void;\n onCancel?: () => void;\n }) => {\n setIsRequestPending(true)\n\n try {\n const { contractAddress, contractName, functionName, functionArgs, abi, onFinish, onCancel, ...options } = params\n const network = params.network || config.network || 'mainnet'\n const contract = \\`\\${contractAddress}.\\${contractName}\\`\n\n const abiFunction = findFunctionInAbi(abi, functionName)\n if (!abiFunction) {\n throw new Error(\\`Function '\\${functionName}' not found in ABI\\`)\n }\n\n const processedArgs = convertArgsWithAbi(functionArgs, abiFunction.args || [])\n\n const result = await request('stx_callContract', {\n contract,\n functionName,\n functionArgs: processedArgs,\n network,\n ...options\n })\n\n queryClient.invalidateQueries({ queryKey: ['stacks-account'] })\n onFinish?.(result)\n return result\n } catch (error) {\n console.error('Contract call failed:', error)\n throw error instanceof Error ? error : new Error('Contract call failed')\n } finally {\n setIsRequestPending(false)\n }\n }, [config.network, queryClient])\n\n return {\n legacyOpenContractCall,\n openContractCall,\n isRequestPending\n }\n}`;\n",
20
- "/**\n * Generic Stacks hooks generator for React plugin\n */\n\nimport { USE_CONTRACT_TEMPLATE } from \"../../../generators/templates/use-contract\";\nimport { DEFAULT_SENDER_ADDRESS } from \"../../../utils/constants\";\nimport { formatCode } from \"../../../utils/format\";\n\nconst GENERIC_HOOKS = [\n\t\"useAccount\",\n\t\"useConnect\",\n\t\"useDisconnect\",\n\t\"useNetwork\",\n\t\"useContract\",\n\t\"useOpenSTXTransfer\",\n\t\"useSignMessage\",\n\t\"useDeployContract\",\n\t\"useReadContract\",\n\t\"useTransaction\",\n\t\"useBlock\",\n\t\"useAccountTransactions\",\n\t\"useWaitForTransaction\",\n] as const;\n\nexport async function generateGenericHooks(\n\texcludeList: string[] = [],\n): Promise<string> {\n\t// Filter out excluded hooks\n\tconst hooksToGenerate = GENERIC_HOOKS.filter(\n\t\t(hookName) => !excludeList.includes(hookName),\n\t);\n\n\tconst imports = `import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'\nimport { useState, useCallback } from 'react'\nimport { useSecondLayerConfig } from './provider'\nimport { connect, disconnect, isConnected, request } from '@secondlayer/stacks/connect'\nimport { Cl } from '@secondlayer/stacks/clarity'\nimport type { ExtractFunctionArgs, ExtractFunctionNames, AbiContract } from '@secondlayer/stacks/clarity'\nimport type { PostCondition } from '@secondlayer/stacks/postconditions'\nimport { validateStacksAddress } from '@secondlayer/stacks/utils'\n\nconst API_URLS: Record<string, string> = {\n mainnet: 'https://api.hiro.so',\n testnet: 'https://api.testnet.hiro.so',\n devnet: 'http://localhost:3999'\n}\n\nasync function callReadOnly(params: {\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: any[];\n senderAddress: string;\n network?: string;\n apiUrl?: string;\n}): Promise<any> {\n const { serializeCV, deserializeCV } = await import('@secondlayer/stacks/clarity')\n const baseUrl = params.apiUrl || API_URLS[params.network || 'mainnet']\n const response = await fetch(\n \\`\\${baseUrl}/v2/contracts/call-read/\\${params.contractAddress}/\\${params.contractName}/\\${params.functionName}\\`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n sender: params.senderAddress,\n arguments: params.functionArgs.map((arg: any) => \\`0x\\${serializeCV(arg)}\\`)\n })\n }\n )\n if (!response.ok) throw new Error(\\`Read-only call failed: \\${response.statusText}\\`)\n const data = await response.json()\n if (!data.okay) throw new Error(data.cause ?? 'Read-only call failed')\n return deserializeCV(data.result)\n}\n\nasync function fetchTransaction({ txId, network, apiUrl }: { txId: string; network?: string; apiUrl?: string }): Promise<any> {\n const baseUrl = apiUrl || API_URLS[network || 'mainnet']\n const response = await fetch(\\`\\${baseUrl}/extended/v1/tx/\\${txId}\\`)\n if (!response.ok) throw new Error(\\`Failed to fetch transaction: \\${response.statusText}\\`)\n return response.json()\n}\n\nasync function fetchBlock({ height, network, apiUrl }: { height: number; network?: string; apiUrl?: string }): Promise<any> {\n const baseUrl = apiUrl || API_URLS[network || 'mainnet']\n const response = await fetch(\\`\\${baseUrl}/extended/v1/block/by_height/\\${height}\\`)\n if (!response.ok) throw new Error(\\`Failed to fetch block: \\${response.statusText}\\`)\n return response.json()\n}\n\nasync function fetchAccountTransactions({ address, network, apiUrl }: { address: string; network?: string; apiUrl?: string }): Promise<any> {\n const baseUrl = apiUrl || API_URLS[network || 'mainnet']\n const response = await fetch(\\`\\${baseUrl}/extended/v1/address/\\${address}/transactions\\`)\n if (!response.ok) throw new Error(\\`Failed to fetch transactions: \\${response.statusText}\\`)\n return response.json()\n}`;\n\n\tconst header = `/**\n * Generated generic Stacks React hooks\n * DO NOT EDIT MANUALLY\n */`;\n\n\tconst hooksCode = hooksToGenerate\n\t\t.map((hookName) => generateGenericHook(hookName))\n\t\t.filter(Boolean)\n\t\t.join(\"\\n\\n\");\n\n\tconst code = `${imports}\\n\\n${header}\\n\\n${hooksCode}`;\n\n\treturn formatCode(code);\n}\n\nfunction generateGenericHook(hookName: string): string {\n\tswitch (hookName) {\n\t\tcase \"useAccount\":\n\t\t\treturn `export function useAccount() {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['stacks-account', config.network],\n queryFn: async () => {\n try {\n // Check if already connected\n const connected = isConnected()\n \n if (!connected) {\n return {\n address: undefined,\n addresses: undefined,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n status: 'disconnected' as const\n }\n }\n\n // Get addresses via SIP-030\n const result = await request('stx_getAddresses')\n \n if (!result || !result.addresses || result.addresses.length === 0) {\n return {\n address: undefined,\n addresses: undefined,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n status: 'disconnected' as const\n }\n }\n\n // Extract STX addresses from the response\n const stxAddresses = result.addresses\n .filter((addr: any) => addr.address.startsWith('SP') || addr.address.startsWith('ST'))\n .map((addr: any) => addr.address)\n\n return {\n address: stxAddresses[0] || undefined,\n addresses: stxAddresses,\n isConnected: true,\n isConnecting: false,\n isDisconnected: false,\n status: 'connected' as const\n }\n } catch (error) {\n // Handle case where wallet is not available or user rejected\n return {\n address: undefined,\n addresses: undefined,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n status: 'disconnected' as const\n }\n }\n },\n refetchOnWindowFocus: false,\n retry: false,\n staleTime: 1000 * 60 * 5, // 5 minutes\n refetchInterval: 1000 * 30, // Refetch every 30 seconds to detect wallet changes\n })\n}`;\n\n\t\tcase \"useConnect\":\n\t\t\treturn `export function useConnect() {\n const queryClient = useQueryClient()\n \n const mutation = useMutation({\n mutationFn: async () => {\n // SIP-030 connect\n return await connect()\n },\n onSuccess: () => {\n // Invalidate account queries to refetch connection state\n queryClient.invalidateQueries({ queryKey: ['stacks-account'] })\n },\n onError: (error) => {\n console.error('Connection failed:', error)\n }\n })\n\n return {\n // Custom connect function that works without arguments\n connect: () => {\n return mutation.mutate(undefined)\n },\n connectAsync: async () => {\n return mutation.mutateAsync(undefined)\n },\n // Expose all the mutation state\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset,\n // Keep the original mutate/mutateAsync for advanced users\n mutate: mutation.mutate,\n mutateAsync: mutation.mutateAsync\n }\n}`;\n\n\t\tcase \"useDisconnect\":\n\t\t\treturn `export function useDisconnect() {\n const queryClient = useQueryClient()\n \n const mutation = useMutation({\n mutationFn: async () => {\n // SIP-030 disconnect\n return await disconnect()\n },\n onSuccess: () => {\n // Clear all cached data on disconnect\n queryClient.clear()\n },\n onError: (error) => {\n console.error('Disconnect failed:', error)\n }\n })\n\n return {\n // Custom disconnect function\n disconnect: () => {\n return mutation.mutate()\n },\n disconnectAsync: async () => {\n return mutation.mutateAsync()\n },\n // Expose all the mutation state\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset,\n // Keep the original mutate/mutateAsync for advanced users\n mutate: mutation.mutate,\n mutateAsync: mutation.mutateAsync\n }\n}`;\n\n\t\tcase \"useNetwork\":\n\t\t\treturn `export function useNetwork() {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['stacks-network', config.network],\n queryFn: async () => {\n // Currently read-only from config\n // Future: Use request('stx_getNetworks') when wallet support improves\n const network = config.network\n \n return {\n network,\n isMainnet: network === 'mainnet',\n isTestnet: network === 'testnet', \n isDevnet: network === 'devnet',\n // Future: Add switchNetwork when wallets support stx_networkChange\n // switchNetwork: async (newNetwork: string) => {\n // return await request('wallet_changeNetwork', { network: newNetwork })\n // }\n }\n },\n staleTime: Infinity, // Network config rarely changes\n refetchOnWindowFocus: false,\n retry: false\n })\n}`;\n\n\t\tcase \"useContract\":\n\t\t\treturn USE_CONTRACT_TEMPLATE;\n\n\t\tcase \"useReadContract\":\n\t\t\treturn `export function useReadContract<TArgs = any, TResult = any>(params: {\n contractAddress: string;\n contractName: string;\n functionName: string;\n args?: TArgs;\n network?: 'mainnet' | 'testnet' | 'devnet';\n enabled?: boolean;\n}) {\n const config = useSecondLayerConfig()\n \n return useQuery<TResult>({\n queryKey: ['read-contract', params.contractAddress, params.contractName, params.functionName, params.args, params.network || config.network],\n queryFn: async () => {\n // Args must already be ClarityValues (build them with Cl.* or a generated\n // contract method's descriptor). Positional array, ABI declaration order.\n let functionArgs: any[] = []\n\n if (params.args) {\n if (Array.isArray(params.args)) {\n functionArgs = params.args\n } else if (typeof params.args === 'object') {\n functionArgs = Object.values(params.args)\n } else {\n functionArgs = [params.args]\n }\n }\n\n return await callReadOnly({\n contractAddress: params.contractAddress,\n contractName: params.contractName,\n functionName: params.functionName,\n functionArgs,\n network: params.network || config.network || 'mainnet',\n apiUrl: config.apiUrl,\n senderAddress: config.senderAddress || '${DEFAULT_SENDER_ADDRESS}'\n }) as TResult\n },\n enabled: params.enabled ?? true\n })\n}`;\n\n\t\tcase \"useTransaction\":\n\t\t\treturn `export function useTransaction(txId?: string) {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['transaction', txId, config.network],\n queryFn: () => fetchTransaction({\n txId: txId!,\n network: config.network,\n apiUrl: config.apiUrl\n }),\n enabled: !!txId\n })\n}`;\n\n\t\tcase \"useBlock\":\n\t\t\treturn `export function useBlock(height?: number) {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['block', height, config.network],\n queryFn: () => fetchBlock({\n height: height!,\n network: config.network,\n apiUrl: config.apiUrl\n }),\n enabled: typeof height === 'number'\n })\n}`;\n\n\t\tcase \"useAccountTransactions\":\n\t\t\treturn `export function useAccountTransactions(address?: string) {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['account-transactions', address, config.network],\n queryFn: () => fetchAccountTransactions({\n address: address!,\n network: config.network,\n apiUrl: config.apiUrl\n }),\n enabled: !!address\n })\n}`;\n\n\t\tcase \"useWaitForTransaction\":\n\t\t\treturn `export function useWaitForTransaction(txId?: string) {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['wait-for-transaction', txId, config.network],\n queryFn: () => fetchTransaction({\n txId: txId!,\n network: config.network,\n apiUrl: config.apiUrl\n }),\n enabled: !!txId,\n refetchInterval: (queryOrData: any) => {\n // react-query v5 passes the query object, v4 passed the data — support both\n const tx = queryOrData?.state?.data ?? queryOrData\n // Stop polling when transaction is complete\n if (tx?.tx_status === 'success' ||\n tx?.tx_status === 'abort_by_response' ||\n tx?.tx_status === 'abort_by_post_condition') {\n return false\n }\n return 2000 // Poll every 2 seconds\n },\n staleTime: 0 // Always refetch\n })\n}`;\n\n\t\tcase \"useOpenSTXTransfer\":\n\t\t\treturn `export function useOpenSTXTransfer() {\n const config = useSecondLayerConfig()\n const queryClient = useQueryClient()\n\n const mutation = useMutation({\n mutationFn: async (params: {\n recipient: string;\n amount: string | number;\n memo?: string;\n network?: string;\n }) => {\n const { recipient, amount, memo } = params\n const network = params.network || config.network || 'mainnet'\n\n return await request('stx_transferStx', {\n recipient,\n amount: amount.toString(),\n memo,\n network,\n })\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['stacks-account'] })\n },\n onError: (error) => {\n console.error('STX transfer failed:', error)\n }\n })\n\n const openSTXTransfer = useCallback(async (params: {\n recipient: string;\n amount: string | number;\n memo?: string;\n network?: string;\n }) => {\n return mutation.mutateAsync(params)\n }, [mutation])\n\n return {\n openSTXTransfer,\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset\n }\n}`;\n\n\t\tcase \"useSignMessage\":\n\t\t\treturn `export function useSignMessage() {\n const config = useSecondLayerConfig()\n\n const mutation = useMutation({\n mutationFn: async (params: {\n message: string;\n network?: string;\n }) => {\n const { message } = params\n const network = params.network || config.network || 'mainnet'\n\n return await request('stx_signMessage', {\n message,\n network,\n })\n },\n onError: (error) => {\n console.error('Message signing failed:', error)\n }\n })\n\n const signMessage = useCallback(async (params: {\n message: string;\n network?: string;\n }) => {\n return mutation.mutateAsync(params)\n }, [mutation])\n\n return {\n signMessage,\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset\n }\n}`;\n\n\t\tcase \"useDeployContract\":\n\t\t\treturn `export function useDeployContract() {\n const config = useSecondLayerConfig()\n const queryClient = useQueryClient()\n\n const mutation = useMutation({\n mutationFn: async (params: {\n contractName: string;\n codeBody: string;\n network?: string;\n }) => {\n const { contractName, codeBody } = params\n const network = params.network || config.network || 'mainnet'\n\n return await request('stx_deployContract', {\n name: contractName,\n clarityCode: codeBody,\n network,\n })\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['stacks-account'] })\n },\n onError: (error) => {\n console.error('Contract deployment failed:', error)\n }\n })\n\n const deployContract = useCallback(async (params: {\n contractName: string;\n codeBody: string;\n network?: string;\n }) => {\n return mutation.mutateAsync(params)\n }, [mutation])\n\n return {\n deployContract,\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset\n }\n}`;\n\n\t\tdefault:\n\t\t\treturn \"\";\n\t}\n}\n",
20
+ "/**\n * Generic Stacks hooks generator for React plugin\n */\n\nimport { USE_CONTRACT_TEMPLATE } from \"../../../generators/templates/use-contract\";\nimport { DEFAULT_SENDER_ADDRESS } from \"../../../utils/constants\";\nimport { formatCode } from \"../../../utils/format\";\n\nconst GENERIC_HOOKS = [\n\t\"useAccount\",\n\t\"useConnect\",\n\t\"useDisconnect\",\n\t\"useNetwork\",\n\t\"useContract\",\n\t\"useOpenSTXTransfer\",\n\t\"useSignMessage\",\n\t\"useDeployContract\",\n\t\"useReadContract\",\n\t\"useTransaction\",\n\t\"useBlock\",\n\t\"useAccountTransactions\",\n\t\"useWaitForTransaction\",\n] as const;\n\nexport async function generateGenericHooks(\n\texcludeList: string[] = [],\n): Promise<string> {\n\t// Filter out excluded hooks\n\tconst hooksToGenerate = GENERIC_HOOKS.filter(\n\t\t(hookName) => !excludeList.includes(hookName),\n\t);\n\n\tconst imports = `import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'\nimport { useState, useCallback } from 'react'\nimport { useSecondLayerConfig } from './provider'\nimport { connect, disconnect, isConnected, request } from '@secondlayer/stacks/connect'\nimport { Cl } from '@secondlayer/stacks/clarity'\nimport type { ExtractFunctionArgs, ExtractFunctionNames, AbiContract } from '@secondlayer/stacks/clarity'\nimport type { PostCondition } from '@secondlayer/stacks/postconditions'\nimport { validateStacksAddress } from '@secondlayer/stacks/utils'\nimport { createPublicClient, http } from '@secondlayer/stacks'\nimport { getTransaction, waitForTransactionReceipt } from '@secondlayer/stacks/actions'\n\nconst API_URLS: Record<string, string> = {\n mainnet: 'https://api.hiro.so',\n testnet: 'https://api.testnet.hiro.so',\n devnet: 'http://localhost:3999'\n}\n\nfunction getStacksClient({ network, apiUrl }: { network?: string; apiUrl?: string }) {\n return createPublicClient({ transport: http(apiUrl || API_URLS[network || 'mainnet']) })\n}\n\nasync function callReadOnly(params: {\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: any[];\n senderAddress: string;\n network?: string;\n apiUrl?: string;\n}): Promise<any> {\n const { serializeCV, deserializeCV } = await import('@secondlayer/stacks/clarity')\n const baseUrl = params.apiUrl || API_URLS[params.network || 'mainnet']\n const response = await fetch(\n \\`\\${baseUrl}/v2/contracts/call-read/\\${params.contractAddress}/\\${params.contractName}/\\${params.functionName}\\`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n sender: params.senderAddress,\n arguments: params.functionArgs.map((arg: any) => \\`0x\\${serializeCV(arg)}\\`)\n })\n }\n )\n if (!response.ok) throw new Error(\\`Read-only call failed: \\${response.statusText}\\`)\n const data = await response.json()\n if (!data.okay) throw new Error(data.cause ?? 'Read-only call failed')\n return deserializeCV(data.result)\n}\n\nasync function fetchBlock({ height, network, apiUrl }: { height: number; network?: string; apiUrl?: string }): Promise<any> {\n const baseUrl = apiUrl || API_URLS[network || 'mainnet']\n const response = await fetch(\\`\\${baseUrl}/extended/v1/block/by_height/\\${height}\\`)\n if (!response.ok) throw new Error(\\`Failed to fetch block: \\${response.statusText}\\`)\n return response.json()\n}\n\nasync function fetchAccountTransactions({ address, network, apiUrl }: { address: string; network?: string; apiUrl?: string }): Promise<any> {\n const baseUrl = apiUrl || API_URLS[network || 'mainnet']\n const response = await fetch(\\`\\${baseUrl}/extended/v1/address/\\${address}/transactions\\`)\n if (!response.ok) throw new Error(\\`Failed to fetch transactions: \\${response.statusText}\\`)\n return response.json()\n}`;\n\n\tconst header = `/**\n * Generated generic Stacks React hooks\n * DO NOT EDIT MANUALLY\n */`;\n\n\tconst hooksCode = hooksToGenerate\n\t\t.map((hookName) => generateGenericHook(hookName))\n\t\t.filter(Boolean)\n\t\t.join(\"\\n\\n\");\n\n\tconst code = `${imports}\\n\\n${header}\\n\\n${hooksCode}`;\n\n\treturn formatCode(code);\n}\n\nfunction generateGenericHook(hookName: string): string {\n\tswitch (hookName) {\n\t\tcase \"useAccount\":\n\t\t\treturn `export function useAccount() {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['stacks-account', config.network],\n queryFn: async () => {\n try {\n // Check if already connected\n const connected = isConnected()\n \n if (!connected) {\n return {\n address: undefined,\n addresses: undefined,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n status: 'disconnected' as const\n }\n }\n\n // Get addresses via SIP-030\n const result = await request('stx_getAddresses')\n \n if (!result || !result.addresses || result.addresses.length === 0) {\n return {\n address: undefined,\n addresses: undefined,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n status: 'disconnected' as const\n }\n }\n\n // Extract STX addresses from the response\n const stxAddresses = result.addresses\n .filter((addr: any) => addr.address.startsWith('SP') || addr.address.startsWith('ST'))\n .map((addr: any) => addr.address)\n\n return {\n address: stxAddresses[0] || undefined,\n addresses: stxAddresses,\n isConnected: true,\n isConnecting: false,\n isDisconnected: false,\n status: 'connected' as const\n }\n } catch (error) {\n // Handle case where wallet is not available or user rejected\n return {\n address: undefined,\n addresses: undefined,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n status: 'disconnected' as const\n }\n }\n },\n refetchOnWindowFocus: false,\n retry: false,\n staleTime: 1000 * 60 * 5, // 5 minutes\n refetchInterval: 1000 * 30, // Refetch every 30 seconds to detect wallet changes\n })\n}`;\n\n\t\tcase \"useConnect\":\n\t\t\treturn `export function useConnect() {\n const queryClient = useQueryClient()\n \n const mutation = useMutation({\n mutationFn: async () => {\n // SIP-030 connect\n return await connect()\n },\n onSuccess: () => {\n // Invalidate account queries to refetch connection state\n queryClient.invalidateQueries({ queryKey: ['stacks-account'] })\n },\n onError: (error) => {\n console.error('Connection failed:', error)\n }\n })\n\n return {\n // Custom connect function that works without arguments\n connect: () => {\n return mutation.mutate(undefined)\n },\n connectAsync: async () => {\n return mutation.mutateAsync(undefined)\n },\n // Expose all the mutation state\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset,\n // Keep the original mutate/mutateAsync for advanced users\n mutate: mutation.mutate,\n mutateAsync: mutation.mutateAsync\n }\n}`;\n\n\t\tcase \"useDisconnect\":\n\t\t\treturn `export function useDisconnect() {\n const queryClient = useQueryClient()\n \n const mutation = useMutation({\n mutationFn: async () => {\n // SIP-030 disconnect\n return await disconnect()\n },\n onSuccess: () => {\n // Clear all cached data on disconnect\n queryClient.clear()\n },\n onError: (error) => {\n console.error('Disconnect failed:', error)\n }\n })\n\n return {\n // Custom disconnect function\n disconnect: () => {\n return mutation.mutate()\n },\n disconnectAsync: async () => {\n return mutation.mutateAsync()\n },\n // Expose all the mutation state\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset,\n // Keep the original mutate/mutateAsync for advanced users\n mutate: mutation.mutate,\n mutateAsync: mutation.mutateAsync\n }\n}`;\n\n\t\tcase \"useNetwork\":\n\t\t\treturn `export function useNetwork() {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['stacks-network', config.network],\n queryFn: async () => {\n // Currently read-only from config\n // Future: Use request('stx_getNetworks') when wallet support improves\n const network = config.network\n \n return {\n network,\n isMainnet: network === 'mainnet',\n isTestnet: network === 'testnet', \n isDevnet: network === 'devnet',\n // Future: Add switchNetwork when wallets support stx_networkChange\n // switchNetwork: async (newNetwork: string) => {\n // return await request('wallet_changeNetwork', { network: newNetwork })\n // }\n }\n },\n staleTime: Infinity, // Network config rarely changes\n refetchOnWindowFocus: false,\n retry: false\n })\n}`;\n\n\t\tcase \"useContract\":\n\t\t\treturn USE_CONTRACT_TEMPLATE;\n\n\t\tcase \"useReadContract\":\n\t\t\treturn `export function useReadContract<TArgs = any, TResult = any>(params: {\n contractAddress: string;\n contractName: string;\n functionName: string;\n args?: TArgs;\n network?: 'mainnet' | 'testnet' | 'devnet';\n enabled?: boolean;\n}) {\n const config = useSecondLayerConfig()\n \n return useQuery<TResult>({\n queryKey: ['read-contract', params.contractAddress, params.contractName, params.functionName, params.args, params.network || config.network],\n queryFn: async () => {\n // Args must already be ClarityValues (build them with Cl.* or a generated\n // contract method's descriptor). Positional array, ABI declaration order.\n let functionArgs: any[] = []\n\n if (params.args) {\n if (Array.isArray(params.args)) {\n functionArgs = params.args\n } else if (typeof params.args === 'object') {\n functionArgs = Object.values(params.args)\n } else {\n functionArgs = [params.args]\n }\n }\n\n return await callReadOnly({\n contractAddress: params.contractAddress,\n contractName: params.contractName,\n functionName: params.functionName,\n functionArgs,\n network: params.network || config.network || 'mainnet',\n apiUrl: config.apiUrl,\n senderAddress: config.senderAddress || '${DEFAULT_SENDER_ADDRESS}'\n }) as TResult\n },\n enabled: params.enabled ?? true\n })\n}`;\n\n\t\tcase \"useTransaction\":\n\t\t\treturn `export function useTransaction(txId?: string) {\n const config = useSecondLayerConfig()\n\n return useQuery({\n queryKey: ['transaction', txId, config.network],\n queryFn: () => getTransaction(getStacksClient(config), { txid: txId! }),\n enabled: !!txId\n })\n}`;\n\n\t\tcase \"useBlock\":\n\t\t\treturn `export function useBlock(height?: number) {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['block', height, config.network],\n queryFn: () => fetchBlock({\n height: height!,\n network: config.network,\n apiUrl: config.apiUrl\n }),\n enabled: typeof height === 'number'\n })\n}`;\n\n\t\tcase \"useAccountTransactions\":\n\t\t\treturn `export function useAccountTransactions(address?: string) {\n const config = useSecondLayerConfig()\n \n return useQuery({\n queryKey: ['account-transactions', address, config.network],\n queryFn: () => fetchAccountTransactions({\n address: address!,\n network: config.network,\n apiUrl: config.apiUrl\n }),\n enabled: !!address\n })\n}`;\n\n\t\tcase \"useWaitForTransaction\":\n\t\t\treturn `export function useWaitForTransaction(txId?: string, options?: { confirmations?: number }) {\n const config = useSecondLayerConfig()\n\n // waitForTransactionReceipt polls internally (reorg-tolerant, typed\n // abort/drop/timeout rejections) — no react-query refetchInterval needed.\n return useQuery({\n queryKey: ['wait-for-transaction', txId, config.network, options?.confirmations],\n queryFn: () => waitForTransactionReceipt(getStacksClient(config), {\n txid: txId!,\n confirmations: options?.confirmations\n }),\n enabled: !!txId,\n retry: false,\n staleTime: Infinity\n })\n}`;\n\n\t\tcase \"useOpenSTXTransfer\":\n\t\t\treturn `export function useOpenSTXTransfer() {\n const config = useSecondLayerConfig()\n const queryClient = useQueryClient()\n\n const mutation = useMutation({\n mutationFn: async (params: {\n recipient: string;\n amount: string | number;\n memo?: string;\n network?: string;\n }) => {\n const { recipient, amount, memo } = params\n const network = params.network || config.network || 'mainnet'\n\n return await request('stx_transferStx', {\n recipient,\n amount: amount.toString(),\n memo,\n network,\n })\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['stacks-account'] })\n },\n onError: (error) => {\n console.error('STX transfer failed:', error)\n }\n })\n\n const openSTXTransfer = useCallback(async (params: {\n recipient: string;\n amount: string | number;\n memo?: string;\n network?: string;\n }) => {\n return mutation.mutateAsync(params)\n }, [mutation])\n\n return {\n openSTXTransfer,\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset\n }\n}`;\n\n\t\tcase \"useSignMessage\":\n\t\t\treturn `export function useSignMessage() {\n const config = useSecondLayerConfig()\n\n const mutation = useMutation({\n mutationFn: async (params: {\n message: string;\n network?: string;\n }) => {\n const { message } = params\n const network = params.network || config.network || 'mainnet'\n\n return await request('stx_signMessage', {\n message,\n network,\n })\n },\n onError: (error) => {\n console.error('Message signing failed:', error)\n }\n })\n\n const signMessage = useCallback(async (params: {\n message: string;\n network?: string;\n }) => {\n return mutation.mutateAsync(params)\n }, [mutation])\n\n return {\n signMessage,\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset\n }\n}`;\n\n\t\tcase \"useDeployContract\":\n\t\t\treturn `export function useDeployContract() {\n const config = useSecondLayerConfig()\n const queryClient = useQueryClient()\n\n const mutation = useMutation({\n mutationFn: async (params: {\n contractName: string;\n codeBody: string;\n network?: string;\n }) => {\n const { contractName, codeBody } = params\n const network = params.network || config.network || 'mainnet'\n\n return await request('stx_deployContract', {\n name: contractName,\n clarityCode: codeBody,\n network,\n })\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['stacks-account'] })\n },\n onError: (error) => {\n console.error('Contract deployment failed:', error)\n }\n })\n\n const deployContract = useCallback(async (params: {\n contractName: string;\n codeBody: string;\n network?: string;\n }) => {\n return mutation.mutateAsync(params)\n }, [mutation])\n\n return {\n deployContract,\n isPending: mutation.isPending,\n isError: mutation.isError,\n isSuccess: mutation.isSuccess,\n error: mutation.error,\n data: mutation.data,\n reset: mutation.reset\n }\n}`;\n\n\t\tdefault:\n\t\t\treturn \"\";\n\t}\n}\n",
21
21
  "/**\n * Provider generator for React plugin\n */\n\nimport { DEFAULT_SENDER_ADDRESS } from \"../../../utils/constants\";\nimport { formatCode } from \"../../../utils/format\";\n\n/**\n * Generate the provider file content for user projects\n */\nexport async function generateProvider(): Promise<string> {\n\tconst code = `/**\n * Generated SecondLayer React Provider\n * DO NOT EDIT MANUALLY\n */\n\nimport React, { createContext, useContext } from 'react'\n\n/**\n * SecondLayer configuration interface\n */\nexport interface SecondLayerReactConfig {\n /**\n * Network to use for API calls\n */\n network: 'mainnet' | 'testnet' | 'devnet'\n\n /**\n * API key for Stacks API (optional)\n */\n apiKey?: string\n\n /**\n * Base URL for Stacks API (optional override)\n */\n apiUrl?: string\n\n /**\n * Default sender address for read-only calls\n */\n senderAddress?: string\n}\n\n/**\n * Provider component props\n */\nexport interface SecondLayerProviderProps {\n children: React.ReactNode\n config: SecondLayerReactConfig\n}\n\n/**\n * React context for SecondLayer configuration\n */\nconst SecondLayerContext = createContext<SecondLayerReactConfig | undefined>(undefined)\nSecondLayerContext.displayName = 'SecondLayerContext'\n\n/**\n * Create a SecondLayer React configuration with defaults\n */\nexport function createSecondLayerConfig(config: SecondLayerReactConfig): SecondLayerReactConfig {\n return {\n network: config.network,\n apiKey: config.apiKey,\n apiUrl: config.apiUrl,\n senderAddress: config.senderAddress || '${DEFAULT_SENDER_ADDRESS}'\n }\n}\n\n/**\n * Provider component that makes SecondLayer configuration available to hooks\n */\nexport function SecondLayerProvider({ children, config }: SecondLayerProviderProps) {\n const resolvedConfig = createSecondLayerConfig(config)\n\n return (\n <SecondLayerContext.Provider value={resolvedConfig}>\n {children}\n </SecondLayerContext.Provider>\n )\n}\n\n/**\n * Hook to access the SecondLayer configuration\n */\nexport function useSecondLayerConfig(): SecondLayerReactConfig {\n const context = useContext(SecondLayerContext)\n\n if (context === undefined) {\n throw new Error(\n 'useSecondLayerConfig must be used within a SecondLayerProvider. ' +\n 'Make sure to wrap your app with <SecondLayerProvider config={{...}}>'\n )\n }\n\n return context\n}`;\n\n\treturn formatCode(code);\n}\n",
22
22
  "/**\n * React Plugin for @secondlayer/cli\n * Generates React hooks for contract interfaces and generic Stacks functionality\n */\n\nimport type { GenerateContext, PluginFactory } from \"../../types/plugin\";\nimport { generateContractHooks } from \"./generators/contract\";\nimport { generateGenericHooks } from \"./generators/generic\";\nimport { generateProvider } from \"./provider/index\";\nimport type { ReactPluginOptions } from \"./types\";\n\n/**\n * React plugin factory\n */\nexport const react: PluginFactory<ReactPluginOptions> = (options = {}) => {\n\tconst excludeList = options.exclude || [];\n\n\treturn {\n\t\tname: \"@secondlayer/cli/plugin-react\",\n\t\tversion: \"1.0.0\",\n\n\t\tasync generate(context: GenerateContext): Promise<void> {\n\t\t\tif (options.debug) {\n\t\t\t\tcontext.logger.debug(\n\t\t\t\t\t`React plugin generating hooks (excluding: ${excludeList.join(\", \") || \"none\"})`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Generate provider (always generated)\n\t\t\tconst provider = await generateProvider();\n\t\t\tcontext.addOutput(\"provider\", {\n\t\t\t\tpath: \"./src/generated/provider.tsx\",\n\t\t\t\tcontent: provider,\n\t\t\t\ttype: \"config\",\n\t\t\t});\n\n\t\t\t// Generate generic hooks (all by default, minus excludes)\n\t\t\tconst genericHooks = await generateGenericHooks(excludeList);\n\t\t\tcontext.addOutput(\"generic-hooks\", {\n\t\t\t\tpath: \"./src/generated/hooks.ts\",\n\t\t\t\tcontent: genericHooks,\n\t\t\t\ttype: \"hooks\",\n\t\t\t});\n\n\t\t\t// Generate contract hooks (all contracts, minus excludes)\n\t\t\tif (context.contracts.length > 0) {\n\t\t\t\tconst contractHooks = await generateContractHooks(\n\t\t\t\t\tcontext.contracts,\n\t\t\t\t\texcludeList,\n\t\t\t\t);\n\n\t\t\t\t// Only add output if there are hooks to generate\n\t\t\t\tif (contractHooks.trim()) {\n\t\t\t\t\tcontext.addOutput(\"contract-hooks\", {\n\t\t\t\t\t\tpath: \"./src/generated/contract-hooks.ts\",\n\t\t\t\t\t\tcontent: contractHooks,\n\t\t\t\t\t\ttype: \"hooks\",\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.debug) {\n\t\t\t\tcontext.logger.success(\n\t\t\t\t\t`React plugin generated ${context.contracts.length} contract hook sets`,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n};\n\n// Re-export types for convenience\nexport type { ReactPluginOptions } from \"./types\";\n",
23
23
  "/**\n * Code generators for the testing plugin\n * Generates type-safe helpers for Clarinet SDK unit tests\n */\n\nimport {\n\ttype AbiFunction,\n\ttype AbiMap,\n\ttype AbiType,\n\ttype AbiVariable,\n\tisAbiTuple,\n} from \"@secondlayer/stacks/clarity\";\nimport type { ProcessedContract } from \"../../types/plugin\";\nimport { toCamelCase, toPascalCase } from \"../../utils/case-conversion\";\nimport {\n\tgenerateArgsSignature,\n\tgenerateClarityArgs,\n\tgenerateMapKeyConversion,\n} from \"../../utils/generator-helpers\";\nimport { getTypeForArg } from \"../../utils/type-mapping\";\nimport type { TestingPluginOptions } from \"./index\";\n\n/**\n * Generate a public function helper\n */\nfunction generatePublicFunction(func: AbiFunction, contractId: string): string {\n\tconst methodName = toCamelCase(func.name);\n\tconst argsSignature = generateArgsSignature(func.args);\n\tconst clarityArgs = generateClarityArgs(func.args);\n\n\treturn `${methodName}: (${argsSignature}caller: string) => {\n const callerAddr = accounts.get(caller) ?? caller;\n return simnet.callPublicFn(\n '${contractId}',\n '${func.name}',\n [${clarityArgs}],\n callerAddr\n );\n }`;\n}\n\n/**\n * Generate a read-only function helper\n */\nfunction generateReadOnlyFunction(\n\tfunc: AbiFunction,\n\tcontractId: string,\n): string {\n\tconst methodName = toCamelCase(func.name);\n\tconst argsSignature = generateArgsSignature(func.args);\n\tconst clarityArgs = generateClarityArgs(func.args);\n\n\t// Read-only functions don't need a caller, use deployer as default\n\tconst hasArgs = func.args.length > 0;\n\tconst argsParam = hasArgs ? argsSignature : \"\";\n\n\treturn `${methodName}: (${argsParam}) => {\n return simnet.callReadOnlyFn(\n '${contractId}',\n '${func.name}',\n [${clarityArgs}],\n accounts.get('deployer')!\n );\n }`;\n}\n\n/**\n * Generate a private function helper (for testing only)\n */\nfunction generatePrivateFunction(\n\tfunc: AbiFunction,\n\tcontractId: string,\n): string {\n\tconst methodName = toCamelCase(func.name);\n\tconst argsSignature = generateArgsSignature(func.args);\n\tconst clarityArgs = generateClarityArgs(func.args);\n\n\treturn `${methodName}: (${argsSignature}caller: string) => {\n const callerAddr = accounts.get(caller) ?? caller;\n return simnet.callPrivateFn(\n '${contractId}',\n '${func.name}',\n [${clarityArgs}],\n callerAddr\n );\n }`;\n}\n\n/**\n * Generate a data variable accessor helper\n */\nfunction generateDataVarHelper(\n\tvariable: AbiVariable,\n\tcontractId: string,\n): string {\n\tconst methodName = toCamelCase(variable.name);\n\n\treturn `${methodName}: () => {\n return simnet.getDataVar('${contractId}', '${variable.name}');\n }`;\n}\n\n/**\n * Generate TypeScript type for map key based on its structure\n */\nfunction getMapKeyType(keyType: AbiType): string {\n\t// Map keys are typically tuples\n\tif (isAbiTuple(keyType)) {\n\t\tconst fields = keyType.tuple\n\t\t\t.map(\n\t\t\t\t(field: { name: string; type: AbiType }) =>\n\t\t\t\t\t`${toCamelCase(field.name)}: ${getTypeForArg({ type: field.type })}`,\n\t\t\t)\n\t\t\t.join(\"; \");\n\t\treturn `{ ${fields} }`;\n\t}\n\n\t// Single-value keys (less common but possible)\n\treturn getTypeForArg({ type: keyType });\n}\n\n/**\n * Generate a map entry accessor helper\n */\nfunction generateMapEntryHelper(map: AbiMap, contractId: string): string {\n\tconst methodName = toCamelCase(map.name);\n\tconst keyType = getMapKeyType(map.key);\n\tconst keyConversion = generateMapKeyConversion(map.key);\n\n\treturn `${methodName}: (key: ${keyType}) => {\n return simnet.getMapEntry(\n '${contractId}',\n '${map.name}',\n ${keyConversion}\n );\n }`;\n}\n\n/**\n * Generate the vars object containing all data variable accessors\n */\nfunction generateVarsObject(\n\tvariables: readonly AbiVariable[],\n\tcontractId: string,\n): string {\n\t// Filter to only include mutable variables (not constants)\n\tconst dataVars = variables.filter((v) => v.access === \"variable\");\n\n\tif (dataVars.length === 0) {\n\t\treturn \"\";\n\t}\n\n\tconst varHelpers = dataVars.map((v) => generateDataVarHelper(v, contractId));\n\n\treturn `vars: {\n ${varHelpers.join(\",\\n\\n \")}\n }`;\n}\n\n/**\n * Generate the maps object containing all map entry accessors\n */\nfunction generateMapsObject(\n\tmaps: readonly AbiMap[],\n\tcontractId: string,\n): string {\n\tif (maps.length === 0) {\n\t\treturn \"\";\n\t}\n\n\tconst mapHelpers = maps.map((m) => generateMapEntryHelper(m, contractId));\n\n\treturn `maps: {\n ${mapHelpers.join(\",\\n\\n \")}\n }`;\n}\n\n/**\n * Generate a contract helper factory function\n */\nfunction generateContractHelper(\n\tcontract: ProcessedContract,\n\toptions: TestingPluginOptions,\n): string {\n\tconst { abi, name, address } = contract;\n\tconst functions = abi.functions || [];\n\tconst variables = abi.variables || [];\n\tconst maps = abi.maps || [];\n\tconst pascalName = toPascalCase(name);\n\n\t// Filter functions by access type\n\tconst publicFns = functions.filter((f: AbiFunction) => f.access === \"public\");\n\tconst readOnlyFns = functions.filter(\n\t\t(f: AbiFunction) => f.access === \"read-only\",\n\t);\n\tconst privateFns = options.includePrivate\n\t\t? functions.filter((f: AbiFunction) => f.access === \"private\")\n\t\t: [];\n\n\t// Generate function helpers\n\tconst publicHelpers = publicFns.map((f: AbiFunction) =>\n\t\tgeneratePublicFunction(f, address),\n\t);\n\tconst readOnlyHelpers = readOnlyFns.map((f: AbiFunction) =>\n\t\tgenerateReadOnlyFunction(f, address),\n\t);\n\tconst privateHelpers = privateFns.map((f: AbiFunction) =>\n\t\tgeneratePrivateFunction(f, address),\n\t);\n\n\t// Generate data variable and map accessors\n\tconst varsObject = generateVarsObject(variables, address);\n\tconst mapsObject = generateMapsObject(maps, address);\n\n\tconst allHelpers = [...publicHelpers, ...readOnlyHelpers, ...privateHelpers];\n\n\t// Include vars and maps objects if they have content\n\tif (varsObject) {\n\t\tallHelpers.push(varsObject);\n\t}\n\tif (mapsObject) {\n\t\tallHelpers.push(mapsObject);\n\t}\n\n\tif (allHelpers.length === 0) {\n\t\treturn \"\";\n\t}\n\n\treturn `export function get${pascalName}(simnet: Simnet) {\n const accounts = simnet.getAccounts();\n\n return {\n ${allHelpers.join(\",\\n\\n \")}\n };\n}`;\n}\n\n/**\n * Generate the getContracts convenience wrapper\n */\nfunction generateGetContracts(contracts: ProcessedContract[]): string {\n\tconst contractEntries = contracts\n\t\t.map((contract) => {\n\t\t\tconst camelName = toCamelCase(contract.name);\n\t\t\tconst pascalName = toPascalCase(contract.name);\n\t\t\treturn `${camelName}: get${pascalName}(simnet)`;\n\t\t})\n\t\t.join(\",\\n \");\n\n\treturn `export function getContracts(simnet: Simnet) {\n const accounts = simnet.getAccounts();\n\n return {\n accounts,\n ${contractEntries}\n };\n}`;\n}\n\n/**\n * Generate type exports for consumer convenience\n */\nfunction generateTypeExports(contracts: ProcessedContract[]): string {\n\tconst typeExports = contracts\n\t\t.map((contract) => {\n\t\t\tconst pascalName = toPascalCase(contract.name);\n\t\t\treturn `export type ${pascalName}Helpers = ReturnType<typeof get${pascalName}>;`;\n\t\t})\n\t\t.join(\"\\n\");\n\n\treturn `${typeExports}\nexport type Contracts = ReturnType<typeof getContracts>;`;\n}\n\n/**\n * Main entry point - generates the full testing helpers file\n */\nexport async function generateTestingHelpers(\n\tcontracts: ProcessedContract[],\n\toptions: TestingPluginOptions,\n): Promise<string> {\n\tconst contractHelpers = contracts\n\t\t.map((contract) => generateContractHelper(contract, options))\n\t\t.filter(Boolean);\n\n\tif (contractHelpers.length === 0) {\n\t\treturn `// No contracts with functions to generate helpers for\nexport {};`;\n\t}\n\n\tconst getContractsCode = generateGetContracts(contracts);\n\tconst typeExports = generateTypeExports(contracts);\n\n\treturn `/**\n * Generated by @secondlayer/cli testing plugin\n * Type-safe helpers for Clarinet SDK unit tests\n */\n\nimport { type Simnet, Cl } from '@hirosystems/clarinet-sdk';\n\n// ============================================\n// Per-contract factory functions\n// ============================================\n\n${contractHelpers.join(\"\\n\\n\")}\n\n// ============================================\n// Convenience: all contracts at once\n// ============================================\n\n${getContractsCode}\n\n// ============================================\n// Type exports\n// ============================================\n\n${typeExports}\n`;\n}\n",
24
24
  "export {\n\tgenerateArgsSignature,\n\tgenerateClarityArgs,\n\tgenerateMapKeyConversion,\n} from \"@secondlayer/scaffold\";\n",
25
25
  "/**\n * Testing plugin for @secondlayer/cli\n * Generates type-safe helpers for Clarinet SDK unit tests\n */\n\nimport type { GenerateContext, PluginFactory } from \"../../types/plugin\";\nimport { matchesContractFilters } from \"../shared\";\nimport { generateTestingHelpers } from \"./generators\";\n\nexport interface TestingPluginOptions {\n\t/** Include only specific contracts */\n\tinclude?: string[];\n\n\t/** Exclude specific contracts */\n\texclude?: string[];\n\n\t/** Output path for generated testing helpers (default: ./src/generated/testing.ts) */\n\tout?: string;\n\n\t/** Include private function helpers (default: false) */\n\tincludePrivate?: boolean;\n\n\t/** Enable debug output */\n\tdebug?: boolean;\n}\n\nexport const testing: PluginFactory<TestingPluginOptions> = (options = {}) => {\n\treturn {\n\t\tname: \"@secondlayer/cli/plugin-testing\",\n\t\tversion: \"1.0.0\",\n\n\t\tasync generate(context: GenerateContext): Promise<void> {\n\t\t\tconst { contracts } = context;\n\n\t\t\t// Filter contracts based on options\n\t\t\tconst filteredContracts = contracts.filter((contract) =>\n\t\t\t\tmatchesContractFilters(contract.name, options),\n\t\t\t);\n\n\t\t\tif (filteredContracts.length === 0) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tcontext.logger.debug(\"Testing plugin: No contracts to process\");\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (options.debug) {\n\t\t\t\tcontext.logger.debug(\n\t\t\t\t\t`Testing plugin: Generating helpers for ${filteredContracts.length} contracts`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Generate testing helpers\n\t\t\tconst testingCode = await generateTestingHelpers(\n\t\t\t\tfilteredContracts,\n\t\t\t\toptions,\n\t\t\t);\n\n\t\t\tconst outputPath = options.out || \"./src/generated/testing.ts\";\n\n\t\t\tcontext.addOutput(\"testing\", {\n\t\t\t\tpath: outputPath,\n\t\t\t\tcontent: testingCode,\n\t\t\t\ttype: \"utils\",\n\t\t\t});\n\n\t\t\tif (options.debug) {\n\t\t\t\tcontext.logger.debug(\n\t\t\t\t\t`Testing plugin: Generated helpers for ${filteredContracts.length} contracts`,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n};\n"
26
26
  ],
27
- "mappings": "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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAmEH;AAAA,MACJ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAsCH;AAAA,MACJ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAsCH;AAAA,MACJ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SA2BH;AAAA,MACJ,OAAO;AAAA,SAEH;AAAA,MACJ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kDAkCwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAO3C;AAAA,MACJ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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",
28
- "debugId": "15CE4A0BEE59E1A664756E2164756E21",
27
+ "mappings": "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",
28
+ "debugId": "8AE230CD4F0ABD0C64756E2164756E21",
29
29
  "names": []
30
30
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@secondlayer/cli",
3
- "version": "9.0.2",
3
+ "version": "9.0.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/ryanwaits/secondlayer.git",
@@ -50,10 +50,10 @@
50
50
  "@inquirer/prompts": "^8.2.0",
51
51
  "@secondlayer/bundler": "^0.4.0",
52
52
  "@secondlayer/scaffold": "^1.4.0",
53
- "@secondlayer/sdk": "^6.23.1",
54
- "@secondlayer/shared": "^6.41.3",
55
- "@secondlayer/stacks": "^2.14.0",
56
- "@secondlayer/subgraphs": "^3.19.6",
53
+ "@secondlayer/sdk": "^6.29.1",
54
+ "@secondlayer/shared": "^7.0.0",
55
+ "@secondlayer/stacks": "^2.14.1",
56
+ "@secondlayer/subgraphs": "^3.19.7",
57
57
  "@biomejs/js-api": "^0.7.0",
58
58
  "@biomejs/wasm-nodejs": "^1.9.0",
59
59
  "esbuild": "^0.19.0",