@secondlayer/stacks 4.3.2 → 5.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 (165) hide show
  1. package/README.md +27 -11
  2. package/dist/shared/{stacks-bfan7ex7.js → stacks-4d7c3x27.js} +5 -5
  3. package/dist/shared/{stacks-bfan7ex7.js.map → stacks-4d7c3x27.js.map} +3 -3
  4. package/dist/shared/{stacks-709tra19.js → stacks-4hs8r4q2.js} +16 -2
  5. package/dist/shared/stacks-4hs8r4q2.js.map +10 -0
  6. package/dist/shared/{stacks-w23294am.js → stacks-51ybf135.js} +3 -3
  7. package/dist/shared/{stacks-0jk7vd8r.cjs → stacks-69nq48jp.js} +120 -17
  8. package/dist/shared/stacks-69nq48jp.js.map +15 -0
  9. package/dist/shared/{stacks-8pfdscq6.js → stacks-6gavarmy.js} +37 -9
  10. package/dist/shared/stacks-6gavarmy.js.map +12 -0
  11. package/dist/shared/{stacks-gxq2pbky.js → stacks-71k0vmct.js} +65 -8
  12. package/dist/shared/stacks-71k0vmct.js.map +13 -0
  13. package/dist/shared/{stacks-7wkf2rph.js → stacks-7bqkf3b0.js} +86 -71
  14. package/dist/shared/{stacks-7wkf2rph.js.map → stacks-7bqkf3b0.js.map} +9 -10
  15. package/dist/shared/{stacks-zcpvzbr0.js → stacks-8brgfvqx.js} +3 -3
  16. package/dist/shared/{stacks-4vzmhw3q.cjs → stacks-8vzxax5e.cjs} +13 -3
  17. package/dist/shared/stacks-8vzxax5e.cjs.map +10 -0
  18. package/dist/shared/{stacks-hnqt5rz4.js → stacks-9c1yam8b.js} +3 -3
  19. package/dist/shared/{stacks-bnbdqznq.cjs → stacks-bdgh9n83.cjs} +11 -10
  20. package/dist/shared/{stacks-bnbdqznq.cjs.map → stacks-bdgh9n83.cjs.map} +3 -3
  21. package/dist/shared/{stacks-fb75yew8.js → stacks-db3kwavg.cjs} +346 -138
  22. package/dist/shared/stacks-db3kwavg.cjs.map +23 -0
  23. package/dist/shared/{stacks-jpt52csy.js → stacks-e3nwm1dz.js} +14 -17
  24. package/dist/shared/stacks-e3nwm1dz.js.map +10 -0
  25. package/dist/shared/{stacks-ta1gar0b.cjs → stacks-ee53k9j2.cjs} +62 -6
  26. package/dist/shared/stacks-ee53k9j2.cjs.map +13 -0
  27. package/dist/shared/{stacks-27fmgajb.js → stacks-ga026yxz.js} +9 -9
  28. package/dist/shared/{stacks-27fmgajb.js.map → stacks-ga026yxz.js.map} +3 -3
  29. package/dist/shared/{stacks-nyaw1z2a.cjs → stacks-ggdz96r1.cjs} +4 -4
  30. package/dist/shared/{stacks-nyaw1z2a.cjs.map → stacks-ggdz96r1.cjs.map} +3 -3
  31. package/dist/shared/{stacks-08y0y0t7.js → stacks-gjz26k6b.js} +2 -2
  32. package/dist/shared/{stacks-x5386y2y.cjs → stacks-gza2n1zs.cjs} +5 -5
  33. package/dist/shared/{stacks-x5386y2y.cjs.map → stacks-gza2n1zs.cjs.map} +3 -3
  34. package/dist/shared/{stacks-ztzygy90.js → stacks-mftyrc60.js} +2 -2
  35. package/dist/shared/stacks-n4d8j8q3.js +801 -0
  36. package/dist/shared/stacks-n4d8j8q3.js.map +23 -0
  37. package/dist/shared/{stacks-ycbq8pf7.cjs → stacks-p337hp6m.cjs} +74 -59
  38. package/dist/shared/{stacks-ycbq8pf7.cjs.map → stacks-p337hp6m.cjs.map} +9 -10
  39. package/dist/shared/{stacks-ttdk2g2f.js → stacks-s5vej5z6.cjs} +92 -41
  40. package/dist/shared/stacks-s5vej5z6.cjs.map +15 -0
  41. package/dist/shared/stacks-sdqkapct.cjs +67 -0
  42. package/dist/shared/stacks-sdqkapct.cjs.map +12 -0
  43. package/dist/shared/{stacks-1arrcd11.js → stacks-v2rfr46a.js} +2 -2
  44. package/dist/shared/{stacks-9mqveyjv.cjs → stacks-w9t61fra.cjs} +7 -10
  45. package/dist/shared/stacks-w9t61fra.cjs.map +10 -0
  46. package/dist/shared/{stacks-tjjnkt3r.js → stacks-wxfd6r4b.js} +2 -2
  47. package/dist/shared/{stacks-4z72akdf.js → stacks-x0qqwrev.js} +3 -3
  48. package/dist/shared/{stacks-gck1sq7h.cjs → stacks-xjkn3en1.cjs} +16 -2
  49. package/dist/shared/stacks-xjkn3en1.cjs.map +10 -0
  50. package/dist/shared/stacks-xnrywjf1.cjs +131 -0
  51. package/dist/shared/stacks-xnrywjf1.cjs.map +11 -0
  52. package/dist/shared/stacks-yajyej2y.js +139 -0
  53. package/dist/shared/stacks-yajyej2y.js.map +11 -0
  54. package/dist/shared/{stacks-913a2rx7.js → stacks-yvb7rvwk.js} +13 -3
  55. package/dist/shared/stacks-yvb7rvwk.js.map +10 -0
  56. package/dist/shared/{stacks-0cdm20eh.js → stacks-z90xdr1x.js} +7 -11
  57. package/dist/shared/{stacks-0cdm20eh.js.map → stacks-z90xdr1x.js.map} +3 -3
  58. package/dist/src/accounts/index.js +2 -3
  59. package/dist/src/accounts/index.js.map +2 -2
  60. package/dist/src/actions/index.cjs +2 -1
  61. package/dist/src/actions/index.cjs.map +1 -1
  62. package/dist/src/actions/index.d.cts +108 -20
  63. package/dist/src/actions/index.d.ts +108 -20
  64. package/dist/src/actions/index.js +17 -15
  65. package/dist/src/actions/index.js.map +1 -1
  66. package/dist/src/bitcoin/index.d.cts +27 -0
  67. package/dist/src/bitcoin/index.d.ts +27 -0
  68. package/dist/src/bitcoin/index.js +10 -11
  69. package/dist/src/bitcoin/index.js.map +2 -2
  70. package/dist/src/bns/index.d.cts +27 -0
  71. package/dist/src/bns/index.d.ts +27 -0
  72. package/dist/src/bns/index.js +13 -13
  73. package/dist/src/bns/index.js.map +1 -1
  74. package/dist/src/clarity/index.js +7 -6
  75. package/dist/src/clarity/index.js.map +1 -1
  76. package/dist/src/connect/index.cjs +44 -30
  77. package/dist/src/connect/index.cjs.map +7 -7
  78. package/dist/src/connect/index.d.cts +16 -1
  79. package/dist/src/connect/index.d.ts +16 -1
  80. package/dist/src/connect/index.js +44 -30
  81. package/dist/src/connect/index.js.map +7 -7
  82. package/dist/src/connect/walletconnect/index.cjs +49 -413
  83. package/dist/src/connect/walletconnect/index.cjs.map +4 -4
  84. package/dist/src/connect/walletconnect/index.js +47 -411
  85. package/dist/src/connect/walletconnect/index.js.map +4 -4
  86. package/dist/src/filters/index.js +2 -2
  87. package/dist/src/index.cjs +49 -124
  88. package/dist/src/index.cjs.map +6 -8
  89. package/dist/src/index.d.cts +163 -54
  90. package/dist/src/index.d.ts +163 -54
  91. package/dist/src/index.js +79 -147
  92. package/dist/src/index.js.map +6 -8
  93. package/dist/src/postconditions/index.js +6 -5
  94. package/dist/src/postconditions/index.js.map +1 -1
  95. package/dist/src/pox/index.cjs +7 -83
  96. package/dist/src/pox/index.cjs.map +3 -3
  97. package/dist/src/pox/index.d.cts +32 -1
  98. package/dist/src/pox/index.d.ts +32 -1
  99. package/dist/src/pox/index.js +22 -102
  100. package/dist/src/pox/index.js.map +3 -3
  101. package/dist/src/pox5/index.cjs +4 -112
  102. package/dist/src/pox5/index.cjs.map +3 -4
  103. package/dist/src/pox5/index.d.cts +27 -0
  104. package/dist/src/pox5/index.d.ts +27 -0
  105. package/dist/src/pox5/index.js +20 -131
  106. package/dist/src/pox5/index.js.map +3 -4
  107. package/dist/src/sbtc/index.cjs +2 -27
  108. package/dist/src/sbtc/index.cjs.map +3 -3
  109. package/dist/src/sbtc/index.d.cts +30 -2
  110. package/dist/src/sbtc/index.d.ts +30 -2
  111. package/dist/src/sbtc/index.js +15 -45
  112. package/dist/src/sbtc/index.js.map +3 -3
  113. package/dist/src/stackingdao/index.d.cts +27 -0
  114. package/dist/src/stackingdao/index.d.ts +27 -0
  115. package/dist/src/stackingdao/index.js +11 -11
  116. package/dist/src/stackingdao/index.js.map +1 -1
  117. package/dist/src/subscriptions/index.d.cts +27 -0
  118. package/dist/src/subscriptions/index.d.ts +27 -0
  119. package/dist/src/subscriptions/index.js +2 -2
  120. package/dist/src/tools/btc/index.cjs.map +2 -2
  121. package/dist/src/tools/btc/index.js.map +2 -2
  122. package/dist/src/tools/index.cjs +629 -392
  123. package/dist/src/tools/index.cjs.map +30 -28
  124. package/dist/src/tools/index.d.cts +44 -0
  125. package/dist/src/tools/index.d.ts +44 -0
  126. package/dist/src/tools/index.js +628 -391
  127. package/dist/src/tools/index.js.map +30 -28
  128. package/dist/src/transactions/index.js +6 -5
  129. package/dist/src/transactions/index.js.map +1 -1
  130. package/dist/src/utils/index.d.cts +2 -5
  131. package/dist/src/utils/index.d.ts +2 -5
  132. package/dist/src/utils/index.js +2 -2
  133. package/package.json +18 -7
  134. package/dist/shared/stacks-0eatsx6d.cjs +0 -25
  135. package/dist/shared/stacks-0eatsx6d.cjs.map +0 -10
  136. package/dist/shared/stacks-0jk7vd8r.cjs.map +0 -14
  137. package/dist/shared/stacks-4vzmhw3q.cjs.map +0 -10
  138. package/dist/shared/stacks-5nmz5ad9.js +0 -409
  139. package/dist/shared/stacks-5nmz5ad9.js.map +0 -10
  140. package/dist/shared/stacks-709tra19.js.map +0 -10
  141. package/dist/shared/stacks-8pfdscq6.js.map +0 -12
  142. package/dist/shared/stacks-913a2rx7.js.map +0 -10
  143. package/dist/shared/stacks-9mqveyjv.cjs.map +0 -10
  144. package/dist/shared/stacks-e4xn4m7j.js +0 -27
  145. package/dist/shared/stacks-e4xn4m7j.js.map +0 -10
  146. package/dist/shared/stacks-fb75yew8.js.map +0 -21
  147. package/dist/shared/stacks-gck1sq7h.cjs.map +0 -10
  148. package/dist/shared/stacks-gxq2pbky.js.map +0 -13
  149. package/dist/shared/stacks-jpt52csy.js.map +0 -10
  150. package/dist/shared/stacks-mnnhpex3.cjs +0 -407
  151. package/dist/shared/stacks-mnnhpex3.cjs.map +0 -10
  152. package/dist/shared/stacks-ta1gar0b.cjs.map +0 -13
  153. package/dist/shared/stacks-tdsp5gsb.cjs +0 -527
  154. package/dist/shared/stacks-tdsp5gsb.cjs.map +0 -21
  155. package/dist/shared/stacks-ttdk2g2f.js.map +0 -14
  156. package/dist/shared/stacks-wdp5yr8n.cjs +0 -39
  157. package/dist/shared/stacks-wdp5yr8n.cjs.map +0 -12
  158. /package/dist/shared/{stacks-w23294am.js.map → stacks-51ybf135.js.map} +0 -0
  159. /package/dist/shared/{stacks-zcpvzbr0.js.map → stacks-8brgfvqx.js.map} +0 -0
  160. /package/dist/shared/{stacks-hnqt5rz4.js.map → stacks-9c1yam8b.js.map} +0 -0
  161. /package/dist/shared/{stacks-08y0y0t7.js.map → stacks-gjz26k6b.js.map} +0 -0
  162. /package/dist/shared/{stacks-ztzygy90.js.map → stacks-mftyrc60.js.map} +0 -0
  163. /package/dist/shared/{stacks-1arrcd11.js.map → stacks-v2rfr46a.js.map} +0 -0
  164. /package/dist/shared/{stacks-tjjnkt3r.js.map → stacks-wxfd6r4b.js.map} +0 -0
  165. /package/dist/shared/{stacks-4z72akdf.js.map → stacks-x0qqwrev.js.map} +0 -0
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/utils/c32.ts", "../../../src/utils/encoding.ts", "../../../src/utils/constants.ts", "../../../src/utils/hash.ts", "../../../src/clarity/types.ts", "../../../src/clarity/serialize.ts", "../../../src/clarity/values.ts", "../../../src/clarity/bridge.ts", "../../../src/errors/base.ts", "../../../src/connect/errors.ts", "../../../src/connect/provider.ts", "../../../src/connect/storage.ts", "../../../src/connect/request.ts", "../../../src/connect/actions.ts"],
3
+ "sources": ["../../../src/utils/c32.ts", "../../../src/utils/encoding.ts", "../../../src/utils/constants.ts", "../../../src/utils/hash.ts", "../../../src/errors/base.ts", "../../../src/clarity/types.ts", "../../../src/clarity/serialize.ts", "../../../src/clarity/values.ts", "../../../src/clarity/bridge.ts", "../../../src/connect/errors.ts", "../../../src/connect/provider.ts", "../../../src/connect/storage.ts", "../../../src/connect/request.ts", "../../../src/connect/actions.ts"],
4
4
  "sourcesContent": [
5
5
  "import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { bytesToHex, hexToBytes } from \"./encoding.ts\";\n\nconst C32 = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\";\nconst HEX = \"0123456789abcdef\";\n\nfunction c32normalize(input: string): string {\n\treturn input.toUpperCase().replace(/O/g, \"0\").replace(/L|I/g, \"1\");\n}\n\nfunction c32encode(inputHex: string): string {\n\tlet hex = inputHex;\n\tif (hex.length % 2 !== 0) hex = `0${hex}`;\n\thex = hex.toLowerCase();\n\n\tconst res: string[] = [];\n\tlet carry = 0;\n\tfor (let i = hex.length - 1; i >= 0; i--) {\n\t\tif (carry < 4) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tconst currentCode = HEX.indexOf(hex[i]!) >> carry;\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tconst nextCode = i !== 0 ? HEX.indexOf(hex[i - 1]!) : 0;\n\t\t\tconst nextBits = 1 + carry;\n\t\t\tconst nextLowBits = (nextCode % (1 << nextBits)) << (5 - nextBits);\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tres.unshift(C32[currentCode + nextLowBits]!);\n\t\t\tcarry = nextBits;\n\t\t} else {\n\t\t\tcarry = 0;\n\t\t}\n\t}\n\n\t// Strip leading c32 zeros\n\tlet leadingZeros = 0;\n\twhile (leadingZeros < res.length && res[leadingZeros] === \"0\") leadingZeros++;\n\tconst stripped = res.slice(leadingZeros);\n\n\t// Preserve leading zero bytes from hex\n\tconst bytes = hexToBytes(hex);\n\tlet zeroBytesCount = 0;\n\twhile (zeroBytesCount < bytes.length && bytes[zeroBytesCount] === 0)\n\t\tzeroBytesCount++;\n\tconst prefix = Array(zeroBytesCount).fill(C32[0]) as string[];\n\n\treturn [...prefix, ...stripped].join(\"\");\n}\n\nfunction c32decode(c32input: string): string {\n\tconst input = c32normalize(c32input);\n\tif (!input.match(`^[${C32}]*$`)) throw new Error(\"Not a c32-encoded string\");\n\n\tconst zeroPrefix = input.match(`^${C32[0]}*`);\n\tconst numLeadingZeroBytes = zeroPrefix ? zeroPrefix[0]?.length : 0;\n\n\tconst res: string[] = [];\n\tlet carry = 0;\n\tlet carryBits = 0;\n\tfor (let i = input.length - 1; i >= 0; i--) {\n\t\tif (carryBits === 4) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tres.unshift(HEX[carry]!);\n\t\t\tcarryBits = 0;\n\t\t\tcarry = 0;\n\t\t}\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\tconst currentValue = (C32.indexOf(input[i]!) << carryBits) + carry;\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\tres.unshift(HEX[currentValue % 16]!);\n\t\tcarryBits += 1;\n\t\tcarry = currentValue >> 4;\n\t\tif (carry > 1 << carryBits) throw new Error(\"Panic error in c32 decoding\");\n\t}\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tres.unshift(HEX[carry]!);\n\n\tif (res.length % 2 === 1) res.unshift(\"0\");\n\n\t// Strip leading hex zeros\n\tlet hexLeadingZeros = 0;\n\twhile (hexLeadingZeros < res.length && res[hexLeadingZeros] === \"0\")\n\t\thexLeadingZeros++;\n\tlet hexStr = res.slice(hexLeadingZeros - (hexLeadingZeros % 2)).join(\"\");\n\n\tfor (let i = 0; i < numLeadingZeroBytes; i++) hexStr = `00${hexStr}`;\n\n\treturn hexStr;\n}\n\nfunction c32checksum(dataHex: string): string {\n\treturn bytesToHex(sha256(sha256(hexToBytes(dataHex))).slice(0, 4));\n}\n\nfunction c32checkEncode(version: number, data: string): string {\n\tif (version < 0 || version >= 32)\n\t\tthrow new Error(\"Invalid version (must be between 0 and 31)\");\n\tif (!data.match(/^[0-9a-fA-F]*$/))\n\t\tthrow new Error(\"Invalid data (not a hex string)\");\n\n\tlet d = data.toLowerCase();\n\tif (d.length % 2 !== 0) d = `0${d}`;\n\n\tlet versionHex = version.toString(16);\n\tif (versionHex.length === 1) versionHex = `0${versionHex}`;\n\n\tconst checksumHex = c32checksum(`${versionHex}${d}`);\n\treturn `${C32[version]}${c32encode(`${d}${checksumHex}`)}`;\n}\n\nfunction c32checkDecode(c32data: string): [number, string] {\n\tconst normalized = c32normalize(c32data);\n\tconst dataHex = c32decode(normalized.slice(1));\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tconst version = C32.indexOf(normalized[0]!);\n\tconst checksum = dataHex.slice(-8);\n\n\tlet versionHex = version.toString(16);\n\tif (versionHex.length === 1) versionHex = `0${versionHex}`;\n\n\tif (\n\t\tc32checksum(`${versionHex}${dataHex.substring(0, dataHex.length - 8)}`) !==\n\t\tchecksum\n\t) {\n\t\tthrow new Error(\"Invalid c32check string: checksum mismatch\");\n\t}\n\n\treturn [version, dataHex.substring(0, dataHex.length - 8)];\n}\n\nexport function c32address(version: number, hash160hex: string): string {\n\tif (!hash160hex.match(/^[0-9a-fA-F]{40}$/)) {\n\t\tthrow new Error(\"Invalid argument: not a hash160 hex string\");\n\t}\n\treturn `S${c32checkEncode(version, hash160hex)}`;\n}\n\nexport function c32addressDecode(c32addr: string): [number, string] {\n\tif (c32addr.length <= 5)\n\t\tthrow new Error(\"Invalid c32 address: invalid length\");\n\tif (c32addr[0] !== \"S\")\n\t\tthrow new Error('Invalid c32 address: must start with \"S\"');\n\treturn c32checkDecode(c32addr.slice(1));\n}\n",
6
6
  "const hexes = Array.from({ length: 256 }, (_, i) =>\n\ti.toString(16).padStart(2, \"0\"),\n);\n\nexport function bytesToHex(bytes: Uint8Array): string {\n\tlet hex = \"\";\n\tfor (const b of bytes) {\n\t\thex += hexes[b];\n\t}\n\treturn hex;\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n\tlet h = without0x(hex);\n\tif (h.length % 2) h = `0${h}`;\n\n\tconst array = new Uint8Array(h.length / 2);\n\tfor (let i = 0; i < array.length; i++) {\n\t\tconst j = i * 2;\n\t\tconst byte = Number.parseInt(h.slice(j, j + 2), 16);\n\t\tif (Number.isNaN(byte) || byte < 0)\n\t\t\tthrow new Error(\"Invalid byte sequence\");\n\t\tarray[i] = byte;\n\t}\n\treturn array;\n}\n\nexport function with0x(value: string): string {\n\treturn /^0x/i.test(value) ? value : `0x${value}`;\n}\n\nexport function without0x(value: string): string {\n\treturn /^0x/i.test(value) ? value.slice(2) : value;\n}\n\nexport function utf8ToBytes(str: string): Uint8Array {\n\treturn new TextEncoder().encode(str);\n}\n\nexport function bytesToUtf8(bytes: Uint8Array): string {\n\treturn new TextDecoder().decode(bytes);\n}\n\nexport function asciiToBytes(str: string): Uint8Array {\n\tconst bytes = new Uint8Array(str.length);\n\tfor (let i = 0; i < str.length; i++) {\n\t\tbytes[i] = str.charCodeAt(i) & 0xff;\n\t}\n\treturn bytes;\n}\n\nexport function bytesToAscii(bytes: Uint8Array): string {\n\treturn String.fromCharCode(...bytes);\n}\n\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tif (arrays.length === 1) return arrays[0]!;\n\tconst length = arrays.reduce((a, arr) => a + arr.length, 0);\n\tconst result = new Uint8Array(length);\n\tlet pad = 0;\n\tfor (const arr of arrays) {\n\t\tresult.set(arr, pad);\n\t\tpad += arr.length;\n\t}\n\treturn result;\n}\n\nexport type IntegerType = number | string | bigint | Uint8Array;\n\nexport function intToBigInt(value: IntegerType): bigint {\n\tif (typeof value === \"bigint\") return value;\n\tif (typeof value === \"string\") return BigInt(value);\n\tif (typeof value === \"number\") {\n\t\tif (!Number.isInteger(value))\n\t\t\tthrow new RangeError(\"Values of type 'number' must be an integer.\");\n\t\tif (value > Number.MAX_SAFE_INTEGER)\n\t\t\tthrow new RangeError(\n\t\t\t\t`Values of type 'number' must be <= ${Number.MAX_SAFE_INTEGER}. Use BigInt instead.`,\n\t\t\t);\n\t\treturn BigInt(value);\n\t}\n\tif (value instanceof Uint8Array) return BigInt(`0x${bytesToHex(value)}`);\n\tthrow new TypeError(\"Must be a number, bigint, string, or Uint8Array.\");\n}\n\nexport function intToBytes(value: IntegerType, byteLength: number): Uint8Array {\n\treturn bigIntToBytes(intToBigInt(value), byteLength);\n}\n\nexport function bigIntToBytes(value: bigint, length = 16): Uint8Array {\n\tconst hex = value.toString(16).padStart(length * 2, \"0\");\n\treturn hexToBytes(hex);\n}\n\nexport function intToHex(integer: IntegerType, byteLength = 8): string {\n\tconst value = typeof integer === \"bigint\" ? integer : intToBigInt(integer);\n\treturn value.toString(16).padStart(byteLength * 2, \"0\");\n}\n\nexport function toTwos(value: bigint, width: bigint): bigint {\n\tconst limit = BigInt(1) << (width - BigInt(1));\n\tif (value < -limit || value > limit - BigInt(1)) {\n\t\tthrow new Error(`Unable to represent integer in width: ${width}`);\n\t}\n\tif (value >= BigInt(0)) return value;\n\treturn value + (BigInt(1) << width);\n}\n\nexport function fromTwos(value: bigint, width: bigint): bigint {\n\tif (value & (BigInt(1) << (width - BigInt(1)))) {\n\t\treturn value - (BigInt(1) << width);\n\t}\n\treturn value;\n}\n\nexport function bytesToTwosBigInt(bytes: Uint8Array): bigint {\n\tif (bytes.length === 0) return 0n;\n\tconst hex = bytesToHex(bytes);\n\tif (hex.length === 0) return 0n;\n\treturn fromTwos(BigInt(`0x${hex}`), BigInt(bytes.byteLength * 8));\n}\n\nexport function writeUInt32BE(value: number): Uint8Array {\n\tconst buf = new Uint8Array(4);\n\tbuf[0] = (value >>> 24) & 0xff;\n\tbuf[1] = (value >>> 16) & 0xff;\n\tbuf[2] = (value >>> 8) & 0xff;\n\tbuf[3] = value & 0xff;\n\treturn buf;\n}\n\nexport function readUInt32BE(bytes: Uint8Array, offset = 0): number {\n\treturn (\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t((bytes[offset]! << 24) |\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\t(bytes[offset + 1]! << 16) |\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\t(bytes[offset + 2]! << 8) |\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tbytes[offset + 3]!) >>>\n\t\t0\n\t);\n}\n\nexport function writeUInt16BE(value: number): Uint8Array {\n\tconst buf = new Uint8Array(2);\n\tbuf[0] = (value >>> 8) & 0xff;\n\tbuf[1] = value & 0xff;\n\treturn buf;\n}\n\nexport function readUInt16BE(bytes: Uint8Array, offset = 0): number {\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\treturn ((bytes[offset]! << 8) | bytes[offset + 1]!) >>> 0;\n}\n\nexport function writeUInt8(value: number): Uint8Array {\n\treturn new Uint8Array([value & 0xff]);\n}\n",
7
7
  "// Clarity integer bounds\nexport const MAX_U128: bigint = (1n << 128n) - 1n;\nexport const MAX_I128: bigint = (1n << 127n) - 1n;\nexport const MIN_I128: bigint = -(1n << 127n);\n\n/** C32-encoded address version bytes for single-sig and multi-sig on each network. */\nexport const AddressVersion = {\n\tMainnetSingleSig: 22,\n\tMainnetMultiSig: 20,\n\tTestnetSingleSig: 26,\n\tTestnetMultiSig: 21,\n} as const;\nexport type AddressVersion =\n\t(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",
8
8
  "import { ripemd160 } from \"@noble/hashes/legacy.js\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { sha512_256 } from \"@noble/hashes/sha2.js\";\nimport { bytesToHex } from \"./encoding.ts\";\n\nexport { sha256, sha512_256, ripemd160 };\n\n/** RIPEMD160(SHA256(input)) — standard Bitcoin/Stacks address hash */\nexport function hash160(input: Uint8Array): Uint8Array {\n\treturn ripemd160(sha256(input));\n}\n\n/** Hash used for transaction IDs */\nexport function txidFromBytes(data: Uint8Array): string {\n\treturn bytesToHex(sha512_256(data));\n}\n\n/** hash160 as hex — used for P2PKH address derivation */\nexport function hashP2PKH(input: Uint8Array): string {\n\treturn bytesToHex(hash160(input));\n}\n",
9
+ "/**\n * Derive a stable machine-readable code from an error's `name` field:\n * `HttpRequestError` becomes `HTTP_REQUEST_ERROR`. `name` is a string\n * literal each class sets, so the code survives a bundler that mangles\n * class names. Branch on `code` instead of parsing `message`, which is\n * free to change.\n */\nfunction codeFromName(name: string): string {\n\treturn name\n\t\t.replace(/([a-z0-9])([A-Z])/g, \"$1_$2\")\n\t\t.replace(/([A-Z]+)([A-Z][a-z])/g, \"$1_$2\")\n\t\t.toUpperCase();\n}\n\nexport class BaseError extends Error {\n\toverride name = \"StacksError\";\n\t#code?: string;\n\tshortMessage: string;\n\tdetails?: string;\n\n\tconstructor(\n\t\tshortMessage: string,\n\t\toptions?: { cause?: Error; details?: string; code?: string },\n\t) {\n\t\tconst message = [\n\t\t\tshortMessage,\n\t\t\toptions?.details ? `\\n${options.details}` : \"\",\n\t\t].join(\"\");\n\n\t\tsuper(message, { cause: options?.cause });\n\t\tif (options?.code !== undefined) this.#code = options.code;\n\t\tthis.shortMessage = shortMessage;\n\t\tthis.details = options?.details;\n\t}\n\n\t/**\n\t * Stable identifier for programmatic handling; survives message\n\t * rewording and minification. An explicit `code` option wins, else it\n\t * is derived from `name` (`TimeoutError` gives `TIMEOUT_ERROR`).\n\t */\n\tget code(): string {\n\t\treturn this.#code ?? codeFromName(this.name);\n\t}\n\n\tset code(value: string) {\n\t\tthis.#code = value;\n\t}\n\n\ttoJSON(): {\n\t\tname: string;\n\t\tcode: string;\n\t\tmessage: string;\n\t\tshortMessage: string;\n\t\tdetails: string | undefined;\n\t\tcause: string | undefined;\n\t} {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tcode: this.code,\n\t\t\tmessage: this.message,\n\t\t\tshortMessage: this.shortMessage,\n\t\t\tdetails: this.details,\n\t\t\tcause: this.cause instanceof Error ? this.cause.message : undefined,\n\t\t};\n\t}\n}\n",
9
10
  "export type ClarityType =\n\t| \"int\"\n\t| \"uint\"\n\t| \"buffer\"\n\t| \"true\"\n\t| \"false\"\n\t| \"address\"\n\t| \"contract\"\n\t| \"ok\"\n\t| \"err\"\n\t| \"none\"\n\t| \"some\"\n\t| \"list\"\n\t| \"tuple\"\n\t| \"ascii\"\n\t| \"utf8\";\n\n/** Wire type IDs matching the Stacks binary format (SIP-005) */\nexport const ClarityWireType = {\n\tint: 0x00,\n\tuint: 0x01,\n\tbuffer: 0x02,\n\ttrue: 0x03,\n\tfalse: 0x04,\n\taddress: 0x05,\n\tcontract: 0x06,\n\tok: 0x07,\n\terr: 0x08,\n\tnone: 0x09,\n\tsome: 0x0a,\n\tlist: 0x0b,\n\ttuple: 0x0c,\n\tascii: 0x0d,\n\tutf8: 0x0e,\n} as const satisfies Record<ClarityType, number>;\n\n/** Reverse lookup: wire byte → ClarityType string */\nconst wireTypeToClarity = Object.fromEntries(\n\tObject.entries(ClarityWireType).map(([k, v]) => [v, k]),\n) as Record<number, ClarityType>;\n\nexport function clarityTypeFromByte(byte: number): ClarityType {\n\tconst type = wireTypeToClarity[byte];\n\tif (!type) throw new Error(`Unknown clarity wire type: ${byte}`);\n\treturn type;\n}\n\n// CV types\n\nexport type IntCV = { readonly type: \"int\"; readonly value: bigint };\nexport type UIntCV = { readonly type: \"uint\"; readonly value: bigint };\nexport type BooleanCV = TrueCV | FalseCV;\nexport type TrueCV = { readonly type: \"true\" };\nexport type FalseCV = { readonly type: \"false\" };\nexport type BufferCV = { readonly type: \"buffer\"; readonly value: string }; // hex\nexport type NoneCV = { readonly type: \"none\" };\nexport type SomeCV = {\n\treadonly type: \"some\";\n\treadonly value: ClarityValue;\n};\nexport type OptionalCV = NoneCV | SomeCV;\nexport type ResponseOkCV = {\n\treadonly type: \"ok\";\n\treadonly value: ClarityValue;\n};\nexport type ResponseErrorCV = {\n\treadonly type: \"err\";\n\treadonly value: ClarityValue;\n};\nexport type ResponseCV = ResponseOkCV | ResponseErrorCV;\nexport type StandardPrincipalCV = {\n\treadonly type: \"address\";\n\treadonly value: string;\n};\nexport type ContractPrincipalCV = {\n\treadonly type: \"contract\";\n\treadonly value: string; // \"address.name\"\n};\nexport type PrincipalCV = StandardPrincipalCV | ContractPrincipalCV;\nexport type ListCV = {\n\ttype: \"list\";\n\tvalue: ClarityValue[];\n};\nexport type TupleData = {\n\t[key: string]: ClarityValue;\n};\nexport type TupleCV = {\n\ttype: \"tuple\";\n\tvalue: TupleData;\n};\nexport type StringAsciiCV = {\n\treadonly type: \"ascii\";\n\treadonly value: string;\n};\nexport type StringUtf8CV = {\n\treadonly type: \"utf8\";\n\treadonly value: string;\n};\n\nexport type ClarityValue =\n\t| IntCV\n\t| UIntCV\n\t| BooleanCV\n\t| BufferCV\n\t| NoneCV\n\t| SomeCV\n\t| ResponseOkCV\n\t| ResponseErrorCV\n\t| StandardPrincipalCV\n\t| ContractPrincipalCV\n\t| ListCV\n\t| TupleCV\n\t| StringAsciiCV\n\t| StringUtf8CV;\n",
10
- "import { c32addressDecode } from \"../utils/c32.ts\";\nimport {\n\tasciiToBytes,\n\tbigIntToBytes,\n\tbytesToHex,\n\tconcatBytes,\n\thexToBytes,\n\tintToHex,\n\ttoTwos,\n\tutf8ToBytes,\n\twriteUInt32BE,\n} from \"../utils/encoding.ts\";\nimport {\n\ttype ClarityType,\n\ttype ClarityValue,\n\tClarityWireType,\n} from \"./types.ts\";\n\nconst CLARITY_INT_SIZE = 128n;\nconst CLARITY_INT_BYTE_SIZE = 16;\n\nfunction typeIdByte(type: ClarityType): number {\n\treturn ClarityWireType[type];\n}\n\nfunction withTypeId(type: ClarityType, bytes: Uint8Array): Uint8Array {\n\treturn concatBytes(new Uint8Array([typeIdByte(type)]), bytes);\n}\n\nfunction serializeAddress(c32Address: string): Uint8Array {\n\tconst [version, hash160] = c32addressDecode(c32Address);\n\treturn concatBytes(new Uint8Array([version]), hexToBytes(hash160));\n}\n\nfunction serializeLPString(str: string, prefixBytes = 1): Uint8Array {\n\tconst content = utf8ToBytes(str);\n\tconst lengthPrefix = hexToBytes(intToHex(content.byteLength, prefixBytes));\n\treturn concatBytes(lengthPrefix, content);\n}\n\nexport function serializeCVBytes(value: ClarityValue): Uint8Array {\n\tswitch (value.type) {\n\t\tcase \"true\":\n\t\tcase \"false\":\n\t\t\treturn new Uint8Array([typeIdByte(value.type)]);\n\n\t\tcase \"int\": {\n\t\t\tconst bytes = bigIntToBytes(\n\t\t\t\ttoTwos(BigInt(value.value), CLARITY_INT_SIZE),\n\t\t\t\tCLARITY_INT_BYTE_SIZE,\n\t\t\t);\n\t\t\treturn withTypeId(value.type, bytes);\n\t\t}\n\n\t\tcase \"uint\": {\n\t\t\tconst bytes = bigIntToBytes(BigInt(value.value), CLARITY_INT_BYTE_SIZE);\n\t\t\treturn withTypeId(value.type, bytes);\n\t\t}\n\n\t\tcase \"buffer\": {\n\t\t\tconst bufBytes = hexToBytes(value.value);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(writeUInt32BE(bufBytes.length), bufBytes),\n\t\t\t);\n\t\t}\n\n\t\tcase \"none\":\n\t\t\treturn new Uint8Array([typeIdByte(value.type)]);\n\n\t\tcase \"some\":\n\t\t\treturn withTypeId(value.type, serializeCVBytes(value.value));\n\n\t\tcase \"ok\":\n\t\tcase \"err\":\n\t\t\treturn withTypeId(value.type, serializeCVBytes(value.value));\n\n\t\tcase \"address\":\n\t\t\treturn withTypeId(value.type, serializeAddress(value.value));\n\n\t\tcase \"contract\": {\n\t\t\tconst [addr, name] = value.value.split(\".\");\n\t\t\tif (!addr || !name)\n\t\t\t\tthrow new Error(`Invalid contract principal: ${value.value}`);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(serializeAddress(addr), serializeLPString(name)),\n\t\t\t);\n\t\t}\n\n\t\tcase \"list\": {\n\t\t\tconst parts: Uint8Array[] = [writeUInt32BE(value.value.length)];\n\t\t\tfor (const item of value.value) {\n\t\t\t\tparts.push(serializeCVBytes(item));\n\t\t\t}\n\t\t\treturn withTypeId(value.type, concatBytes(...parts));\n\t\t}\n\n\t\tcase \"tuple\": {\n\t\t\tconst keys = Object.keys(value.value).sort((a, b) => a.localeCompare(b));\n\t\t\tconst parts: Uint8Array[] = [writeUInt32BE(keys.length)];\n\t\t\tfor (const key of keys) {\n\t\t\t\tparts.push(serializeLPString(key));\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\t\t\t\tparts.push(serializeCVBytes(value.value[key]!));\n\t\t\t}\n\t\t\treturn withTypeId(value.type, concatBytes(...parts));\n\t\t}\n\n\t\tcase \"ascii\": {\n\t\t\tconst strBytes = asciiToBytes(value.value);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(writeUInt32BE(strBytes.length), strBytes),\n\t\t\t);\n\t\t}\n\n\t\tcase \"utf8\": {\n\t\t\tconst strBytes = utf8ToBytes(value.value);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(writeUInt32BE(strBytes.length), strBytes),\n\t\t\t);\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new Error(\"Cannot serialize unknown clarity type\");\n\t}\n}\n\nexport function serializeCV(value: ClarityValue): string {\n\treturn bytesToHex(serializeCVBytes(value));\n}\n",
11
- "import { isClarityName } from \"../utils/address.ts\";\nimport { c32address, c32addressDecode } from \"../utils/c32.ts\";\nimport {\n\ttype IntegerType,\n\tasciiToBytes,\n\tbytesToHex,\n\tbytesToTwosBigInt,\n\thexToBytes,\n\tintToBigInt,\n\tutf8ToBytes,\n} from \"../utils/encoding.ts\";\nimport { deserializeCVBytes } from \"./deserialize.ts\";\nimport { serializeCVBytes } from \"./serialize.ts\";\nimport type {\n\tBooleanCV,\n\tBufferCV,\n\tClarityValue,\n\tContractPrincipalCV,\n\tFalseCV,\n\tIntCV,\n\tListCV,\n\tNoneCV,\n\tResponseErrorCV,\n\tResponseOkCV,\n\tSomeCV,\n\tStandardPrincipalCV,\n\tStringAsciiCV,\n\tStringUtf8CV,\n\tTrueCV,\n\tTupleCV,\n\tTupleData,\n\tUIntCV,\n} from \"./types.ts\";\n\nconst MAX_U128 = BigInt(\"0xffffffffffffffffffffffffffffffff\");\nconst MIN_I128 = BigInt(\"-170141183460469231731687303715884105728\");\nconst MAX_I128 = BigInt(\"0x7fffffffffffffffffffffffffffffff\");\n\n// Primitives\n\nexport function intCV(value: IntegerType): IntCV {\n\tlet v: IntegerType = value;\n\tif (typeof v === \"string\" && v.toLowerCase().startsWith(\"0x\")) {\n\t\tv = bytesToTwosBigInt(hexToBytes(v));\n\t}\n\tif (v instanceof Uint8Array) v = bytesToTwosBigInt(v);\n\tconst n = intToBigInt(v);\n\tif (n > MAX_I128) throw new RangeError(`Int exceeds max i128: ${MAX_I128}`);\n\tif (n < MIN_I128) throw new RangeError(`Int below min i128: ${MIN_I128}`);\n\treturn { type: \"int\", value: n };\n}\n\nexport function uintCV(value: IntegerType): UIntCV {\n\tconst n = intToBigInt(value);\n\tif (n < 0n)\n\t\tthrow new RangeError(\"Cannot construct unsigned int from negative value\");\n\tif (n > MAX_U128) throw new RangeError(`UInt exceeds max u128: ${MAX_U128}`);\n\treturn { type: \"uint\", value: n };\n}\n\nexport const trueCV = (): TrueCV => ({ type: \"true\" });\nexport const falseCV = (): FalseCV => ({ type: \"false\" });\nexport const boolCV = (v: boolean): BooleanCV => (v ? trueCV() : falseCV());\n\nexport function bufferCV(buffer: Uint8Array): BufferCV {\n\tif (buffer.byteLength > 1_048_576) {\n\t\tthrow new Error(\"Buffer exceeds max size of 1MB\");\n\t}\n\treturn { type: \"buffer\", value: bytesToHex(buffer) };\n}\n\nexport function standardPrincipalCV(address: string): StandardPrincipalCV {\n\t// Validate by decoding\n\tconst [version, hash160] = c32addressDecode(address);\n\tconst normalized = c32address(version, hash160);\n\treturn { type: \"address\", value: normalized };\n}\n\nexport function contractPrincipalCV(\n\taddress: string,\n\tcontractName: string,\n): ContractPrincipalCV {\n\tconst [version, hash160] = c32addressDecode(address);\n\tconst normalized = c32address(version, hash160);\n\tif (utf8ToBytes(contractName).byteLength >= 128) {\n\t\tthrow new Error(\"Contract name must be less than 128 bytes\");\n\t}\n\treturn { type: \"contract\", value: `${normalized}.${contractName}` };\n}\n\nexport function noneCV(): NoneCV {\n\treturn { type: \"none\" };\n}\n\nexport function someCV(value: ClarityValue): SomeCV {\n\treturn { type: \"some\", value };\n}\n\nexport function responseOkCV(value: ClarityValue): ResponseOkCV {\n\treturn { type: \"ok\", value };\n}\n\nexport function responseErrorCV(value: ClarityValue): ResponseErrorCV {\n\treturn { type: \"err\", value };\n}\n\nexport function listCV(values: ClarityValue[]): ListCV {\n\treturn { type: \"list\", value: values };\n}\n\nexport function tupleCV(data: TupleData): TupleCV {\n\tfor (const key in data) {\n\t\tif (!isClarityName(key)) {\n\t\t\tthrow new Error(`\"${key}\" is not a valid Clarity name`);\n\t\t}\n\t}\n\treturn { type: \"tuple\", value: data };\n}\n\nexport function stringAsciiCV(value: string): StringAsciiCV {\n\treturn { type: \"ascii\", value };\n}\n\nexport function stringUtf8CV(value: string): StringUtf8CV {\n\treturn { type: \"utf8\", value };\n}\n\n// Cl namespace — clean API\n\nexport const Cl: {\n\treadonly int: (value: IntegerType) => IntCV;\n\treadonly uint: (value: IntegerType) => UIntCV;\n\treadonly bool: (v: boolean) => BooleanCV;\n\tprincipal(address: string): StandardPrincipalCV | ContractPrincipalCV;\n\taddress(address: string): StandardPrincipalCV | ContractPrincipalCV;\n\treadonly contractPrincipal: (\n\t\taddress: string,\n\t\tcontractName: string,\n\t) => ContractPrincipalCV;\n\treadonly standardPrincipal: (address: string) => StandardPrincipalCV;\n\treadonly buffer: (buffer: Uint8Array) => BufferCV;\n\treadonly bufferFromHex: (hex: string) => BufferCV;\n\treadonly bufferFromAscii: (ascii: string) => BufferCV;\n\treadonly bufferFromUtf8: (utf8: string) => BufferCV;\n\treadonly none: () => NoneCV;\n\treadonly some: (value: ClarityValue) => SomeCV;\n\treadonly ok: (value: ClarityValue) => ResponseOkCV;\n\treadonly error: (value: ClarityValue) => ResponseErrorCV;\n\treadonly list: (values: ClarityValue[]) => ListCV;\n\treadonly tuple: (data: TupleData) => TupleCV;\n\treadonly stringAscii: (value: string) => StringAsciiCV;\n\treadonly stringUtf8: (value: string) => StringUtf8CV;\n\tserialize(value: ClarityValue): string;\n\treadonly deserialize: (bytes: Uint8Array) => ClarityValue;\n} = {\n\tint: intCV,\n\tuint: uintCV,\n\tbool: boolCV,\n\tprincipal(address: string): StandardPrincipalCV | ContractPrincipalCV {\n\t\tconst [addr, name] = address.split(\".\");\n\t\tif (!addr) throw new Error(\"Invalid principal address\");\n\t\treturn name ? contractPrincipalCV(addr, name) : standardPrincipalCV(addr);\n\t},\n\taddress(address: string): StandardPrincipalCV | ContractPrincipalCV {\n\t\treturn Cl.principal(address);\n\t},\n\tcontractPrincipal: contractPrincipalCV,\n\tstandardPrincipal: standardPrincipalCV,\n\tbuffer: bufferCV,\n\tbufferFromHex: (hex: string): BufferCV => bufferCV(hexToBytes(hex)),\n\tbufferFromAscii: (ascii: string): BufferCV => bufferCV(asciiToBytes(ascii)),\n\tbufferFromUtf8: (utf8: string): BufferCV => bufferCV(utf8ToBytes(utf8)),\n\tnone: noneCV,\n\tsome: someCV,\n\tok: responseOkCV,\n\terror: responseErrorCV,\n\tlist: listCV,\n\ttuple: tupleCV,\n\tstringAscii: stringAsciiCV,\n\tstringUtf8: stringUtf8CV,\n\tserialize(value: ClarityValue): string {\n\t\treturn bytesToHex(serializeCVBytes(value));\n\t},\n\tdeserialize: deserializeCVBytes,\n} as const;\n",
11
+ "import { c32addressDecode } from \"../utils/c32.ts\";\nimport {\n\tasciiToBytes,\n\tbigIntToBytes,\n\tbytesToHex,\n\tconcatBytes,\n\thexToBytes,\n\tintToHex,\n\ttoTwos,\n\tutf8ToBytes,\n\twriteUInt32BE,\n} from \"../utils/encoding.ts\";\nimport {\n\ttype ClarityType,\n\ttype ClarityValue,\n\tClarityWireType,\n} from \"./types.ts\";\n\nconst CLARITY_INT_SIZE = 128n;\nconst CLARITY_INT_BYTE_SIZE = 16;\n\nfunction typeIdByte(type: ClarityType): number {\n\treturn ClarityWireType[type];\n}\n\nfunction withTypeId(type: ClarityType, bytes: Uint8Array): Uint8Array {\n\treturn concatBytes(new Uint8Array([typeIdByte(type)]), bytes);\n}\n\nfunction serializeAddress(c32Address: string): Uint8Array {\n\tconst [version, hash160] = c32addressDecode(c32Address);\n\treturn concatBytes(new Uint8Array([version]), hexToBytes(hash160));\n}\n\nfunction serializeLPString(str: string, prefixBytes = 1): Uint8Array {\n\tconst content = utf8ToBytes(str);\n\tconst lengthPrefix = hexToBytes(intToHex(content.byteLength, prefixBytes));\n\treturn concatBytes(lengthPrefix, content);\n}\n\nexport function serializeCVBytes(value: ClarityValue): Uint8Array {\n\tswitch (value.type) {\n\t\tcase \"true\":\n\t\tcase \"false\":\n\t\t\treturn new Uint8Array([typeIdByte(value.type)]);\n\n\t\tcase \"int\": {\n\t\t\tconst bytes = bigIntToBytes(\n\t\t\t\ttoTwos(BigInt(value.value), CLARITY_INT_SIZE),\n\t\t\t\tCLARITY_INT_BYTE_SIZE,\n\t\t\t);\n\t\t\treturn withTypeId(value.type, bytes);\n\t\t}\n\n\t\tcase \"uint\": {\n\t\t\tconst bytes = bigIntToBytes(BigInt(value.value), CLARITY_INT_BYTE_SIZE);\n\t\t\treturn withTypeId(value.type, bytes);\n\t\t}\n\n\t\tcase \"buffer\": {\n\t\t\tconst bufBytes = hexToBytes(value.value);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(writeUInt32BE(bufBytes.length), bufBytes),\n\t\t\t);\n\t\t}\n\n\t\tcase \"none\":\n\t\t\treturn new Uint8Array([typeIdByte(value.type)]);\n\n\t\tcase \"some\":\n\t\t\treturn withTypeId(value.type, serializeCVBytes(value.value));\n\n\t\tcase \"ok\":\n\t\tcase \"err\":\n\t\t\treturn withTypeId(value.type, serializeCVBytes(value.value));\n\n\t\tcase \"address\":\n\t\t\treturn withTypeId(value.type, serializeAddress(value.value));\n\n\t\tcase \"contract\": {\n\t\t\tconst [addr, name] = value.value.split(\".\");\n\t\t\tif (!addr || !name)\n\t\t\t\tthrow new Error(`Invalid contract principal: ${value.value}`);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(serializeAddress(addr), serializeLPString(name)),\n\t\t\t);\n\t\t}\n\n\t\tcase \"list\": {\n\t\t\tconst parts: Uint8Array[] = [writeUInt32BE(value.value.length)];\n\t\t\tfor (const item of value.value) {\n\t\t\t\tparts.push(serializeCVBytes(item));\n\t\t\t}\n\t\t\treturn withTypeId(value.type, concatBytes(...parts));\n\t\t}\n\n\t\tcase \"tuple\": {\n\t\t\t// Clarity orders tuple fields as a BTreeMap over the raw name bytes.\n\t\t\t// Code-unit comparison equals byte order for the ASCII name grammar;\n\t\t\t// localeCompare does not, and would change the SIP-018 hash.\n\t\t\tconst keys = Object.keys(value.value).sort((a, b) =>\n\t\t\t\ta < b ? -1 : a > b ? 1 : 0,\n\t\t\t);\n\t\t\tconst parts: Uint8Array[] = [writeUInt32BE(keys.length)];\n\t\t\tfor (const key of keys) {\n\t\t\t\tparts.push(serializeLPString(key));\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\t\t\t\tparts.push(serializeCVBytes(value.value[key]!));\n\t\t\t}\n\t\t\treturn withTypeId(value.type, concatBytes(...parts));\n\t\t}\n\n\t\tcase \"ascii\": {\n\t\t\tconst strBytes = asciiToBytes(value.value);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(writeUInt32BE(strBytes.length), strBytes),\n\t\t\t);\n\t\t}\n\n\t\tcase \"utf8\": {\n\t\t\tconst strBytes = utf8ToBytes(value.value);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(writeUInt32BE(strBytes.length), strBytes),\n\t\t\t);\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new Error(\"Cannot serialize unknown clarity type\");\n\t}\n}\n\nexport function serializeCV(value: ClarityValue): string {\n\treturn bytesToHex(serializeCVBytes(value));\n}\n",
12
+ "import { isClarityName, parsePrincipal } from \"../utils/address.ts\";\nimport { c32address, c32addressDecode } from \"../utils/c32.ts\";\nimport {\n\ttype IntegerType,\n\tasciiToBytes,\n\tbytesToHex,\n\tbytesToTwosBigInt,\n\thexToBytes,\n\tintToBigInt,\n\tutf8ToBytes,\n} from \"../utils/encoding.ts\";\nimport { deserializeCVBytes } from \"./deserialize.ts\";\nimport { serializeCVBytes } from \"./serialize.ts\";\nimport type {\n\tBooleanCV,\n\tBufferCV,\n\tClarityValue,\n\tContractPrincipalCV,\n\tFalseCV,\n\tIntCV,\n\tListCV,\n\tNoneCV,\n\tResponseErrorCV,\n\tResponseOkCV,\n\tSomeCV,\n\tStandardPrincipalCV,\n\tStringAsciiCV,\n\tStringUtf8CV,\n\tTrueCV,\n\tTupleCV,\n\tTupleData,\n\tUIntCV,\n} from \"./types.ts\";\n\nconst MAX_U128 = BigInt(\"0xffffffffffffffffffffffffffffffff\");\nconst MIN_I128 = BigInt(\"-170141183460469231731687303715884105728\");\nconst MAX_I128 = BigInt(\"0x7fffffffffffffffffffffffffffffff\");\n\n// Primitives\n\nexport function intCV(value: IntegerType): IntCV {\n\tlet v: IntegerType = value;\n\tif (typeof v === \"string\" && v.toLowerCase().startsWith(\"0x\")) {\n\t\tv = bytesToTwosBigInt(hexToBytes(v));\n\t}\n\tif (v instanceof Uint8Array) v = bytesToTwosBigInt(v);\n\tconst n = intToBigInt(v);\n\tif (n > MAX_I128) throw new RangeError(`Int exceeds max i128: ${MAX_I128}`);\n\tif (n < MIN_I128) throw new RangeError(`Int below min i128: ${MIN_I128}`);\n\treturn { type: \"int\", value: n };\n}\n\nexport function uintCV(value: IntegerType): UIntCV {\n\tconst n = intToBigInt(value);\n\tif (n < 0n)\n\t\tthrow new RangeError(\"Cannot construct unsigned int from negative value\");\n\tif (n > MAX_U128) throw new RangeError(`UInt exceeds max u128: ${MAX_U128}`);\n\treturn { type: \"uint\", value: n };\n}\n\nexport const trueCV = (): TrueCV => ({ type: \"true\" });\nexport const falseCV = (): FalseCV => ({ type: \"false\" });\nexport const boolCV = (v: boolean): BooleanCV => (v ? trueCV() : falseCV());\n\nexport function bufferCV(buffer: Uint8Array): BufferCV {\n\tif (buffer.byteLength > 1_048_576) {\n\t\tthrow new Error(\"Buffer exceeds max size of 1MB\");\n\t}\n\treturn { type: \"buffer\", value: bytesToHex(buffer) };\n}\n\nexport function standardPrincipalCV(address: string): StandardPrincipalCV {\n\t// Validate by decoding\n\tconst [version, hash160] = c32addressDecode(address);\n\tconst normalized = c32address(version, hash160);\n\treturn { type: \"address\", value: normalized };\n}\n\nexport function contractPrincipalCV(\n\taddress: string,\n\tcontractName: string,\n): ContractPrincipalCV {\n\tconst [version, hash160] = c32addressDecode(address);\n\tconst normalized = c32address(version, hash160);\n\tif (utf8ToBytes(contractName).byteLength >= 128) {\n\t\tthrow new Error(\"Contract name must be less than 128 bytes\");\n\t}\n\treturn { type: \"contract\", value: `${normalized}.${contractName}` };\n}\n\nexport function noneCV(): NoneCV {\n\treturn { type: \"none\" };\n}\n\nexport function someCV(value: ClarityValue): SomeCV {\n\treturn { type: \"some\", value };\n}\n\nexport function responseOkCV(value: ClarityValue): ResponseOkCV {\n\treturn { type: \"ok\", value };\n}\n\nexport function responseErrorCV(value: ClarityValue): ResponseErrorCV {\n\treturn { type: \"err\", value };\n}\n\nexport function listCV(values: ClarityValue[]): ListCV {\n\treturn { type: \"list\", value: values };\n}\n\nexport function tupleCV(data: TupleData): TupleCV {\n\tfor (const key in data) {\n\t\tif (!isClarityName(key)) {\n\t\t\tthrow new Error(`\"${key}\" is not a valid Clarity name`);\n\t\t}\n\t}\n\treturn { type: \"tuple\", value: data };\n}\n\nexport function stringAsciiCV(value: string): StringAsciiCV {\n\treturn { type: \"ascii\", value };\n}\n\nexport function stringUtf8CV(value: string): StringUtf8CV {\n\treturn { type: \"utf8\", value };\n}\n\n// Cl namespace — clean API\n\nexport const Cl: {\n\treadonly int: (value: IntegerType) => IntCV;\n\treadonly uint: (value: IntegerType) => UIntCV;\n\treadonly bool: (v: boolean) => BooleanCV;\n\tprincipal(address: string): StandardPrincipalCV | ContractPrincipalCV;\n\taddress(address: string): StandardPrincipalCV | ContractPrincipalCV;\n\treadonly contractPrincipal: (\n\t\taddress: string,\n\t\tcontractName: string,\n\t) => ContractPrincipalCV;\n\treadonly standardPrincipal: (address: string) => StandardPrincipalCV;\n\treadonly buffer: (buffer: Uint8Array) => BufferCV;\n\treadonly bufferFromHex: (hex: string) => BufferCV;\n\treadonly bufferFromAscii: (ascii: string) => BufferCV;\n\treadonly bufferFromUtf8: (utf8: string) => BufferCV;\n\treadonly none: () => NoneCV;\n\treadonly some: (value: ClarityValue) => SomeCV;\n\treadonly ok: (value: ClarityValue) => ResponseOkCV;\n\treadonly error: (value: ClarityValue) => ResponseErrorCV;\n\treadonly list: (values: ClarityValue[]) => ListCV;\n\treadonly tuple: (data: TupleData) => TupleCV;\n\treadonly stringAscii: (value: string) => StringAsciiCV;\n\treadonly stringUtf8: (value: string) => StringUtf8CV;\n\tserialize(value: ClarityValue): string;\n\treadonly deserialize: (bytes: Uint8Array) => ClarityValue;\n} = {\n\tint: intCV,\n\tuint: uintCV,\n\tbool: boolCV,\n\tprincipal(address: string): StandardPrincipalCV | ContractPrincipalCV {\n\t\tconst parsed = parsePrincipal(address);\n\t\tif (!parsed) throw new Error(`Invalid principal: ${address}`);\n\t\treturn parsed.contractName\n\t\t\t? contractPrincipalCV(parsed.address, parsed.contractName)\n\t\t\t: standardPrincipalCV(parsed.address);\n\t},\n\taddress(address: string): StandardPrincipalCV | ContractPrincipalCV {\n\t\treturn Cl.principal(address);\n\t},\n\tcontractPrincipal: contractPrincipalCV,\n\tstandardPrincipal: standardPrincipalCV,\n\tbuffer: bufferCV,\n\tbufferFromHex: (hex: string): BufferCV => bufferCV(hexToBytes(hex)),\n\tbufferFromAscii: (ascii: string): BufferCV => bufferCV(asciiToBytes(ascii)),\n\tbufferFromUtf8: (utf8: string): BufferCV => bufferCV(utf8ToBytes(utf8)),\n\tnone: noneCV,\n\tsome: someCV,\n\tok: responseOkCV,\n\terror: responseErrorCV,\n\tlist: listCV,\n\ttuple: tupleCV,\n\tstringAscii: stringAsciiCV,\n\tstringUtf8: stringUtf8CV,\n\tserialize(value: ClarityValue): string {\n\t\treturn bytesToHex(serializeCVBytes(value));\n\t},\n\tdeserialize: deserializeCVBytes,\n} as const;\n",
12
13
  "import {\n\tisAbiBuffer,\n\tisAbiList,\n\tisAbiOptional,\n\tisAbiResponse,\n\tisAbiStringAscii,\n\tisAbiStringUtf8,\n\tisAbiTuple,\n} from \"./abi/guards.ts\";\nimport type { AbiToTS } from \"./abi/mappings.ts\";\nimport type { AbiType } from \"./abi/types.ts\";\nimport { toCamelCase } from \"./abi/utils.ts\";\nimport type { ClarityValue } from \"./types.ts\";\nimport {\n\tboolCV,\n\tbufferCV,\n\tintCV,\n\tlistCV,\n\tnoneCV,\n\tresponseErrorCV,\n\tresponseOkCV,\n\tsomeCV,\n\tstringAsciiCV,\n\tstringUtf8CV,\n\ttupleCV,\n\tuintCV,\n} from \"./values.ts\";\nimport { Cl } from \"./values.ts\";\n\n/** CV type tags — mirrors the discriminants of `ClarityValue`. */\nconst CV_TYPE_TAGS = new Set([\n\t\"int\",\n\t\"uint\",\n\t\"true\",\n\t\"false\",\n\t\"address\",\n\t\"contract\",\n\t\"ascii\",\n\t\"utf8\",\n\t\"buffer\",\n\t\"list\",\n\t\"tuple\",\n\t\"none\",\n\t\"some\",\n\t\"ok\",\n\t\"err\",\n]);\n\n/**\n * Duck-type check: is `value` already a built ClarityValue? Tag-only CVs\n * (`true`/`false`/`none`) have no payload; every other tag carries `value`.\n */\nexport function isClarityValue(value: unknown): value is ClarityValue {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst type = (value as { type?: unknown }).type;\n\tif (typeof type !== \"string\" || !CV_TYPE_TAGS.has(type)) return false;\n\tif (type === \"true\" || type === \"false\" || type === \"none\") return true;\n\treturn \"value\" in value;\n}\n\nconst HEX_PAIRS_REGEX = /^(?:[0-9a-fA-F]{2})+$/;\n\n/**\n * Coerce a flexible buffer input to a BufferCV. Accepts `Uint8Array`, a\n * pre-built `BufferCV`, a tagged `{ type: 'ascii' | 'utf8' | 'hex', value }`\n * object, or a bare string (even-length hex — optionally 0x-prefixed — is\n * decoded as hex; anything else is UTF-8 encoded).\n */\nfunction coerceBuffer(value: unknown): ClarityValue {\n\tif (value instanceof Uint8Array) return bufferCV(value);\n\tif (typeof value === \"object\" && value !== null && \"type\" in value) {\n\t\tconst tagged = value as { type: string; value?: unknown };\n\t\tif (tagged.type === \"buffer\" && isClarityValue(value)) return value;\n\t\tif (typeof tagged.value === \"string\") {\n\t\t\tif (tagged.type === \"ascii\") return Cl.bufferFromAscii(tagged.value);\n\t\t\tif (tagged.type === \"utf8\") return Cl.bufferFromUtf8(tagged.value);\n\t\t\tif (tagged.type === \"hex\") return Cl.bufferFromHex(tagged.value);\n\t\t}\n\t\tthrow new Error(`Unsupported buffer input: ${JSON.stringify(value)}`);\n\t}\n\tif (typeof value === \"string\") {\n\t\tconst hex = value.startsWith(\"0x\") ? value.slice(2) : value;\n\t\tif (HEX_PAIRS_REGEX.test(hex)) return Cl.bufferFromHex(hex);\n\t\treturn Cl.bufferFromUtf8(value);\n\t}\n\tthrow new Error(\n\t\t\"buffer arg expects Uint8Array, hex string, { type, value }, or BufferCV\",\n\t);\n}\n\n/**\n * Convert a JS value to a ClarityValue using ABI type information.\n *\n * Pre-built ClarityValues pass through unchanged (escape hatch for callers\n * that already hold a CV). Buffer args additionally accept hex strings and\n * tagged `{ type, value }` objects — matching the generated-client input\n * contract.\n */\nexport function jsToClarityValue(\n\tabiType: AbiType,\n\tvalue: unknown,\n): ClarityValue {\n\t// Buffers first: the tagged `{ type: 'ascii', value }` input form is\n\t// shape-identical to StringAsciiCV, so buffer coercion wins for buff args.\n\tif (isAbiBuffer(abiType)) return coerceBuffer(value);\n\n\tif (isClarityValue(value)) return value;\n\n\tif (abiType === \"uint128\") return uintCV(value as bigint | number);\n\tif (abiType === \"int128\") return intCV(value as bigint | number);\n\tif (abiType === \"bool\") return boolCV(value as boolean);\n\tif (abiType === \"principal\" || abiType === \"trait_reference\")\n\t\treturn Cl.principal(value as string);\n\n\tif (isAbiStringAscii(abiType)) return stringAsciiCV(value as string);\n\tif (isAbiStringUtf8(abiType)) return stringUtf8CV(value as string);\n\n\tif (isAbiList(abiType)) {\n\t\tconst arr = value as unknown[];\n\t\treturn listCV(arr.map((item) => jsToClarityValue(abiType.list.type, item)));\n\t}\n\n\tif (isAbiTuple(abiType)) {\n\t\tconst obj = value as Record<string, unknown>;\n\t\tconst data: Record<string, ClarityValue> = {};\n\t\tfor (const field of abiType.tuple) {\n\t\t\tconst camelKey = toCamelCase(field.name);\n\t\t\tconst hasOriginal = field.name in obj;\n\t\t\tconst hasCamel = camelKey in obj;\n\t\t\tconst fieldValue = hasOriginal\n\t\t\t\t? obj[field.name]\n\t\t\t\t: hasCamel\n\t\t\t\t\t? obj[camelKey]\n\t\t\t\t\t: undefined;\n\t\t\tif (fieldValue === undefined && !isAbiOptional(field.type)) {\n\t\t\t\tthrow new Error(`Missing tuple field: ${field.name}`);\n\t\t\t}\n\t\t\tdata[field.name] = jsToClarityValue(field.type, fieldValue);\n\t\t}\n\t\treturn tupleCV(data);\n\t}\n\n\tif (isAbiOptional(abiType)) {\n\t\tif (value === null || value === undefined) return noneCV();\n\t\treturn someCV(jsToClarityValue(abiType.optional, value));\n\t}\n\n\tif (isAbiResponse(abiType)) {\n\t\tconst obj = value as Record<string, unknown>;\n\t\tif (\"ok\" in obj && !(\"err\" in obj))\n\t\t\treturn responseOkCV(jsToClarityValue(abiType.response.ok, obj.ok));\n\t\tif (\"err\" in obj && !(\"ok\" in obj))\n\t\t\treturn responseErrorCV(jsToClarityValue(abiType.response.error, obj.err));\n\t\tthrow new Error(\"Response must have exactly 'ok' or 'err' property\");\n\t}\n\n\tthrow new Error(`Unknown ABI type: ${JSON.stringify(abiType)}`);\n}\n\n/**\n * Convert a ClarityValue back to a typed JS value using ABI type information.\n */\nexport function clarityValueToJS<T extends AbiType>(\n\tabiType: T,\n\tcv: ClarityValue,\n): AbiToTS<T> {\n\treturn clarityValueToJSInner(abiType, cv) as AbiToTS<T>;\n}\n\n/** Non-generic version for internal use — avoids deep type instantiation. */\nexport function clarityValueToJSUntyped(\n\tabiType: AbiType,\n\tcv: ClarityValue,\n): unknown {\n\treturn clarityValueToJSInner(abiType, cv);\n}\n\nfunction clarityValueToJSInner(abiType: AbiType, cv: ClarityValue): unknown {\n\tif (abiType === \"uint128\" || abiType === \"int128\") {\n\t\tif (cv.type !== \"int\" && cv.type !== \"uint\")\n\t\t\tthrow new Error(`Expected int/uint CV, got ${cv.type}`);\n\t\treturn cv.value;\n\t}\n\n\tif (abiType === \"bool\") {\n\t\tif (cv.type === \"true\") return true;\n\t\tif (cv.type === \"false\") return false;\n\t\tthrow new Error(`Expected bool CV, got ${cv.type}`);\n\t}\n\n\tif (abiType === \"principal\" || abiType === \"trait_reference\") {\n\t\tif (cv.type !== \"address\" && cv.type !== \"contract\")\n\t\t\tthrow new Error(`Expected principal CV, got ${cv.type}`);\n\t\treturn cv.value;\n\t}\n\n\tif (isAbiStringAscii(abiType) || isAbiStringUtf8(abiType)) {\n\t\tif (cv.type !== \"ascii\" && cv.type !== \"utf8\")\n\t\t\tthrow new Error(`Expected string CV, got ${cv.type}`);\n\t\treturn cv.value;\n\t}\n\n\tif (isAbiBuffer(abiType)) {\n\t\tif (cv.type !== \"buffer\")\n\t\t\tthrow new Error(`Expected buffer CV, got ${cv.type}`);\n\t\t// BufferCV stores hex string; convert back to Uint8Array\n\t\tconst hex = cv.value;\n\t\tconst bytes = new Uint8Array(hex.length / 2);\n\t\tfor (let i = 0; i < bytes.length; i++) {\n\t\t\tbytes[i] = Number.parseInt(hex.substring(i * 2, i * 2 + 2), 16);\n\t\t}\n\t\treturn bytes;\n\t}\n\n\tif (isAbiList(abiType)) {\n\t\tif (cv.type !== \"list\") throw new Error(`Expected list CV, got ${cv.type}`);\n\t\treturn cv.value.map((item) =>\n\t\t\tclarityValueToJSInner(abiType.list.type, item),\n\t\t);\n\t}\n\n\tif (isAbiTuple(abiType)) {\n\t\tif (cv.type !== \"tuple\")\n\t\t\tthrow new Error(`Expected tuple CV, got ${cv.type}`);\n\t\tconst result: Record<string, unknown> = {};\n\t\tfor (const field of abiType.tuple) {\n\t\t\tconst fieldCV = cv.value[field.name];\n\t\t\tif (!fieldCV) throw new Error(`Missing tuple field in CV: ${field.name}`);\n\t\t\tconst camelKey = toCamelCase(field.name);\n\t\t\tresult[camelKey] = clarityValueToJSInner(field.type, fieldCV);\n\t\t}\n\t\treturn result;\n\t}\n\n\tif (isAbiOptional(abiType)) {\n\t\tif (cv.type === \"none\") return null;\n\t\tif (cv.type === \"some\")\n\t\t\treturn clarityValueToJSInner(abiType.optional, cv.value);\n\t\tthrow new Error(`Expected optional CV, got ${cv.type}`);\n\t}\n\n\tif (isAbiResponse(abiType)) {\n\t\tif (cv.type === \"ok\")\n\t\t\treturn { ok: clarityValueToJSInner(abiType.response.ok, cv.value) };\n\t\tif (cv.type === \"err\")\n\t\t\treturn { err: clarityValueToJSInner(abiType.response.error, cv.value) };\n\t\tthrow new Error(`Expected response CV, got ${cv.type}`);\n\t}\n\n\tthrow new Error(`Unknown ABI type: ${JSON.stringify(abiType)}`);\n}\n",
13
- "export class BaseError extends Error {\n\toverride name = \"StacksError\";\n\tshortMessage: string;\n\tdetails?: string;\n\n\tconstructor(\n\t\tshortMessage: string,\n\t\toptions?: { cause?: Error; details?: string },\n\t) {\n\t\tconst message = [\n\t\t\tshortMessage,\n\t\t\toptions?.details ? `\\n${options.details}` : \"\",\n\t\t].join(\"\");\n\n\t\tsuper(message, { cause: options?.cause });\n\t\tthis.shortMessage = shortMessage;\n\t\tthis.details = options?.details;\n\t}\n\n\ttoJSON(): {\n\t\tname: string;\n\t\tmessage: string;\n\t\tshortMessage: string;\n\t\tdetails: string | undefined;\n\t\tcause: string | undefined;\n\t} {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tmessage: this.message,\n\t\t\tshortMessage: this.shortMessage,\n\t\t\tdetails: this.details,\n\t\t\tcause: this.cause instanceof Error ? this.cause.message : undefined,\n\t\t};\n\t}\n}\n",
14
- "import { BaseError } from \"../errors/base.ts\";\n\nexport class ConnectError extends BaseError {\n\toverride name = \"ConnectError\";\n}\n\nexport enum JsonRpcErrorCode {\n\tParseError = -32700,\n\tInvalidRequest = -32600,\n\tMethodNotFound = -32601,\n\tInvalidParams = -32602,\n\tInternalError = -32603,\n\tUserRejection = -31001,\n}\n\nexport class JsonRpcError extends ConnectError {\n\toverride name = \"JsonRpcError\";\n\tcode: number;\n\tdata?: unknown;\n\n\tconstructor(\n\t\tmessage: string,\n\t\tcode: number,\n\t\toptions?: { data?: unknown; cause?: Error },\n\t) {\n\t\tconst details =\n\t\t\toptions?.data !== undefined\n\t\t\t\t? typeof options.data === \"string\"\n\t\t\t\t\t? options.data\n\t\t\t\t\t: JSON.stringify(options.data)\n\t\t\t\t: undefined;\n\t\tsuper(message, { cause: options?.cause, details });\n\t\tthis.code = code;\n\t\tthis.data = options?.data;\n\t}\n}\n",
14
+ "import { BaseError } from \"../errors/base.ts\";\n\nexport class ConnectError extends BaseError {\n\toverride name = \"ConnectError\";\n}\n\nexport enum JsonRpcErrorCode {\n\tParseError = -32700,\n\tInvalidRequest = -32600,\n\tMethodNotFound = -32601,\n\tInvalidParams = -32602,\n\tInternalError = -32603,\n\tUserRejection = -31001,\n}\n\n/**\n * A wallet's JSON-RPC error. `rpcCode` is the wallet's numeric code (see\n * {@link JsonRpcErrorCode}); `code` is the package-wide string identifier\n * every `BaseError` carries.\n */\nexport class JsonRpcError extends ConnectError {\n\toverride name = \"JsonRpcError\";\n\trpcCode: number;\n\tdata?: unknown;\n\n\tconstructor(\n\t\tmessage: string,\n\t\tcode: number,\n\t\toptions?: { data?: unknown; cause?: Error },\n\t) {\n\t\tconst details =\n\t\t\toptions?.data !== undefined\n\t\t\t\t? typeof options.data === \"string\"\n\t\t\t\t\t? options.data\n\t\t\t\t\t: JSON.stringify(options.data)\n\t\t\t\t: undefined;\n\t\tsuper(message, { cause: options?.cause, details });\n\t\tthis.rpcCode = code;\n\t\tthis.data = options?.data;\n\t}\n}\n",
15
15
  "import { ConnectError } from \"./errors.ts\";\nimport type { WalletProvider } from \"./types.ts\";\n\ndeclare const window:\n\t| {\n\t\t\tStacksProvider?: WalletProvider;\n\t\t\tLeatherProvider?: WalletProvider;\n\t\t\tXverseProvider?: WalletProvider;\n\t\t\tHiroWalletProvider?: WalletProvider;\n\t }\n\t| undefined;\n\nlet customProvider: WalletProvider | null = null;\n\n/** Set a custom provider (e.g. WalletConnectProvider). Pass null to clear. */\nexport function setProvider(provider: WalletProvider | null): void {\n\tcustomProvider = provider;\n}\n\nexport function getProvider(): WalletProvider {\n\tif (customProvider) return customProvider;\n\n\tif (typeof window === \"undefined\") {\n\t\tthrow new ConnectError(\"No Stacks wallet found\");\n\t}\n\n\tconst provider =\n\t\twindow.StacksProvider ??\n\t\twindow.LeatherProvider ??\n\t\twindow.XverseProvider ??\n\t\twindow.HiroWalletProvider;\n\n\tif (!provider) throw new ConnectError(\"No Stacks wallet found\");\n\treturn provider;\n}\n\nexport function isWalletInstalled(): boolean {\n\treturn (\n\t\ttypeof window !== \"undefined\" &&\n\t\t!!(\n\t\t\twindow.StacksProvider ||\n\t\t\twindow.LeatherProvider ||\n\t\t\twindow.XverseProvider ||\n\t\t\twindow.HiroWalletProvider\n\t\t)\n\t);\n}\n",
16
16
  "import type { AddressEntry } from \"./types.ts\";\n\nconst STORAGE_KEY = \"@secondlayer/connect\";\n\nexport interface StorageData {\n\taddresses: {\n\t\tstx: AddressEntry[];\n\t\tbtc: AddressEntry[];\n\t};\n\tversion: string;\n\tupdatedAt: number;\n}\n\nfunction toHex(str: string): string {\n\treturn Array.from(new TextEncoder().encode(str))\n\t\t.map((b) => b.toString(16).padStart(2, \"0\"))\n\t\t.join(\"\");\n}\n\nfunction fromHex(hex: string): string {\n\tconst bytes = new Uint8Array(\n\t\thex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) ?? [],\n\t);\n\treturn new TextDecoder().decode(bytes);\n}\n\ninterface SimpleStorage {\n\tgetItem(key: string): string | null;\n\tsetItem(key: string, value: string): void;\n\tremoveItem(key: string): void;\n}\n\ndeclare const localStorage: SimpleStorage | undefined;\n\nfunction getLocalStorage(): SimpleStorage | undefined {\n\treturn typeof localStorage !== \"undefined\" ? localStorage : undefined;\n}\n\nexport function getStorageData(): StorageData | null {\n\ttry {\n\t\tconst raw = getLocalStorage()?.getItem(STORAGE_KEY);\n\t\tif (!raw) return null;\n\t\treturn JSON.parse(fromHex(raw)) as StorageData;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nexport function setStorageData(data: StorageData): void {\n\tconst encoded = toHex(JSON.stringify(data));\n\tgetLocalStorage()?.setItem(STORAGE_KEY, encoded);\n}\n\nexport function clearStorage(): void {\n\tgetLocalStorage()?.removeItem(STORAGE_KEY);\n}\n\nexport function cacheAddresses(addresses: AddressEntry[]): void {\n\tconst stx = addresses.filter(\n\t\t(a) => a.address.startsWith(\"SP\") || a.address.startsWith(\"ST\"),\n\t);\n\tconst btc = addresses.filter(\n\t\t(a) => !a.address.startsWith(\"SP\") && !a.address.startsWith(\"ST\"),\n\t);\n\n\tsetStorageData({\n\t\taddresses: { stx, btc },\n\t\tversion: \"0.0.1\",\n\t\tupdatedAt: Date.now(),\n\t});\n}\n",
17
17
  "import { isClarityValue } from \"../clarity/bridge.ts\";\nimport { serializeCVBytes } from \"../clarity/serialize.ts\";\nimport { bytesToHex } from \"../utils/encoding.ts\";\nimport { ConnectError, JsonRpcError } from \"./errors.ts\";\nimport { getProvider } from \"./provider.ts\";\nimport { cacheAddresses } from \"./storage.ts\";\nimport type { MethodParams, MethodResult, Methods } from \"./types.ts\";\n\nconst POST_CONDITION_TYPES = new Set([\n\t\"stx-postcondition\",\n\t\"ft-postcondition\",\n\t\"nft-postcondition\",\n]);\n\nfunction serializeParams(value: unknown): unknown {\n\tif (value === null || value === undefined) return value;\n\tif (typeof value === \"bigint\") return value.toString();\n\tif (Array.isArray(value)) return value.map(serializeParams);\n\n\tif (typeof value === \"object\") {\n\t\tif (value instanceof Uint8Array) return value;\n\n\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\tif (POST_CONDITION_TYPES.has((value as any).type)) return value;\n\n\t\tif (isClarityValue(value)) {\n\t\t\treturn bytesToHex(serializeCVBytes(value));\n\t\t}\n\n\t\tconst result: Record<string, unknown> = {};\n\t\tfor (const [k, v] of Object.entries(value)) {\n\t\t\tresult[k] = serializeParams(v);\n\t\t}\n\t\treturn result;\n\t}\n\n\treturn value;\n}\n\nconst ADDRESS_METHODS = new Set([\"getAddresses\", \"stx_getAddresses\"]);\n\nexport async function request<M extends keyof Methods>(\n\tmethod: M,\n\t...args: MethodParams<M> extends undefined ? [] : [params: MethodParams<M>]\n): Promise<MethodResult<M>> {\n\tconst provider = getProvider();\n\n\tconst params = args[0];\n\tconst serialized = params ? serializeParams(params) : undefined;\n\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\tlet result: any;\n\ttry {\n\t\tresult = await provider.request(method as string, serialized);\n\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t} catch (err: any) {\n\t\tif (err?.code !== undefined) {\n\t\t\tthrow new JsonRpcError(err.message ?? String(err), err.code, {\n\t\t\t\tdata: err.data,\n\t\t\t});\n\t\t}\n\t\tthrow new ConnectError(err?.message ?? \"Wallet request failed\", {\n\t\t\tcause: err instanceof Error ? err : undefined,\n\t\t});\n\t}\n\n\tif (ADDRESS_METHODS.has(method as string) && result?.addresses) {\n\t\tcacheAddresses(result.addresses);\n\t}\n\n\treturn result as MethodResult<M>;\n}\n",
18
18
  "import { getProvider } from \"./provider.ts\";\nimport { request } from \"./request.ts\";\nimport { clearStorage, getStorageData } from \"./storage.ts\";\nimport type { AddressesResult } from \"./types.ts\";\n\nexport async function connect(): Promise<AddressesResult> {\n\treturn request(\"getAddresses\");\n}\n\nexport function disconnect(): void {\n\tclearStorage();\n\ttry {\n\t\tgetProvider().disconnect?.();\n\t} catch {\n\t\t// provider may not exist — that's fine\n\t}\n}\n\nexport function isConnected(): boolean {\n\tconst data = getStorageData();\n\treturn (data?.addresses?.stx?.length ?? 0) > 0;\n}\n"
19
19
  ],
