@secondlayer/stacks 2.15.1 → 2.16.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.
Files changed (64) hide show
  1. package/dist/shared/{stacks-2x04a6ss.js → stacks-1x9b2k5y.js} +8 -6
  2. package/dist/shared/{stacks-2x04a6ss.js.map → stacks-1x9b2k5y.js.map} +3 -3
  3. package/dist/shared/{stacks-q45x3389.js → stacks-58e4vbaw.js} +3 -3
  4. package/dist/shared/{stacks-jbmcwky5.js → stacks-905052xe.js} +33 -3
  5. package/dist/shared/{stacks-jbmcwky5.js.map → stacks-905052xe.js.map} +3 -3
  6. package/dist/shared/{stacks-shn9zw99.cjs → stacks-9mqveyjv.cjs} +3 -3
  7. package/dist/shared/stacks-9mqveyjv.cjs.map +10 -0
  8. package/dist/shared/{stacks-1xk4wby6.cjs → stacks-fvnxj77s.cjs} +5 -3
  9. package/dist/shared/{stacks-1xk4wby6.cjs.map → stacks-fvnxj77s.cjs.map} +3 -3
  10. package/dist/shared/{stacks-wamwv8q8.cjs → stacks-g2qnr5qn.cjs} +12 -3
  11. package/dist/shared/{stacks-wamwv8q8.cjs.map → stacks-g2qnr5qn.cjs.map} +5 -5
  12. package/dist/shared/{stacks-y9w78e2b.js → stacks-mbnfwekf.js} +21 -4
  13. package/dist/shared/{stacks-y9w78e2b.js.map → stacks-mbnfwekf.js.map} +4 -4
  14. package/dist/shared/{stacks-1k0kmpcw.js → stacks-p2c0w0sq.js} +3 -3
  15. package/dist/shared/{stacks-g11v9a35.js → stacks-qchg7s2m.js} +9 -5
  16. package/dist/shared/{stacks-g11v9a35.js.map → stacks-qchg7s2m.js.map} +3 -3
  17. package/dist/shared/{stacks-5nskdw7w.cjs → stacks-qjgh6pqr.cjs} +8 -4
  18. package/dist/shared/{stacks-5nskdw7w.cjs.map → stacks-qjgh6pqr.cjs.map} +3 -3
  19. package/dist/shared/{stacks-70xxh5h1.cjs → stacks-s361pmzs.cjs} +19 -3
  20. package/dist/shared/{stacks-70xxh5h1.cjs.map → stacks-s361pmzs.cjs.map} +4 -4
  21. package/dist/shared/{stacks-ssndnbbd.js → stacks-sd9sc71n.js} +13 -4
  22. package/dist/shared/{stacks-ssndnbbd.js.map → stacks-sd9sc71n.js.map} +5 -5
  23. package/dist/shared/{stacks-refg7hca.js → stacks-srvk63qq.js} +8 -7
  24. package/dist/shared/stacks-srvk63qq.js.map +10 -0
  25. package/dist/shared/{stacks-b9904rc2.cjs → stacks-v889ttgp.cjs} +37 -2
  26. package/dist/shared/{stacks-b9904rc2.cjs.map → stacks-v889ttgp.cjs.map} +3 -3
  27. package/dist/src/actions/index.d.cts +5 -0
  28. package/dist/src/actions/index.d.ts +5 -0
  29. package/dist/src/actions/index.js +7 -7
  30. package/dist/src/bitcoin/index.js +1 -1
  31. package/dist/src/bns/index.js +5 -5
  32. package/dist/src/clarity/index.d.cts +11 -1
  33. package/dist/src/clarity/index.d.ts +11 -1
  34. package/dist/src/clarity/index.js +12 -2
  35. package/dist/src/clarity/index.js.map +1 -1
  36. package/dist/src/index.cjs +4 -4
  37. package/dist/src/index.cjs.map +3 -3
  38. package/dist/src/index.d.cts +11 -0
  39. package/dist/src/index.d.ts +11 -0
  40. package/dist/src/index.js +11 -10
  41. package/dist/src/index.js.map +3 -3
  42. package/dist/src/pox/index.js +4 -4
  43. package/dist/src/pox5/index.js +3 -3
  44. package/dist/src/sbtc/index.js +4 -4
  45. package/dist/src/stackingdao/index.js +4 -4
  46. package/dist/src/tools/btc/index.cjs.map +2 -2
  47. package/dist/src/tools/btc/index.d.cts +2 -1
  48. package/dist/src/tools/btc/index.d.ts +2 -1
  49. package/dist/src/tools/btc/index.js.map +2 -2
  50. package/dist/src/tools/index.cjs +19 -5
  51. package/dist/src/tools/index.cjs.map +9 -9
  52. package/dist/src/tools/index.js +19 -5
  53. package/dist/src/tools/index.js.map +9 -9
  54. package/dist/src/transactions/index.d.cts +10 -1
  55. package/dist/src/transactions/index.d.ts +10 -1
  56. package/dist/src/transactions/index.js +2 -2
  57. package/dist/src/x402/index.d.cts +5 -0
  58. package/dist/src/x402/index.d.ts +5 -0
  59. package/dist/src/x402/index.js +4 -4
  60. package/package.json +1 -1
  61. package/dist/shared/stacks-refg7hca.js.map +0 -10
  62. package/dist/shared/stacks-shn9zw99.cjs.map +0 -10
  63. /package/dist/shared/{stacks-q45x3389.js.map → stacks-58e4vbaw.js.map} +0 -0
  64. /package/dist/shared/{stacks-1k0kmpcw.js.map → stacks-p2c0w0sq.js.map} +0 -0
@@ -7,7 +7,7 @@
7
7
  "import { createClient } from \"./createClient.ts\";\nimport { type PublicActions, publicActions } from \"./decorators/public.ts\";\nimport type { Client, ClientConfig } from \"./types.ts\";\n\n/** Configuration for {@link createPublicClient} (no account needed). */\nexport type PublicClientConfig = Omit<ClientConfig, \"account\">;\n\n/**\n * Create a read-only client pre-extended with {@link PublicActions}.\n * Use for queries, contract reads, and event subscriptions.\n */\nexport function createPublicClient(\n\tconfig: PublicClientConfig,\n): Client<PublicActions> & PublicActions {\n\treturn createClient(config).extend(publicActions);\n}\n",
8
8
  "import {\n\ttype CallContractParams,\n\tcallContract,\n} from \"../../actions/wallet/callContract.ts\";\nimport {\n\ttype DeployContractParams,\n\tdeployContract,\n} from \"../../actions/wallet/deployContract.ts\";\nimport {\n\ttype SendTransactionParams,\n\ttype SendTransactionResult,\n\tsendTransaction,\n} from \"../../actions/wallet/sendTransaction.ts\";\nimport {\n\ttype SignMessageParams,\n\tsignMessage,\n} from \"../../actions/wallet/signMessage.ts\";\nimport {\n\ttype SignTransactionParams,\n\tsignTransactionAction,\n} from \"../../actions/wallet/signTransaction.ts\";\nimport {\n\ttype SponsorTransactionParams,\n\tsponsorTransaction,\n} from \"../../actions/wallet/sponsorTransaction.ts\";\nimport {\n\ttype TransferStxParams,\n\ttransferStx,\n} from \"../../actions/wallet/transferStx.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport type { Client } from \"../types.ts\";\n\n/** Signing actions: send transactions, transfer STX, call/deploy contracts, sign messages. */\nexport type WalletActions = {\n\tsendTransaction: (\n\t\tparams: SendTransactionParams,\n\t) => Promise<SendTransactionResult>;\n\tsignTransaction: (\n\t\tparams: SignTransactionParams,\n\t) => Promise<StacksTransaction>;\n\ttransferStx: (params: TransferStxParams) => Promise<string>;\n\tcallContract: (params: CallContractParams) => Promise<string>;\n\tdeployContract: (params: DeployContractParams) => Promise<string>;\n\tsignMessage: (params: SignMessageParams) => Promise<string>;\n\tsponsorTransaction: (\n\t\tparams: SponsorTransactionParams,\n\t) => Promise<StacksTransaction>;\n};\n\n/** Decorator that binds {@link WalletActions} to a client instance. */\nexport function walletActions(client: Client): WalletActions {\n\treturn {\n\t\tsendTransaction: (params) => sendTransaction(client, params),\n\t\tsignTransaction: (params) => signTransactionAction(client, params),\n\t\ttransferStx: (params) => transferStx(client, params),\n\t\tcallContract: (params) => callContract(client, params),\n\t\tdeployContract: (params) => deployContract(client, params),\n\t\tsignMessage: (params) => signMessage(client, params),\n\t\tsponsorTransaction: (params) => sponsorTransaction(client, params),\n\t};\n}\n",
9
9
  "import { createClient } from \"./createClient.ts\";\nimport { type WalletActions, walletActions } from \"./decorators/wallet.ts\";\nimport type { Account, Client, ClientConfig } from \"./types.ts\";\n\n/** Configuration for {@link createWalletClient} — requires an account for signing. */\nexport type WalletClientConfig = ClientConfig & {\n\taccount: Account;\n};\n\n/**\n * Create a client pre-extended with {@link WalletActions} for signing and broadcasting transactions.\n */\nexport function createWalletClient(\n\tconfig: WalletClientConfig,\n): Client<WalletActions> & WalletActions & { account: Account } {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\treturn createClient(config).extend(walletActions) as any;\n}\n",
