@secondlayer/stacks 0.0.1

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 (178) hide show
  1. package/README.md +92 -0
  2. package/dist/shared/stacks-02actsrx.cjs +17 -0
  3. package/dist/shared/stacks-02actsrx.cjs.map +10 -0
  4. package/dist/shared/stacks-1aqm7c2h.cjs +110 -0
  5. package/dist/shared/stacks-1aqm7c2h.cjs.map +11 -0
  6. package/dist/shared/stacks-24h5k94q.cjs +74 -0
  7. package/dist/shared/stacks-24h5k94q.cjs.map +11 -0
  8. package/dist/shared/stacks-2ar4prfz.cjs +328 -0
  9. package/dist/shared/stacks-2ar4prfz.cjs.map +11 -0
  10. package/dist/shared/stacks-4py5pm0r.cjs +237 -0
  11. package/dist/shared/stacks-4py5pm0r.cjs.map +10 -0
  12. package/dist/shared/stacks-5tprhns9.cjs +54 -0
  13. package/dist/shared/stacks-5tprhns9.cjs.map +11 -0
  14. package/dist/shared/stacks-61rvzkz1.cjs +132 -0
  15. package/dist/shared/stacks-61rvzkz1.cjs.map +17 -0
  16. package/dist/shared/stacks-709tra19.js +30 -0
  17. package/dist/shared/stacks-709tra19.js.map +10 -0
  18. package/dist/shared/stacks-74k8cxgb.cjs +567 -0
  19. package/dist/shared/stacks-74k8cxgb.cjs.map +13 -0
  20. package/dist/shared/stacks-8m9byk2j.js +7 -0
  21. package/dist/shared/stacks-8m9byk2j.js.map +9 -0
  22. package/dist/shared/stacks-8yykgdww.js +125 -0
  23. package/dist/shared/stacks-8yykgdww.js.map +11 -0
  24. package/dist/shared/stacks-9g0jhab3.cjs +40 -0
  25. package/dist/shared/stacks-9g0jhab3.cjs.map +10 -0
  26. package/dist/shared/stacks-an5k8n4t.cjs +291 -0
  27. package/dist/shared/stacks-an5k8n4t.cjs.map +23 -0
  28. package/dist/shared/stacks-b008c3w8.cjs +214 -0
  29. package/dist/shared/stacks-b008c3w8.cjs.map +11 -0
  30. package/dist/shared/stacks-bnvfmt7y.cjs +31 -0
  31. package/dist/shared/stacks-bnvfmt7y.cjs.map +9 -0
  32. package/dist/shared/stacks-bycy6t9k.js +22 -0
  33. package/dist/shared/stacks-bycy6t9k.js.map +10 -0
  34. package/dist/shared/stacks-d1fmkv3p.js +258 -0
  35. package/dist/shared/stacks-d1fmkv3p.js.map +13 -0
  36. package/dist/shared/stacks-dr5en54r.cjs +119 -0
  37. package/dist/shared/stacks-dr5en54r.cjs.map +10 -0
  38. package/dist/shared/stacks-dxhntr76.js +278 -0
  39. package/dist/shared/stacks-dxhntr76.js.map +10 -0
  40. package/dist/shared/stacks-evnzth1q.cjs +35 -0
  41. package/dist/shared/stacks-evnzth1q.cjs.map +10 -0
  42. package/dist/shared/stacks-f3tk2k5s.js +27 -0
  43. package/dist/shared/stacks-f3tk2k5s.js.map +9 -0
  44. package/dist/shared/stacks-f7wdrzs3.js +285 -0
  45. package/dist/shared/stacks-f7wdrzs3.js.map +11 -0
  46. package/dist/shared/stacks-fcaefc5b.cjs +16 -0
  47. package/dist/shared/stacks-fcaefc5b.cjs.map +10 -0
  48. package/dist/shared/stacks-g9mcjcqg.cjs +3 -0
  49. package/dist/shared/stacks-g9mcjcqg.cjs.map +9 -0
  50. package/dist/shared/stacks-gck1sq7h.cjs +28 -0
  51. package/dist/shared/stacks-gck1sq7h.cjs.map +10 -0
  52. package/dist/shared/stacks-gjvbq6w7.js +46 -0
  53. package/dist/shared/stacks-gjvbq6w7.js.map +10 -0
  54. package/dist/shared/stacks-j2cy7qtt.js +237 -0
  55. package/dist/shared/stacks-j2cy7qtt.js.map +11 -0
  56. package/dist/shared/stacks-k08tgzyp.cjs +232 -0
  57. package/dist/shared/stacks-k08tgzyp.cjs.map +13 -0
  58. package/dist/shared/stacks-k2p5tv6x.js +37 -0
  59. package/dist/shared/stacks-k2p5tv6x.js.map +10 -0
  60. package/dist/shared/stacks-k58k970n.js +234 -0
  61. package/dist/shared/stacks-k58k970n.js.map +10 -0
  62. package/dist/shared/stacks-n2g56wgg.js +338 -0
  63. package/dist/shared/stacks-n2g56wgg.js.map +23 -0
  64. package/dist/shared/stacks-nqytwfcc.js +243 -0
  65. package/dist/shared/stacks-nqytwfcc.js.map +11 -0
  66. package/dist/shared/stacks-qcae5852.js +19 -0
  67. package/dist/shared/stacks-qcae5852.js.map +10 -0
  68. package/dist/shared/stacks-qt8ehebn.js +76 -0
  69. package/dist/shared/stacks-qt8ehebn.js.map +11 -0
  70. package/dist/shared/stacks-qvg7c24g.cjs +232 -0
  71. package/dist/shared/stacks-qvg7c24g.cjs.map +10 -0
  72. package/dist/shared/stacks-r1t6g3c3.cjs +241 -0
  73. package/dist/shared/stacks-r1t6g3c3.cjs.map +11 -0
  74. package/dist/shared/stacks-tjxmrssa.js +282 -0
  75. package/dist/shared/stacks-tjxmrssa.js.map +11 -0
  76. package/dist/shared/stacks-v9jqcpd4.js +18 -0
  77. package/dist/shared/stacks-v9jqcpd4.js.map +10 -0
  78. package/dist/shared/stacks-vdfag81a.cjs +121 -0
  79. package/dist/shared/stacks-vdfag81a.cjs.map +10 -0
  80. package/dist/shared/stacks-vdfs3e5v.js +134 -0
  81. package/dist/shared/stacks-vdfs3e5v.js.map +10 -0
  82. package/dist/shared/stacks-y3dh7hv1.js +60 -0
  83. package/dist/shared/stacks-y3dh7hv1.js.map +11 -0
  84. package/dist/shared/stacks-ya3x01yd.cjs +16 -0
  85. package/dist/shared/stacks-ya3x01yd.cjs.map +10 -0
  86. package/dist/shared/stacks-yfgsm6ap.js +599 -0
  87. package/dist/shared/stacks-yfgsm6ap.js.map +13 -0
  88. package/dist/shared/stacks-yfveb68e.js +121 -0
  89. package/dist/shared/stacks-yfveb68e.js.map +10 -0
  90. package/dist/shared/stacks-zm0b3tgy.js +160 -0
  91. package/dist/shared/stacks-zm0b3tgy.js.map +17 -0
  92. package/dist/shared/stacks-zyv9qqme.cjs +249 -0
  93. package/dist/shared/stacks-zyv9qqme.cjs.map +11 -0
  94. package/dist/src/accounts/index.cjs +90 -0
  95. package/dist/src/accounts/index.cjs.map +12 -0
  96. package/dist/src/accounts/index.d.cts +47 -0
  97. package/dist/src/accounts/index.d.ts +47 -0
  98. package/dist/src/accounts/index.js +104 -0
  99. package/dist/src/accounts/index.js.map +12 -0
  100. package/dist/src/actions/index.cjs +36 -0
  101. package/dist/src/actions/index.cjs.map +9 -0
  102. package/dist/src/actions/index.d.cts +886 -0
  103. package/dist/src/actions/index.d.ts +886 -0
  104. package/dist/src/actions/index.js +81 -0
  105. package/dist/src/actions/index.js.map +9 -0
  106. package/dist/src/bns/index.cjs +590 -0
  107. package/dist/src/bns/index.cjs.map +15 -0
  108. package/dist/src/bns/index.d.cts +241 -0
  109. package/dist/src/bns/index.d.ts +241 -0
  110. package/dist/src/bns/index.js +611 -0
  111. package/dist/src/bns/index.js.map +15 -0
  112. package/dist/src/chains/index.cjs +13 -0
  113. package/dist/src/chains/index.cjs.map +9 -0
  114. package/dist/src/chains/index.d.cts +53 -0
  115. package/dist/src/chains/index.d.ts +53 -0
  116. package/dist/src/chains/index.js +18 -0
  117. package/dist/src/chains/index.js.map +9 -0
  118. package/dist/src/clarity/index.cjs +3 -0
  119. package/dist/src/clarity/index.cjs.map +9 -0
  120. package/dist/src/clarity/index.d.cts +821 -0
  121. package/dist/src/clarity/index.d.ts +821 -0
  122. package/dist/src/clarity/index.js +145 -0
  123. package/dist/src/clarity/index.js.map +9 -0
  124. package/dist/src/connect/index.cjs +480 -0
  125. package/dist/src/connect/index.cjs.map +19 -0
  126. package/dist/src/connect/index.d.cts +110 -0
  127. package/dist/src/connect/index.d.ts +110 -0
  128. package/dist/src/connect/index.js +448 -0
  129. package/dist/src/connect/index.js.map +19 -0
  130. package/dist/src/connect/walletconnect/index.cjs +1322 -0
  131. package/dist/src/connect/walletconnect/index.cjs.map +18 -0
  132. package/dist/src/connect/walletconnect/index.d.cts +132 -0
  133. package/dist/src/connect/walletconnect/index.d.ts +132 -0
  134. package/dist/src/connect/walletconnect/index.js +1290 -0
  135. package/dist/src/connect/walletconnect/index.js.map +18 -0
  136. package/dist/src/index.cjs +557 -0
  137. package/dist/src/index.cjs.map +21 -0
  138. package/dist/src/index.d.cts +847 -0
  139. package/dist/src/index.d.ts +847 -0
  140. package/dist/src/index.js +629 -0
  141. package/dist/src/index.js.map +21 -0
  142. package/dist/src/postconditions/index.cjs +3 -0
  143. package/dist/src/postconditions/index.cjs.map +9 -0
  144. package/dist/src/postconditions/index.d.cts +91 -0
  145. package/dist/src/postconditions/index.d.ts +91 -0
  146. package/dist/src/postconditions/index.js +12 -0
  147. package/dist/src/postconditions/index.js.map +9 -0
  148. package/dist/src/pox/index.cjs +860 -0
  149. package/dist/src/pox/index.cjs.map +15 -0
  150. package/dist/src/pox/index.d.cts +244 -0
  151. package/dist/src/pox/index.d.ts +244 -0
  152. package/dist/src/pox/index.js +877 -0
  153. package/dist/src/pox/index.js.map +15 -0
  154. package/dist/src/stackingdao/index.cjs +300 -0
  155. package/dist/src/stackingdao/index.cjs.map +13 -0
  156. package/dist/src/stackingdao/index.d.cts +179 -0
  157. package/dist/src/stackingdao/index.d.ts +179 -0
  158. package/dist/src/stackingdao/index.js +318 -0
  159. package/dist/src/stackingdao/index.js.map +13 -0
  160. package/dist/src/subscriptions/index.cjs +14 -0
  161. package/dist/src/subscriptions/index.cjs.map +9 -0
  162. package/dist/src/subscriptions/index.d.cts +250 -0
  163. package/dist/src/subscriptions/index.d.ts +250 -0
  164. package/dist/src/subscriptions/index.js +21 -0
  165. package/dist/src/subscriptions/index.js.map +9 -0
  166. package/dist/src/transactions/index.cjs +50 -0
  167. package/dist/src/transactions/index.cjs.map +9 -0
  168. package/dist/src/transactions/index.d.cts +412 -0
  169. package/dist/src/transactions/index.d.ts +412 -0
  170. package/dist/src/transactions/index.js +101 -0
  171. package/dist/src/transactions/index.js.map +9 -0
  172. package/dist/src/utils/index.cjs +168 -0
  173. package/dist/src/utils/index.cjs.map +11 -0
  174. package/dist/src/utils/index.d.cts +140 -0
  175. package/dist/src/utils/index.d.ts +140 -0
  176. package/dist/src/utils/index.js +222 -0
  177. package/dist/src/utils/index.js.map +11 -0
  178. package/package.json +105 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/actions/getContract.ts"],