20
- "mappings": "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",
21
- "debugId": "790CFBA3798A2B6E64756E2164756E21",
20
+ "mappings": "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",
21
+ "debugId": "7C91CA560C754BBD64756E2164756E21",
22
22
  "names": []
23
23
  }
@@ -78,15 +78,25 @@ declare function setProvider(provider: WalletProvider | null): void;
78
78
  declare function getProvider(): WalletProvider;
79
79
  declare function isWalletInstalled(): boolean;
80
80
  declare class BaseError extends Error {
81
+ private;
81
82
  name: string;
82
83
  shortMessage: string;
83
84
  details?: string;
84
85
  constructor(shortMessage: string, options?: {
85
86
  cause?: Error
86
87
  details?: string
88
+ code?: string
87
89
  });
90
+ /**
91
+ * Stable identifier for programmatic handling; survives message
92
+ * rewording and minification. An explicit `code` option wins, else it
93
+ * is derived from `name` (`TimeoutError` gives `TIMEOUT_ERROR`).
94
+ */
95
+ get code(): string;
96
+ set code(value: string);
88
97
  toJSON(): {
89
98
  name: string
99
+ code: string
90
100
  message: string
91
101
  shortMessage: string
92
102
  details: string | undefined
@@ -104,9 +114,14 @@ declare enum JsonRpcErrorCode {
104
114
  InternalError = -32603,
105
115
  UserRejection = -31001
106
116
  }
117
+ /**
118
+ * A wallet's JSON-RPC error. `rpcCode` is the wallet's numeric code (see
119
+ * {@link JsonRpcErrorCode}); `code` is the package-wide string identifier
120
+ * every `BaseError` carries.
121
+ */
107
122
  declare class JsonRpcError extends ConnectError {
108
123
  name: string;
109
- code: number;
124
+ rpcCode: number;
110
125
  data?: unknown;
111
126
  constructor(message: string, code: number, options?: {
112
127
  data?: unknown
@@ -78,15 +78,25 @@ declare function setProvider(provider: WalletProvider | null): void;
78
78
  declare function getProvider(): WalletProvider;
79
79
  declare function isWalletInstalled(): boolean;
80
80
  declare class BaseError extends Error {
81
+ private;
81
82
  name: string;
82
83
  shortMessage: string;
83
84
  details?: string;
84
85
  constructor(shortMessage: string, options?: {
85
86
  cause?: Error
86
87
  details?: string
88
+ code?: string
87
89
  });
90
+ /**
91
+ * Stable identifier for programmatic handling; survives message
92
+ * rewording and minification. An explicit `code` option wins, else it
93
+ * is derived from `name` (`TimeoutError` gives `TIMEOUT_ERROR`).
94
+ */
95
+ get code(): string;
96
+ set code(value: string);
88
97
  toJSON(): {
89
98
  name: string
99
+ code: string
90
100
  message: string
91
101
  shortMessage: string
92
102
  details: string | undefined
@@ -104,9 +114,14 @@ declare enum JsonRpcErrorCode {
104
114
  InternalError = -32603,
105
115
  UserRejection = -31001
106
116
  }
117
+ /**
118
+ * A wallet's JSON-RPC error. `rpcCode` is the wallet's numeric code (see
119
+ * {@link JsonRpcErrorCode}); `code` is the package-wide string identifier
120
+ * every `BaseError` carries.
121
+ */
107
122
  declare class JsonRpcError extends ConnectError {
108
123
  name: string;
109
- code: number;
124
+ rpcCode: number;
110
125
  data?: unknown;
111
126
  constructor(message: string, code: number, options?: {
112
127
  data?: unknown
@@ -163,6 +163,46 @@ var MIN_I128 = -(1n << 127n);
163
163
  import { ripemd160 } from "@noble/hashes/legacy.js";
164
164
  import { sha256 as sha2562 } from "@noble/hashes/sha2.js";
165
165
  import { sha512_256 } from "@noble/hashes/sha2.js";
166
+ // src/errors/base.ts
167
+ function codeFromName(name) {
168
+ return name.replace(/([a-z0-9])([A-Z])/g, "$1_$2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").toUpperCase();
169
+ }
170
+
171
+ class BaseError extends Error {
172
+ name = "StacksError";
173
+ #code;
174
+ shortMessage;
175
+ details;
176
+ constructor(shortMessage, options) {
177
+ const message = [
178
+ shortMessage,
179
+ options?.details ? `
180
+ ${options.details}` : ""
181
+ ].join("");
182
+ super(message, { cause: options?.cause });
183
+ if (options?.code !== undefined)
184
+ this.#code = options.code;
185
+ this.shortMessage = shortMessage;
186
+ this.details = options?.details;
187
+ }
188
+ get code() {
189
+ return this.#code ?? codeFromName(this.name);
190
+ }
191
+ set code(value) {
192
+ this.#code = value;
193
+ }
194
+ toJSON() {
195
+ return {
196
+ name: this.name,
197
+ code: this.code,
198
+ message: this.message,
199
+ shortMessage: this.shortMessage,
200
+ details: this.details,
201
+ cause: this.cause instanceof Error ? this.cause.message : undefined
202
+ };
203
+ }
204
+ }
205
+
166
206
  // src/clarity/types.ts
167
207
  var ClarityWireType = {
168
208
  int: 0,
@@ -241,7 +281,7 @@ function serializeCVBytes(value) {
241
281
  return withTypeId(value.type, concatBytes(...parts));
242
282
  }
243
283
  case "tuple": {
244
- const keys = Object.keys(value.value).sort((a, b) => a.localeCompare(b));
284
+ const keys = Object.keys(value.value).sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
245
285
  const parts = [writeUInt32BE(keys.length)];
246
286
  for (const key of keys) {
247
287
  parts.push(serializeLPString(key));
@@ -296,32 +336,6 @@ function isClarityValue(value) {
296
336
  return "value" in value;
297
337
  }
298
338
 
299
- // src/errors/base.ts
300
- class BaseError extends Error {
301
- name = "StacksError";
302
- shortMessage;
303
- details;
304
- constructor(shortMessage, options) {
305
- const message = [
306
- shortMessage,
307
- options?.details ? `
308
- ${options.details}` : ""
309
- ].join("");
310
- super(message, { cause: options?.cause });
311
- this.shortMessage = shortMessage;
312
- this.details = options?.details;
313
- }
314
- toJSON() {
315
- return {
316
- name: this.name,
317
- message: this.message,
318
- shortMessage: this.shortMessage,
319
- details: this.details,
320
- cause: this.cause instanceof Error ? this.cause.message : undefined
321
- };
322
- }
323
- }
324
-
325
339
  // src/connect/errors.ts
326
340
  class ConnectError extends BaseError {
327
341
  name = "ConnectError";
@@ -338,12 +352,12 @@ var JsonRpcErrorCode;
338
352
 
339
353
  class JsonRpcError extends ConnectError {
340
354
  name = "JsonRpcError";
341
- code;
355
+ rpcCode;
342
356
  data;
343
357
  constructor(message, code, options) {
344
358
  const details = options?.data !== undefined ? typeof options.data === "string" ? options.data : JSON.stringify(options.data) : undefined;
345
359
  super(message, { cause: options?.cause, details });
346
- this.code = code;
360
+ this.rpcCode = code;
347
361
  this.data = options?.data;
348
362
  }
349
363
  }
@@ -486,5 +500,5 @@ export {
486
500
  ConnectError
487
501
  };
488
502
 
489
- //# debugId=1FEC13FDD98740D664756E2164756E21
503
+ //# debugId=B32B9CEEDFFF9C9864756E2164756E21
490
504
  //# sourceMappingURL=index.js.map