10
- "import { estimateFee } from \"../../actions/public/estimateFee.ts\";\nimport { getNonce } from \"../../actions/public/getNonce.ts\";\nimport {\n\ttype SendTransactionResult,\n\tsendTransaction,\n} from \"../../actions/wallet/sendTransaction.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport {\n\tbuildContractCall,\n\tbuildContractDeploy,\n\tbuildTokenTransfer,\n} from \"../../transactions/build.ts\";\nimport {\n\tfinalizeMultiSig,\n\tmakeMultiSigAddress,\n} from \"../../transactions/multisig.ts\";\nimport type {\n\tClarityVersion,\n\tMultiSigHashMode,\n\tStacksTransaction,\n} from \"../../transactions/types.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport type { Client } from \"../types.ts\";\n\nexport type MultiSigTransferStxParams = {\n\tto: string;\n\tamount: IntegerType;\n\tmemo?: string;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\nexport type MultiSigCallContractParams = {\n\tcontract: string;\n\tfunctionName: string;\n\tfunctionArgs?: ClarityValue[];\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\nexport type MultiSigDeployContractParams = {\n\tcontractName: string;\n\tcodeBody: string;\n\tclarityVersion?: ClarityVersion;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\nexport type MultiSigSendTransactionParams = {\n\ttransaction: StacksTransaction;\n\tattachment?: Uint8Array | string;\n};\n\n/** Multi-sig transaction actions: build unsigned transactions and broadcast with auto-finalization. */\nexport type MultiSigActions = {\n\ttransferStx: (\n\t\tparams: MultiSigTransferStxParams,\n\t) => Promise<StacksTransaction>;\n\tcallContract: (\n\t\tparams: MultiSigCallContractParams,\n\t) => Promise<StacksTransaction>;\n\tdeployContract: (\n\t\tparams: MultiSigDeployContractParams,\n\t) => Promise<StacksTransaction>;\n\tsendTransaction: (\n\t\tparams: MultiSigSendTransactionParams,\n\t) => Promise<SendTransactionResult>;\n};\n\n/** Decorator that binds {@link MultiSigActions} to a multi-sig client. */\nexport function multisigActions(client: Client): MultiSigActions {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\tconst msConfig = (client as any)._multisigConfig as {\n\t\tsigners: string[];\n\t\trequiredSignatures: number;\n\t\thashMode?: MultiSigHashMode;\n\t};\n\n\tif (!msConfig) throw new Error(\"multisigActions requires a multi-sig client\");\n\n\tconst { signers, requiredSignatures, hashMode } = msConfig;\n\n\t/** Resolve nonce from the multi-sig address */\n\tasync function resolveNonce(nonce?: IntegerType): Promise<IntegerType> {\n\t\tif (nonce !== undefined) return nonce;\n\t\tconst address = makeMultiSigAddress(\n\t\t\tsigners,\n\t\t\trequiredSignatures,\n\t\t\tclient.chain,\n\t\t);\n\t\tif (client.nonceManager)\n\t\t\treturn client.nonceManager.consume({ client, address });\n\t\treturn getNonce(client, { address });\n\t}\n\n\treturn {\n\t\tasync transferStx(params) {\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildTokenTransfer({\n\t\t\t\trecipient: params.to,\n\t\t\t\tamount: params.amount,\n\t\t\t\tmemo: params.memo,\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync callContract(params) {\n\t\t\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildContractCall({\n\t\t\t\tcontractAddress,\n\t\t\t\tcontractName,\n\t\t\t\tfunctionName: params.functionName,\n\t\t\t\tfunctionArgs: params.functionArgs ?? [],\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync deployContract(params) {\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildContractDeploy({\n\t\t\t\tcontractName: params.contractName,\n\t\t\t\tcodeBody: params.codeBody,\n\t\t\t\tclarityVersion: params.clarityVersion,\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync sendTransaction(params) {\n\t\t\t// Auto-finalize before broadcast\n\t\t\tconst finalized = finalizeMultiSig(params.transaction, signers);\n\t\t\treturn sendTransaction(client, {\n\t\t\t\ttransaction: finalized,\n\t\t\t\tattachment: params.attachment,\n\t\t\t});\n\t\t},\n\t};\n}\n",
10
+ "import { estimateFee } from \"../../actions/public/estimateFee.ts\";\nimport { getNonce } from \"../../actions/public/getNonce.ts\";\nimport {\n\ttype SendTransactionResult,\n\tsendTransaction,\n} from \"../../actions/wallet/sendTransaction.ts\";\nimport { setUnsignedFee } from \"../../actions/wallet/utils.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport {\n\tbuildContractCall,\n\tbuildContractDeploy,\n\tbuildTokenTransfer,\n} from \"../../transactions/build.ts\";\nimport {\n\tfinalizeMultiSig,\n\tmakeMultiSigAddress,\n} from \"../../transactions/multisig.ts\";\nimport type {\n\tClarityVersion,\n\tMultiSigHashMode,\n\tStacksTransaction,\n} from \"../../transactions/types.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport type { Client } from \"../types.ts\";\n\nexport type MultiSigTransferStxParams = {\n\tto: string;\n\tamount: IntegerType;\n\tmemo?: string;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\nexport type MultiSigCallContractParams = {\n\tcontract: string;\n\tfunctionName: string;\n\tfunctionArgs?: ClarityValue[];\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\nexport type MultiSigDeployContractParams = {\n\tcontractName: string;\n\tcodeBody: string;\n\tclarityVersion?: ClarityVersion;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\nexport type MultiSigSendTransactionParams = {\n\ttransaction: StacksTransaction;\n\tattachment?: Uint8Array | string;\n};\n\n/** Multi-sig transaction actions: build unsigned transactions and broadcast with auto-finalization. */\nexport type MultiSigActions = {\n\ttransferStx: (\n\t\tparams: MultiSigTransferStxParams,\n\t) => Promise<StacksTransaction>;\n\tcallContract: (\n\t\tparams: MultiSigCallContractParams,\n\t) => Promise<StacksTransaction>;\n\tdeployContract: (\n\t\tparams: MultiSigDeployContractParams,\n\t) => Promise<StacksTransaction>;\n\tsendTransaction: (\n\t\tparams: MultiSigSendTransactionParams,\n\t) => Promise<SendTransactionResult>;\n};\n\n/** Decorator that binds {@link MultiSigActions} to a multi-sig client. */\nexport function multisigActions(client: Client): MultiSigActions {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\tconst msConfig = (client as any)._multisigConfig as {\n\t\tsigners: string[];\n\t\trequiredSignatures: number;\n\t\thashMode?: MultiSigHashMode;\n\t};\n\n\tif (!msConfig) throw new Error(\"multisigActions requires a multi-sig client\");\n\n\tconst { signers, requiredSignatures, hashMode } = msConfig;\n\n\t/** Resolve nonce from the multi-sig address */\n\tasync function resolveNonce(nonce?: IntegerType): Promise<IntegerType> {\n\t\tif (nonce !== undefined) return nonce;\n\t\tconst address = makeMultiSigAddress(\n\t\t\tsigners,\n\t\t\trequiredSignatures,\n\t\t\tclient.chain,\n\t\t);\n\t\tif (client.nonceManager)\n\t\t\treturn client.nonceManager.consume({ client, address });\n\t\treturn getNonce(client, { address });\n\t}\n\n\treturn {\n\t\tasync transferStx(params) {\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildTokenTransfer({\n\t\t\t\trecipient: params.to,\n\t\t\t\tamount: params.amount,\n\t\t\t\tmemo: params.memo,\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\tsetUnsignedFee(unsigned, BigInt(mid.fee));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync callContract(params) {\n\t\t\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildContractCall({\n\t\t\t\tcontractAddress,\n\t\t\t\tcontractName,\n\t\t\t\tfunctionName: params.functionName,\n\t\t\t\tfunctionArgs: params.functionArgs ?? [],\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\tsetUnsignedFee(unsigned, BigInt(mid.fee));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync deployContract(params) {\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildContractDeploy({\n\t\t\t\tcontractName: params.contractName,\n\t\t\t\tcodeBody: params.codeBody,\n\t\t\t\tclarityVersion: params.clarityVersion,\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\tsetUnsignedFee(unsigned, BigInt(mid.fee));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync sendTransaction(params) {\n\t\t\t// Auto-finalize before broadcast\n\t\t\tconst finalized = finalizeMultiSig(params.transaction, signers);\n\t\t\treturn sendTransaction(client, {\n\t\t\t\ttransaction: finalized,\n\t\t\t\tattachment: params.attachment,\n\t\t\t});\n\t\t},\n\t};\n}\n",
11
11
  "import type { MultiSigHashMode } from \"../transactions/types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport {\n\ttype MultiSigActions,\n\tmultisigActions,\n} from \"./decorators/multisig.ts\";\nimport type { Client, ClientConfig } from \"./types.ts\";\n\n/** Configuration for {@link createMultiSigClient} — requires signer public keys and threshold. */\nexport type MultiSigClientConfig = Omit<ClientConfig, \"account\"> & {\n\tsigners: string[];\n\trequiredSignatures: number;\n\thashMode?: MultiSigHashMode;\n};\n\n/** A client pre-extended with {@link MultiSigActions} for m-of-n signing flows. */\nexport type MultiSigClient = Client<MultiSigActions> & MultiSigActions;\n\n/**\n * Create a client for multi-sig transaction flows.\n * Builds unsigned transactions that can be signed by each party then broadcast.\n */\nexport function createMultiSigClient(\n\tconfig: MultiSigClientConfig,\n): MultiSigClient {\n\tconst client = createClient(config);\n\n\t// Attach multi-sig config for the decorator to read\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t(client as any)._multisigConfig = {\n\t\tsigners: config.signers,\n\t\trequiredSignatures: config.requiredSignatures,\n\t\thashMode: config.hashMode,\n\t};\n\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\treturn client.extend(multisigActions) as any;\n}\n",