4
+ "sourcesContent": [
5
+ "import type { Client } from \"../clients/types.ts\";\nimport type {\n AbiContract,\n AbiFunction,\n AbiMap,\n AbiType,\n ExtractReadOnlyFunctions,\n ExtractPublicFunctions,\n ExtractFunctionArgs,\n ExtractFunctionOutput,\n ExtractMapNames,\n ExtractMapKey,\n ExtractMapValue,\n} from \"../clarity/abi/index.ts\";\nimport { toCamelCase } from \"../clarity/abi/utils.ts\";\nimport { jsToClarityValue, clarityValueToJSUntyped } from \"../clarity/bridge.ts\";\nimport { readContract } from \"./public/readContract.ts\";\nimport { callContract } from \"./wallet/callContract.ts\";\nimport { getMapEntry } from \"./public/getMapEntry.ts\";\nimport type { ClarityValue } from \"../clarity/types.ts\";\nimport type { PostCondition } from \"../postconditions/types.ts\";\nimport type { IntegerType } from \"../utils/encoding.ts\";\n\n// --- Type helpers for unwrapping response types ---\n\n/** Unwrap `(response ok err)` → just the `ok` branch type */\ntype UnwrapResponse<T> = T extends { ok: infer O } | { err: any } ? O : T;\n\ntype ReadMethodReturn<\n C extends AbiContract,\n N extends ExtractReadOnlyFunctions<C>,\n> = UnwrapResponse<ExtractFunctionOutput<C, N>>;\n\n// --- Public type for the contract instance ---\n\ntype ReadMethods<C extends AbiContract> = {\n [N in ExtractReadOnlyFunctions<C> as ToCamelCaseName<N>]: (\n args: ExtractFunctionArgs<C, N>,\n ) => Promise<ReadMethodReturn<C, N>>;\n};\n\ntype CallMethods<C extends AbiContract> = {\n [N in ExtractPublicFunctions<C> as ToCamelCaseName<N>]: (\n args: ExtractFunctionArgs<C, N>,\n options?: ContractCallOptions,\n ) => Promise<string>;\n};\n\ntype MapMethods<C extends AbiContract> = {\n [N in ExtractMapNames<C> as ToCamelCaseName<N>]: (\n key: ExtractMapKey<C, N>,\n ) => Promise<ExtractMapValue<C, N> | null>;\n};\n\ntype ToCamelCaseName<S extends string> = S extends string\n ? ReturnType<typeof toCamelCase> extends string\n ? S\n : S\n : S;\n\nexport type ContractCallOptions = {\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type ContractInstance<C extends AbiContract> = {\n read: ReadMethods<C>;\n call: CallMethods<C>;\n maps: MapMethods<C>;\n};\n\nexport type GetContractParams<C extends AbiContract> = {\n client: Client;\n address: string;\n name: string;\n abi: C;\n};\n\nexport function getContract<const TAbi extends AbiContract>(\n params: GetContractParams<TAbi>,\n): ContractInstance<TAbi> {\n const { client, address, name: contractName, abi } = params;\n const contractId = `${address}.${contractName}`;\n\n // Index functions/maps by name for fast lookup\n const fnByName = new Map<string, AbiFunction>();\n for (const fn of abi.functions) {\n fnByName.set(fn.name, fn as AbiFunction);\n }\n\n const mapByName = new Map<string, AbiMap>();\n if (abi.maps) {\n for (const m of abi.maps) {\n mapByName.set(m.name, m as AbiMap);\n }\n }\n\n // Build kebab→camel reverse map for function/map names\n const camelToKebab = new Map<string, string>();\n for (const fn of abi.functions) {\n camelToKebab.set(toCamelCase(fn.name), fn.name);\n }\n if (abi.maps) {\n for (const m of abi.maps) {\n camelToKebab.set(toCamelCase(m.name), m.name);\n }\n }\n\n const read = new Proxy({} as ReadMethods<TAbi>, {\n get(_target, prop: string) {\n const fnName = camelToKebab.get(prop) ?? prop;\n const fn = fnByName.get(fnName);\n if (!fn || fn.access !== \"read-only\") return undefined;\n\n return async (args: Record<string, unknown>) => {\n const clarityArgs = buildFunctionArgs(fn, args);\n const result = await readContract(client, {\n contract: contractId,\n functionName: fn.name,\n args: clarityArgs,\n });\n\n const jsValue = clarityValueToJSUntyped(fn.outputs as AbiType, result);\n\n // Auto-unwrap: if output is response type, unwrap ok / throw on err\n if (isResponseOutput(fn.outputs as AbiType)) {\n const resp = jsValue as { ok?: unknown; err?: unknown };\n if (\"ok\" in resp) return resp.ok;\n throw new ContractResponseError(\n `${contractId}::${fn.name} returned (err ${formatErrValue(resp.err)})`,\n resp.err,\n );\n }\n\n return jsValue;\n };\n },\n });\n\n const call = new Proxy({} as CallMethods<TAbi>, {\n get(_target, prop: string) {\n const fnName = camelToKebab.get(prop) ?? prop;\n const fn = fnByName.get(fnName);\n if (!fn || fn.access !== \"public\") return undefined;\n\n return async (\n args: Record<string, unknown>,\n options?: ContractCallOptions,\n ) => {\n const clarityArgs = buildFunctionArgs(fn, args);\n return callContract(client, {\n contract: contractId,\n functionName: fn.name,\n functionArgs: clarityArgs,\n ...options,\n });\n };\n },\n });\n\n const maps = new Proxy({} as MapMethods<TAbi>, {\n get(_target, prop: string) {\n const mapName = camelToKebab.get(prop) ?? prop;\n const map = mapByName.get(mapName);\n if (!map) return undefined;\n\n return async (key: unknown) => {\n const clarityKey = jsToClarityValue(map.key as AbiType, key);\n const result = await getMapEntry(client, {\n contract: contractId,\n mapName: map.name,\n key: clarityKey,\n });\n\n // Map entries come back as (optional ...). If none, return null.\n if (result.type === \"none\") return null;\n if (result.type === \"some\") {\n return clarityValueToJSUntyped(map.value as AbiType, result.value);\n }\n // Direct value (shouldn't normally happen, but handle gracefully)\n return clarityValueToJSUntyped(map.value as AbiType, result);\n };\n },\n });\n\n return { read, call, maps };\n}\n\n// --- Helpers ---\n\nfunction buildFunctionArgs(\n fn: AbiFunction,\n args: Record<string, unknown>,\n): ClarityValue[] {\n return fn.args.map((arg) => {\n const camelKey = toCamelCase(arg.name);\n const hasOriginal = arg.name in args;\n const hasCamel = camelKey in args;\n const value = hasOriginal ? args[arg.name] : hasCamel ? args[camelKey] : undefined;\n if (value === undefined) throw new Error(`Missing argument: ${arg.name}`);\n return jsToClarityValue(arg.type as AbiType, value);\n });\n}\n\nfunction isResponseOutput(type: AbiType): boolean {\n return typeof type === \"object\" && type !== null && \"response\" in type;\n}\n\nfunction formatErrValue(value: unknown): string {\n if (typeof value === \"bigint\") return value.toString();\n if (typeof value === \"string\") return `\"${value}\"`;\n return String(value);\n}\n\nexport class ContractResponseError extends Error {\n override name = \"ContractResponseError\";\n constructor(\n message: string,\n public readonly errorValue: unknown,\n ) {\n super(message);\n }\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "C71C39F2B8094B6864756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,60 @@
1
+ import {
2
+ BaseError
3
+ } from "./stacks-709tra19.js";
4
+
5
+ // src/errors/websocket.ts
6
+ class WebSocketError extends BaseError {
7
+ name = "WebSocketError";
8
+ constructor(message, options) {
9
+ super(message, options);
10
+ }
11
+ }
12
+
13
+ // src/subscriptions/actions.ts
14
+ function getWsTransport(client) {
15
+ if (client.transport.type !== "webSocket") {
16
+ throw new WebSocketError("Watch actions require a webSocket transport. Use `webSocket()` when creating your client.");
17
+ }
18
+ return client.transport;
19
+ }
20
+ async function watchBlocks(client, params) {
21
+ const transport = getWsTransport(client);
22
+ return transport.subscribe({ event: "block" }, params.onBlock);
23
+ }
24
+ async function watchMempool(client, params) {
25
+ const transport = getWsTransport(client);
26
+ return transport.subscribe({ event: "mempool" }, params.onTransaction);
27
+ }
28
+ async function watchTransaction(client, params) {
29
+ const transport = getWsTransport(client);
30
+ return transport.subscribe({ event: "tx_update", tx_id: params.txId }, params.onUpdate);
31
+ }
32
+ async function watchAddress(client, params) {
33
+ const transport = getWsTransport(client);
34
+ return transport.subscribe({ event: "address_tx_update", address: params.address }, params.onTransaction);
35
+ }
36
+ async function watchAddressBalance(client, params) {
37
+ const transport = getWsTransport(client);
38
+ return transport.subscribe({ event: "address_balance_update", address: params.address }, params.onBalance);
39
+ }
40
+ async function watchNftEvent(client, params) {
41
+ const transport = getWsTransport(client);
42
+ let event;
43
+ if (params.assetIdentifier && params.value) {
44
+ event = "nft_event";
45
+ } else if (params.assetIdentifier) {
46
+ event = "nft_collection_event";
47
+ } else {
48
+ event = "nft_event";
49
+ }
50
+ return transport.subscribe({
51
+ event,
52
+ asset_identifier: params.assetIdentifier,
53
+ value: params.value
54
+ }, params.onEvent);
55
+ }
56
+
57
+ export { WebSocketError, watchBlocks, watchMempool, watchTransaction, watchAddress, watchAddressBalance, watchNftEvent };
58
+
59
+ //# debugId=1EA8C0F2045E5C9564756E2164756E21
60
+ //# sourceMappingURL=stacks-y3dh7hv1.js.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/errors/websocket.ts", "../src/subscriptions/actions.ts"],
4
+ "sourcesContent": [
5
+ "import { BaseError } from \"./base.ts\";\n\nexport class WebSocketError extends BaseError {\n override name = \"WebSocketError\";\n\n constructor(message: string, options?: { cause?: Error; details?: string }) {\n super(message, options);\n }\n}\n",
6
+ "import type { Client } from \"../clients/types.ts\";\nimport type { WebSocketTransport } from \"../transports/webSocket.ts\";\nimport type {\n Subscription,\n BlockNotification,\n MempoolNotification,\n TxUpdateNotification,\n AddressTxNotification,\n AddressBalanceNotification,\n NftEventNotification,\n} from \"./types.ts\";\nimport { WebSocketError } from \"../errors/websocket.ts\";\n\nfunction getWsTransport(client: Client): WebSocketTransport {\n if (client.transport.type !== \"webSocket\") {\n throw new WebSocketError(\n \"Watch actions require a webSocket transport. Use `webSocket()` when creating your client.\"\n );\n }\n return client.transport as WebSocketTransport;\n}\n\nexport type WatchBlocksParams = {\n onBlock: (block: BlockNotification) => void;\n};\n\nexport async function watchBlocks(\n client: Client,\n params: WatchBlocksParams\n): Promise<Subscription> {\n const transport = getWsTransport(client);\n return transport.subscribe({ event: \"block\" }, params.onBlock);\n}\n\nexport type WatchMempoolParams = {\n onTransaction: (tx: MempoolNotification) => void;\n};\n\nexport async function watchMempool(\n client: Client,\n params: WatchMempoolParams\n): Promise<Subscription> {\n const transport = getWsTransport(client);\n return transport.subscribe({ event: \"mempool\" }, params.onTransaction);\n}\n\nexport type WatchTransactionParams = {\n txId: string;\n onUpdate: (update: TxUpdateNotification) => void;\n};\n\nexport async function watchTransaction(\n client: Client,\n params: WatchTransactionParams\n): Promise<Subscription> {\n const transport = getWsTransport(client);\n return transport.subscribe(\n { event: \"tx_update\", tx_id: params.txId },\n params.onUpdate\n );\n}\n\nexport type WatchAddressParams = {\n address: string;\n onTransaction: (tx: AddressTxNotification) => void;\n};\n\nexport async function watchAddress(\n client: Client,\n params: WatchAddressParams\n): Promise<Subscription> {\n const transport = getWsTransport(client);\n return transport.subscribe(\n { event: \"address_tx_update\", address: params.address },\n params.onTransaction\n );\n}\n\nexport type WatchAddressBalanceParams = {\n address: string;\n onBalance: (balance: AddressBalanceNotification) => void;\n};\n\nexport async function watchAddressBalance(\n client: Client,\n params: WatchAddressBalanceParams\n): Promise<Subscription> {\n const transport = getWsTransport(client);\n return transport.subscribe(\n { event: \"address_balance_update\", address: params.address },\n params.onBalance\n );\n}\n\nexport type WatchNftEventParams = {\n onEvent: (event: NftEventNotification) => void;\n assetIdentifier?: string;\n value?: string;\n};\n\nexport async function watchNftEvent(\n client: Client,\n params: WatchNftEventParams\n): Promise<Subscription> {\n const transport = getWsTransport(client);\n\n let event: \"nft_event\" | \"nft_asset_event\" | \"nft_collection_event\";\n if (params.assetIdentifier && params.value) {\n event = \"nft_event\";\n } else if (params.assetIdentifier) {\n event = \"nft_collection_event\";\n } else {\n event = \"nft_event\";\n }\n\n return transport.subscribe(\n {\n event,\n asset_identifier: params.assetIdentifier,\n value: params.value,\n },\n params.onEvent\n );\n}\n"
7
+ ],
8
+ "mappings": ";;;;;AAEO,MAAM,uBAAuB,UAAU;AAAA,EACnC,OAAO;AAAA,EAEhB,WAAW,CAAC,SAAiB,SAA+C;AAAA,IAC1E,MAAM,SAAS,OAAO;AAAA;AAE1B;;;ACKA,SAAS,cAAc,CAAC,QAAoC;AAAA,EAC1D,IAAI,OAAO,UAAU,SAAS,aAAa;AAAA,IACzC,MAAM,IAAI,eACR,2FACF;AAAA,EACF;AAAA,EACA,OAAO,OAAO;AAAA;AAOhB,eAAsB,WAAW,CAC/B,QACA,QACuB;AAAA,EACvB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UAAU,EAAE,OAAO,QAAQ,GAAG,OAAO,OAAO;AAAA;AAO/D,eAAsB,YAAY,CAChC,QACA,QACuB;AAAA,EACvB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UAAU,EAAE,OAAO,UAAU,GAAG,OAAO,aAAa;AAAA;AAQvE,eAAsB,gBAAgB,CACpC,QACA,QACuB;AAAA,EACvB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UACf,EAAE,OAAO,aAAa,OAAO,OAAO,KAAK,GACzC,OAAO,QACT;AAAA;AAQF,eAAsB,YAAY,CAChC,QACA,QACuB;AAAA,EACvB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UACf,EAAE,OAAO,qBAAqB,SAAS,OAAO,QAAQ,GACtD,OAAO,aACT;AAAA;AAQF,eAAsB,mBAAmB,CACvC,QACA,QACuB;AAAA,EACvB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UACf,EAAE,OAAO,0BAA0B,SAAS,OAAO,QAAQ,GAC3D,OAAO,SACT;AAAA;AASF,eAAsB,aAAa,CACjC,QACA,QACuB;AAAA,EACvB,MAAM,YAAY,eAAe,MAAM;AAAA,EAEvC,IAAI;AAAA,EACJ,IAAI,OAAO,mBAAmB,OAAO,OAAO;AAAA,IAC1C,QAAQ;AAAA,EACV,EAAO,SAAI,OAAO,iBAAiB;AAAA,IACjC,QAAQ;AAAA,EACV,EAAO;AAAA,IACL,QAAQ;AAAA;AAAA,EAGV,OAAO,UAAU,UACf;AAAA,IACE;AAAA,IACA,kBAAkB,OAAO;AAAA,IACzB,OAAO,OAAO;AAAA,EAChB,GACA,OAAO,OACT;AAAA;",
9
+ "debugId": "1EA8C0F2045E5C9564756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,16 @@
1
+ // src/utils/constants.ts
2
+ var MAX_U128 = (1n << 128n) - 1n;
3
+ var MAX_I128 = (1n << 127n) - 1n;
4
+ var MIN_I128 = -(1n << 127n);
5
+ var AddressVersion = {
6
+ MainnetSingleSig: 22,
7
+ MainnetMultiSig: 20,
8
+ TestnetSingleSig: 26,
9
+ TestnetMultiSig: 21
10
+ };
11
+ var ZERO_ADDRESS = "SP000000000000000000002Q6VF78";
12
+ var TESTNET_ZERO_ADDRESS = "ST000000000000000000002AMW42H";
13
+ var MICROSTX_PER_STX = 1000000n;
14
+
15
+ //# debugId=B42A43BFB28E5FFC64756E2164756E21
16
+ //# sourceMappingURL=stacks-ya3x01yd.cjs.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/utils/constants.ts"],
4
+ "sourcesContent": [
5
+ "// Clarity integer bounds\nexport const MAX_U128 = (1n << 128n) - 1n;\nexport const MAX_I128 = (1n << 127n) - 1n;\nexport const MIN_I128 = -(1n << 127n);\n\n/** C32-encoded address version bytes for single-sig and multi-sig on each network. */\nexport const AddressVersion = {\n MainnetSingleSig: 22,\n MainnetMultiSig: 20,\n TestnetSingleSig: 26,\n TestnetMultiSig: 21,\n} as const;\nexport type AddressVersion = (typeof AddressVersion)[keyof typeof AddressVersion];\n\n/** Mainnet burn address (all-zero hash160). */\nexport const ZERO_ADDRESS = \"SP000000000000000000002Q6VF78\";\n/** Testnet burn address (all-zero hash160). */\nexport const TESTNET_ZERO_ADDRESS = \"ST000000000000000000002AMW42H\";\n\n/** Number of microSTX per 1 STX (10^6). */\nexport const MICROSTX_PER_STX = 1_000_000n;\n"
6
+ ],
7
+ "mappings": ";AACO,IAAM,YAAY,MAAM,QAAQ;AAChC,IAAM,YAAY,MAAM,QAAQ;AAChC,IAAM,WAAW,EAAE,MAAM;AAGzB,IAAM,iBAAiB;AAAA,EAC5B,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,iBAAiB;AACnB;AAIO,IAAM,eAAe;AAErB,IAAM,uBAAuB;AAG7B,IAAM,mBAAmB;",
8
+ "debugId": "B42A43BFB28E5FFC64756E2164756E21",
9
+ "names": []
10
+ }