@secondlayer/stacks 1.0.1 → 2.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 (95) hide show
  1. package/dist/shared/{stacks-0nfexv24.cjs → stacks-0jk7vd8r.cjs} +9 -8
  2. package/dist/shared/{stacks-0nfexv24.cjs.map → stacks-0jk7vd8r.cjs.map} +5 -5
  3. package/dist/shared/{stacks-wjem3xw9.js → stacks-0zysn74p.js} +11 -10
  4. package/dist/shared/{stacks-wjem3xw9.js.map → stacks-0zysn74p.js.map} +5 -5
  5. package/dist/shared/stacks-14pgpkrr.cjs.map +6 -6
  6. package/dist/shared/{stacks-s7z5q8be.js → stacks-2h8d2y27.js} +29 -28
  7. package/dist/shared/stacks-2h8d2y27.js.map +11 -0
  8. package/dist/shared/{stacks-96d6m1zy.js → stacks-3erxq8wh.js} +6 -6
  9. package/dist/shared/{stacks-96d6m1zy.js.map → stacks-3erxq8wh.js.map} +4 -4
  10. package/dist/shared/{stacks-ra02bpny.cjs → stacks-3y058qda.cjs} +29 -28
  11. package/dist/shared/stacks-3y058qda.cjs.map +11 -0
  12. package/dist/shared/{stacks-s10yb9gz.js → stacks-6xmk24yw.js} +2 -2
  13. package/dist/shared/{stacks-70p84bgg.js → stacks-7tn3zsbe.js} +3 -3
  14. package/dist/shared/stacks-7tn3zsbe.js.map +10 -0
  15. package/dist/shared/{stacks-y5262j0z.cjs → stacks-8e4k5qnm.cjs} +4 -4
  16. package/dist/shared/{stacks-y5262j0z.cjs.map → stacks-8e4k5qnm.cjs.map} +4 -4
  17. package/dist/shared/{stacks-5tprhns9.cjs → stacks-dpxnxhqb.cjs} +2 -5
  18. package/dist/shared/{stacks-5tprhns9.cjs.map → stacks-dpxnxhqb.cjs.map} +3 -3
  19. package/dist/shared/{stacks-4x2bcc2k.js → stacks-fy5h5qyx.js} +7 -7
  20. package/dist/shared/{stacks-4x2bcc2k.js.map → stacks-fy5h5qyx.js.map} +6 -6
  21. package/dist/shared/{stacks-zf7rbpzp.js → stacks-g7ffp8aj.js} +3 -3
  22. package/dist/shared/{stacks-zf7rbpzp.js.map → stacks-g7ffp8aj.js.map} +2 -2
  23. package/dist/shared/{stacks-1s5w4ncf.js → stacks-g7ys594x.js} +7 -7
  24. package/dist/shared/{stacks-1s5w4ncf.js.map → stacks-g7ys594x.js.map} +4 -4
  25. package/dist/shared/{stacks-09wa7ewe.js → stacks-kmnthgj7.js} +12 -12
  26. package/dist/shared/stacks-kmnthgj7.js.map +15 -0
  27. package/dist/shared/{stacks-je937aas.js → stacks-kmshch4q.js} +3 -3
  28. package/dist/shared/{stacks-y3dh7hv1.js → stacks-tjjnkt3r.js} +2 -5
  29. package/dist/shared/{stacks-y3dh7hv1.js.map → stacks-tjjnkt3r.js.map} +3 -3
  30. package/dist/shared/stacks-vdfag81a.cjs.map +2 -2
  31. package/dist/shared/stacks-wyxj879g.cjs.map +2 -2
  32. package/dist/shared/{stacks-rwfgts3s.js → stacks-xxn5ma6g.js} +2 -2
  33. package/dist/shared/{stacks-17sdtaxg.cjs → stacks-xxvz1x0f.cjs} +8 -8
  34. package/dist/shared/stacks-xxvz1x0f.cjs.map +15 -0
  35. package/dist/shared/{stacks-s30kkvm8.js → stacks-y2p4h5ks.js} +4 -4
  36. package/dist/shared/{stacks-znrb59ce.cjs → stacks-y3nbm8bw.cjs} +3 -3
  37. package/dist/shared/{stacks-znrb59ce.cjs.map → stacks-y3nbm8bw.cjs.map} +4 -4
  38. package/dist/src/accounts/index.cjs +3 -2
  39. package/dist/src/accounts/index.cjs.map +3 -3
  40. package/dist/src/accounts/index.js +5 -4
  41. package/dist/src/accounts/index.js.map +3 -3
  42. package/dist/src/actions/index.js +11 -11
  43. package/dist/src/bns/index.cjs +2 -4
  44. package/dist/src/bns/index.cjs.map +4 -4
  45. package/dist/src/bns/index.js +12 -14
  46. package/dist/src/bns/index.js.map +4 -4
  47. package/dist/src/clarity/index.js +5 -5
  48. package/dist/src/connect/index.cjs +17 -17
  49. package/dist/src/connect/index.cjs.map +7 -7
  50. package/dist/src/connect/index.js +17 -17
  51. package/dist/src/connect/index.js.map +7 -7
  52. package/dist/src/connect/walletconnect/index.cjs +16 -13
  53. package/dist/src/connect/walletconnect/index.cjs.map +9 -9
  54. package/dist/src/connect/walletconnect/index.js +16 -13
  55. package/dist/src/connect/walletconnect/index.js.map +9 -9
  56. package/dist/src/index.cjs +4 -4
  57. package/dist/src/index.cjs.map +8 -8
  58. package/dist/src/index.d.cts +0 -4
  59. package/dist/src/index.d.ts +0 -4
  60. package/dist/src/index.js +13 -13
  61. package/dist/src/index.js.map +8 -8
  62. package/dist/src/postconditions/index.js +3 -3
  63. package/dist/src/pox/index.cjs +2 -2
  64. package/dist/src/pox/index.cjs.map +3 -3
  65. package/dist/src/pox/index.js +11 -11
  66. package/dist/src/pox/index.js.map +3 -3
  67. package/dist/src/stackingdao/index.cjs +7 -7
  68. package/dist/src/stackingdao/index.cjs.map +3 -3
  69. package/dist/src/stackingdao/index.js +16 -16
  70. package/dist/src/stackingdao/index.js.map +3 -3
  71. package/dist/src/subscriptions/index.js +1 -1
  72. package/dist/src/tools/btc/index.cjs.map +2 -2
  73. package/dist/src/tools/btc/index.js.map +2 -2
  74. package/dist/src/tools/index.cjs +42 -43
  75. package/dist/src/tools/index.cjs.map +23 -23
  76. package/dist/src/tools/index.js +42 -43
  77. package/dist/src/tools/index.js.map +23 -23
  78. package/dist/src/transactions/index.js +6 -6
  79. package/dist/src/utils/index.js +3 -3
  80. package/package.json +1 -7
  81. package/dist/shared/stacks-09wa7ewe.js.map +0 -15
  82. package/dist/shared/stacks-17sdtaxg.cjs.map +0 -15
  83. package/dist/shared/stacks-70p84bgg.js.map +0 -10
  84. package/dist/shared/stacks-ra02bpny.cjs.map +0 -11
  85. package/dist/shared/stacks-s7z5q8be.js.map +0 -11
  86. package/dist/src/triggers/index.cjs +0 -66
  87. package/dist/src/triggers/index.cjs.map +0 -10
  88. package/dist/src/triggers/index.d.cts +0 -120
  89. package/dist/src/triggers/index.d.ts +0 -120
  90. package/dist/src/triggers/index.js +0 -25
  91. package/dist/src/triggers/index.js.map +0 -10
  92. /package/dist/shared/{stacks-s10yb9gz.js.map → stacks-6xmk24yw.js.map} +0 -0
  93. /package/dist/shared/{stacks-je937aas.js.map → stacks-kmshch4q.js.map} +0 -0
  94. /package/dist/shared/{stacks-rwfgts3s.js.map → stacks-xxn5ma6g.js.map} +0 -0
  95. /package/dist/shared/{stacks-s30kkvm8.js.map → stacks-y2p4h5ks.js.map} +0 -0