12
12
  "import type { NonceStore } from \"./nonceManager.ts\";\n\n/**\n * Persisted {@link NonceStore} adapters for multi-process / multi-builder\n * deployments (the smart-wallet-as-a-service case).\n *\n * The in-memory {@link memoryStore} is correct only within one process: two\n * workers sharing a signing key both read the same confirmed floor and collide.\n * These adapters move the atomic reserve into a shared datastore — Redis `INCR`\n * inside an `EVAL`, or a single Postgres upsert under a row lock — so the store\n * itself becomes the cross-process lock and the durable source of truth.\n *\n * Both are dependency-injected: pass your own `Bun.redis` / `Bun.sql` client.\n * No global `Bun` reference, so importing this module is runtime-agnostic.\n */\n\n/** Minimal structural shape of a `Bun.redis` client (the `send` escape hatch). */\nexport type RedisLike = {\n\tsend(command: string, args: string[]): Promise<unknown>;\n};\n\nexport type RedisStoreParams = {\n\tredis: RedisLike;\n\t/** Key prefix for stored nonce counters. Default `\"stacks:nonce:\"`. */\n\tprefix?: string;\n};\n\n// Warm path: counter exists → atomically hand out the current value and bump.\n// Returns the nonce (bulk string) or `false` (RESP nil) when the key is unset.\nconst TAKE_IF_PRESENT = `local v = redis.call('GET', KEYS[1])\nif v == false then return false end\nredis.call('INCR', KEYS[1])\nreturn v`;\n\n// Cold path: seed from the confirmed floor if still unset, then hand out and\n// bump. Atomic, so two racing cold reservers can never return the same nonce.\nconst SEED_OR_TAKE = `local v = redis.call('GET', KEYS[1])\nif v == false then redis.call('SET', KEYS[1], ARGV[1]); v = ARGV[1] end\nredis.call('INCR', KEYS[1])\nreturn v`;\n\n/**\n * Redis-backed nonce store. The atomic reserve lives in a Lua `EVAL`, so it is\n * safe across processes sharing one Redis. The confirmed floor (`getFloor`) is\n * read only once per key, on cold start.\n */\nexport function redisStore(params: RedisStoreParams): NonceStore {\n\tconst { redis } = params;\n\tconst prefix = params.prefix ?? \"stacks:nonce:\";\n\n\treturn {\n\t\tasync reserve(key, getFloor) {\n\t\t\tconst k = prefix + key;\n\t\t\tconst present = await redis.send(\"EVAL\", [TAKE_IF_PRESENT, \"1\", k]);\n\t\t\tif (present != null) return BigInt(present as string | number);\n\n\t\t\tconst floor = await getFloor();\n\t\t\tconst seeded = await redis.send(\"EVAL\", [\n\t\t\t\tSEED_OR_TAKE,\n\t\t\t\t\"1\",\n\t\t\t\tk,\n\t\t\t\tfloor.toString(),\n\t\t\t]);\n\t\t\treturn BigInt(seeded as string | number);\n\t\t},\n\t\tasync reset(key) {\n\t\t\tawait redis.send(\"DEL\", [prefix + key]);\n\t\t},\n\t\tasync peek(key) {\n\t\t\tconst v = await redis.send(\"GET\", [prefix + key]);\n\t\t\treturn v == null ? undefined : BigInt(v as string | number);\n\t\t},\n\t};\n}\n\n/** Minimal structural shape of a `Bun.sql` tagged-template client. */\nexport type SqlLike = (\n\tstrings: TemplateStringsArray,\n\t...values: unknown[]\n) => Promise<Array<Record<string, unknown>>>;\n\nexport type PostgresStoreParams = {\n\tsql: SqlLike;\n\t/**\n\t * Run `CREATE TABLE IF NOT EXISTS stacks_nonce_state` lazily on first use.\n\t * Default `true`. Set `false` if you manage the schema via migrations.\n\t */\n\tensureTable?: boolean;\n};\n\n/**\n * Postgres-backed nonce store. Each reserve is a single atomic statement under\n * a row lock, so concurrent reservers on the same key serialize and never\n * collide across processes. State is durable — survives restarts.\n *\n * Uses a fixed table `stacks_nonce_state (key text primary key, next numeric)`.\n */\nexport function postgresStore(params: PostgresStoreParams): NonceStore {\n\tconst { sql } = params;\n\tconst shouldEnsure = params.ensureTable ?? true;\n\tlet ensured = false;\n\n\tasync function ensureTable() {\n\t\tif (!shouldEnsure || ensured) return;\n\t\tawait sql`CREATE TABLE IF NOT EXISTS stacks_nonce_state (key text PRIMARY KEY, next numeric NOT NULL)`;\n\t\tensured = true;\n\t}\n\n\treturn {\n\t\tasync reserve(key, getFloor) {\n\t\t\tawait ensureTable();\n\n\t\t\t// Warm path: bump and return the pre-increment value atomically.\n\t\t\tconst updated =\n\t\t\t\tawait sql`UPDATE stacks_nonce_state SET next = next + 1 WHERE key = ${key} RETURNING next - 1 AS nonce`;\n\t\t\tconst warm = updated[0];\n\t\t\tif (warm) return BigInt(String(warm.nonce));\n\n\t\t\t// Cold path: seed from the confirmed floor. ON CONFLICT keeps the seed\n\t\t\t// atomic against a racing reserver.\n\t\t\tconst floor = await getFloor();\n\t\t\tconst seeded =\n\t\t\t\tawait sql`INSERT INTO stacks_nonce_state (key, next) VALUES (${key}, ${(floor + 1n).toString()}) ON CONFLICT (key) DO UPDATE SET next = stacks_nonce_state.next + 1 RETURNING next - 1 AS nonce`;\n\t\t\tconst cold = seeded[0];\n\t\t\tif (!cold) throw new Error(\"postgresStore: insert returned no row\");\n\t\t\treturn BigInt(String(cold.nonce));\n\t\t},\n\t\tasync reset(key) {\n\t\t\tawait ensureTable();\n\t\t\tawait sql`DELETE FROM stacks_nonce_state WHERE key = ${key}`;\n\t\t},\n\t\tasync peek(key) {\n\t\t\tawait ensureTable();\n\t\t\tconst rows =\n\t\t\t\tawait sql`SELECT next FROM stacks_nonce_state WHERE key = ${key}`;\n\t\t\tconst row = rows[0];\n\t\t\treturn row ? BigInt(String(row.next)) : undefined;\n\t\t},\n\t};\n}\n",
13
13
  "import type { Client } from \"../../clients/types.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport type { NonceManagerSource } from \"./nonceManager.ts\";\n\n/**\n * Mempool-aware {@link NonceManagerSource}s.\n *\n * The default {@link jsonRpcSource} reads only the confirmed nonce, so a tx\n * sitting in the mempool is invisible — broadcasting many quickly forces manual\n * tracking. These sources fold pending (mempool) txs into the next-nonce\n * computation. The gap-filling core is generic; where the pending set comes from\n * is pluggable, so you are never locked to any one provider:\n *\n * - {@link mempoolAwareSource} — bring your own `getPending`.\n * - {@link indexSource} — prebuilt over Secondlayer's `/v1/index/mempool`.\n * - {@link hiroNonceSource} — prebuilt over Hiro's `/extended` nonces endpoint.\n */\n\ntype FetchImpl = typeof globalThis.fetch;\n\nfunction resolveFetch(fetchImpl?: FetchImpl): FetchImpl {\n\tconst f = fetchImpl ?? globalThis.fetch;\n\tif (!f)\n\t\tthrow new Error(\"No fetch implementation available; pass `fetchImpl`\");\n\treturn f;\n}\n\n/**\n * The next free nonce ≥ `confirmed` not already taken by a pending tx.\n *\n * Unlike Hiro's `possible_next_nonce` (which is `max(pending) + 1` and strands\n * higher txs when a lower nonce is missing), this FILLS gaps: it returns the\n * lowest unused slot, so a dropped-tx hole is reused instead of stranding the\n * chain.\n */\nexport function nextFreeNonce(confirmed: bigint, pending: bigint[]): bigint {\n\tconst taken = new Set(\n\t\tpending.filter((n) => n >= confirmed).map((n) => n.toString()),\n\t);\n\tlet n = confirmed;\n\twhile (taken.has(n.toString())) n += 1n;\n\treturn n;\n}\n\nexport type MempoolAwareSourceParams = {\n\t/** Pending (mempool) nonces for an address. */\n\tgetPending: (args: {\n\t\tclient: Client;\n\t\taddress: string;\n\t}) => Promise<bigint[]>;\n\t/**\n\t * Confirmed-nonce floor. Defaults to the node's `/v2/accounts` read — the\n\t * user's own node via the client transport, no provider dependency.\n\t */\n\tgetConfirmed?: (args: { client: Client; address: string }) => Promise<bigint>;\n};\n\n/**\n * Build a gap-filling, mempool-aware source from any `getPending`. The confirmed\n * floor defaults to the node read; if `getPending` throws, the source degrades\n * to confirmed-only rather than blocking a broadcast.\n */\nexport function mempoolAwareSource(\n\tparams: MempoolAwareSourceParams,\n): NonceManagerSource {\n\tconst getConfirmed =\n\t\tparams.getConfirmed ??\n\t\t(({ client, address }) => getNonce(client, { address }));\n\n\treturn {\n\t\tasync get({ client, address }) {\n\t\t\tconst confirmed = await getConfirmed({ client, address });\n\t\t\tlet pending: bigint[] = [];\n\t\t\ttry {\n\t\t\t\tpending = await params.getPending({ client, address });\n\t\t\t} catch {\n\t\t\t\t// Source unavailable — fall back to the confirmed floor. The local\n\t\t\t\t// increment in the manager still prevents same-process collisions.\n\t\t\t\treturn confirmed;\n\t\t\t}\n\t\t\treturn nextFreeNonce(confirmed, pending);\n\t\t},\n\t};\n}\n\nexport type IndexSourceParams = {\n\t/** Secondlayer Index base URL. Default `https://api.secondlayer.tools`. */\n\tbaseUrl?: string;\n\t/** Optional API key (keyless by default; supply to raise rate limits). */\n\tapiKey?: string;\n\tfetchImpl?: FetchImpl;\n\t/** Max mempool pages to page through per address. Default 10 (×200 = 2000 txs). */\n\tmaxPages?: number;\n\t/** Override the confirmed floor (defaults to the node read). */\n\tgetConfirmed?: (args: { client: Client; address: string }) => Promise<bigint>;\n};\n\ntype IndexMempoolResponse = {\n\tmempool?: Array<{ nonce?: string | number | null }>;\n\tnext_cursor?: string | null;\n};\n\n/**\n * Mempool-aware source backed by Secondlayer's `/v1/index/mempool` (our node's\n * observed mempool). `baseUrl` is configurable — point it at any shape-compatible\n * endpoint. Note our mempool is a go-forward, single-node observed view (not a\n * globally-aggregated mempool), so it can lag or miss txs our node never saw.\n */\nexport function indexSource(\n\tparams: IndexSourceParams = {},\n): NonceManagerSource {\n\tconst baseUrl = (params.baseUrl ?? \"https://api.secondlayer.tools\").replace(\n\t\t/\\/$/,\n\t\t\"\",\n\t);\n\tconst fetchImpl = resolveFetch(params.fetchImpl);\n\tconst maxPages = params.maxPages ?? 10;\n\n\treturn mempoolAwareSource({\n\t\tgetConfirmed: params.getConfirmed,\n\t\tasync getPending({ address }) {\n\t\t\tconst out: bigint[] = [];\n\t\t\tlet cursor: string | undefined;\n\t\t\tlet pages = 0;\n\n\t\t\tdo {\n\t\t\t\tconst url = new URL(`${baseUrl}/v1/index/mempool`);\n\t\t\t\turl.searchParams.set(\"sender\", address);\n\t\t\t\turl.searchParams.set(\"limit\", \"200\");\n\t\t\t\tif (cursor) url.searchParams.set(\"from_cursor\", cursor);\n\n\t\t\t\tconst res = await fetchImpl(url, {\n\t\t\t\t\theaders: params.apiKey\n\t\t\t\t\t\t? { authorization: `Bearer ${params.apiKey}` }\n\t\t\t\t\t\t: undefined,\n\t\t\t\t});\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\tthrow new Error(`indexSource: /v1/index/mempool ${res.status}`);\n\t\t\t\t}\n\n\t\t\t\tconst data = (await res.json()) as IndexMempoolResponse;\n\t\t\t\tfor (const tx of data.mempool ?? []) {\n\t\t\t\t\tif (tx.nonce != null) out.push(BigInt(tx.nonce));\n\t\t\t\t}\n\t\t\t\tcursor = data.next_cursor ?? undefined;\n\t\t\t\tpages += 1;\n\t\t\t} while (cursor && pages < maxPages);\n\n\t\t\tif (cursor) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`indexSource: stopped paging mempool for ${address} after ${maxPages} pages; pending set may be incomplete`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\t});\n}\n\nexport type HiroNonceSourceParams = {\n\t/** Hiro API base URL, e.g. `https://api.hiro.so` or `https://api.testnet.hiro.so`. */\n\tbaseUrl: string;\n\tapiKey?: string;\n\tfetchImpl?: FetchImpl;\n};\n\ntype HiroNoncesResponse = {\n\tlast_executed_tx_nonce?: number | null;\n\tlast_mempool_tx_nonce?: number | null;\n\tpossible_next_nonce?: number | null;\n\tdetected_missing_nonces?: number[];\n};\n\n/**\n * Off-the-shelf, non-Secondlayer mempool-aware source over Hiro's\n * `/extended/v1/address/{address}/nonces`. Fills the lowest detected gap first,\n * then falls back to `possible_next_nonce`. Requires a host that serves Hiro's\n * extended API (a bare stacks-node does not).\n */\nexport function hiroNonceSource(\n\tparams: HiroNonceSourceParams,\n): NonceManagerSource {\n\tconst baseUrl = params.baseUrl.replace(/\\/$/, \"\");\n\tconst fetchImpl = resolveFetch(params.fetchImpl);\n\n\treturn {\n\t\tasync get({ address }) {\n\t\t\tconst res = await fetchImpl(\n\t\t\t\t`${baseUrl}/extended/v1/address/${address}/nonces`,\n\t\t\t\t{\n\t\t\t\t\theaders: params.apiKey ? { \"x-api-key\": params.apiKey } : undefined,\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (!res.ok) {\n\t\t\t\tthrow new Error(`hiroNonceSource: /nonces ${res.status}`);\n\t\t\t}\n\t\t\tconst data = (await res.json()) as HiroNoncesResponse;\n\n\t\t\t// Fill the lowest gap first — possible_next_nonce ignores gaps and would\n\t\t\t// strand the missing slots.\n\t\t\tconst missing = (data.detected_missing_nonces ?? [])\n\t\t\t\t.map((n) => BigInt(n))\n\t\t\t\t.sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));\n\t\t\tif (missing[0] !== undefined) return missing[0];\n\n\t\t\treturn BigInt(data.possible_next_nonce ?? 0);\n\t\t},\n\t};\n}\n",
@@ -23,7 +23,7 @@
23
23
  "import {\n\ttype FactoryTarget,\n\ttype SubscriptionFilterSpec,\n\tmakeSpec,\n} from \"./spec.ts\";\n\n/**\n * Match transfer events into a recipient address.\n *\n * Works against any subgraph table that has a `recipient` column (and\n * optionally `asset_identifier`). Templates that scaffold this shape:\n * `sip-010-balances`, `sbtc-flows`.\n *\n * @param target the user's subgraph + table to bind against\n * @param recipient stx principal that should receive the transfer\n * @param opts.asset optional asset identifier (e.g. `\"SP1...usdc::usdc-token\"`)\n * to filter to a specific FT/NFT contract\n */\nexport function transferTo(\n\ttarget: FactoryTarget,\n\trecipient: string,\n\topts?: { asset?: string },\n): SubscriptionFilterSpec {\n\treturn makeSpec(target, {\n\t\trecipient,\n\t\t...(opts?.asset && { asset_identifier: opts.asset }),\n\t});\n}\n\n/**\n * SIP-010 (fungible token) transfer sugar — alias for `transferTo` that\n * makes the asset filter intent explicit at the call site. Same backing\n * filter; the `asset` param is optional (omit to match every SIP-010\n * transfer in the bound table).\n */\nexport function sip010Transfer(\n\ttarget: FactoryTarget,\n\tasset?: string,\n\topts?: { recipient?: string },\n): SubscriptionFilterSpec {\n\treturn makeSpec(target, {\n\t\t...(asset && { asset_identifier: asset }),\n\t\t...(opts?.recipient && { recipient: opts.recipient }),\n\t});\n}\n\n/**\n * SIP-009 (non-fungible token) transfer sugar — same pattern as\n * `sip010Transfer`. Bind against an NFT-shaped table (see template\n * `nft-transfers` if/when published).\n */\nexport function sip009Transfer(\n\ttarget: FactoryTarget,\n\tasset?: string,\n\topts?: { recipient?: string; tokenId?: string | number },\n): SubscriptionFilterSpec {\n\treturn makeSpec(target, {\n\t\t...(asset && { asset_identifier: asset }),\n\t\t...(opts?.recipient && { recipient: opts.recipient }),\n\t\t...(opts?.tokenId !== undefined && { token_id: String(opts.tokenId) }),\n\t});\n}\n",
24
24
  "import { BaseError } from \"./base.ts\";\n\nexport class ContractCallError extends BaseError {\n\toverride name = \"ContractCallError\";\n}\n\nexport class ReadOnlyCallError extends BaseError {\n\toverride name = \"ReadOnlyCallError\";\n}\n"
25
25
  ],
26
- "mappings": "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",
27
- "debugId": "AA8E92711B94C21F64756E2164756E21",
26
+ "mappings": "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",
27
+ "debugId": "9D8B34E1981DD7ED64756E2164756E21",
28
28
  "names": []
29
29
  }
@@ -5,11 +5,11 @@ import {
5
5
  import {
6
6
  getContract,
7
7
  resolveNetworkContract
8
- } from "../../shared/stacks-refg7hca.js";
8
+ } from "../../shared/stacks-srvk63qq.js";
9
9
  import"../../shared/stacks-pdcz1w1d.js";
10
- import"../../shared/stacks-q45x3389.js";
10
+ import"../../shared/stacks-58e4vbaw.js";
11
11
  import"../../shared/stacks-msmgyerb.js";
12
- import"../../shared/stacks-y9w78e2b.js";
12
+ import"../../shared/stacks-mbnfwekf.js";
13
13
  import"../../shared/stacks-fh48neva.js";
14
14
  import"../../shared/stacks-709tra19.js";
15
15
  import"../../shared/stacks-18jv9aen.js";