@@ -2,18 +2,18 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/c32.ts", "../../../src/utils/encoding.ts", "../../../src/clarity/types.ts", "../../../src/clarity/serialize.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"],
4
4
  "sourcesContent": [
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\tif (inputHex.length % 2 !== 0) inputHex = `0${inputHex}`;\n\tinputHex = inputHex.toLowerCase();\n\n\tconst res: string[] = [];\n\tlet carry = 0;\n\tfor (let i = inputHex.length - 1; i >= 0; i--) {\n\t\tif (carry < 4) {\n\t\t\tconst currentCode = HEX.indexOf(inputHex[i]!) >> carry;\n\t\t\tconst nextCode = i !== 0 ? HEX.indexOf(inputHex[i - 1]!) : 0;\n\t\t\tconst nextBits = 1 + carry;\n\t\t\tconst nextLowBits = (nextCode % (1 << nextBits)) << (5 - nextBits);\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(inputHex);\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\tc32input = c32normalize(c32input);\n\tif (!c32input.match(`^[${C32}]*$`))\n\t\tthrow new Error(\"Not a c32-encoded string\");\n\n\tconst zeroPrefix = c32input.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 = c32input.length - 1; i >= 0; i--) {\n\t\tif (carryBits === 4) {\n\t\t\tres.unshift(HEX[carry]!);\n\t\t\tcarryBits = 0;\n\t\t\tcarry = 0;\n\t\t}\n\t\tconst currentValue = (C32.indexOf(c32input[i]!) << carryBits) + carry;\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\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\tdata = data.toLowerCase();\n\tif (data.length % 2 !== 0) data = `0${data}`;\n\n\tlet versionHex = version.toString(16);\n\tif (versionHex.length === 1) versionHex = `0${versionHex}`;\n\n\tconst checksumHex = c32checksum(`${versionHex}${data}`);\n\treturn `${C32[version]}${c32encode(`${data}${checksumHex}`)}`;\n}\n\nfunction c32checkDecode(c32data: string): [number, string] {\n\tc32data = c32normalize(c32data);\n\tconst dataHex = c32decode(c32data.slice(1));\n\tconst version = C32.indexOf(c32data[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
- "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\thex = without0x(hex);\n\tif (hex.length % 2) hex = `0${hex}`;\n\n\tconst array = new Uint8Array(hex.length / 2);\n\tfor (let i = 0; i < array.length; i++) {\n\t\tconst j = i * 2;\n\t\tconst byte = Number.parseInt(hex.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\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((bytes[offset]! << 24) |\n\t\t\t(bytes[offset + 1]! << 16) |\n\t\t\t(bytes[offset + 2]! << 8) |\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\treturn ((bytes[offset]! << 8) | bytes[offset + 1]!) >>> 0;\n}\n\nexport function writeUInt8(value: number): Uint8Array {\n\treturn new Uint8Array([value & 0xff]);\n}\n",
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
+ "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
  "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",
8
- "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\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",
8
+ "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",
9
9
  "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",
10
10
  "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",
11
11
  "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",
12
- "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",
13
- "import { 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 isClarityValue(obj: unknown): obj is { type: string } {\n\treturn (\n\t\ttypeof obj === \"object\" &&\n\t\tobj !== null &&\n\t\t\"type\" in obj &&\n\t\ttypeof (obj as any).type === \"string\" &&\n\t\t!POST_CONDITION_TYPES.has((obj as any).type)\n\t);\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\tif (POST_CONDITION_TYPES.has((value as any).type)) return value;\n\n\t\tif (isClarityValue(value)) {\n\t\t\treturn bytesToHex(serializeCVBytes(value as any));\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\tlet result: any;\n\ttry {\n\t\tresult = await provider.request(method as string, serialized);\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",
12
+ "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",
13
+ "import { 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 isClarityValue(obj: unknown): obj is { type: string } {\n\treturn (\n\t\ttypeof obj === \"object\" &&\n\t\tobj !== null &&\n\t\t\"type\" in obj &&\n\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\ttypeof (obj as any).type === \"string\" &&\n\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t!POST_CONDITION_TYPES.has((obj as any).type)\n\t);\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\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\treturn bytesToHex(serializeCVBytes(value as any));\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",
14
14
  "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"
15
15
  ],
16
- "mappings": "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",
17
- "debugId": "E934EB560DFB280A64756E2164756E21",
16
+ "mappings": "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",
17
+ "debugId": "9E285FBD25886B2C64756E2164756E21",
18
18
  "names": []
19
19
  }
@@ -11,13 +11,13 @@ function bytesToHex(bytes) {
11
11
  return hex;
12
12
  }
13
13
  function hexToBytes(hex) {
14
- hex = without0x(hex);
15
- if (hex.length % 2)
16
- hex = `0${hex}`;
17
- const array = new Uint8Array(hex.length / 2);
14
+ let h = without0x(hex);
15
+ if (h.length % 2)
16
+ h = `0${h}`;
17
+ const array = new Uint8Array(h.length / 2);
18
18
  for (let i = 0;i < array.length; i++) {
19
19
  const j = i * 2;
20
- const byte = Number.parseInt(hex.slice(j, j + 2), 16);
20
+ const byte = Number.parseInt(h.slice(j, j + 2), 16);
21
21
  if (Number.isNaN(byte) || byte < 0)
22
22
  throw new Error("Invalid byte sequence");
23
23
  array[i] = byte;
@@ -98,21 +98,21 @@ function c32normalize(input) {
98
98
  return input.toUpperCase().replace(/O/g, "0").replace(/L|I/g, "1");
99
99
  }
100
100
  function c32decode(c32input) {
101
- c32input = c32normalize(c32input);
102
- if (!c32input.match(`^[${C32}]*$`))
101
+ const input = c32normalize(c32input);
102
+ if (!input.match(`^[${C32}]*$`))
103
103
  throw new Error("Not a c32-encoded string");
104
- const zeroPrefix = c32input.match(`^${C32[0]}*`);
105
- const numLeadingZeroBytes = zeroPrefix ? zeroPrefix[0].length : 0;
104
+ const zeroPrefix = input.match(`^${C32[0]}*`);
105
+ const numLeadingZeroBytes = zeroPrefix ? zeroPrefix[0]?.length : 0;
106
106
  const res = [];
107
107
  let carry = 0;
108
108
  let carryBits = 0;
109
- for (let i = c32input.length - 1;i >= 0; i--) {
109
+ for (let i = input.length - 1;i >= 0; i--) {
110
110
  if (carryBits === 4) {
111
111
  res.unshift(HEX[carry]);
112
112
  carryBits = 0;
113
113
  carry = 0;
114
114
  }
115
- const currentValue = (C32.indexOf(c32input[i]) << carryBits) + carry;
115
+ const currentValue = (C32.indexOf(input[i]) << carryBits) + carry;
116
116
  res.unshift(HEX[currentValue % 16]);
117
117
  carryBits += 1;
118
118
  carry = currentValue >> 4;
@@ -134,9 +134,9 @@ function c32checksum(dataHex) {
134
134
  return bytesToHex(sha256(sha256(hexToBytes(dataHex))).slice(0, 4));
135
135
  }
136
136
  function c32checkDecode(c32data) {
137
- c32data = c32normalize(c32data);
138
- const dataHex = c32decode(c32data.slice(1));
139
- const version = C32.indexOf(c32data[0]);
137
+ const normalized = c32normalize(c32data);
138
+ const dataHex = c32decode(normalized.slice(1));
139
+ const version = C32.indexOf(normalized[0]);
140
140
  const checksum = dataHex.slice(-8);
141
141
  let versionHex = version.toString(16);
142
142
  if (versionHex.length === 1)
@@ -249,7 +249,7 @@ function serializeCVBytes(value) {
249
249
  return withTypeId(value.type, concatBytes(writeUInt32BE(strBytes.length), strBytes));
250
250
  }
251
251
  default:
252
- throw new Error(`Cannot serialize unknown clarity type`);
252
+ throw new Error("Cannot serialize unknown clarity type");
253
253
  }
254
254
  }
255
255
 
@@ -331,7 +331,7 @@ function toHex(str) {
331
331
  return Array.from(new TextEncoder().encode(str)).map((b) => b.toString(16).padStart(2, "0")).join("");
332
332
  }
333
333
  function fromHex(hex) {
334
- const bytes = new Uint8Array(hex.match(/.{1,2}/g).map((byte) => Number.parseInt(byte, 16)));
334
+ const bytes = new Uint8Array(hex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) ?? []);
335
335
  return new TextDecoder().decode(bytes);
336
336
  }
337
337
  function getLocalStorage() {
@@ -446,5 +446,5 @@ export {
446
446
  ConnectError
447
447
  };
448
448
 
449
- //# debugId=D2BC63584D0D265564756E2164756E21
449
+ //# debugId=4C5C4AE3DD4314CD64756E2164756E21
450
450
  //# sourceMappingURL=index.js.map
@@ -2,18 +2,18 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/c32.ts", "../../../src/utils/encoding.ts", "../../../src/clarity/types.ts", "../../../src/clarity/serialize.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"],
4
4
  "sourcesContent": [
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\tif (inputHex.length % 2 !== 0) inputHex = `0${inputHex}`;\n\tinputHex = inputHex.toLowerCase();\n\n\tconst res: string[] = [];\n\tlet carry = 0;\n\tfor (let i = inputHex.length - 1; i >= 0; i--) {\n\t\tif (carry < 4) {\n\t\t\tconst currentCode = HEX.indexOf(inputHex[i]!) >> carry;\n\t\t\tconst nextCode = i !== 0 ? HEX.indexOf(inputHex[i - 1]!) : 0;\n\t\t\tconst nextBits = 1 + carry;\n\t\t\tconst nextLowBits = (nextCode % (1 << nextBits)) << (5 - nextBits);\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(inputHex);\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\tc32input = c32normalize(c32input);\n\tif (!c32input.match(`^[${C32}]*$`))\n\t\tthrow new Error(\"Not a c32-encoded string\");\n\n\tconst zeroPrefix = c32input.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 = c32input.length - 1; i >= 0; i--) {\n\t\tif (carryBits === 4) {\n\t\t\tres.unshift(HEX[carry]!);\n\t\t\tcarryBits = 0;\n\t\t\tcarry = 0;\n\t\t}\n\t\tconst currentValue = (C32.indexOf(c32input[i]!) << carryBits) + carry;\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\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\tdata = data.toLowerCase();\n\tif (data.length % 2 !== 0) data = `0${data}`;\n\n\tlet versionHex = version.toString(16);\n\tif (versionHex.length === 1) versionHex = `0${versionHex}`;\n\n\tconst checksumHex = c32checksum(`${versionHex}${data}`);\n\treturn `${C32[version]}${c32encode(`${data}${checksumHex}`)}`;\n}\n\nfunction c32checkDecode(c32data: string): [number, string] {\n\tc32data = c32normalize(c32data);\n\tconst dataHex = c32decode(c32data.slice(1));\n\tconst version = C32.indexOf(c32data[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
- "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\thex = without0x(hex);\n\tif (hex.length % 2) hex = `0${hex}`;\n\n\tconst array = new Uint8Array(hex.length / 2);\n\tfor (let i = 0; i < array.length; i++) {\n\t\tconst j = i * 2;\n\t\tconst byte = Number.parseInt(hex.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\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((bytes[offset]! << 24) |\n\t\t\t(bytes[offset + 1]! << 16) |\n\t\t\t(bytes[offset + 2]! << 8) |\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\treturn ((bytes[offset]! << 8) | bytes[offset + 1]!) >>> 0;\n}\n\nexport function writeUInt8(value: number): Uint8Array {\n\treturn new Uint8Array([value & 0xff]);\n}\n",
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
+ "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
  "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",
8
- "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\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",
8
+ "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",
9
9
  "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",
10
10
  "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",
11
11
  "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",
12
- "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",
13
- "import { 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 isClarityValue(obj: unknown): obj is { type: string } {\n\treturn (\n\t\ttypeof obj === \"object\" &&\n\t\tobj !== null &&\n\t\t\"type\" in obj &&\n\t\ttypeof (obj as any).type === \"string\" &&\n\t\t!POST_CONDITION_TYPES.has((obj as any).type)\n\t);\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\tif (POST_CONDITION_TYPES.has((value as any).type)) return value;\n\n\t\tif (isClarityValue(value)) {\n\t\t\treturn bytesToHex(serializeCVBytes(value as any));\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\tlet result: any;\n\ttry {\n\t\tresult = await provider.request(method as string, serialized);\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",
12
+ "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",
13
+ "import { 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 isClarityValue(obj: unknown): obj is { type: string } {\n\treturn (\n\t\ttypeof obj === \"object\" &&\n\t\tobj !== null &&\n\t\t\"type\" in obj &&\n\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\ttypeof (obj as any).type === \"string\" &&\n\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t!POST_CONDITION_TYPES.has((obj as any).type)\n\t);\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\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\treturn bytesToHex(serializeCVBytes(value as any));\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",
14
14
  "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"
15
15
  ],
16
- "mappings": "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",
17
- "debugId": "D2BC63584D0D265564756E2164756E21",
16
+ "mappings": "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",
17
+ "debugId": "4C5C4AE3DD4314CD64756E2164756E21",
18
18
  "names": []
19
19
  }
@@ -470,13 +470,13 @@ function bytesToHex(bytes) {
470
470
  return hex2;
471
471
  }
472
472
  function hexToBytes(hex2) {
473
- hex2 = without0x(hex2);
474
- if (hex2.length % 2)
475
- hex2 = `0${hex2}`;
476
- const array = new Uint8Array(hex2.length / 2);
473
+ let h = without0x(hex2);
474
+ if (h.length % 2)
475
+ h = `0${h}`;
476
+ const array = new Uint8Array(h.length / 2);
477
477
  for (let i = 0;i < array.length; i++) {
478
478
  const j = i * 2;
479
- const byte = Number.parseInt(hex2.slice(j, j + 2), 16);
479
+ const byte = Number.parseInt(h.slice(j, j + 2), 16);
480
480
  if (Number.isNaN(byte) || byte < 0)
481
481
  throw new Error("Invalid byte sequence");
482
482
  array[i] = byte;
@@ -836,9 +836,11 @@ class WcSession {
836
836
  chainId: this.chains[0]
837
837
  }
838
838
  };
839
+ const sessionData = this.sessionData;
840
+ const sessionSymKey = this.sessionSymKey;
839
841
  return new Promise((resolve, reject) => {
840
842
  this.pending.set(id, { resolve, reject });
841
- this.relay.publishEncrypted(this.sessionData.topic, this.sessionSymKey, payload, 1108, SESSION_EXPIRY).catch((err) => {
843
+ this.relay.publishEncrypted(sessionData.topic, sessionSymKey, payload, 1108, SESSION_EXPIRY).catch((err) => {
842
844
  this.pending.delete(id);
843
845
  reject(err);
844
846
  });
@@ -1124,7 +1126,8 @@ function setModule(m, r, c, val, reserved) {
1124
1126
  function addFinderPattern(m, r, c, res) {
1125
1127
  for (let dr = -1;dr <= 7; dr++) {
1126
1128
  for (let dc = -1;dc <= 7; dc++) {
1127
- const rr = r + dr, cc = c + dc;
1129
+ const rr = r + dr;
1130
+ const cc = c + dc;
1128
1131
  if (rr < 0 || rr >= m.length || cc < 0 || cc >= m.length)
1129
1132
  continue;
1130
1133
  const inOuter = dr >= 0 && dr <= 6 && dc >= 0 && dc <= 6;
@@ -1138,9 +1141,9 @@ function addFinderPattern(m, r, c, res) {
1138
1141
  function addTimingPatterns(m, res) {
1139
1142
  for (let i = 8;i < m.length - 8; i++) {
1140
1143
  const val = i % 2 === 0 ? 1 : 0;
1141
- if (!res[6][i])
1144
+ if (!res[6]?.[i])
1142
1145
  setModule(m, 6, i, val, res);
1143
- if (!res[i][6])
1146
+ if (!res[i]?.[6])
1144
1147
  setModule(m, i, 6, val, res);
1145
1148
  }
1146
1149
  }
@@ -1179,7 +1182,7 @@ function placeData(m, res, data) {
1179
1182
  for (const row of rows) {
1180
1183
  for (const dc of [0, -1]) {
1181
1184
  const c = col + dc;
1182
- if (c < 0 || res[row][c])
1185
+ if (c < 0 || res[row]?.[c])
1183
1186
  continue;
1184
1187
  if (bitIdx < totalBits) {
1185
1188
  const byteIdx = bitIdx >> 3;
@@ -1236,7 +1239,7 @@ function qrSvg(data, opts) {
1236
1239
  let paths = "";
1237
1240
  for (let r = 0;r < n; r++) {
1238
1241
  for (let c = 0;c < n; c++) {
1239
- if (matrix[r][c]) {
1242
+ if (matrix[r]?.[c]) {
1240
1243
  const x = (c + quiet) * scale;
1241
1244
  const y = (r + quiet) * scale;
1242
1245
  paths += `M${x},${y}h${scale}v${scale}h-${scale}z`;
@@ -1247,7 +1250,7 @@ function qrSvg(data, opts) {
1247
1250
  `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${size} ${size}" width="${size}" height="${size}">`,
1248
1251
  `<rect width="${size}" height="${size}" fill="${light}"/>`,
1249
1252
  `<path d="${paths}" fill="${dark}"/>`,
1250
- `</svg>`
1253
+ "</svg>"
1251
1254
  ].join("");
1252
1255
  }
1253
1256
  // src/connect/provider.ts
@@ -1328,5 +1331,5 @@ function hideModal() {
1328
1331
  document.getElementById(MODAL_ID)?.remove();
1329
1332
  }
1330
1333
 
1331
- //# debugId=DE5ED03850ABDABD64756E2164756E21
1334
+ //# debugId=3224112B5536B35F64756E2164756E21
1332
1335
  //# sourceMappingURL=index.cjs.map