@@ -17,7 +17,7 @@ import"../../shared/stacks-z53fwfcm.js";
17
17
  import {
18
18
  Pc
19
19
  } from "../../shared/stacks-x94a1d6s.js";
20
- import"../../shared/stacks-ssndnbbd.js";
20
+ import"../../shared/stacks-sd9sc71n.js";
21
21
  import"../../shared/stacks-2mm20wqf.js";
22
22
  import"../../shared/stacks-azp00pve.js";
23
23
  import {
@@ -9,14 +9,14 @@ import {
9
9
  } from "../../shared/stacks-f0hfqaj5.js";
10
10
  import {
11
11
  callContract
12
- } from "../../shared/stacks-q45x3389.js";
12
+ } from "../../shared/stacks-58e4vbaw.js";
13
13
  import {
14
14
  readContract
15
15
  } from "../../shared/stacks-msmgyerb.js";
16
- import"../../shared/stacks-y9w78e2b.js";
16
+ import"../../shared/stacks-mbnfwekf.js";
17
17
  import"../../shared/stacks-fh48neva.js";
18
18
  import"../../shared/stacks-709tra19.js";
19
- import"../../shared/stacks-ssndnbbd.js";
19
+ import"../../shared/stacks-sd9sc71n.js";
20
20
  import {
21
21
  Cl,
22
22
  serializeCVBytes
@@ -9,15 +9,15 @@ import {
9
9
  import {
10
10
  getContract,
11
11
  resolveNetworkContract
12
- } from "../../shared/stacks-refg7hca.js";
12
+ } from "../../shared/stacks-srvk63qq.js";
13
13
  import"../../shared/stacks-pdcz1w1d.js";
14
- import"../../shared/stacks-q45x3389.js";
14
+ import"../../shared/stacks-58e4vbaw.js";
15
15
  import"../../shared/stacks-msmgyerb.js";
16
- import"../../shared/stacks-y9w78e2b.js";
16
+ import"../../shared/stacks-mbnfwekf.js";
17
17
  import"../../shared/stacks-fh48neva.js";
18
18
  import"../../shared/stacks-709tra19.js";
19
19
  import"../../shared/stacks-18jv9aen.js";
20
- import"../../shared/stacks-ssndnbbd.js";
20
+ import"../../shared/stacks-sd9sc71n.js";
21
21
  import"../../shared/stacks-2mm20wqf.js";
22
22
  import"../../shared/stacks-azp00pve.js";
23
23
  import {
@@ -3,11 +3,11 @@ import {
3
3
  } from "../../shared/stacks-kg1npstf.js";
4
4
  import {
5
5
  getContract
6
- } from "../../shared/stacks-refg7hca.js";
6
+ } from "../../shared/stacks-srvk63qq.js";
7
7
  import"../../shared/stacks-pdcz1w1d.js";
8
- import"../../shared/stacks-q45x3389.js";
8
+ import"../../shared/stacks-58e4vbaw.js";
9
9
  import"../../shared/stacks-msmgyerb.js";
10
- import"../../shared/stacks-y9w78e2b.js";
10
+ import"../../shared/stacks-mbnfwekf.js";
11
11
  import"../../shared/stacks-fh48neva.js";
12
12
  import"../../shared/stacks-709tra19.js";
13
13
  import"../../shared/stacks-18jv9aen.js";
@@ -15,7 +15,7 @@ import"../../shared/stacks-z53fwfcm.js";
15
15
  import {
16
16
  Pc
17
17
  } from "../../shared/stacks-x94a1d6s.js";
18
- import"../../shared/stacks-ssndnbbd.js";
18
+ import"../../shared/stacks-sd9sc71n.js";
19
19
  import"../../shared/stacks-2mm20wqf.js";
20
20
  import"../../shared/stacks-azp00pve.js";
21
21
  import"../../shared/stacks-qs5fzts5.js";
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/tools/btc/index.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * Bitcoin read tools for AI SDK tool calls. Useful for sBTC peg-in/peg-out\n * flows, BTC-collateralized lending, and anywhere a Stacks contract's\n * behaviour depends on BTC state.\n *\n * Backed by mempool.space by default. Swap endpoints by setting\n * `BTC_MEMPOOL_URL` in the caller's env. Reads only — no BTC writes.\n *\n * import { generateText } from \"ai\"\n * import { btcConfirmations, btcBalance } from \"@secondlayer/stacks/tools/btc\"\n * await generateText({\n * model: anthropic(\"claude-sonnet-4-6\"),\n * tools: { btcConfirmations, btcBalance },\n * prompt: \"…\",\n * })\n */\n\nimport { type Tool, tool } from \"ai\";\nimport { z } from \"zod\";\n\n// biome-ignore lint/suspicious/noExplicitAny: Tool's input-schema generic too precise for isolated-declarations; AI SDK validates at runtime\ntype LooseTool = Tool<any, any>;\n\nfunction baseUrl(): string {\n\treturn (process.env.BTC_MEMPOOL_URL ?? \"https://mempool.space\").replace(\n\t\t/\\/$/,\n\t\t\"\",\n\t);\n}\n\nasync function get<T>(path: string): Promise<T> {\n\tconst res = await fetch(`${baseUrl()}${path}`, {\n\t\theaders: { Accept: \"application/json\" },\n\t});\n\tif (!res.ok) {\n\t\tthrow new Error(\n\t\t\t`BTC mempool.space ${path} → ${res.status} ${res.statusText}`,\n\t\t);\n\t}\n\tconst contentType = res.headers.get(\"content-type\") ?? \"\";\n\tif (contentType.includes(\"application/json\")) return res.json() as Promise<T>;\n\treturn res.text() as unknown as Promise<T>;\n}\n\nconst BTC_TXID = z\n\t.string()\n\t.regex(/^[0-9a-fA-F]{64}$/, \"64-character hex BTC txid\");\nexport const BTC_ADDRESS = z\n\t.string()\n\t.regex(\n\t\t/^(1[a-zA-HJ-NP-Z0-9]{25,34}|3[a-zA-HJ-NP-Z0-9]{25,34}|bc1[a-zA-HJ-NP-Z0-9]{11,71}|tb1[a-zA-HJ-NP-Z0-9]{11,71})$/,\n\t\t{ message: \"Invalid Bitcoin address\" },\n\t);\n\nexport const btcConfirmations: LooseTool = tool({\n\tdescription:\n\t\t\"Number of confirmations for a Bitcoin transaction. Returns { confirmations, confirmed }.\",\n\tinputSchema: z.object({ txid: BTC_TXID }),\n\texecute: async ({ txid }) => {\n\t\tconst tx = await get<{\n\t\t\tstatus: { confirmed: boolean; block_height?: number };\n\t\t}>(`/api/tx/${txid}`);\n\t\tif (!tx.status.confirmed || tx.status.block_height == null) {\n\t\t\treturn { confirmed: false, confirmations: 0 };\n\t\t}\n\t\tconst tip = await get<number>(\"/api/blocks/tip/height\");\n\t\treturn {\n\t\t\tconfirmed: true,\n\t\t\tconfirmations: Math.max(0, tip - tx.status.block_height + 1),\n\t\t\tblockHeight: tx.status.block_height,\n\t\t};\n\t},\n});\n\nexport const btcBalance: LooseTool = tool({\n\tdescription:\n\t\t\"Bitcoin balance for an address, in satoshis. Returns { confirmedSat, unconfirmedSat }.\",\n\tinputSchema: z.object({ address: BTC_ADDRESS }),\n\texecute: async ({ address }) => {\n\t\tconst info = await get<{\n\t\t\tchain_stats: { funded_txo_sum: number; spent_txo_sum: number };\n\t\t\tmempool_stats: { funded_txo_sum: number; spent_txo_sum: number };\n\t\t}>(`/api/address/${encodeURIComponent(address)}`);\n\t\treturn {\n\t\t\tconfirmedSat:\n\t\t\t\tinfo.chain_stats.funded_txo_sum - info.chain_stats.spent_txo_sum,\n\t\t\tunconfirmedSat:\n\t\t\t\tinfo.mempool_stats.funded_txo_sum - info.mempool_stats.spent_txo_sum,\n\t\t};\n\t},\n});\n\nexport const btcUtxos: LooseTool = tool({\n\tdescription:\n\t\t\"List of unspent outputs for a Bitcoin address (truncated to `limit`).\",\n\tinputSchema: z.object({\n\t\taddress: BTC_ADDRESS,\n\t\tlimit: z.number().int().min(1).max(50).default(25),\n\t}),\n\texecute: async ({ address, limit }) => {\n\t\tconst utxos = await get<\n\t\t\tArray<{\n\t\t\t\ttxid: string;\n\t\t\t\tvout: number;\n\t\t\t\tvalue: number;\n\t\t\t\tstatus: { confirmed: boolean; block_height?: number };\n\t\t\t}>\n\t\t>(`/api/address/${encodeURIComponent(address)}/utxo`);\n\t\treturn { utxos: utxos.slice(0, limit) };\n\t},\n});\n\nexport const btcFeeEstimate: LooseTool = tool({\n\tdescription:\n\t\t\"Current Bitcoin fee estimates in sat/vB across priority tiers (fastest, 30-min, hour, economy).\",\n\tinputSchema: z.object({}),\n\texecute: async () => {\n\t\tconst fees = await get<Record<string, number>>(\"/api/v1/fees/recommended\");\n\t\treturn {\n\t\t\tfastestSatVb: fees.fastestFee ?? 0,\n\t\t\thalfHourSatVb: fees.halfHourFee ?? 0,\n\t\t\thourSatVb: fees.hourFee ?? 0,\n\t\t\teconomySatVb: fees.economyFee ?? 0,\n\t\t\tminimumSatVb: fees.minimumFee ?? 0,\n\t\t};\n\t},\n});\n\nexport const btcBlockHeight: LooseTool = tool({\n\tdescription: \"Current Bitcoin chain tip height.\",\n\tinputSchema: z.object({}),\n\texecute: async () => ({\n\t\theight: await get<number>(\"/api/blocks/tip/height\"),\n\t}),\n});\n"
5
+ "/**\n * Bitcoin read tools for AI SDK tool calls. Useful for sBTC peg-in/peg-out\n * flows, BTC-collateralized lending, and anywhere a Stacks contract's\n * behaviour depends on BTC state.\n *\n * Backed by mempool.space by default. Swap endpoints by setting\n * `BTC_MEMPOOL_URL` in the caller's env. Reads only — no BTC writes.\n *\n * import { generateText } from \"ai\"\n * import { btcConfirmations, btcBalance } from \"@secondlayer/stacks/tools/btc\"\n * await generateText({\n * model: anthropic(\"claude-sonnet-4-6\"),\n * tools: { btcConfirmations, btcBalance },\n * prompt: \"…\",\n * })\n */\n\nimport { type Tool, tool } from \"ai\";\nimport { z } from \"zod\";\n\n// biome-ignore lint/suspicious/noExplicitAny: Tool's input-schema generic too precise for isolated-declarations; AI SDK validates at runtime\ntype LooseTool = Tool<any, any>;\n\nfunction baseUrl(): string {\n\treturn (process.env.BTC_MEMPOOL_URL ?? \"https://mempool.space\").replace(\n\t\t/\\/$/,\n\t\t\"\",\n\t);\n}\n\nasync function get<T>(path: string): Promise<T> {\n\tconst res = await fetch(`${baseUrl()}${path}`, {\n\t\theaders: { Accept: \"application/json\" },\n\t});\n\tif (!res.ok) {\n\t\tthrow new Error(\n\t\t\t`BTC mempool.space ${path} → ${res.status} ${res.statusText}`,\n\t\t);\n\t}\n\tconst contentType = res.headers.get(\"content-type\") ?? \"\";\n\tif (contentType.includes(\"application/json\")) return res.json() as Promise<T>;\n\treturn res.text() as unknown as Promise<T>;\n}\n\nconst BTC_TXID = z\n\t.string()\n\t.regex(/^[0-9a-fA-F]{64}$/, \"64-character hex BTC txid\");\nexport const BTC_ADDRESS: z.ZodString = z\n\t.string()\n\t.regex(\n\t\t/^(1[a-zA-HJ-NP-Z0-9]{25,34}|3[a-zA-HJ-NP-Z0-9]{25,34}|bc1[a-zA-HJ-NP-Z0-9]{11,71}|tb1[a-zA-HJ-NP-Z0-9]{11,71})$/,\n\t\t{ message: \"Invalid Bitcoin address\" },\n\t);\n\nexport const btcConfirmations: LooseTool = tool({\n\tdescription:\n\t\t\"Number of confirmations for a Bitcoin transaction. Returns { confirmations, confirmed }.\",\n\tinputSchema: z.object({ txid: BTC_TXID }),\n\texecute: async ({ txid }) => {\n\t\tconst tx = await get<{\n\t\t\tstatus: { confirmed: boolean; block_height?: number };\n\t\t}>(`/api/tx/${txid}`);\n\t\tif (!tx.status.confirmed || tx.status.block_height == null) {\n\t\t\treturn { confirmed: false, confirmations: 0 };\n\t\t}\n\t\tconst tip = await get<number>(\"/api/blocks/tip/height\");\n\t\treturn {\n\t\t\tconfirmed: true,\n\t\t\tconfirmations: Math.max(0, tip - tx.status.block_height + 1),\n\t\t\tblockHeight: tx.status.block_height,\n\t\t};\n\t},\n});\n\nexport const btcBalance: LooseTool = tool({\n\tdescription:\n\t\t\"Bitcoin balance for an address, in satoshis. Returns { confirmedSat, unconfirmedSat }.\",\n\tinputSchema: z.object({ address: BTC_ADDRESS }),\n\texecute: async ({ address }) => {\n\t\tconst info = await get<{\n\t\t\tchain_stats: { funded_txo_sum: number; spent_txo_sum: number };\n\t\t\tmempool_stats: { funded_txo_sum: number; spent_txo_sum: number };\n\t\t}>(`/api/address/${encodeURIComponent(address)}`);\n\t\treturn {\n\t\t\tconfirmedSat:\n\t\t\t\tinfo.chain_stats.funded_txo_sum - info.chain_stats.spent_txo_sum,\n\t\t\tunconfirmedSat:\n\t\t\t\tinfo.mempool_stats.funded_txo_sum - info.mempool_stats.spent_txo_sum,\n\t\t};\n\t},\n});\n\nexport const btcUtxos: LooseTool = tool({\n\tdescription:\n\t\t\"List of unspent outputs for a Bitcoin address (truncated to `limit`).\",\n\tinputSchema: z.object({\n\t\taddress: BTC_ADDRESS,\n\t\tlimit: z.number().int().min(1).max(50).default(25),\n\t}),\n\texecute: async ({ address, limit }) => {\n\t\tconst utxos = await get<\n\t\t\tArray<{\n\t\t\t\ttxid: string;\n\t\t\t\tvout: number;\n\t\t\t\tvalue: number;\n\t\t\t\tstatus: { confirmed: boolean; block_height?: number };\n\t\t\t}>\n\t\t>(`/api/address/${encodeURIComponent(address)}/utxo`);\n\t\treturn { utxos: utxos.slice(0, limit) };\n\t},\n});\n\nexport const btcFeeEstimate: LooseTool = tool({\n\tdescription:\n\t\t\"Current Bitcoin fee estimates in sat/vB across priority tiers (fastest, 30-min, hour, economy).\",\n\tinputSchema: z.object({}),\n\texecute: async () => {\n\t\tconst fees = await get<Record<string, number>>(\"/api/v1/fees/recommended\");\n\t\treturn {\n\t\t\tfastestSatVb: fees.fastestFee ?? 0,\n\t\t\thalfHourSatVb: fees.halfHourFee ?? 0,\n\t\t\thourSatVb: fees.hourFee ?? 0,\n\t\t\teconomySatVb: fees.economyFee ?? 0,\n\t\t\tminimumSatVb: fees.minimumFee ?? 0,\n\t\t};\n\t},\n});\n\nexport const btcBlockHeight: LooseTool = tool({\n\tdescription: \"Current Bitcoin chain tip height.\",\n\tinputSchema: z.object({}),\n\texecute: async () => ({\n\t\theight: await get<number>(\"/api/blocks/tip/height\"),\n\t}),\n});\n"
6
6
  ],
7
- "mappings": "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",
7
+ "mappings": "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",
8
8
  "debugId": "A9918581E436E21F64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,6 +1,7 @@
1
1
  import { Tool } from "ai";
2
+ import { z } from "zod";
2
3
  type LooseTool = Tool<any, any>;
3
- declare const BTC_ADDRESS: unknown;
4
+ declare const BTC_ADDRESS: z.ZodString;
4
5
  declare const btcConfirmations: LooseTool;
5
6
  declare const btcBalance: LooseTool;
6
7
  declare const btcUtxos: LooseTool;
@@ -1,6 +1,7 @@
1
1
  import { Tool } from "ai";
2
+ import { z } from "zod";
2
3
  type LooseTool = Tool<any, any>;
3
- declare const BTC_ADDRESS: unknown;
4
+ declare const BTC_ADDRESS: z.ZodString;
4
5
  declare const btcConfirmations: LooseTool;
5
6
  declare const btcBalance: LooseTool;
6
7
  declare const btcUtxos: LooseTool;
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/tools/btc/index.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * Bitcoin read tools for AI SDK tool calls. Useful for sBTC peg-in/peg-out\n * flows, BTC-collateralized lending, and anywhere a Stacks contract's\n * behaviour depends on BTC state.\n *\n * Backed by mempool.space by default. Swap endpoints by setting\n * `BTC_MEMPOOL_URL` in the caller's env. Reads only — no BTC writes.\n *\n * import { generateText } from \"ai\"\n * import { btcConfirmations, btcBalance } from \"@secondlayer/stacks/tools/btc\"\n * await generateText({\n * model: anthropic(\"claude-sonnet-4-6\"),\n * tools: { btcConfirmations, btcBalance },\n * prompt: \"…\",\n * })\n */\n\nimport { type Tool, tool } from \"ai\";\nimport { z } from \"zod\";\n\n// biome-ignore lint/suspicious/noExplicitAny: Tool's input-schema generic too precise for isolated-declarations; AI SDK validates at runtime\ntype LooseTool = Tool<any, any>;\n\nfunction baseUrl(): string {\n\treturn (process.env.BTC_MEMPOOL_URL ?? \"https://mempool.space\").replace(\n\t\t/\\/$/,\n\t\t\"\",\n\t);\n}\n\nasync function get<T>(path: string): Promise<T> {\n\tconst res = await fetch(`${baseUrl()}${path}`, {\n\t\theaders: { Accept: \"application/json\" },\n\t});\n\tif (!res.ok) {\n\t\tthrow new Error(\n\t\t\t`BTC mempool.space ${path} → ${res.status} ${res.statusText}`,\n\t\t);\n\t}\n\tconst contentType = res.headers.get(\"content-type\") ?? \"\";\n\tif (contentType.includes(\"application/json\")) return res.json() as Promise<T>;\n\treturn res.text() as unknown as Promise<T>;\n}\n\nconst BTC_TXID = z\n\t.string()\n\t.regex(/^[0-9a-fA-F]{64}$/, \"64-character hex BTC txid\");\nexport const BTC_ADDRESS = z\n\t.string()\n\t.regex(\n\t\t/^(1[a-zA-HJ-NP-Z0-9]{25,34}|3[a-zA-HJ-NP-Z0-9]{25,34}|bc1[a-zA-HJ-NP-Z0-9]{11,71}|tb1[a-zA-HJ-NP-Z0-9]{11,71})$/,\n\t\t{ message: \"Invalid Bitcoin address\" },\n\t);\n\nexport const btcConfirmations: LooseTool = tool({\n\tdescription:\n\t\t\"Number of confirmations for a Bitcoin transaction. Returns { confirmations, confirmed }.\",\n\tinputSchema: z.object({ txid: BTC_TXID }),\n\texecute: async ({ txid }) => {\n\t\tconst tx = await get<{\n\t\t\tstatus: { confirmed: boolean; block_height?: number };\n\t\t}>(`/api/tx/${txid}`);\n\t\tif (!tx.status.confirmed || tx.status.block_height == null) {\n\t\t\treturn { confirmed: false, confirmations: 0 };\n\t\t}\n\t\tconst tip = await get<number>(\"/api/blocks/tip/height\");\n\t\treturn {\n\t\t\tconfirmed: true,\n\t\t\tconfirmations: Math.max(0, tip - tx.status.block_height + 1),\n\t\t\tblockHeight: tx.status.block_height,\n\t\t};\n\t},\n});\n\nexport const btcBalance: LooseTool = tool({\n\tdescription:\n\t\t\"Bitcoin balance for an address, in satoshis. Returns { confirmedSat, unconfirmedSat }.\",\n\tinputSchema: z.object({ address: BTC_ADDRESS }),\n\texecute: async ({ address }) => {\n\t\tconst info = await get<{\n\t\t\tchain_stats: { funded_txo_sum: number; spent_txo_sum: number };\n\t\t\tmempool_stats: { funded_txo_sum: number; spent_txo_sum: number };\n\t\t}>(`/api/address/${encodeURIComponent(address)}`);\n\t\treturn {\n\t\t\tconfirmedSat:\n\t\t\t\tinfo.chain_stats.funded_txo_sum - info.chain_stats.spent_txo_sum,\n\t\t\tunconfirmedSat:\n\t\t\t\tinfo.mempool_stats.funded_txo_sum - info.mempool_stats.spent_txo_sum,\n\t\t};\n\t},\n});\n\nexport const btcUtxos: LooseTool = tool({\n\tdescription:\n\t\t\"List of unspent outputs for a Bitcoin address (truncated to `limit`).\",\n\tinputSchema: z.object({\n\t\taddress: BTC_ADDRESS,\n\t\tlimit: z.number().int().min(1).max(50).default(25),\n\t}),\n\texecute: async ({ address, limit }) => {\n\t\tconst utxos = await get<\n\t\t\tArray<{\n\t\t\t\ttxid: string;\n\t\t\t\tvout: number;\n\t\t\t\tvalue: number;\n\t\t\t\tstatus: { confirmed: boolean; block_height?: number };\n\t\t\t}>\n\t\t>(`/api/address/${encodeURIComponent(address)}/utxo`);\n\t\treturn { utxos: utxos.slice(0, limit) };\n\t},\n});\n\nexport const btcFeeEstimate: LooseTool = tool({\n\tdescription:\n\t\t\"Current Bitcoin fee estimates in sat/vB across priority tiers (fastest, 30-min, hour, economy).\",\n\tinputSchema: z.object({}),\n\texecute: async () => {\n\t\tconst fees = await get<Record<string, number>>(\"/api/v1/fees/recommended\");\n\t\treturn {\n\t\t\tfastestSatVb: fees.fastestFee ?? 0,\n\t\t\thalfHourSatVb: fees.halfHourFee ?? 0,\n\t\t\thourSatVb: fees.hourFee ?? 0,\n\t\t\teconomySatVb: fees.economyFee ?? 0,\n\t\t\tminimumSatVb: fees.minimumFee ?? 0,\n\t\t};\n\t},\n});\n\nexport const btcBlockHeight: LooseTool = tool({\n\tdescription: \"Current Bitcoin chain tip height.\",\n\tinputSchema: z.object({}),\n\texecute: async () => ({\n\t\theight: await get<number>(\"/api/blocks/tip/height\"),\n\t}),\n});\n"
5
+ "/**\n * Bitcoin read tools for AI SDK tool calls. Useful for sBTC peg-in/peg-out\n * flows, BTC-collateralized lending, and anywhere a Stacks contract's\n * behaviour depends on BTC state.\n *\n * Backed by mempool.space by default. Swap endpoints by setting\n * `BTC_MEMPOOL_URL` in the caller's env. Reads only — no BTC writes.\n *\n * import { generateText } from \"ai\"\n * import { btcConfirmations, btcBalance } from \"@secondlayer/stacks/tools/btc\"\n * await generateText({\n * model: anthropic(\"claude-sonnet-4-6\"),\n * tools: { btcConfirmations, btcBalance },\n * prompt: \"…\",\n * })\n */\n\nimport { type Tool, tool } from \"ai\";\nimport { z } from \"zod\";\n\n// biome-ignore lint/suspicious/noExplicitAny: Tool's input-schema generic too precise for isolated-declarations; AI SDK validates at runtime\ntype LooseTool = Tool<any, any>;\n\nfunction baseUrl(): string {\n\treturn (process.env.BTC_MEMPOOL_URL ?? \"https://mempool.space\").replace(\n\t\t/\\/$/,\n\t\t\"\",\n\t);\n}\n\nasync function get<T>(path: string): Promise<T> {\n\tconst res = await fetch(`${baseUrl()}${path}`, {\n\t\theaders: { Accept: \"application/json\" },\n\t});\n\tif (!res.ok) {\n\t\tthrow new Error(\n\t\t\t`BTC mempool.space ${path} → ${res.status} ${res.statusText}`,\n\t\t);\n\t}\n\tconst contentType = res.headers.get(\"content-type\") ?? \"\";\n\tif (contentType.includes(\"application/json\")) return res.json() as Promise<T>;\n\treturn res.text() as unknown as Promise<T>;\n}\n\nconst BTC_TXID = z\n\t.string()\n\t.regex(/^[0-9a-fA-F]{64}$/, \"64-character hex BTC txid\");\nexport const BTC_ADDRESS: z.ZodString = z\n\t.string()\n\t.regex(\n\t\t/^(1[a-zA-HJ-NP-Z0-9]{25,34}|3[a-zA-HJ-NP-Z0-9]{25,34}|bc1[a-zA-HJ-NP-Z0-9]{11,71}|tb1[a-zA-HJ-NP-Z0-9]{11,71})$/,\n\t\t{ message: \"Invalid Bitcoin address\" },\n\t);\n\nexport const btcConfirmations: LooseTool = tool({\n\tdescription:\n\t\t\"Number of confirmations for a Bitcoin transaction. Returns { confirmations, confirmed }.\",\n\tinputSchema: z.object({ txid: BTC_TXID }),\n\texecute: async ({ txid }) => {\n\t\tconst tx = await get<{\n\t\t\tstatus: { confirmed: boolean; block_height?: number };\n\t\t}>(`/api/tx/${txid}`);\n\t\tif (!tx.status.confirmed || tx.status.block_height == null) {\n\t\t\treturn { confirmed: false, confirmations: 0 };\n\t\t}\n\t\tconst tip = await get<number>(\"/api/blocks/tip/height\");\n\t\treturn {\n\t\t\tconfirmed: true,\n\t\t\tconfirmations: Math.max(0, tip - tx.status.block_height + 1),\n\t\t\tblockHeight: tx.status.block_height,\n\t\t};\n\t},\n});\n\nexport const btcBalance: LooseTool = tool({\n\tdescription:\n\t\t\"Bitcoin balance for an address, in satoshis. Returns { confirmedSat, unconfirmedSat }.\",\n\tinputSchema: z.object({ address: BTC_ADDRESS }),\n\texecute: async ({ address }) => {\n\t\tconst info = await get<{\n\t\t\tchain_stats: { funded_txo_sum: number; spent_txo_sum: number };\n\t\t\tmempool_stats: { funded_txo_sum: number; spent_txo_sum: number };\n\t\t}>(`/api/address/${encodeURIComponent(address)}`);\n\t\treturn {\n\t\t\tconfirmedSat:\n\t\t\t\tinfo.chain_stats.funded_txo_sum - info.chain_stats.spent_txo_sum,\n\t\t\tunconfirmedSat:\n\t\t\t\tinfo.mempool_stats.funded_txo_sum - info.mempool_stats.spent_txo_sum,\n\t\t};\n\t},\n});\n\nexport const btcUtxos: LooseTool = tool({\n\tdescription:\n\t\t\"List of unspent outputs for a Bitcoin address (truncated to `limit`).\",\n\tinputSchema: z.object({\n\t\taddress: BTC_ADDRESS,\n\t\tlimit: z.number().int().min(1).max(50).default(25),\n\t}),\n\texecute: async ({ address, limit }) => {\n\t\tconst utxos = await get<\n\t\t\tArray<{\n\t\t\t\ttxid: string;\n\t\t\t\tvout: number;\n\t\t\t\tvalue: number;\n\t\t\t\tstatus: { confirmed: boolean; block_height?: number };\n\t\t\t}>\n\t\t>(`/api/address/${encodeURIComponent(address)}/utxo`);\n\t\treturn { utxos: utxos.slice(0, limit) };\n\t},\n});\n\nexport const btcFeeEstimate: LooseTool = tool({\n\tdescription:\n\t\t\"Current Bitcoin fee estimates in sat/vB across priority tiers (fastest, 30-min, hour, economy).\",\n\tinputSchema: z.object({}),\n\texecute: async () => {\n\t\tconst fees = await get<Record<string, number>>(\"/api/v1/fees/recommended\");\n\t\treturn {\n\t\t\tfastestSatVb: fees.fastestFee ?? 0,\n\t\t\thalfHourSatVb: fees.halfHourFee ?? 0,\n\t\t\thourSatVb: fees.hourFee ?? 0,\n\t\t\teconomySatVb: fees.economyFee ?? 0,\n\t\t\tminimumSatVb: fees.minimumFee ?? 0,\n\t\t};\n\t},\n});\n\nexport const btcBlockHeight: LooseTool = tool({\n\tdescription: \"Current Bitcoin chain tip height.\",\n\tinputSchema: z.object({}),\n\texecute: async () => ({\n\t\theight: await get<number>(\"/api/blocks/tip/height\"),\n\t}),\n});\n"
6
6
  ],
7
- "mappings": ";AAiBA;AACA;AAKA,SAAS,OAAO,GAAW;AAAA,EAC1B,QAAQ,QAAQ,IAAI,mBAAmB,yBAAyB,QAC/D,OACA,EACD;AAAA;AAGD,eAAe,GAAM,CAAC,MAA0B;AAAA,EAC/C,MAAM,MAAM,MAAM,MAAM,GAAG,QAAQ,IAAI,QAAQ;AAAA,IAC9C,SAAS,EAAE,QAAQ,mBAAmB;AAAA,EACvC,CAAC;AAAA,EACD,IAAI,CAAC,IAAI,IAAI;AAAA,IACZ,MAAM,IAAI,MACT,qBAAqB,UAAS,IAAI,UAAU,IAAI,YACjD;AAAA,EACD;AAAA,EACA,MAAM,cAAc,IAAI,QAAQ,IAAI,cAAc,KAAK;AAAA,EACvD,IAAI,YAAY,SAAS,kBAAkB;AAAA,IAAG,OAAO,IAAI,KAAK;AAAA,EAC9D,OAAO,IAAI,KAAK;AAAA;AAGjB,IAAM,WAAW,EACf,OAAO,EACP,MAAM,qBAAqB,2BAA2B;AACjD,IAAM,cAAc,EACzB,OAAO,EACP,MACA,mHACA,EAAE,SAAS,0BAA0B,CACtC;AAEM,IAAM,mBAA8B,KAAK;AAAA,EAC/C,aACC;AAAA,EACD,aAAa,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAAA,EACxC,SAAS,SAAS,WAAW;AAAA,IAC5B,MAAM,KAAK,MAAM,IAEd,WAAW,MAAM;AAAA,IACpB,IAAI,CAAC,GAAG,OAAO,aAAa,GAAG,OAAO,gBAAgB,MAAM;AAAA,MAC3D,OAAO,EAAE,WAAW,OAAO,eAAe,EAAE;AAAA,IAC7C;AAAA,IACA,MAAM,MAAM,MAAM,IAAY,wBAAwB;AAAA,IACtD,OAAO;AAAA,MACN,WAAW;AAAA,MACX,eAAe,KAAK,IAAI,GAAG,MAAM,GAAG,OAAO,eAAe,CAAC;AAAA,MAC3D,aAAa,GAAG,OAAO;AAAA,IACxB;AAAA;AAEF,CAAC;AAEM,IAAM,aAAwB,KAAK;AAAA,EACzC,aACC;AAAA,EACD,aAAa,EAAE,OAAO,EAAE,SAAS,YAAY,CAAC;AAAA,EAC9C,SAAS,SAAS,cAAc;AAAA,IAC/B,MAAM,OAAO,MAAM,IAGhB,gBAAgB,mBAAmB,OAAO,GAAG;AAAA,IAChD,OAAO;AAAA,MACN,cACC,KAAK,YAAY,iBAAiB,KAAK,YAAY;AAAA,MACpD,gBACC,KAAK,cAAc,iBAAiB,KAAK,cAAc;AAAA,IACzD;AAAA;AAEF,CAAC;AAEM,IAAM,WAAsB,KAAK;AAAA,EACvC,aACC;AAAA,EACD,aAAa,EAAE,OAAO;AAAA,IACrB,SAAS;AAAA,IACT,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE;AAAA,EAClD,CAAC;AAAA,EACD,SAAS,SAAS,SAAS,YAAY;AAAA,IACtC,MAAM,QAAQ,MAAM,IAOlB,gBAAgB,mBAAmB,OAAO,QAAQ;AAAA,IACpD,OAAO,EAAE,OAAO,MAAM,MAAM,GAAG,KAAK,EAAE;AAAA;AAExC,CAAC;AAEM,IAAM,iBAA4B,KAAK;AAAA,EAC7C,aACC;AAAA,EACD,aAAa,EAAE,OAAO,CAAC,CAAC;AAAA,EACxB,SAAS,YAAY;AAAA,IACpB,MAAM,OAAO,MAAM,IAA4B,0BAA0B;AAAA,IACzE,OAAO;AAAA,MACN,cAAc,KAAK,cAAc;AAAA,MACjC,eAAe,KAAK,eAAe;AAAA,MACnC,WAAW,KAAK,WAAW;AAAA,MAC3B,cAAc,KAAK,cAAc;AAAA,MACjC,cAAc,KAAK,cAAc;AAAA,IAClC;AAAA;AAEF,CAAC;AAEM,IAAM,iBAA4B,KAAK;AAAA,EAC7C,aAAa;AAAA,EACb,aAAa,EAAE,OAAO,CAAC,CAAC;AAAA,EACxB,SAAS,aAAa;AAAA,IACrB,QAAQ,MAAM,IAAY,wBAAwB;AAAA,EACnD;AACD,CAAC;",
7
+ "mappings": "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",
8
8
  "debugId": "E811F99F534F2FE364756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -685,8 +685,17 @@ function serializePayload(payload) {
685
685
  }
686
686
  return concatBytes(...parts);
687
687
  }
688
+ var _txCache = new WeakMap;
689
+ function clearTxCache(tx) {
690
+ _txCache.delete(tx);
691
+ }
688
692
  function serializeTransaction(tx) {
689
- return concatBytes(writeUInt8(tx.version), writeUInt32BE(tx.chainId), serializeAuthorization(tx.auth), writeUInt8(tx.anchorMode), writeUInt8(tx.postConditionMode), serializePostConditions(tx.postConditions), serializePayload(tx.payload));
693
+ const cached = _txCache.get(tx);
694
+ if (cached)
695
+ return cached;
696
+ const bytes = concatBytes(writeUInt8(tx.version), writeUInt32BE(tx.chainId), serializeAuthorization(tx.auth), writeUInt8(tx.anchorMode), writeUInt8(tx.postConditionMode), serializePostConditions(tx.postConditions), serializePayload(tx.payload));
697
+ _txCache.set(tx, bytes);
698
+ return bytes;
690
699
  }
691
700
 
692
701
  // src/actions/public/estimateFee.ts
@@ -1812,6 +1821,7 @@ async function resolveFee(client, transaction, fee) {
1812
1821
  }
1813
1822
  function setUnsignedFee(transaction, fee) {
1814
1823
  transaction.auth.spendingCondition.fee = fee;
1824
+ clearTxCache(transaction);
1815
1825
  }
1816
1826
  function assertNoFeeTierForProvider(fee) {
1817
1827
  if (isFeeTier(fee)) {
@@ -1955,7 +1965,7 @@ function getContract(params) {
1955
1965
  });
1956
1966
  const mid = estimates[1] ?? estimates[0];
1957
1967
  if (mid) {
1958
- unsigned.auth.spendingCondition.fee = BigInt(mid.fee);
1968
+ setUnsignedFee(unsigned, BigInt(mid.fee));
1959
1969
  }
1960
1970
  }
1961
1971
  return unsigned;
@@ -2796,10 +2806,10 @@ function readPayload(r) {
2796
2806
  throw new Error(`Unknown payload type: ${payloadType}`);
2797
2807
  }
2798
2808
  }
2799
- function deserializeTransaction(input) {
2809
+ function deserializeTransaction(input, meta) {
2800
2810
  const bytes = typeof input === "string" ? hexToBytes(without0x(input)) : input;
2801
2811
  const r = new BytesReader(bytes);
2802
- return {
2812
+ const tx = {
2803
2813
  version: r.readUInt8(),
2804
2814
  chainId: r.readUInt32BE(),
2805
2815
  auth: readAuthorization(r),
@@ -2808,6 +2818,10 @@ function deserializeTransaction(input) {
2808
2818
  postConditions: readPostConditions(r),
2809
2819
  payload: readPayload(r)
2810
2820
  };
2821
+ if (meta?._multisig) {
2822
+ tx._multisig = meta._multisig;
2823
+ }
2824
+ return tx;
2811
2825
  }
2812
2826
 
2813
2827
  // src/chains/definitions.ts
@@ -3454,5 +3468,5 @@ var getNftHoldings2 = import_ai.tool({
3454
3468
  execute: ({ principal, limit }) => nftHoldings(getDefaultPublicClient(), principal, limit)
3455
3469
  });
3456
3470
 
3457
- //# debugId=8A41B6F924608F5B64756E2164756E21
3471
+ //# debugId=0CE36B45A67DEB3C64756E2164756E21
3458
3472
  //# sourceMappingURL=index.cjs.map