@secondlayer/stacks 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/{stacks-m2dc5xwg.js → stacks-0hqzpm29.js} +2 -2
- package/dist/shared/{stacks-m2dc5xwg.js.map → stacks-0hqzpm29.js.map} +1 -1
- package/dist/shared/stacks-61rvzkz1.cjs.map +1 -1
- package/dist/shared/{stacks-md6e5ta0.js → stacks-8qhfd37f.js} +3 -3
- package/dist/shared/{stacks-md6e5ta0.js.map → stacks-8qhfd37f.js.map} +2 -2
- package/dist/shared/stacks-an5k8n4t.cjs.map +2 -2
- package/dist/shared/stacks-b008c3w8.cjs.map +2 -2
- package/dist/shared/stacks-hfem9dck.cjs.map +2 -2
- package/dist/shared/stacks-j2cy7qtt.js.map +2 -2
- package/dist/shared/{stacks-zyv9qqme.cjs → stacks-kgesjxq4.cjs} +3 -5
- package/dist/shared/stacks-kgesjxq4.cjs.map +11 -0
- package/dist/shared/{stacks-pz73cn97.js → stacks-nbz193yk.js} +3 -6
- package/dist/shared/stacks-nbz193yk.js.map +11 -0
- package/dist/shared/stacks-vdfag81a.cjs.map +2 -2
- package/dist/shared/stacks-xtz0n62y.js.map +2 -2
- package/dist/shared/{stacks-1ddg6mbv.js → stacks-zhd20wgz.js} +2 -2
- package/dist/shared/stacks-zhd20wgz.js.map +10 -0
- package/dist/src/actions/index.d.cts +3 -5
- package/dist/src/actions/index.d.ts +3 -5
- package/dist/src/actions/index.js +4 -4
- package/dist/src/bns/index.cjs +13 -13
- package/dist/src/bns/index.cjs.map +3 -3
- package/dist/src/bns/index.js +16 -16
- package/dist/src/bns/index.js.map +3 -3
- package/dist/src/connect/walletconnect/index.cjs +1 -1
- package/dist/src/connect/walletconnect/index.cjs.map +4 -4
- package/dist/src/connect/walletconnect/index.js +1 -1
- package/dist/src/connect/walletconnect/index.js.map +4 -4
- package/dist/src/index.cjs.map +4 -4
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +4 -4
- package/dist/src/pox/index.cjs +9 -9
- package/dist/src/pox/index.cjs.map +4 -4
- package/dist/src/pox/index.js +12 -12
- package/dist/src/pox/index.js.map +4 -4
- package/dist/src/stackingdao/index.cjs +13 -13
- package/dist/src/stackingdao/index.cjs.map +3 -3
- package/dist/src/stackingdao/index.js +16 -16
- package/dist/src/stackingdao/index.js.map +3 -3
- package/dist/src/transactions/index.js +1 -1
- package/dist/src/utils/index.cjs.map +2 -2
- package/dist/src/utils/index.js +4 -4
- package/dist/src/utils/index.js.map +3 -3
- package/package.json +1 -1
- package/dist/shared/stacks-1ddg6mbv.js.map +0 -10
- package/dist/shared/stacks-pz73cn97.js.map +0 -11
- package/dist/shared/stacks-zyv9qqme.cjs.map +0 -11
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/connect/walletconnect/crypto.ts", "../../../../../../node_modules/@scure/base/index.js", "../../../../src/utils/encoding.ts", "../../../../src/connect/walletconnect/relay.ts", "../../../../src/connect/walletconnect/session.ts", "../../../../src/connect/walletconnect/provider.ts", "../../../../src/connect/walletconnect/qr.ts", "../../../../src/connect/provider.ts", "../../../../src/connect/walletconnect/modal.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/** WalletConnect v2 envelope encryption (Type 0 + Type 1) + relay JWT auth */\n\nimport { ed25519, x25519 } from \"@noble/curves/ed25519.js\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { hkdf } from \"@noble/hashes/hkdf.js\";\nimport { randomBytes } from \"@noble/hashes/utils.js\";\nimport { gcm } from \"@noble/ciphers/aes.js\";\nimport { base58, base64urlnopad } from \"@scure/base\";\nimport { bytesToHex, hexToBytes } from \"../../utils/encoding.ts\";\n\nconst IV_LENGTH = 12;\nconst KEY_LENGTH = 32;\nconst
|
|
5
|
+
"/** WalletConnect v2 envelope encryption (Type 0 + Type 1) + relay JWT auth */\n\nimport { ed25519, x25519 } from \"@noble/curves/ed25519.js\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { hkdf } from \"@noble/hashes/hkdf.js\";\nimport { randomBytes } from \"@noble/hashes/utils.js\";\nimport { gcm } from \"@noble/ciphers/aes.js\";\nimport { base58, base64urlnopad } from \"@scure/base\";\nimport { bytesToHex, hexToBytes } from \"../../utils/encoding.ts\";\n\nconst IV_LENGTH = 12;\nconst KEY_LENGTH = 32;\nconst TYPE_0 = 0x00;\nconst TYPE_1 = 0x01;\n\n// -- Key generation --\n\nexport function generateKeyPair() {\n const privateKey = randomBytes(KEY_LENGTH);\n const publicKey = x25519.getPublicKey(privateKey);\n return { privateKey, publicKey };\n}\n\nexport function generateSymKey(): Uint8Array {\n return randomBytes(KEY_LENGTH);\n}\n\n/** Derive symmetric key from X25519 shared secret via HKDF */\nexport function deriveSymKey(\n selfPrivate: Uint8Array,\n peerPublic: Uint8Array,\n): Uint8Array {\n const shared = x25519.getSharedSecret(selfPrivate, peerPublic);\n return hkdf(sha256, shared, undefined, undefined, KEY_LENGTH);\n}\n\n/** Topic = first 32 bytes of SHA-256(symKey) as hex */\nexport function symKeyToTopic(symKey: Uint8Array): string {\n return bytesToHex(sha256(symKey));\n}\n\n// -- Base64 helpers (browser-safe) --\n\nexport function encodeBase64(data: Uint8Array): string {\n let binary = \"\";\n for (let i = 0; i < data.length; i++) binary += String.fromCharCode(data[i]!);\n return btoa(binary);\n}\n\nexport function decodeBase64(str: string): Uint8Array {\n const binary = atob(str);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n return bytes;\n}\n\n// -- Type 0 envelope (symmetric, pairing) --\n// Layout: [0x00][12-byte IV][ciphertext + 16-byte tag]\n\nexport function encryptType0(\n symKey: Uint8Array,\n plaintext: string,\n): Uint8Array {\n const iv = randomBytes(IV_LENGTH);\n const data = new TextEncoder().encode(plaintext);\n const cipher = gcm(symKey, iv);\n const sealed = cipher.encrypt(data);\n const envelope = new Uint8Array(1 + IV_LENGTH + sealed.length);\n envelope[0] = TYPE_0;\n envelope.set(iv, 1);\n envelope.set(sealed, 1 + IV_LENGTH);\n return envelope;\n}\n\nexport function decryptType0(\n symKey: Uint8Array,\n envelope: Uint8Array,\n): string {\n if (envelope[0] !== TYPE_0) throw new Error(\"Not a type-0 envelope\");\n const iv = envelope.subarray(1, 1 + IV_LENGTH);\n const sealed = envelope.subarray(1 + IV_LENGTH);\n const cipher = gcm(symKey, iv);\n const plain = cipher.decrypt(sealed);\n return new TextDecoder().decode(plain);\n}\n\n// -- Type 1 envelope (asymmetric, session proposal) --\n// Layout: [0x01][32-byte sender pubkey][12-byte IV][ciphertext + 16-byte tag]\n\nexport function encryptType1(\n senderPrivate: Uint8Array,\n receiverPublic: Uint8Array,\n plaintext: string,\n): Uint8Array {\n const senderPublic = x25519.getPublicKey(senderPrivate);\n const symKey = deriveSymKey(senderPrivate, receiverPublic);\n const iv = randomBytes(IV_LENGTH);\n const data = new TextEncoder().encode(plaintext);\n const cipher = gcm(symKey, iv);\n const sealed = cipher.encrypt(data);\n const envelope = new Uint8Array(1 + KEY_LENGTH + IV_LENGTH + sealed.length);\n envelope[0] = TYPE_1;\n envelope.set(senderPublic, 1);\n envelope.set(iv, 1 + KEY_LENGTH);\n envelope.set(sealed, 1 + KEY_LENGTH + IV_LENGTH);\n return envelope;\n}\n\nexport function decryptType1(\n receiverPrivate: Uint8Array,\n envelope: Uint8Array,\n): string {\n if (envelope[0] !== TYPE_1) throw new Error(\"Not a type-1 envelope\");\n const senderPublic = envelope.subarray(1, 1 + KEY_LENGTH);\n const iv = envelope.subarray(1 + KEY_LENGTH, 1 + KEY_LENGTH + IV_LENGTH);\n const sealed = envelope.subarray(1 + KEY_LENGTH + IV_LENGTH);\n const symKey = deriveSymKey(receiverPrivate, senderPublic);\n const cipher = gcm(symKey, iv);\n const plain = cipher.decrypt(sealed);\n return new TextDecoder().decode(plain);\n}\n\n// -- Unified decrypt --\n\nexport function decrypt(\n keyOrPrivate: Uint8Array,\n envelope: Uint8Array,\n): string {\n return envelope[0] === TYPE_1\n ? decryptType1(keyOrPrivate, envelope)\n : decryptType0(keyOrPrivate, envelope);\n}\n\n// -- Relay JWT auth (Ed25519 + did:key) --\n\n/** Ed25519 multicodec varint prefix */\nconst ED25519_MULTICODEC = new Uint8Array([0xed, 0x01]);\n\nfunction encodeDidKey(publicKey: Uint8Array): string {\n const prefixed = new Uint8Array(ED25519_MULTICODEC.length + publicKey.length);\n prefixed.set(ED25519_MULTICODEC);\n prefixed.set(publicKey, ED25519_MULTICODEC.length);\n return `did:key:z${base58.encode(prefixed)}`;\n}\n\nfunction base64urlEncode(data: Uint8Array | string): string {\n const bytes =\n typeof data === \"string\" ? new TextEncoder().encode(data) : data;\n return base64urlnopad.encode(bytes);\n}\n\n/** Generate a signed JWT for WC relay authentication */\nexport function createRelayAuthJwt(\n relayUrl: string,\n): { jwt: string; clientId: string } {\n const privateKey = ed25519.utils.randomSecretKey();\n const publicKey = ed25519.getPublicKey(privateKey);\n const clientId = encodeDidKey(publicKey);\n\n const now = Math.floor(Date.now() / 1000);\n const header = base64urlEncode(JSON.stringify({ alg: \"EdDSA\", typ: \"JWT\" }));\n const payload = base64urlEncode(\n JSON.stringify({\n iss: clientId,\n sub: bytesToHex(randomBytes(32)),\n aud: relayUrl,\n iat: now,\n exp: now + 86400, // 24 hours\n act: \"client_auth\",\n }),\n );\n\n const message = new TextEncoder().encode(`${header}.${payload}`);\n const signature = base64urlEncode(ed25519.sign(message, privateKey));\n\n return { jwt: `${header}.${payload}.${signature}`, clientId };\n}\n\nexport { bytesToHex, hexToBytes };\n",
|
|
6
6
|
"/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n}\nfunction isArrayOf(isString, arr) {\n if (!Array.isArray(arr))\n return false;\n if (arr.length === 0)\n return true;\n if (isString) {\n return arr.every((item) => typeof item === 'string');\n }\n else {\n return arr.every((item) => Number.isSafeInteger(item));\n }\n}\nfunction afn(input) {\n if (typeof input !== 'function')\n throw new Error('function expected');\n return true;\n}\nfunction astr(label, input) {\n if (typeof input !== 'string')\n throw new Error(`${label}: string expected`);\n return true;\n}\nfunction anumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`invalid integer: ${n}`);\n}\nfunction aArr(input) {\n if (!Array.isArray(input))\n throw new Error('array expected');\n}\nfunction astrArr(label, input) {\n if (!isArrayOf(true, input))\n throw new Error(`${label}: array of strings expected`);\n}\nfunction anumArr(label, input) {\n if (!isArrayOf(false, input))\n throw new Error(`${label}: array of numbers expected`);\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain(...args) {\n const id = (a) => a;\n // Wrap call in closure so JIT can inline calls\n const wrap = (a, b) => (c) => a(b(c));\n // Construct chain of args[-1].encode(args[-2].encode([...]))\n const encode = args.map((x) => x.encode).reduceRight(wrap, id);\n // Construct chain of args[0].decode(args[1].decode(...))\n const decode = args.map((x) => x.decode).reduce(wrap, id);\n return { encode, decode };\n}\n/**\n * Encodes integer radix representation to array of strings using alphabet and back.\n * Could also be array of strings.\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(letters) {\n // mapping 1 to \"b\"\n const lettersA = typeof letters === 'string' ? letters.split('') : letters;\n const len = lettersA.length;\n astrArr('alphabet', lettersA);\n // mapping \"b\" to 1\n const indexes = new Map(lettersA.map((l, i) => [l, i]));\n return {\n encode: (digits) => {\n aArr(digits);\n return digits.map((i) => {\n if (!Number.isSafeInteger(i) || i < 0 || i >= len)\n throw new Error(`alphabet.encode: digit index outside alphabet \"${i}\". Allowed: ${letters}`);\n return lettersA[i];\n });\n },\n decode: (input) => {\n aArr(input);\n return input.map((letter) => {\n astr('alphabet.decode', letter);\n const i = indexes.get(letter);\n if (i === undefined)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${letters}`);\n return i;\n });\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n astr('join', separator);\n return {\n encode: (from) => {\n astrArr('join.decode', from);\n return from.join(separator);\n },\n decode: (to) => {\n astr('join.decode', to);\n return to.split(separator);\n },\n };\n}\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits, chr = '=') {\n anumber(bits);\n astr('padding', chr);\n return {\n encode(data) {\n astrArr('padding.encode', data);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n astrArr('padding.decode', input);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('padding: invalid, string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n const last = end - 1;\n const byte = last * bits;\n if (byte % 8 === 0)\n throw new Error('padding: invalid, string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize(fn) {\n afn(fn);\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n */\nfunction convertRadix(data, from, to) {\n // base 1 is impossible\n if (from < 2)\n throw new Error(`convertRadix: invalid from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: invalid to=${to}, base cannot be less than 2`);\n aArr(data);\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data, (d) => {\n anumber(d);\n if (d < 0 || d >= from)\n throw new Error(`invalid integer: ${d}`);\n return d;\n });\n const dlen = digits.length;\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < dlen; i++) {\n const digit = digits[i];\n const fromCarry = from * carry;\n const digitBase = fromCarry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n fromCarry / from !== carry ||\n digitBase - digit !== fromCarry) {\n throw new Error('convertRadix: carry overflow');\n }\n const div = digitBase / to;\n carry = digitBase % to;\n const rounded = Math.floor(div);\n digits[i] = rounded;\n if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!rounded)\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\nconst radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\nconst powers = /* @__PURE__ */ (() => {\n let res = [];\n for (let i = 0; i < 40; i++)\n res.push(2 ** i);\n return res;\n})();\n/**\n * Implemented with numbers, because BigInt is 5x slower\n */\nfunction convertRadix2(data, from, to, padding) {\n aArr(data);\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0; // bitwise position in current element\n const max = powers[from];\n const mask = powers[to] - 1;\n const res = [];\n for (const n of data) {\n anumber(n);\n if (n >= max)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n const pow = powers[pos];\n if (pow === undefined)\n throw new Error('invalid carry');\n carry &= pow - 1; // clean carry, otherwise it will cause overflow\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry > 0)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num) {\n anumber(num);\n const _256 = 2 ** 8;\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), _256, num);\n },\n decode: (digits) => {\n anumArr('radix.decode', digits);\n return Uint8Array.from(convertRadix(digits, num, _256));\n },\n };\n}\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits, revPadding = false) {\n anumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n anumArr('radix2.decode', digits);\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n afn(fn);\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n anumber(len);\n afn(fn);\n return {\n encode(data) {\n if (!isBytes(data))\n throw new Error('checksum.encode: input should be Uint8Array');\n const sum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(sum, data.length);\n return res;\n },\n decode(data) {\n if (!isBytes(data))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const oldChecksum = data.slice(-len);\n const newChecksum = fn(payload).slice(0, len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\n// prettier-ignore\nexport const utils = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n// RFC 4648 aka RFC 3548\n// ---------------------\n/**\n * base16 encoding from RFC 4648.\n * @example\n * ```js\n * base16.encode(Uint8Array.from([0x12, 0xab]));\n * // => '12AB'\n * ```\n */\nexport const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\n/**\n * base32 encoding from RFC 4648. Has padding.\n * Use `base32nopad` for unpadded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ===='\n * base32.decode('CKVQ====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding.\n * Use `base32` for padded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ'\n * base32nopad.decode('CKVQ');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32nopad = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), join(''));\n/**\n * base32 encoding from RFC 4648. Padded. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hexnopad` for unpadded version.\n * @example\n * ```js\n * base32hex.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG===='\n * base32hex.decode('2ALG====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hex` for padded version.\n * @example\n * ```js\n * base32hexnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG'\n * base32hexnopad.decode('2ALG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hexnopad = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), join(''));\n/**\n * base32 encoding from RFC 4648. Doug Crockford's version.\n * https://www.crockford.com/base32.html\n * @example\n * ```js\n * base32crockford.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ANG'\n * base32crockford.decode('2ANG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\n// Built-in base64 conversion https://caniuse.com/mdn-javascript_builtins_uint8array_frombase64\n// prettier-ignore\nconst hasBase64Builtin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toBase64 === 'function' &&\n typeof Uint8Array.fromBase64 === 'function')();\nconst decodeBase64Builtin = (s, isUrl) => {\n astr('base64', s);\n const re = isUrl ? /^[A-Za-z0-9=_-]+$/ : /^[A-Za-z0-9=+/]+$/;\n const alphabet = isUrl ? 'base64url' : 'base64';\n if (s.length > 0 && !re.test(s))\n throw new Error('invalid base64');\n return Uint8Array.fromBase64(s, { alphabet, lastChunkHandling: 'strict' });\n};\n/**\n * base64 from RFC 4648. Padded.\n * Use `base64nopad` for unpadded version.\n * Also check out `base64url`, `base64urlnopad`.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64 = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64(); },\n decode(s) { return decodeBase64Builtin(s, false); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\n/**\n * base64 from RFC 4648. No padding.\n * Use `base64` for padded version.\n * @example\n * ```js\n * base64nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64nopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64nopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. Padded.\n * Use `base64urlnopad` for unpadded version.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64url.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64url.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64url = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64({ alphabet: 'base64url' }); },\n decode(s) { return decodeBase64Builtin(s, true); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. No padding.\n * Use `base64url` for padded version.\n * @example\n * ```js\n * base64urlnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64urlnopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = /* @__NO_SIDE_EFFECTS__ */ (abc) => chain(radix(58), alphabet(abc), join(''));\n/**\n * base58: base64 without ambigous characters +, /, 0, O, I, l.\n * Quadratic (O(n^2)) - so, can't be used on large inputs.\n * @example\n * ```js\n * base58.decode('01abcdef');\n * // => '3UhJW'\n * ```\n */\nexport const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\n/**\n * base58: flickr version. Check out `base58`.\n */\nexport const base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\n/**\n * base58: XRP version. Check out `base58`.\n */\nexport const base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\n/**\n * base58: XMR version. Check out `base58`.\n * Done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n * Block encoding significantly reduces quadratic complexity of base58.\n */\nexport const base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\n/**\n * Method, which creates base58check encoder.\n * Requires function, calculating sha256.\n */\nexport const createBase58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\n/**\n * Use `createBase58check` instead.\n * @deprecated\n */\nexport const base58check = createBase58check;\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % powers[30]], 30, 5, false));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n astr('bech32.encode prefix', prefix);\n if (isBytes(words))\n words = Array.from(words);\n anumArr('bech32.encode', words);\n const plen = prefix.length;\n if (plen === 0)\n throw new TypeError(`Invalid prefix length ${plen}`);\n const actualLength = plen + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n const lowered = prefix.toLowerCase();\n const sum = bechChecksum(lowered, words, ENCODING_CONST);\n return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;\n }\n function decode(str, limit = 90) {\n astr('bech32.decode input', str);\n const slen = str.length;\n if (slen < 8 || (limit !== false && slen > limit))\n throw new TypeError(`invalid string length: ${slen} (${str}). Expected (8..${limit})`);\n // don't allow mixed case\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n const sepIndex = lowered.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = lowered.slice(0, sepIndex);\n const data = lowered.slice(sepIndex + 1);\n if (data.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(data).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!data.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n function encodeFromBytes(prefix, bytes) {\n return encode(prefix, toWords(bytes));\n }\n return {\n encode,\n decode,\n encodeFromBytes,\n decodeToBytes,\n decodeUnsafe,\n fromWords,\n fromWordsUnsafe,\n toWords,\n };\n}\n/**\n * bech32 from BIP 173. Operates on words.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32 = genBech32('bech32');\n/**\n * bech32m from BIP 350. Operates on words.\n * It was to mitigate `bech32` weaknesses.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32m = genBech32('bech32m');\n/**\n * UTF-8-to-byte decoder. Uses built-in TextDecoder / TextEncoder.\n * @example\n * ```js\n * const b = utf8.decode(\"hey\"); // => new Uint8Array([ 104, 101, 121 ])\n * const str = utf8.encode(b); // \"hey\"\n * ```\n */\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\n// prettier-ignore\nconst hasHexBuiltin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toHex === 'function' &&\n typeof Uint8Array.fromHex === 'function')();\n// prettier-ignore\nconst hexBuiltin = {\n encode(data) { abytes(data); return data.toHex(); },\n decode(s) { astr('hex', s); return Uint8Array.fromHex(s); },\n};\n/**\n * hex string decoder. Uses built-in function, when available.\n * @example\n * ```js\n * const b = hex.decode(\"0102ff\"); // => new Uint8Array([ 1, 2, 255 ])\n * const str = hex.encode(b); // \"0102ff\"\n * ```\n */\nexport const hex = hasHexBuiltin\n ? hexBuiltin\n : chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2 !== 0)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n }));\n// prettier-ignore\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\n/** @deprecated */\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!isBytes(bytes))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\n/** @deprecated */\nexport const str = bytesToString; // as in python, but for bytes only\n/** @deprecated */\nexport const stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\n/** @deprecated */\nexport const bytes = stringToBytes;\n//# sourceMappingURL=index.js.map",
|
|
7
7
|
"const hexes = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, \"0\"));\n\nexport function bytesToHex(bytes: Uint8Array): string {\n let hex = \"\";\n for (const b of bytes) {\n hex += hexes[b];\n }\n return hex;\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n hex = without0x(hex);\n if (hex.length % 2) hex = `0${hex}`;\n\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const byte = Number.parseInt(hex.slice(j, j + 2), 16);\n if (Number.isNaN(byte) || byte < 0) throw new Error(\"Invalid byte sequence\");\n array[i] = byte;\n }\n return array;\n}\n\nexport function with0x(value: string): string {\n return /^0x/i.test(value) ? value : `0x${value}`;\n}\n\nexport function without0x(value: string): string {\n return /^0x/i.test(value) ? value.slice(2) : value;\n}\n\nexport function utf8ToBytes(str: string): Uint8Array {\n return new TextEncoder().encode(str);\n}\n\nexport function bytesToUtf8(bytes: Uint8Array): string {\n return new TextDecoder().decode(bytes);\n}\n\nexport function asciiToBytes(str: string): Uint8Array {\n const bytes = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\nexport function bytesToAscii(bytes: Uint8Array): string {\n return String.fromCharCode(...bytes);\n}\n\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n if (arrays.length === 1) return arrays[0]!;\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n let pad = 0;\n for (const arr of arrays) {\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\n\nexport type IntegerType = number | string | bigint | Uint8Array;\n\nexport function intToBigInt(value: IntegerType): bigint {\n if (typeof value === \"bigint\") return value;\n if (typeof value === \"string\") return BigInt(value);\n if (typeof value === \"number\") {\n if (!Number.isInteger(value))\n throw new RangeError(\"Values of type 'number' must be an integer.\");\n if (value > Number.MAX_SAFE_INTEGER)\n throw new RangeError(\n `Values of type 'number' must be <= ${Number.MAX_SAFE_INTEGER}. Use BigInt instead.`\n );\n return BigInt(value);\n }\n if (value instanceof Uint8Array) return BigInt(`0x${bytesToHex(value)}`);\n throw new TypeError(\"Must be a number, bigint, string, or Uint8Array.\");\n}\n\nexport function intToBytes(value: IntegerType, byteLength: number): Uint8Array {\n return bigIntToBytes(intToBigInt(value), byteLength);\n}\n\nexport function bigIntToBytes(value: bigint, length: number = 16): Uint8Array {\n const hex = value.toString(16).padStart(length * 2, \"0\");\n return hexToBytes(hex);\n}\n\nexport function intToHex(integer: IntegerType, byteLength = 8): string {\n const value = typeof integer === \"bigint\" ? integer : intToBigInt(integer);\n return value.toString(16).padStart(byteLength * 2, \"0\");\n}\n\nexport function toTwos(value: bigint, width: bigint): bigint {\n const limit = BigInt(1) << (width - BigInt(1));\n if (value < -limit || value > limit - BigInt(1)) {\n throw new Error(`Unable to represent integer in width: ${width}`);\n }\n if (value >= BigInt(0)) return value;\n return value + (BigInt(1) << width);\n}\n\nexport function fromTwos(value: bigint, width: bigint): bigint {\n if (value & (BigInt(1) << (width - BigInt(1)))) {\n return value - (BigInt(1) << width);\n }\n return value;\n}\n\nexport function bytesToTwosBigInt(bytes: Uint8Array): bigint {\n return fromTwos(BigInt(`0x${bytesToHex(bytes)}`), BigInt(bytes.byteLength * 8));\n}\n\nexport function writeUInt32BE(value: number): Uint8Array {\n const buf = new Uint8Array(4);\n buf[0] = (value >>> 24) & 0xff;\n buf[1] = (value >>> 16) & 0xff;\n buf[2] = (value >>> 8) & 0xff;\n buf[3] = value & 0xff;\n return buf;\n}\n\nexport function readUInt32BE(bytes: Uint8Array, offset = 0): number {\n return (\n ((bytes[offset]! << 24) |\n (bytes[offset + 1]! << 16) |\n (bytes[offset + 2]! << 8) |\n bytes[offset + 3]!) >>>\n 0\n );\n}\n\nexport function writeUInt16BE(value: number): Uint8Array {\n const buf = new Uint8Array(2);\n buf[0] = (value >>> 8) & 0xff;\n buf[1] = value & 0xff;\n return buf;\n}\n\nexport function readUInt16BE(bytes: Uint8Array, offset = 0): number {\n return ((bytes[offset]! << 8) | bytes[offset + 1]!) >>> 0;\n}\n\nexport function writeUInt8(value: number): Uint8Array {\n return new Uint8Array([value & 0xff]);\n}\n",
|
|
8
|
-
"/** WalletConnect v2 relay client (wss://relay.walletconnect.com) */\n\nimport type { WcRelayMessage } from \"./types.ts\";\nimport {\n encryptType0,\n
|
|
8
|
+
"/** WalletConnect v2 relay client (wss://relay.walletconnect.com) */\n\nimport type { WcRelayMessage } from \"./types.ts\";\nimport {\n encryptType0,\n encodeBase64,\n createRelayAuthJwt,\n} from \"./crypto.ts\";\n\nconst DEFAULT_RELAY = \"wss://relay.walletconnect.com\";\nconst DEFAULT_TTL = 300; // 5 minutes\n\ntype PendingRpc = {\n resolve: (v: unknown) => void;\n reject: (e: Error) => void;\n};\n\ntype SubscriptionHandler = (message: WcRelayMessage) => void;\n\nexport class WcRelay {\n private ws: WebSocket | null = null;\n private url: string;\n private projectId: string;\n private nextId = Date.now() * 1000 + Math.floor(Math.random() * 1000);\n private pending = new Map<number, PendingRpc>();\n private subscriptions = new Map<string, SubscriptionHandler>();\n /** Map subscription ID (from server) → topic */\n private subIdToTopic = new Map<string, string>();\n private destroyed = false;\n private reconnecting = false;\n private reconnectAttempt = 0;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n private connectPromise: Promise<void> | null = null;\n private connectReject: ((e: Error) => void) | null = null;\n\n constructor(projectId: string, relayUrl?: string) {\n this.projectId = projectId;\n this.url = relayUrl ?? DEFAULT_RELAY;\n }\n\n // -- Connection --\n\n async connect(): Promise<void> {\n if (this.ws?.readyState === WebSocket.OPEN) return;\n if (this.connectPromise) return this.connectPromise;\n\n this.connectPromise = new Promise<void>((resolve, reject) => {\n this.connectReject = reject;\n const { jwt } = createRelayAuthJwt(this.url);\n const wsUrl = `${this.url}/?auth=${jwt}&projectId=${this.projectId}`;\n this.ws = new WebSocket(wsUrl);\n\n this.ws.addEventListener(\n \"open\",\n () => {\n this.reconnectAttempt = 0;\n this.reconnecting = false;\n this.connectPromise = null;\n this.connectReject = null;\n resolve();\n },\n { once: true },\n );\n\n this.ws.addEventListener(\n \"error\",\n (e) => {\n this.connectPromise = null;\n this.connectReject = null;\n reject(new Error(`WC relay connection failed: ${e}`));\n },\n { once: true },\n );\n\n this.ws.addEventListener(\"message\", (event) => {\n this.handleMessage(\n typeof event.data === \"string\"\n ? event.data\n : new TextDecoder().decode(event.data as ArrayBuffer),\n );\n });\n\n this.ws.addEventListener(\"close\", () => {\n this.connectPromise = null;\n if (!this.destroyed) this.handleDisconnect();\n });\n });\n\n return this.connectPromise;\n }\n\n // -- Publish/Subscribe --\n\n async subscribe(\n topic: string,\n handler: SubscriptionHandler,\n ): Promise<string> {\n await this.connect();\n this.subscriptions.set(topic, handler);\n const subId = (await this.rpc(\"irn_subscribe\", { topic })) as string;\n this.subIdToTopic.set(subId, topic);\n return subId;\n }\n\n async publish(\n topic: string,\n message: string,\n tag: number,\n ttl: number = DEFAULT_TTL,\n ): Promise<void> {\n await this.connect();\n await this.rpc(\"irn_publish\", {\n topic,\n message,\n ttl,\n tag,\n prompt: false,\n });\n }\n\n /** Encrypt + publish a type-0 envelope */\n async publishEncrypted(\n topic: string,\n symKey: Uint8Array,\n payload: unknown,\n tag: number,\n ttl: number = DEFAULT_TTL,\n ): Promise<void> {\n const plaintext = JSON.stringify(payload);\n const envelope = encryptType0(symKey, plaintext);\n await this.publish(topic, encodeBase64(envelope), tag, ttl);\n }\n\n // -- Internal --\n\n private rpc(method: string, params: Record<string, unknown>): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n return reject(new Error(\"WC relay not connected\"));\n }\n const id = this.nextId++;\n this.pending.set(id, { resolve, reject });\n this.ws.send(JSON.stringify({ id, jsonrpc: \"2.0\", method, params }));\n });\n }\n\n private handleMessage(raw: string) {\n let msg: any;\n try {\n msg = JSON.parse(raw);\n } catch {\n return;\n }\n\n // RPC response\n if (\"id\" in msg && msg.id != null && this.pending.has(msg.id)) {\n const p = this.pending.get(msg.id)!;\n this.pending.delete(msg.id);\n if (msg.error) {\n p.reject(new Error(`WC relay error: ${msg.error.message}`));\n } else {\n p.resolve(msg.result);\n }\n return;\n }\n\n // Server push (irn_subscription)\n if (msg.method === \"irn_subscription\" && msg.params) {\n const { id: subId, data } = msg.params;\n const topic = data?.topic ?? this.subIdToTopic.get(subId);\n const handler = topic ? this.subscriptions.get(topic) : undefined;\n if (handler && data) {\n handler({\n topic: data.topic,\n message: data.message,\n publishedAt: data.publishedAt ?? Date.now(),\n tag: data.tag ?? 0,\n });\n }\n // Acknowledge\n if (msg.id != null) {\n this.ws?.send(\n JSON.stringify({ id: msg.id, jsonrpc: \"2.0\", result: true }),\n );\n }\n }\n }\n\n private handleDisconnect() {\n this.ws = null;\n for (const [, p] of this.pending) {\n p.reject(new Error(\"WC relay disconnected\"));\n }\n this.pending.clear();\n\n if (this.subscriptions.size > 0 && this.reconnectAttempt < 5) {\n this.scheduleReconnect();\n }\n }\n\n private scheduleReconnect() {\n if (this.destroyed || this.reconnecting) return;\n this.reconnecting = true;\n const delay = 1000 * 2 ** this.reconnectAttempt;\n this.reconnectAttempt++;\n\n this.reconnectTimer = setTimeout(async () => {\n this.reconnecting = false;\n try {\n await this.connect();\n // Re-subscribe all topics\n for (const [topic] of this.subscriptions) {\n const subId = (await this.rpc(\"irn_subscribe\", { topic })) as string;\n this.subIdToTopic.set(subId, topic);\n }\n } catch {\n if (!this.destroyed && this.subscriptions.size > 0) {\n this.handleDisconnect();\n }\n }\n }, delay);\n }\n\n destroy(): void {\n this.destroyed = true;\n if (this.reconnectTimer) clearTimeout(this.reconnectTimer);\n if (this.connectReject) {\n this.connectReject(new Error(\"WC relay destroyed\"));\n this.connectReject = null;\n this.connectPromise = null;\n }\n for (const [, p] of this.pending) {\n p.reject(new Error(\"WC relay destroyed\"));\n }\n this.pending.clear();\n this.subscriptions.clear();\n this.subIdToTopic.clear();\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n}\n",
|
|
9
9
|
"/** WalletConnect v2 session state machine (pairing → proposal → settlement) */\n\nimport type {\n WcProviderConfig,\n WcPairResult,\n WcSessionSettled,\n WcSessionData,\n WcJsonRpc,\n WcProposal,\n} from \"./types.ts\";\nimport {\n generateKeyPair,\n generateSymKey,\n deriveSymKey,\n symKeyToTopic,\n decryptType0,\n decryptType1,\n decodeBase64,\n bytesToHex,\n hexToBytes,\n} from \"./crypto.ts\";\nimport { WcRelay } from \"./relay.ts\";\n\nconst STORAGE_KEY = \"@secondlayer/wc:session\";\nconst SESSION_EXPIRY = 7 * 24 * 60 * 60; // 7 days in seconds\n\nconst STACKS_METHODS = [\n \"stx_getAddresses\",\n \"stx_transferStx\",\n \"stx_callContract\",\n \"stx_deployContract\",\n \"stx_signMessage\",\n \"stx_signTransaction\",\n];\n\nconst STACKS_EVENTS = [\"chainChanged\", \"accountsChanged\"];\n\ndeclare const localStorage:\n | {\n getItem(key: string): string | null;\n setItem(key: string, value: string): void;\n removeItem(key: string): void;\n }\n | undefined;\n\nfunction getStorage() {\n return typeof localStorage !== \"undefined\" ? localStorage : undefined;\n}\n\nexport class WcSession {\n private relay: WcRelay;\n private config: WcProviderConfig;\n private chains: string[];\n\n // Pairing state\n private pairingSymKey: Uint8Array | null = null;\n private pairingTopic: string | null = null;\n private selfKeyPair: { privateKey: Uint8Array; publicKey: Uint8Array } | null = null;\n\n // Session state\n private sessionData: WcSessionData | null = null;\n private sessionSymKey: Uint8Array | null = null;\n private pending = new Map<\n number,\n { resolve: (v: unknown) => void; reject: (e: Error) => void }\n >();\n private nextId = Date.now();\n\n constructor(config: WcProviderConfig) {\n this.config = config;\n this.chains = config.chains ?? [\"stacks:1\"];\n this.relay = new WcRelay(config.projectId, config.relayUrl);\n }\n\n /** Try restoring a persisted session. Returns true if valid session found. */\n restore(): boolean {\n try {\n const raw = getStorage()?.getItem(STORAGE_KEY);\n if (!raw) return false;\n const data = JSON.parse(raw) as WcSessionData;\n if (data.expiry < Date.now() / 1000) {\n getStorage()?.removeItem(STORAGE_KEY);\n return false;\n }\n this.sessionData = data;\n this.sessionSymKey = hexToBytes(data.symKey);\n // Subscribe to session topic for incoming requests (fire-and-forget)\n this.subscribeSession().catch(() => {});\n return true;\n } catch {\n return false;\n }\n }\n\n /** Initiate pairing. Returns URI for QR code + approval promise. */\n async pair(): Promise<WcPairResult> {\n this.pairingSymKey = generateSymKey();\n this.pairingTopic = symKeyToTopic(this.pairingSymKey);\n this.selfKeyPair = generateKeyPair();\n\n const symKeyHex = bytesToHex(this.pairingSymKey);\n const uri = `wc:${this.pairingTopic}@2?relay-protocol=irn&symKey=${symKeyHex}`;\n\n const approval = new Promise<WcSessionSettled>((resolve, reject) => {\n this.relay\n .subscribe(this.pairingTopic!, (msg) => {\n try {\n this.handlePairingMessage(msg.message, resolve, reject);\n } catch (err) {\n reject(err instanceof Error ? err : new Error(String(err)));\n }\n })\n .catch(reject);\n });\n\n return { uri, approval };\n }\n\n /** Send a JSON-RPC request over the session. */\n async request(method: string, params?: unknown): Promise<unknown> {\n if (!this.sessionData || !this.sessionSymKey) {\n throw new Error(\"No active WC session\");\n }\n\n const id = this.nextId++;\n const payload = {\n id,\n jsonrpc: \"2.0\" as const,\n method: \"wc_sessionRequest\",\n params: {\n request: { method, params },\n chainId: this.chains[0],\n },\n };\n\n return new Promise((resolve, reject) => {\n this.pending.set(id, { resolve, reject });\n this.relay\n .publishEncrypted(\n this.sessionData!.topic,\n this.sessionSymKey!,\n payload,\n 1108, // tag for session request\n SESSION_EXPIRY,\n )\n .catch((err) => {\n this.pending.delete(id);\n reject(err);\n });\n });\n }\n\n disconnect(): void {\n if (this.sessionData && this.sessionSymKey) {\n const id = this.nextId++;\n const payload = {\n id,\n jsonrpc: \"2.0\",\n method: \"wc_sessionDelete\",\n params: { code: 6000, message: \"User disconnected\" },\n };\n // Best-effort notify peer\n this.relay\n .publishEncrypted(\n this.sessionData.topic,\n this.sessionSymKey,\n payload,\n 1112,\n )\n .catch(() => {});\n }\n this.sessionData = null;\n this.sessionSymKey = null;\n this.pending.clear();\n getStorage()?.removeItem(STORAGE_KEY);\n this.relay.destroy();\n }\n\n get session(): WcSessionData | null {\n return this.sessionData;\n }\n\n // -- Internal --\n\n private handlePairingMessage(\n message: string,\n resolve: (v: WcSessionSettled) => void,\n reject: (e: Error) => void,\n ) {\n const envelope = decodeBase64(message);\n let plaintext: string;\n\n // Could be type 0 (symmetric) or type 1 (asymmetric)\n if (envelope[0] === 0x01 && this.selfKeyPair) {\n plaintext = decryptType1(this.selfKeyPair.privateKey, envelope);\n } else if (this.pairingSymKey) {\n plaintext = decryptType0(this.pairingSymKey, envelope);\n } else {\n return;\n }\n\n let rpc: WcJsonRpc;\n try {\n rpc = JSON.parse(plaintext) as WcJsonRpc;\n } catch {\n return;\n }\n\n if (rpc.method === \"wc_sessionPropose\") {\n this.handleProposal(rpc as WcJsonRpc<WcProposal>, resolve, reject).catch(reject);\n }\n }\n\n private async handleProposal(\n rpc: WcJsonRpc<WcProposal>,\n resolve: (v: WcSessionSettled) => void,\n reject: (e: Error) => void,\n ) {\n try {\n const proposal = rpc.params;\n const peerPublicKey = hexToBytes(proposal.proposer.publicKey);\n\n // Generate session key pair + derive session symmetric key\n const sessionKp = generateKeyPair();\n const sessionSymKey = deriveSymKey(sessionKp.privateKey, peerPublicKey);\n const sessionTopic = symKeyToTopic(sessionSymKey);\n\n const expiry = Math.floor(Date.now() / 1000) + SESSION_EXPIRY;\n\n const settled: WcSessionSettled = {\n relay: { protocol: \"irn\" },\n namespaces: {\n stacks: {\n chains: this.chains,\n methods: STACKS_METHODS,\n events: STACKS_EVENTS,\n accounts: this.chains.map((c) => `${c}:placeholder`),\n },\n },\n controller: {\n publicKey: bytesToHex(sessionKp.publicKey),\n metadata: this.config.metadata,\n },\n expiry,\n };\n\n // Approve the proposal on the pairing topic\n const approvePayload = {\n id: rpc.id,\n jsonrpc: \"2.0\",\n result: {\n relay: { protocol: \"irn\" },\n responderPublicKey: bytesToHex(sessionKp.publicKey),\n },\n };\n\n await this.relay.publishEncrypted(\n this.pairingTopic!,\n this.pairingSymKey!,\n approvePayload,\n 1101, // tag for session propose response\n );\n\n // Subscribe to session topic\n this.sessionSymKey = sessionSymKey;\n this.sessionData = {\n topic: sessionTopic,\n symKey: bytesToHex(sessionSymKey),\n peerMeta: proposal.proposer.metadata,\n expiry,\n accounts: [],\n controllerPublicKey: proposal.proposer.publicKey,\n };\n\n await this.subscribeSession();\n\n // Send session settle on the new session topic\n const settlePayload = {\n id: this.nextId++,\n jsonrpc: \"2.0\",\n method: \"wc_sessionSettle\",\n params: settled,\n };\n\n await this.relay.publishEncrypted(\n sessionTopic,\n sessionSymKey,\n settlePayload,\n 1104, // tag for session settle\n );\n\n // Persist\n getStorage()?.setItem(STORAGE_KEY, JSON.stringify(this.sessionData));\n\n resolve(settled);\n } catch (err) {\n reject(err instanceof Error ? err : new Error(String(err)));\n }\n }\n\n private async subscribeSession() {\n if (!this.sessionData || !this.sessionSymKey) return;\n\n const symKey = this.sessionSymKey;\n await this.relay.subscribe(this.sessionData.topic, (msg) => {\n try {\n const envelope = decodeBase64(msg.message);\n const plaintext = decryptType0(symKey, envelope);\n const rpc = JSON.parse(plaintext);\n\n // Response to our request\n if (\"id\" in rpc && this.pending.has(rpc.id)) {\n const p = this.pending.get(rpc.id)!;\n this.pending.delete(rpc.id);\n if (rpc.error) {\n p.reject(new Error(rpc.error.message ?? \"WC request failed\"));\n } else {\n p.resolve(rpc.result);\n }\n }\n\n // Session delete from peer\n if (rpc.method === \"wc_sessionDelete\") {\n this.sessionData = null;\n this.sessionSymKey = null;\n this.pending.clear();\n getStorage()?.removeItem(STORAGE_KEY);\n }\n } catch {\n // ignore malformed messages\n }\n });\n }\n}\n",
|
|
10
10
|
"/** WalletProvider adapter for WalletConnect v2 */\n\nimport type { WalletProvider } from \"../types.ts\";\nimport type { WcProviderConfig, WcPairResult, WcSessionData } from \"./types.ts\";\nimport { WcSession } from \"./session.ts\";\n\nexport class WalletConnectProvider implements WalletProvider {\n private session: WcSession;\n\n constructor(config: WcProviderConfig) {\n this.session = new WcSession(config);\n }\n\n /** Try restoring a persisted session. Returns true if valid. */\n restore(): boolean {\n return this.session.restore();\n }\n\n /** Initiate pairing. Returns URI for QR + approval promise. */\n async pair(): Promise<WcPairResult> {\n return this.session.pair();\n }\n\n async request(method: string, params?: any): Promise<any> {\n return this.session.request(method, params);\n }\n\n disconnect(): void {\n this.session.disconnect();\n }\n\n get sessionData(): WcSessionData | null {\n return this.session.session;\n }\n}\n",
|
|
11
11
|
"/**\n * Minimal QR code generator for WalletConnect URIs.\n * Produces SVG string. Byte-mode encoding, error correction level L.\n * Supports versions 1-10 (up to 271 bytes — plenty for WC URIs).\n */\n\n// Version capacity table (byte mode, EC level L)\nconst CAPACITIES = [0, 17, 32, 53, 78, 106, 134, 154, 192, 230, 271];\n\n// Generator polynomials for EC codewords per version (L level)\n// [totalCodewords, ecCodewordsPerBlock, numBlocks]\nconst EC_PARAMS: [number, number, number][] = [\n [0, 0, 0], // v0 placeholder\n [26, 7, 1],\n [44, 10, 1],\n [70, 15, 1],\n [100, 20, 1],\n [134, 26, 1],\n [172, 18, 2],\n [196, 20, 2],\n [242, 24, 2],\n [292, 30, 2],\n [346, 18, 4],\n];\n\nfunction selectVersion(len: number): number {\n for (let v = 1; v <= 10; v++) {\n if (len <= CAPACITIES[v]!) return v;\n }\n throw new Error(\"QR data too long\");\n}\n\n// GF(256) arithmetic for Reed-Solomon\nconst GF_EXP = new Uint8Array(512);\nconst GF_LOG = new Uint8Array(256);\n{\n let x = 1;\n for (let i = 0; i < 255; i++) {\n GF_EXP[i] = x;\n GF_LOG[x] = i;\n x = (x << 1) ^ (x >= 128 ? 0x11d : 0);\n }\n for (let i = 255; i < 512; i++) GF_EXP[i] = GF_EXP[i - 255]!;\n}\n\nfunction gfMul(a: number, b: number): number {\n if (a === 0 || b === 0) return 0;\n return GF_EXP[GF_LOG[a]! + GF_LOG[b]!]!;\n}\n\nfunction rsGenPoly(n: number): Uint8Array {\n let poly = new Uint8Array([1]);\n for (let i = 0; i < n; i++) {\n const next = new Uint8Array(poly.length + 1);\n for (let j = 0; j < poly.length; j++) {\n next[j] = next[j]! ^ poly[j]!;\n next[j + 1] = next[j + 1]! ^ gfMul(poly[j]!, GF_EXP[i]!);\n }\n poly = next;\n }\n return poly;\n}\n\nfunction rsEncode(data: Uint8Array, ecLen: number): Uint8Array {\n const gen = rsGenPoly(ecLen);\n const result = new Uint8Array(data.length + ecLen);\n result.set(data);\n for (let i = 0; i < data.length; i++) {\n const coef = result[i]!;\n if (coef === 0) continue;\n for (let j = 0; j < gen.length; j++) {\n result[i + j] = result[i + j]! ^ gfMul(gen[j]!, coef);\n }\n }\n return result.subarray(data.length);\n}\n\nfunction encodeData(bytes: Uint8Array, version: number): Uint8Array {\n const [totalCw, ecPerBlock, numBlocks] = EC_PARAMS[version]!;\n const dataCw = totalCw - ecPerBlock * numBlocks;\n\n // Build byte-mode bitstream\n const bits: number[] = [];\n const push = (val: number, len: number) => {\n for (let i = len - 1; i >= 0; i--) bits.push((val >> i) & 1);\n };\n\n push(0b0100, 4); // byte mode indicator\n push(bytes.length, version <= 9 ? 8 : 16); // character count\n for (const b of bytes) push(b, 8);\n push(0, 4); // terminator (up to 4 bits)\n\n // Pad to byte boundary\n while (bits.length % 8 !== 0) bits.push(0);\n\n // Build codeword array\n const codewords = new Uint8Array(dataCw);\n for (let i = 0; i < dataCw; i++) {\n let byte = 0;\n for (let j = 0; j < 8; j++) {\n const idx = i * 8 + j;\n byte = (byte << 1) | (idx < bits.length ? bits[idx]! : 0);\n }\n codewords[i] = byte;\n }\n\n // Pad codewords\n let padByte = 0xec;\n for (let i = Math.ceil(bits.length / 8); i < dataCw; i++) {\n codewords[i] = padByte;\n padByte = padByte === 0xec ? 0x11 : 0xec;\n }\n\n // Reed-Solomon EC\n const cwPerBlock = Math.floor(dataCw / numBlocks);\n const dataBlocks: Uint8Array[] = [];\n const ecBlocks: Uint8Array[] = [];\n let offset = 0;\n for (let b = 0; b < numBlocks; b++) {\n const blockLen = cwPerBlock + (b < dataCw % numBlocks ? 1 : 0);\n const block = codewords.subarray(offset, offset + blockLen);\n dataBlocks.push(block);\n ecBlocks.push(rsEncode(block, ecPerBlock));\n offset += blockLen;\n }\n\n // Interleave\n const result: number[] = [];\n const maxDataLen = Math.max(...dataBlocks.map((b) => b.length));\n for (let i = 0; i < maxDataLen; i++) {\n for (const block of dataBlocks) {\n if (i < block.length) result.push(block[i]!);\n }\n }\n for (let i = 0; i < ecPerBlock; i++) {\n for (const block of ecBlocks) {\n if (i < block.length) result.push(block[i]!);\n }\n }\n\n return new Uint8Array(result);\n}\n\n// QR matrix operations\n\ntype Matrix = Uint8Array[];\n\nfunction createMatrix(size: number): Matrix {\n return Array.from({ length: size }, () => new Uint8Array(size));\n}\n\nfunction setModule(m: Matrix, r: number, c: number, val: number, reserved: Matrix) {\n if (r >= 0 && r < m.length && c >= 0 && c < m.length) {\n m[r]![c] = val;\n reserved[r]![c] = 1;\n }\n}\n\nfunction addFinderPattern(m: Matrix, r: number, c: number, res: Matrix) {\n for (let dr = -1; dr <= 7; dr++) {\n for (let dc = -1; dc <= 7; dc++) {\n const rr = r + dr, cc = c + dc;\n if (rr < 0 || rr >= m.length || cc < 0 || cc >= m.length) continue;\n const inOuter = dr >= 0 && dr <= 6 && dc >= 0 && dc <= 6;\n const inInner = dr >= 2 && dr <= 4 && dc >= 2 && dc <= 4;\n const onBorder = dr === 0 || dr === 6 || dc === 0 || dc === 6;\n const val = inInner || (inOuter && onBorder) ? 1 : 0;\n setModule(m, rr, cc, val, res);\n }\n }\n}\n\nfunction addTimingPatterns(m: Matrix, res: Matrix) {\n for (let i = 8; i < m.length - 8; i++) {\n const val = i % 2 === 0 ? 1 : 0;\n if (!res[6]![i]) setModule(m, 6, i, val, res);\n if (!res[i]![6]) setModule(m, i, 6, val, res);\n }\n}\n\nfunction addFormatInfo(m: Matrix, res: Matrix) {\n // EC level L (01), mask 0 (000) → format bits 01000 → with BCH: 0x77C0 ... simplified\n // Use pre-computed format info for L/mask0: 111011111000100\n const fmt = 0b111011111000100;\n const n = m.length;\n for (let i = 0; i < 15; i++) {\n const bit = (fmt >> (14 - i)) & 1;\n // Around top-left finder\n if (i < 6) setModule(m, 8, i, bit, res);\n else if (i === 6) setModule(m, 8, 7, bit, res);\n else if (i === 7) setModule(m, 8, 8, bit, res);\n else if (i === 8) setModule(m, 7, 8, bit, res);\n else setModule(m, 14 - i, 8, bit, res);\n\n // Around other finders\n if (i < 8) setModule(m, n - 1 - i, 8, bit, res);\n else setModule(m, 8, n - 15 + i, bit, res);\n }\n // Dark module\n setModule(m, n - 8, 8, 1, res);\n}\n\nfunction placeData(m: Matrix, res: Matrix, data: Uint8Array) {\n const n = m.length;\n let bitIdx = 0;\n const totalBits = data.length * 8;\n\n let col = n - 1;\n let upward = true;\n\n while (col >= 0) {\n if (col === 6) col--; // skip timing column\n const rows = upward\n ? Array.from({ length: n }, (_, i) => n - 1 - i)\n : Array.from({ length: n }, (_, i) => i);\n\n for (const row of rows) {\n for (const dc of [0, -1]) {\n const c = col + dc;\n if (c < 0 || res[row]![c]) continue;\n if (bitIdx < totalBits) {\n const byteIdx = bitIdx >> 3;\n const bitPos = 7 - (bitIdx & 7);\n const bit = (data[byteIdx]! >> bitPos) & 1;\n // Apply mask 0: (row + col) % 2 === 0\n m[row]![c] = bit ^ ((row + c) % 2 === 0 ? 1 : 0);\n bitIdx++;\n }\n }\n }\n\n col -= 2;\n upward = !upward;\n }\n}\n\nfunction buildMatrix(version: number, codewords: Uint8Array): Matrix {\n const n = version * 4 + 17;\n const m = createMatrix(n);\n const res = createMatrix(n); // reserved modules\n\n // Finder patterns\n addFinderPattern(m, 0, 0, res);\n addFinderPattern(m, 0, n - 7, res);\n addFinderPattern(m, n - 7, 0, res);\n\n addTimingPatterns(m, res);\n addFormatInfo(m, res);\n\n // Alignment patterns for v >= 2\n if (version >= 2) {\n const pos = [6, version * 4 + 10]; // simplified for v2-v6\n for (const r of pos) {\n for (const c of pos) {\n // Skip if overlapping finder\n if (res[r]?.[c]) continue;\n for (let dr = -2; dr <= 2; dr++) {\n for (let dc = -2; dc <= 2; dc++) {\n const val =\n Math.abs(dr) === 2 || Math.abs(dc) === 2 || (dr === 0 && dc === 0) ? 1 : 0;\n setModule(m, r + dr, c + dc, val, res);\n }\n }\n }\n }\n }\n\n placeData(m, res, codewords);\n return m;\n}\n\n/** Generate a QR code as an SVG string for the given data. */\nexport function qrSvg(data: string, opts?: { size?: number; dark?: string; light?: string }): string {\n const size = opts?.size ?? 256;\n const dark = opts?.dark ?? \"#000000\";\n const light = opts?.light ?? \"#ffffff\";\n\n const bytes = new TextEncoder().encode(data);\n const version = selectVersion(bytes.length);\n const codewords = encodeData(bytes, version);\n const matrix = buildMatrix(version, codewords);\n\n const n = matrix.length;\n const quiet = 4; // quiet zone modules\n const total = n + quiet * 2;\n const scale = size / total;\n\n let paths = \"\";\n for (let r = 0; r < n; r++) {\n for (let c = 0; c < n; c++) {\n if (matrix[r]![c]) {\n const x = (c + quiet) * scale;\n const y = (r + quiet) * scale;\n paths += `M${x},${y}h${scale}v${scale}h-${scale}z`;\n }\n }\n }\n\n return [\n `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 ${size} ${size}\" width=\"${size}\" height=\"${size}\">`,\n `<rect width=\"${size}\" height=\"${size}\" fill=\"${light}\"/>`,\n `<path d=\"${paths}\" fill=\"${dark}\"/>`,\n `</svg>`,\n ].join(\"\");\n}\n",
|
|
12
12
|
"import type { WalletProvider } from \"./types.ts\";\nimport { ConnectError } from \"./errors.ts\";\n\ndeclare const window:\n | {\n StacksProvider?: WalletProvider;\n LeatherProvider?: WalletProvider;\n XverseProvider?: WalletProvider;\n HiroWalletProvider?: WalletProvider;\n }\n | 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 customProvider = provider;\n}\n\nexport function getProvider(): WalletProvider {\n if (customProvider) return customProvider;\n\n if (typeof window === \"undefined\") {\n throw new ConnectError(\"No Stacks wallet found\");\n }\n\n const provider =\n window.StacksProvider ??\n window.LeatherProvider ??\n window.XverseProvider ??\n window.HiroWalletProvider;\n\n if (!provider) throw new ConnectError(\"No Stacks wallet found\");\n return provider;\n}\n\nexport function isWalletInstalled(): boolean {\n return (\n typeof window !== \"undefined\" &&\n !!(\n window.StacksProvider ||\n window.LeatherProvider ||\n window.XverseProvider ||\n window.HiroWalletProvider\n )\n );\n}\n",
|
|
13
13
|
"/** Minimal wallet picker modal (injected wallets + WC QR) */\n\nimport { qrSvg } from \"./qr.ts\";\nimport { isWalletInstalled } from \"../provider.ts\";\n\ndeclare const document: any;\n\nconst MODAL_ID = \"sl-wc-modal\";\n\nconst STYLES = `\n #${MODAL_ID} { position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5) }\n #${MODAL_ID} .sl-wc-box { background:#fff;border-radius:16px;padding:24px;max-width:360px;width:90%;text-align:center;font-family:system-ui,sans-serif }\n #${MODAL_ID} .sl-wc-title { margin:0 0 16px;font-size:18px;font-weight:600;color:#1a1a1a }\n #${MODAL_ID} .sl-wc-btn { display:block;width:100%;padding:12px;margin:8px 0;border:1px solid #e5e5e5;border-radius:12px;background:#fff;cursor:pointer;font-size:15px;font-weight:500;color:#1a1a1a;transition:background .15s }\n #${MODAL_ID} .sl-wc-btn:hover { background:#f5f5f5 }\n #${MODAL_ID} .sl-wc-divider { margin:16px 0;color:#999;font-size:13px }\n #${MODAL_ID} .sl-wc-qr { margin:16px auto 0 }\n #${MODAL_ID} .sl-wc-close { position:absolute;top:12px;right:16px;background:none;border:none;font-size:20px;cursor:pointer;color:#999 }\n`;\n\nexport interface ModalOptions {\n wcUri?: string;\n onSelectInjected?: () => void;\n onClose?: () => void;\n}\n\nexport function showModal(opts: ModalOptions): () => void {\n if (typeof document === \"undefined\") return () => {};\n\n // Remove existing\n document.getElementById(MODAL_ID)?.remove();\n\n const overlay = document.createElement(\"div\");\n overlay.id = MODAL_ID;\n\n const style = document.createElement(\"style\");\n style.textContent = STYLES;\n overlay.appendChild(style);\n\n const box = document.createElement(\"div\");\n box.className = \"sl-wc-box\";\n box.style.position = \"relative\";\n\n // Close button\n const close = document.createElement(\"button\");\n close.className = \"sl-wc-close\";\n close.textContent = \"\\u00d7\";\n close.onclick = dismiss;\n box.appendChild(close);\n\n // Title\n const title = document.createElement(\"h2\");\n title.className = \"sl-wc-title\";\n title.textContent = \"Connect Wallet\";\n box.appendChild(title);\n\n // Injected wallet button\n if (isWalletInstalled()) {\n const btn = document.createElement(\"button\");\n btn.className = \"sl-wc-btn\";\n btn.textContent = \"Browser Wallet\";\n btn.onclick = () => {\n dismiss();\n opts.onSelectInjected?.();\n };\n box.appendChild(btn);\n }\n\n // QR code\n if (opts.wcUri) {\n if (isWalletInstalled()) {\n const divider = document.createElement(\"div\");\n divider.className = \"sl-wc-divider\";\n divider.textContent = \"or scan with mobile wallet\";\n box.appendChild(divider);\n }\n\n const qr = document.createElement(\"div\");\n qr.className = \"sl-wc-qr\";\n qr.innerHTML = qrSvg(opts.wcUri, { size: 240 });\n box.appendChild(qr);\n }\n\n overlay.appendChild(box);\n overlay.onclick = (e: any) => {\n if (e.target === overlay) dismiss();\n };\n\n document.body.appendChild(overlay);\n\n function dismiss() {\n overlay.remove();\n opts.onClose?.();\n }\n\n return dismiss;\n}\n\nexport function hideModal(): void {\n if (typeof document === \"undefined\") return;\n document.getElementById(MODAL_ID)?.remove();\n}\n"
|
|
14
14
|
],
|
|
15
|
-
"mappings": "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",
|
|
16
|
-
"debugId": "
|
|
15
|
+
"mappings": "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",
|
|
16
|
+
"debugId": "3D07215F415D197064756E2164756E21",
|
|
17
17
|
"names": []
|
|
18
18
|
}
|
package/dist/src/index.cjs.map
CHANGED
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
"import type { ClientConfig, Client } from \"./types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport { publicActions, type PublicActions } from \"./decorators/public.ts\";\n\n/** Configuration for {@link createPublicClient} (no account needed). */\nexport type PublicClientConfig = Omit<ClientConfig, \"account\">;\n\n/**\n * Create a read-only client pre-extended with {@link PublicActions}.\n * Use for queries, contract reads, and event subscriptions.\n */\nexport function createPublicClient(\n config: PublicClientConfig\n): Client<PublicActions> & PublicActions {\n return createClient(config).extend(publicActions);\n}\n",
|
|
8
8
|
"import type { Client } from \"../types.ts\";\nimport { sendTransaction, type SendTransactionParams, type SendTransactionResult } from \"../../actions/wallet/sendTransaction.ts\";\nimport { signTransactionAction, type SignTransactionParams } from \"../../actions/wallet/signTransaction.ts\";\nimport { transferStx, type TransferStxParams } from \"../../actions/wallet/transferStx.ts\";\nimport { callContract, type CallContractParams } from \"../../actions/wallet/callContract.ts\";\nimport { deployContract, type DeployContractParams } from \"../../actions/wallet/deployContract.ts\";\nimport { signMessage, type SignMessageParams } from \"../../actions/wallet/signMessage.ts\";\nimport { sponsorTransaction, type SponsorTransactionParams } from \"../../actions/wallet/sponsorTransaction.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\n\n/** Signing actions: send transactions, transfer STX, call/deploy contracts, sign messages. */\nexport type WalletActions = {\n sendTransaction: (params: SendTransactionParams) => Promise<SendTransactionResult>;\n signTransaction: (params: SignTransactionParams) => Promise<StacksTransaction>;\n transferStx: (params: TransferStxParams) => Promise<string>;\n callContract: (params: CallContractParams) => Promise<string>;\n deployContract: (params: DeployContractParams) => Promise<string>;\n signMessage: (params: SignMessageParams) => Promise<string>;\n sponsorTransaction: (params: SponsorTransactionParams) => Promise<StacksTransaction>;\n};\n\n/** Decorator that binds {@link WalletActions} to a client instance. */\nexport function walletActions(client: Client): WalletActions {\n return {\n sendTransaction: (params) => sendTransaction(client, params),\n signTransaction: (params) => signTransactionAction(client, params),\n transferStx: (params) => transferStx(client, params),\n callContract: (params) => callContract(client, params),\n deployContract: (params) => deployContract(client, params),\n signMessage: (params) => signMessage(client, params),\n sponsorTransaction: (params) => sponsorTransaction(client, params),\n };\n}\n",
|
|
9
9
|
"import type { ClientConfig, Client, Account } from \"./types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport { walletActions, type WalletActions } from \"./decorators/wallet.ts\";\n\n/** Configuration for {@link createWalletClient} — requires an account for signing. */\nexport type WalletClientConfig = ClientConfig & {\n account: Account;\n};\n\n/**\n * Create a client pre-extended with {@link WalletActions} for signing and broadcasting transactions.\n */\nexport function createWalletClient(\n config: WalletClientConfig\n): Client<WalletActions> & WalletActions & { account: Account } {\n return createClient(config).extend(walletActions) as any;\n}\n",
|
|
10
|
-
"import type { Client } from \"../types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport type { StacksTransaction, ClarityVersion, MultiSigHashMode } from \"../../transactions/types.ts\";\nimport { buildTokenTransfer, buildContractCall, buildContractDeploy } from \"../../transactions/build.ts\";\nimport { finalizeMultiSig
|
|
10
|
+
"import type { Client } from \"../types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport type { StacksTransaction, ClarityVersion, MultiSigHashMode } from \"../../transactions/types.ts\";\nimport { buildTokenTransfer, buildContractCall, buildContractDeploy } from \"../../transactions/build.ts\";\nimport { finalizeMultiSig } from \"../../transactions/multisig.ts\";\nimport { sendTransaction, type SendTransactionResult } from \"../../actions/wallet/sendTransaction.ts\";\nimport { getNonce } from \"../../actions/public/getNonce.ts\";\nimport { estimateFee } from \"../../actions/public/estimateFee.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\n\nexport type MultiSigTransferStxParams = {\n to: string;\n amount: IntegerType;\n memo?: string;\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type MultiSigCallContractParams = {\n contract: string;\n functionName: string;\n functionArgs?: ClarityValue[];\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type MultiSigDeployContractParams = {\n contractName: string;\n codeBody: string;\n clarityVersion?: ClarityVersion;\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type MultiSigSendTransactionParams = {\n transaction: StacksTransaction;\n attachment?: Uint8Array | string;\n};\n\n/** Multi-sig transaction actions: build unsigned transactions and broadcast with auto-finalization. */\nexport type MultiSigActions = {\n transferStx: (params: MultiSigTransferStxParams) => Promise<StacksTransaction>;\n callContract: (params: MultiSigCallContractParams) => Promise<StacksTransaction>;\n deployContract: (params: MultiSigDeployContractParams) => Promise<StacksTransaction>;\n sendTransaction: (params: MultiSigSendTransactionParams) => Promise<SendTransactionResult>;\n};\n\n/** Decorator that binds {@link MultiSigActions} to a multi-sig client. */\nexport function multisigActions(client: Client): MultiSigActions {\n const msConfig = (client as any)._multisigConfig as {\n signers: string[];\n requiredSignatures: number;\n hashMode?: MultiSigHashMode;\n };\n\n if (!msConfig) throw new Error(\"multisigActions requires a multi-sig client\");\n\n const { signers, requiredSignatures, hashMode } = msConfig;\n\n /** Resolve nonce from the multi-sig address */\n async function resolveNonce(nonce?: IntegerType): Promise<IntegerType> {\n if (nonce !== undefined) return nonce;\n const { makeMultiSigAddress } = await import(\"../../transactions/multisig.ts\");\n const address = makeMultiSigAddress(signers, requiredSignatures, client.chain);\n return getNonce(client, { address });\n }\n\n return {\n async transferStx(params) {\n const nonce = await resolveNonce(params.nonce);\n\n const unsigned = buildTokenTransfer({\n recipient: params.to,\n amount: params.amount,\n memo: params.memo,\n fee: params.fee ?? 0n,\n nonce,\n publicKeys: signers,\n signaturesRequired: requiredSignatures,\n hashMode,\n chain: client.chain,\n postConditionMode: params.postConditionMode,\n postConditions: params.postConditions,\n });\n\n if (params.fee === undefined) {\n const estimates = await estimateFee(client, { transaction: unsigned });\n const mid = estimates[1] ?? estimates[0];\n if (mid) {\n (unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n }\n }\n\n return unsigned;\n },\n\n async callContract(params) {\n const [contractAddress, contractName] = parseContractId(params.contract);\n const nonce = await resolveNonce(params.nonce);\n\n const unsigned = buildContractCall({\n contractAddress,\n contractName,\n functionName: params.functionName,\n functionArgs: params.functionArgs ?? [],\n fee: params.fee ?? 0n,\n nonce,\n publicKeys: signers,\n signaturesRequired: requiredSignatures,\n hashMode,\n chain: client.chain,\n postConditionMode: params.postConditionMode,\n postConditions: params.postConditions,\n });\n\n if (params.fee === undefined) {\n const estimates = await estimateFee(client, { transaction: unsigned });\n const mid = estimates[1] ?? estimates[0];\n if (mid) {\n (unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n }\n }\n\n return unsigned;\n },\n\n async deployContract(params) {\n const nonce = await resolveNonce(params.nonce);\n\n const unsigned = buildContractDeploy({\n contractName: params.contractName,\n codeBody: params.codeBody,\n clarityVersion: params.clarityVersion,\n fee: params.fee ?? 0n,\n nonce,\n publicKeys: signers,\n signaturesRequired: requiredSignatures,\n hashMode,\n chain: client.chain,\n postConditionMode: params.postConditionMode,\n postConditions: params.postConditions,\n });\n\n if (params.fee === undefined) {\n const estimates = await estimateFee(client, { transaction: unsigned });\n const mid = estimates[1] ?? estimates[0];\n if (mid) {\n (unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n }\n }\n\n return unsigned;\n },\n\n async sendTransaction(params) {\n // Auto-finalize before broadcast\n const finalized = finalizeMultiSig(params.transaction, signers);\n return sendTransaction(client, {\n transaction: finalized,\n attachment: params.attachment,\n });\n },\n };\n}\n",
|
|
11
11
|
"import type { ClientConfig, Client } from \"./types.ts\";\nimport type { MultiSigHashMode } from \"../transactions/types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport { multisigActions, type MultiSigActions } from \"./decorators/multisig.ts\";\n\n/** Configuration for {@link createMultiSigClient} — requires signer public keys and threshold. */\nexport type MultiSigClientConfig = Omit<ClientConfig, \"account\"> & {\n signers: string[];\n requiredSignatures: number;\n hashMode?: MultiSigHashMode;\n};\n\n/** A client pre-extended with {@link MultiSigActions} for m-of-n signing workflows. */\nexport type MultiSigClient = Client<MultiSigActions> & MultiSigActions;\n\n/**\n * Create a client for multi-sig transaction workflows.\n * Builds unsigned transactions that can be signed by each party then broadcast.\n */\nexport function createMultiSigClient(config: MultiSigClientConfig): MultiSigClient {\n const client = createClient(config);\n\n // Attach multi-sig config for the decorator to read\n (client as any)._multisigConfig = {\n signers: config.signers,\n requiredSignatures: config.requiredSignatures,\n hashMode: config.hashMode,\n };\n\n return client.extend(multisigActions) as any;\n}\n",
|
|
12
12
|
"import type { TransportConfig, RequestFn, Transport, RequestOptions } from \"./types.ts\";\n\nexport function createTransport(\n type: string,\n config: TransportConfig & { request: RequestFn }\n): Transport {\n return {\n type,\n request: config.request,\n config,\n };\n}\n\nexport async function fetchWithRetry(\n url: string,\n options: RequestInit,\n retryCount: number,\n retryDelay: number,\n timeout: number\n): Promise<Response> {\n let lastError: Error | undefined;\n\n for (let attempt = 0; attempt <= retryCount; attempt++) {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n const response = await fetch(url, {\n ...options,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (response.ok || response.status < 500) {\n return response;\n }\n\n lastError = new Error(`HTTP ${response.status}: ${response.statusText}`);\n } catch (error) {\n lastError =\n error instanceof Error ? error : new Error(String(error));\n }\n\n if (attempt < retryCount) {\n await new Promise((r) => setTimeout(r, retryDelay * (attempt + 1)));\n }\n }\n\n throw lastError ?? new Error(\"Request failed\");\n}\n\nexport function buildRequestFn(\n baseUrl: string,\n config: TransportConfig\n): RequestFn {\n const {\n timeout = 30_000,\n retryCount = 3,\n retryDelay = 150,\n fetchOptions = {},\n apiKey,\n } = config;\n\n return async (path: string, options?: RequestOptions) => {\n const url = `${baseUrl.replace(/\\/$/, \"\")}${path}`;\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...(fetchOptions.headers as Record<string, string>),\n ...options?.headers,\n };\n\n if (apiKey) {\n headers[\"x-api-key\"] = apiKey;\n }\n\n const init: RequestInit = {\n ...fetchOptions,\n method: options?.method ?? \"GET\",\n headers,\n };\n\n if (options?.body !== undefined) {\n init.body = JSON.stringify(options.body);\n }\n\n const response = await fetchWithRetry(\n url,\n init,\n retryCount,\n retryDelay,\n timeout\n );\n\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"application/json\")) {\n return response.json();\n }\n return response.text();\n };\n}\n",
|
|
13
|
-
"import type {
|
|
13
|
+
"import type { TransportConfig, TransportFactory } from \"./types.ts\";\nimport { buildRequestFn, createTransport } from \"./createTransport.ts\";\n\n/**\n * Create an HTTP transport for Stacks node RPC calls.\n * Falls back to the chain's default RPC URL, then `localhost:3999`.\n */\nexport function http(url?: string, config?: TransportConfig): TransportFactory {\n return (params) => {\n const resolvedUrl =\n url ?? params?.chain?.rpcUrls.default.http[0] ?? \"http://localhost:3999\";\n\n const mergedConfig: TransportConfig = {\n ...config,\n url: resolvedUrl,\n };\n\n return createTransport(\"http\", {\n ...mergedConfig,\n request: buildRequestFn(resolvedUrl, mergedConfig),\n });\n };\n}\n",
|
|
14
14
|
"import type { RequestFn, TransportFactory } from \"./types.ts\";\nimport { createTransport } from \"./createTransport.ts\";\n\n/** Create a transport backed by a user-provided request function. */\nexport function custom(params: { request: RequestFn }): TransportFactory {\n return () => createTransport(\"custom\", { request: params.request });\n}\n",
|
|
15
15
|
"import type { TransportFactory } from \"./types.ts\";\nimport { createTransport } from \"./createTransport.ts\";\n\n/** Create a transport that tries each transport in order until one succeeds. */\nexport function fallback(transports: TransportFactory[]): TransportFactory {\n return (params) => {\n const resolved = transports.map((t) => t(params));\n\n return createTransport(\"fallback\", {\n request: async (path, options) => {\n let lastError: Error | undefined;\n for (const transport of resolved) {\n try {\n return await transport.request(path, options);\n } catch (error) {\n lastError =\n error instanceof Error ? error : new Error(String(error));\n }\n }\n throw lastError ?? new Error(\"All transports failed\");\n },\n });\n };\n}\n",
|
|
16
|
-
"import type { StacksChain } from \"../chains/types.ts\";\nimport type { Transport, TransportConfig, TransportFactory } from \"./types.ts\";\nimport type { Subscription, WsSubscribeParams } from \"../subscriptions/types.ts\";\nimport { buildRequestFn } from \"./createTransport.ts\";\nimport { WebSocketError } from \"../errors/websocket.ts\";\n\n/** Configuration for the WebSocket transport, extending base {@link TransportConfig}. */\nexport type WebSocketTransportConfig = TransportConfig & {\n /** WebSocket URL (resolved from chain if omitted) */\n url?: string;\n /** Enable auto-reconnect (default: true) */\n reconnect?: boolean;\n /** Max reconnect attempts (default: 10) */\n reconnectMaxAttempts?: number;\n /** Base delay in ms for exponential backoff (default: 1000) */\n reconnectBaseDelay?: number;\n};\n\n/** Transport with WebSocket subscription capabilities and auto-reconnect. */\nexport type WebSocketTransport = Transport & {\n type: \"webSocket\";\n subscribe: (\n params: WsSubscribeParams,\n callback: (data: any) => void\n ) => Promise<Subscription>;\n destroy: () => void;\n};\n\ntype JsonRpcRequest = {\n jsonrpc: \"2.0\";\n id: number;\n method: string;\n params: Record<string, unknown>;\n};\n\ntype JsonRpcResponse = {\n jsonrpc: \"2.0\";\n id: number;\n result?: unknown;\n error?: { code: number; message: string };\n};\n\ntype JsonRpcNotification = {\n jsonrpc: \"2.0\";\n method: string;\n params: unknown;\n};\n\ntype SubEntry = {\n params: WsSubscribeParams;\n callbacks: Set<(data: any) => void>;\n};\n\nfunction subKey(params: WsSubscribeParams): string {\n const parts: string[] = [params.event];\n if (params.tx_id) parts.push(`tx_id:${params.tx_id}`);\n if (params.address) parts.push(`address:${params.address}`);\n if (params.asset_identifier)\n parts.push(`asset:${params.asset_identifier}`);\n if (params.value) parts.push(`value:${params.value}`);\n return parts.join(\"|\");\n}\n\nexport class WebSocketChannel {\n private ws: WebSocket | null = null;\n private url: string;\n private nextId = 1;\n private pending = new Map<\n number,\n { resolve: (v: unknown) => void; reject: (e: Error) => void }\n >();\n private subs = new Map<string, SubEntry>();\n private destroyed = false;\n private reconnecting = false;\n private reconnectAttempt = 0;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\n private reconnect: boolean;\n private reconnectMaxAttempts: number;\n private reconnectBaseDelay: number;\n\n constructor(url: string, config?: WebSocketTransportConfig) {\n this.url = url;\n this.reconnect = config?.reconnect ?? true;\n this.reconnectMaxAttempts = config?.reconnectMaxAttempts ?? 10;\n this.reconnectBaseDelay = config?.reconnectBaseDelay ?? 1000;\n }\n\n private connect(): Promise<void> {\n if (this.ws?.readyState === WebSocket.OPEN) return Promise.resolve();\n if (this.ws?.readyState === WebSocket.CONNECTING) {\n return new Promise((resolve, reject) => {\n const onOpen = () => {\n this.ws?.removeEventListener(\"error\", onError);\n resolve();\n };\n const onError = (e: Event) => {\n this.ws?.removeEventListener(\"open\", onOpen);\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n };\n this.ws!.addEventListener(\"open\", onOpen, { once: true });\n this.ws!.addEventListener(\"error\", onError, { once: true });\n });\n }\n\n return new Promise((resolve, reject) => {\n this.ws = new WebSocket(this.url);\n\n this.ws.addEventListener(\n \"open\",\n () => {\n this.reconnectAttempt = 0;\n this.reconnecting = false;\n resolve();\n },\n { once: true }\n );\n\n this.ws.addEventListener(\n \"error\",\n (e) => {\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n },\n { once: true }\n );\n\n this.ws.addEventListener(\"message\", (event) => {\n this.handleMessage(event.data);\n });\n\n this.ws.addEventListener(\"close\", () => {\n if (!this.destroyed) this.handleDisconnect();\n });\n });\n }\n\n private handleMessage(raw: string | ArrayBuffer | Blob) {\n const data =\n typeof raw === \"string\" ? raw : new TextDecoder().decode(raw as ArrayBuffer);\n\n let msg: JsonRpcResponse | JsonRpcNotification;\n try {\n msg = JSON.parse(data);\n } catch {\n return;\n }\n\n // RPC response\n if (\"id\" in msg && msg.id != null) {\n const rpc = msg as JsonRpcResponse;\n const p = this.pending.get(rpc.id);\n if (!p) return;\n this.pending.delete(rpc.id);\n if (rpc.error) {\n p.reject(\n new WebSocketError(rpc.error.message, {\n details: `JSON-RPC error ${rpc.error.code}`,\n })\n );\n } else {\n p.resolve(rpc.result);\n }\n return;\n }\n\n // Notification\n const notif = msg as JsonRpcNotification;\n if (!notif.method) return;\n\n for (const [, entry] of this.subs) {\n if (entry.params.event === notif.method) {\n for (const cb of entry.callbacks) {\n try {\n cb(notif.params);\n } catch {\n // subscriber error — don't crash channel\n }\n }\n }\n }\n }\n\n private handleDisconnect() {\n this.ws = null;\n\n // reject pending RPCs\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket disconnected\"));\n }\n this.pending.clear();\n\n if (\n this.reconnect &&\n this.subs.size > 0 &&\n this.reconnectAttempt < this.reconnectMaxAttempts\n ) {\n this.scheduleReconnect();\n }\n }\n\n private scheduleReconnect() {\n if (this.destroyed || this.reconnecting) return;\n this.reconnecting = true;\n const delay = this.reconnectBaseDelay * 2 ** this.reconnectAttempt;\n this.reconnectAttempt++;\n\n this.reconnectTimer = setTimeout(async () => {\n this.reconnecting = false;\n try {\n await this.connect();\n await this.resubscribeAll();\n } catch {\n if (!this.destroyed && this.subs.size > 0) {\n this.handleDisconnect();\n }\n }\n }, delay);\n }\n\n private async resubscribeAll() {\n for (const [, entry] of this.subs) {\n await this.sendRpc(\"subscribe\", entry.params);\n }\n }\n\n private sendRpc(method: string, params: Record<string, unknown>): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n return reject(new WebSocketError(\"WebSocket not connected\"));\n }\n\n const id = this.nextId++;\n const msg: JsonRpcRequest = {\n jsonrpc: \"2.0\",\n id,\n method,\n params,\n };\n\n this.pending.set(id, { resolve, reject });\n this.ws.send(JSON.stringify(msg));\n });\n }\n\n async subscribe(\n params: WsSubscribeParams,\n callback: (data: any) => void\n ): Promise<Subscription> {\n if (this.destroyed) {\n throw new WebSocketError(\"WebSocket channel has been destroyed\");\n }\n\n await this.connect();\n\n const key = subKey(params);\n let entry = this.subs.get(key);\n\n if (entry) {\n // Dedup: reuse existing WS subscription\n entry.callbacks.add(callback);\n } else {\n // New WS subscription\n entry = { params, callbacks: new Set([callback]) };\n this.subs.set(key, entry);\n await this.sendRpc(\"subscribe\", params);\n }\n\n return {\n unsubscribe: () => {\n const e = this.subs.get(key);\n if (!e) return;\n e.callbacks.delete(callback);\n if (e.callbacks.size === 0) {\n this.subs.delete(key);\n // Best-effort unsubscribe RPC\n if (this.ws?.readyState === WebSocket.OPEN) {\n this.sendRpc(\"unsubscribe\", params).catch(() => {});\n }\n // Auto-close when no subscribers remain\n if (this.subs.size === 0) this.closeQuietly();\n }\n },\n };\n }\n\n private closeQuietly() {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n destroy(): void {\n this.destroyed = true;\n if (this.reconnectTimer) clearTimeout(this.reconnectTimer);\n\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket channel destroyed\"));\n }\n this.pending.clear();\n this.subs.clear();\n\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n}\n\nfunction deriveWsUrl(httpUrl: string): string {\n return httpUrl.replace(/^http/, \"ws\").replace(/\\/$/, \"\") + \"/extended/v1/ws\";\n}\n\n/**\n * Create a WebSocket transport for real-time Stacks event subscriptions.\n * HTTP requests use the resolved RPC URL; subscriptions use the WS endpoint.\n */\nexport function webSocket(\n url?: string,\n config?: WebSocketTransportConfig\n): TransportFactory {\n return (params) => {\n const httpUrl =\n config?.url ??\n params?.chain?.rpcUrls.default.http[0] ??\n \"http://localhost:3999\";\n\n const wsUrl =\n url ??\n params?.chain?.rpcUrls.default.ws?.[0] ??\n deriveWsUrl(httpUrl);\n\n const resolvedHttpConfig: TransportConfig = {\n ...config,\n url: httpUrl,\n };\n\n const channel = new WebSocketChannel(wsUrl, config);\n\n const transport: WebSocketTransport = {\n type: \"webSocket\",\n request: buildRequestFn(httpUrl, resolvedHttpConfig),\n config: resolvedHttpConfig,\n subscribe: (subParams, callback) =>\n channel.subscribe(subParams, callback),\n destroy: () => channel.destroy(),\n };\n\n return transport;\n };\n}\n"
|
|
16
|
+
"import type { Transport, TransportConfig, TransportFactory } from \"./types.ts\";\nimport type { Subscription, WsSubscribeParams } from \"../subscriptions/types.ts\";\nimport { buildRequestFn } from \"./createTransport.ts\";\nimport { WebSocketError } from \"../errors/websocket.ts\";\n\n/** Configuration for the WebSocket transport, extending base {@link TransportConfig}. */\nexport type WebSocketTransportConfig = TransportConfig & {\n /** WebSocket URL (resolved from chain if omitted) */\n url?: string;\n /** Enable auto-reconnect (default: true) */\n reconnect?: boolean;\n /** Max reconnect attempts (default: 10) */\n reconnectMaxAttempts?: number;\n /** Base delay in ms for exponential backoff (default: 1000) */\n reconnectBaseDelay?: number;\n};\n\n/** Transport with WebSocket subscription capabilities and auto-reconnect. */\nexport type WebSocketTransport = Transport & {\n type: \"webSocket\";\n subscribe: (\n params: WsSubscribeParams,\n callback: (data: any) => void\n ) => Promise<Subscription>;\n destroy: () => void;\n};\n\ntype JsonRpcRequest = {\n jsonrpc: \"2.0\";\n id: number;\n method: string;\n params: Record<string, unknown>;\n};\n\ntype JsonRpcResponse = {\n jsonrpc: \"2.0\";\n id: number;\n result?: unknown;\n error?: { code: number; message: string };\n};\n\ntype JsonRpcNotification = {\n jsonrpc: \"2.0\";\n method: string;\n params: unknown;\n};\n\ntype SubEntry = {\n params: WsSubscribeParams;\n callbacks: Set<(data: any) => void>;\n};\n\nfunction subKey(params: WsSubscribeParams): string {\n const parts: string[] = [params.event];\n if (params.tx_id) parts.push(`tx_id:${params.tx_id}`);\n if (params.address) parts.push(`address:${params.address}`);\n if (params.asset_identifier)\n parts.push(`asset:${params.asset_identifier}`);\n if (params.value) parts.push(`value:${params.value}`);\n return parts.join(\"|\");\n}\n\nexport class WebSocketChannel {\n private ws: WebSocket | null = null;\n private url: string;\n private nextId = 1;\n private pending = new Map<\n number,\n { resolve: (v: unknown) => void; reject: (e: Error) => void }\n >();\n private subs = new Map<string, SubEntry>();\n private destroyed = false;\n private reconnecting = false;\n private reconnectAttempt = 0;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\n private reconnect: boolean;\n private reconnectMaxAttempts: number;\n private reconnectBaseDelay: number;\n\n constructor(url: string, config?: WebSocketTransportConfig) {\n this.url = url;\n this.reconnect = config?.reconnect ?? true;\n this.reconnectMaxAttempts = config?.reconnectMaxAttempts ?? 10;\n this.reconnectBaseDelay = config?.reconnectBaseDelay ?? 1000;\n }\n\n private connect(): Promise<void> {\n if (this.ws?.readyState === WebSocket.OPEN) return Promise.resolve();\n if (this.ws?.readyState === WebSocket.CONNECTING) {\n return new Promise((resolve, reject) => {\n const onOpen = () => {\n this.ws?.removeEventListener(\"error\", onError);\n resolve();\n };\n const onError = (e: Event) => {\n this.ws?.removeEventListener(\"open\", onOpen);\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n };\n this.ws!.addEventListener(\"open\", onOpen, { once: true });\n this.ws!.addEventListener(\"error\", onError, { once: true });\n });\n }\n\n return new Promise((resolve, reject) => {\n this.ws = new WebSocket(this.url);\n\n this.ws.addEventListener(\n \"open\",\n () => {\n this.reconnectAttempt = 0;\n this.reconnecting = false;\n resolve();\n },\n { once: true }\n );\n\n this.ws.addEventListener(\n \"error\",\n (e) => {\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n },\n { once: true }\n );\n\n this.ws.addEventListener(\"message\", (event) => {\n this.handleMessage(event.data);\n });\n\n this.ws.addEventListener(\"close\", () => {\n if (!this.destroyed) this.handleDisconnect();\n });\n });\n }\n\n private handleMessage(raw: string | ArrayBuffer | Blob) {\n const data =\n typeof raw === \"string\" ? raw : new TextDecoder().decode(raw as ArrayBuffer);\n\n let msg: JsonRpcResponse | JsonRpcNotification;\n try {\n msg = JSON.parse(data);\n } catch {\n return;\n }\n\n // RPC response\n if (\"id\" in msg && msg.id != null) {\n const rpc = msg as JsonRpcResponse;\n const p = this.pending.get(rpc.id);\n if (!p) return;\n this.pending.delete(rpc.id);\n if (rpc.error) {\n p.reject(\n new WebSocketError(rpc.error.message, {\n details: `JSON-RPC error ${rpc.error.code}`,\n })\n );\n } else {\n p.resolve(rpc.result);\n }\n return;\n }\n\n // Notification\n const notif = msg as JsonRpcNotification;\n if (!notif.method) return;\n\n for (const [, entry] of this.subs) {\n if (entry.params.event === notif.method) {\n for (const cb of entry.callbacks) {\n try {\n cb(notif.params);\n } catch {\n // subscriber error — don't crash channel\n }\n }\n }\n }\n }\n\n private handleDisconnect() {\n this.ws = null;\n\n // reject pending RPCs\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket disconnected\"));\n }\n this.pending.clear();\n\n if (\n this.reconnect &&\n this.subs.size > 0 &&\n this.reconnectAttempt < this.reconnectMaxAttempts\n ) {\n this.scheduleReconnect();\n }\n }\n\n private scheduleReconnect() {\n if (this.destroyed || this.reconnecting) return;\n this.reconnecting = true;\n const delay = this.reconnectBaseDelay * 2 ** this.reconnectAttempt;\n this.reconnectAttempt++;\n\n this.reconnectTimer = setTimeout(async () => {\n this.reconnecting = false;\n try {\n await this.connect();\n await this.resubscribeAll();\n } catch {\n if (!this.destroyed && this.subs.size > 0) {\n this.handleDisconnect();\n }\n }\n }, delay);\n }\n\n private async resubscribeAll() {\n for (const [, entry] of this.subs) {\n await this.sendRpc(\"subscribe\", entry.params);\n }\n }\n\n private sendRpc(method: string, params: Record<string, unknown>): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n return reject(new WebSocketError(\"WebSocket not connected\"));\n }\n\n const id = this.nextId++;\n const msg: JsonRpcRequest = {\n jsonrpc: \"2.0\",\n id,\n method,\n params,\n };\n\n this.pending.set(id, { resolve, reject });\n this.ws.send(JSON.stringify(msg));\n });\n }\n\n async subscribe(\n params: WsSubscribeParams,\n callback: (data: any) => void\n ): Promise<Subscription> {\n if (this.destroyed) {\n throw new WebSocketError(\"WebSocket channel has been destroyed\");\n }\n\n await this.connect();\n\n const key = subKey(params);\n let entry = this.subs.get(key);\n\n if (entry) {\n // Dedup: reuse existing WS subscription\n entry.callbacks.add(callback);\n } else {\n // New WS subscription\n entry = { params, callbacks: new Set([callback]) };\n this.subs.set(key, entry);\n await this.sendRpc(\"subscribe\", params);\n }\n\n return {\n unsubscribe: () => {\n const e = this.subs.get(key);\n if (!e) return;\n e.callbacks.delete(callback);\n if (e.callbacks.size === 0) {\n this.subs.delete(key);\n // Best-effort unsubscribe RPC\n if (this.ws?.readyState === WebSocket.OPEN) {\n this.sendRpc(\"unsubscribe\", params).catch(() => {});\n }\n // Auto-close when no subscribers remain\n if (this.subs.size === 0) this.closeQuietly();\n }\n },\n };\n }\n\n private closeQuietly() {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n destroy(): void {\n this.destroyed = true;\n if (this.reconnectTimer) clearTimeout(this.reconnectTimer);\n\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket channel destroyed\"));\n }\n this.pending.clear();\n this.subs.clear();\n\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n}\n\nfunction deriveWsUrl(httpUrl: string): string {\n return httpUrl.replace(/^http/, \"ws\").replace(/\\/$/, \"\") + \"/extended/v1/ws\";\n}\n\n/**\n * Create a WebSocket transport for real-time Stacks event subscriptions.\n * HTTP requests use the resolved RPC URL; subscriptions use the WS endpoint.\n */\nexport function webSocket(\n url?: string,\n config?: WebSocketTransportConfig\n): TransportFactory {\n return (params) => {\n const httpUrl =\n config?.url ??\n params?.chain?.rpcUrls.default.http[0] ??\n \"http://localhost:3999\";\n\n const wsUrl =\n url ??\n params?.chain?.rpcUrls.default.ws?.[0] ??\n deriveWsUrl(httpUrl);\n\n const resolvedHttpConfig: TransportConfig = {\n ...config,\n url: httpUrl,\n };\n\n const channel = new WebSocketChannel(wsUrl, config);\n\n const transport: WebSocketTransport = {\n type: \"webSocket\",\n request: buildRequestFn(httpUrl, resolvedHttpConfig),\n config: resolvedHttpConfig,\n subscribe: (subParams, callback) =>\n channel.subscribe(subParams, callback),\n destroy: () => channel.destroy(),\n };\n\n return transport;\n };\n}\n"
|
|
17
17
|
],
|
|
18
|
-
"mappings": "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",
|
|
18
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,YAAY,IAAI,IAAI,CAAC,SAAS,WAAW,aAAa,WAAW,QAAQ,CAAC;AAEhF,SAAS,UAAU,CAAC,MAAgC;AAAA,EAClD,OAAQ,CAAC,OAAY;AAAA,IACnB,MAAM,aAAa,GAAG,IAAI;AAAA,IAC1B,MAAM,OAAO,KAAK,KAAK;AAAA,IACvB,YAAY,KAAK,UAAU,OAAO,QAAQ,UAAU,GAAG;AAAA,MACrD,IAAI,UAAU,IAAI,GAAG;AAAA,QAAG;AAAA,MACvB,KAAa,OAAO;AAAA,IACvB;AAAA,IACA,KAAK,SAAS,WAAW,IAAI;AAAA,IAC7B,OAAO;AAAA;AAAA;AAQJ,SAAS,YAEf,CAAC,QAAyC;AAAA,EACzC,MAAM,YAAY,OAAO,UAAU,EAAE,OAAO,OAAO,MAAM,CAAC;AAAA,EAE1D,MAAM,SAAiB;AAAA,IACrB,OAAO,OAAO;AAAA,IACd,SAAS,OAAO;AAAA,IAChB;AAAA,IACA,SAAS,UAAU;AAAA,IACnB,QAAQ;AAAA,EACV;AAAA,EAEA,OAAO,SAAS,WAAW,MAAM;AAAA,EAEjC,OAAO;AAAA;;ACWF,SAAS,aAAa,CAAC,QAA+B;AAAA,EAC3D,OAAO;AAAA,IACL,UAAU,CAAC,WAAW,SAAS,QAAQ,MAAM;AAAA,IAC7C,YAAY,CAAC,WAAW,WAAW,QAAQ,MAAM;AAAA,IACjD,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,UAAU,CAAC,WAAW,SAAS,QAAQ,MAAM;AAAA,IAC7C,gBAAgB,MAAM,eAAe,MAAM;AAAA,IAC3C,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,WAAW,CAAC,WAAW,UAAU,QAAQ,MAAM;AAAA,IAC/C,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,qBAAqB,CAAC,WAAW,oBAAoB,QAAQ,MAAM;AAAA,IACnE,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,kBAAkB,CAAC,WAAW,iBAAiB,QAAQ,MAAM;AAAA,IAC7D,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,qBAAqB,CAAC,WAAW,oBAAoB,QAAQ,MAAM;AAAA,IACnE,eAAe,CAAC,WAAW,cAAc,QAAQ,MAAM;AAAA,EACzD;AAAA;;;ACxDK,SAAS,kBAAkB,CAChC,QACuC;AAAA,EACvC,OAAO,aAAa,MAAM,EAAE,OAAO,aAAa;AAAA;;ACQ3C,SAAS,aAAa,CAAC,QAA+B;AAAA,EAC3D,OAAO;AAAA,IACL,iBAAiB,CAAC,WAAW,gBAAgB,QAAQ,MAAM;AAAA,IAC3D,iBAAiB,CAAC,WAAW,sBAAsB,QAAQ,MAAM;AAAA,IACjE,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,oBAAoB,CAAC,WAAW,mBAAmB,QAAQ,MAAM;AAAA,EACnE;AAAA;;;ACnBK,SAAS,kBAAkB,CAChC,QAC8D;AAAA,EAC9D,OAAO,aAAa,MAAM,EAAE,OAAO,aAAa;AAAA;;ACyC3C,SAAS,eAAe,CAAC,QAAiC;AAAA,EAC/D,MAAM,WAAY,OAAe;AAAA,EAMjC,IAAI,CAAC;AAAA,IAAU,MAAM,IAAI,MAAM,6CAA6C;AAAA,EAE5E,QAAQ,SAAS,oBAAoB,aAAa;AAAA,EAGlD,eAAe,YAAY,CAAC,OAA2C;AAAA,IACrE,IAAI,UAAU;AAAA,MAAW,OAAO;AAAA,IAChC,QAAQ,wBAAwB,MAAa;AAAA,IAC7C,MAAM,UAAU,oBAAoB,SAAS,oBAAoB,OAAO,KAAK;AAAA,IAC7E,OAAO,SAAS,QAAQ,EAAE,QAAQ,CAAC;AAAA;AAAA,EAGrC,OAAO;AAAA,SACC,YAAW,CAAC,QAAQ;AAAA,MACxB,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAK;AAAA,MAE7C,MAAM,WAAW,mBAAmB;AAAA,QAClC,WAAW,OAAO;AAAA,QAClB,QAAQ,OAAO;AAAA,QACf,MAAM,OAAO;AAAA,QACb,KAAK,OAAO,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB;AAAA,QACA,OAAO,OAAO;AAAA,QACd,mBAAmB,OAAO;AAAA,QAC1B,gBAAgB,OAAO;AAAA,MACzB,CAAC;AAAA,MAED,IAAI,OAAO,QAAQ,WAAW;AAAA,QAC5B,MAAM,YAAY,MAAM,YAAY,QAAQ,EAAE,aAAa,SAAS,CAAC;AAAA,QACrE,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,QACtC,IAAI,KAAK;AAAA,UACN,SAAS,KAAK,kBAA0B,MAAM,OAAO,IAAI,GAAG;AAAA,QAC/D;AAAA,MACF;AAAA,MAEA,OAAO;AAAA;AAAA,SAGH,aAAY,CAAC,QAAQ;AAAA,MACzB,OAAO,iBAAiB,gBAAgB,gBAAgB,OAAO,QAAQ;AAAA,MACvE,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAK;AAAA,MAE7C,MAAM,WAAW,kBAAkB;AAAA,QACjC;AAAA,QACA;AAAA,QACA,cAAc,OAAO;AAAA,QACrB,cAAc,OAAO,gBAAgB,CAAC;AAAA,QACtC,KAAK,OAAO,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB;AAAA,QACA,OAAO,OAAO;AAAA,QACd,mBAAmB,OAAO;AAAA,QAC1B,gBAAgB,OAAO;AAAA,MACzB,CAAC;AAAA,MAED,IAAI,OAAO,QAAQ,WAAW;AAAA,QAC5B,MAAM,YAAY,MAAM,YAAY,QAAQ,EAAE,aAAa,SAAS,CAAC;AAAA,QACrE,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,QACtC,IAAI,KAAK;AAAA,UACN,SAAS,KAAK,kBAA0B,MAAM,OAAO,IAAI,GAAG;AAAA,QAC/D;AAAA,MACF;AAAA,MAEA,OAAO;AAAA;AAAA,SAGH,eAAc,CAAC,QAAQ;AAAA,MAC3B,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAK;AAAA,MAE7C,MAAM,WAAW,oBAAoB;AAAA,QACnC,cAAc,OAAO;AAAA,QACrB,UAAU,OAAO;AAAA,QACjB,gBAAgB,OAAO;AAAA,QACvB,KAAK,OAAO,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB;AAAA,QACA,OAAO,OAAO;AAAA,QACd,mBAAmB,OAAO;AAAA,QAC1B,gBAAgB,OAAO;AAAA,MACzB,CAAC;AAAA,MAED,IAAI,OAAO,QAAQ,WAAW;AAAA,QAC5B,MAAM,YAAY,MAAM,YAAY,QAAQ,EAAE,aAAa,SAAS,CAAC;AAAA,QACrE,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,QACtC,IAAI,KAAK;AAAA,UACN,SAAS,KAAK,kBAA0B,MAAM,OAAO,IAAI,GAAG;AAAA,QAC/D;AAAA,MACF;AAAA,MAEA,OAAO;AAAA;AAAA,SAGH,gBAAe,CAAC,QAAQ;AAAA,MAE5B,MAAM,YAAY,iBAAiB,OAAO,aAAa,OAAO;AAAA,MAC9D,OAAO,gBAAgB,QAAQ;AAAA,QAC7B,aAAa;AAAA,QACb,YAAY,OAAO;AAAA,MACrB,CAAC;AAAA;AAAA,EAEL;AAAA;;;ACvJK,SAAS,oBAAoB,CAAC,QAA8C;AAAA,EACjF,MAAM,SAAS,aAAa,MAAM;AAAA,EAGjC,OAAe,kBAAkB;AAAA,IAChC,SAAS,OAAO;AAAA,IAChB,oBAAoB,OAAO;AAAA,IAC3B,UAAU,OAAO;AAAA,EACnB;AAAA,EAEA,OAAO,OAAO,OAAO,eAAe;AAAA;;AC3B/B,SAAS,eAAe,CAC7B,MACA,QACW;AAAA,EACX,OAAO;AAAA,IACL;AAAA,IACA,SAAS,OAAO;AAAA,IAChB;AAAA,EACF;AAAA;AAGF,eAAsB,cAAc,CAClC,KACA,SACA,YACA,YACA,SACmB;AAAA,EACnB,IAAI;AAAA,EAEJ,SAAS,UAAU,EAAG,WAAW,YAAY,WAAW;AAAA,IACtD,IAAI;AAAA,MACF,MAAM,aAAa,IAAI;AAAA,MACvB,MAAM,YAAY,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO;AAAA,MAE9D,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,WAC7B;AAAA,QACH,QAAQ,WAAW;AAAA,MACrB,CAAC;AAAA,MAED,aAAa,SAAS;AAAA,MAEtB,IAAI,SAAS,MAAM,SAAS,SAAS,KAAK;AAAA,QACxC,OAAO;AAAA,MACT;AAAA,MAEA,YAAY,IAAI,MAAM,QAAQ,SAAS,WAAW,SAAS,YAAY;AAAA,MACvE,OAAO,OAAO;AAAA,MACd,YACE,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA;AAAA,IAG5D,IAAI,UAAU,YAAY;AAAA,MACxB,MAAM,IAAI,QAAQ,CAAC,MAAM,WAAW,GAAG,cAAc,UAAU,EAAE,CAAC;AAAA,IACpE;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,IAAI,MAAM,gBAAgB;AAAA;AAGxC,SAAS,cAAc,CAC5B,SACA,QACW;AAAA,EACX;AAAA,IACE,UAAU;AAAA,IACV,aAAa;AAAA,IACb,aAAa;AAAA,IACb,eAAe,CAAC;AAAA,IAChB;AAAA,MACE;AAAA,EAEJ,OAAO,OAAO,MAAc,YAA6B;AAAA,IACvD,MAAM,MAAM,GAAG,QAAQ,QAAQ,OAAO,EAAE,IAAI;AAAA,IAC5C,MAAM,UAAkC;AAAA,MACtC,gBAAgB;AAAA,SACZ,aAAa;AAAA,SACd,SAAS;AAAA,IACd;AAAA,IAEA,IAAI,QAAQ;AAAA,MACV,QAAQ,eAAe;AAAA,IACzB;AAAA,IAEA,MAAM,OAAoB;AAAA,SACrB;AAAA,MACH,QAAQ,SAAS,UAAU;AAAA,MAC3B;AAAA,IACF;AAAA,IAEA,IAAI,SAAS,SAAS,WAAW;AAAA,MAC/B,KAAK,OAAO,KAAK,UAAU,QAAQ,IAAI;AAAA,IACzC;AAAA,IAEA,MAAM,WAAW,MAAM,eACrB,KACA,MACA,YACA,YACA,OACF;AAAA,IAEA,MAAM,cAAc,SAAS,QAAQ,IAAI,cAAc,KAAK;AAAA,IAC5D,IAAI,YAAY,SAAS,kBAAkB,GAAG;AAAA,MAC5C,OAAO,SAAS,KAAK;AAAA,IACvB;AAAA,IACA,OAAO,SAAS,KAAK;AAAA;AAAA;;;AC3FlB,SAAS,IAAI,CAAC,KAAc,QAA4C;AAAA,EAC7E,OAAO,CAAC,WAAW;AAAA,IACjB,MAAM,cACJ,OAAO,QAAQ,OAAO,QAAQ,QAAQ,KAAK,MAAM;AAAA,IAEnD,MAAM,eAAgC;AAAA,SACjC;AAAA,MACH,KAAK;AAAA,IACP;AAAA,IAEA,OAAO,gBAAgB,QAAQ;AAAA,SAC1B;AAAA,MACH,SAAS,eAAe,aAAa,YAAY;AAAA,IACnD,CAAC;AAAA;AAAA;;AChBE,SAAS,MAAM,CAAC,QAAkD;AAAA,EACvE,OAAO,MAAM,gBAAgB,UAAU,EAAE,SAAS,OAAO,QAAQ,CAAC;AAAA;;ACD7D,SAAS,QAAQ,CAAC,YAAkD;AAAA,EACzE,OAAO,CAAC,WAAW;AAAA,IACjB,MAAM,WAAW,WAAW,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AAAA,IAEhD,OAAO,gBAAgB,YAAY;AAAA,MACjC,SAAS,OAAO,MAAM,YAAY;AAAA,QAChC,IAAI;AAAA,QACJ,WAAW,aAAa,UAAU;AAAA,UAChC,IAAI;AAAA,YACF,OAAO,MAAM,UAAU,QAAQ,MAAM,OAAO;AAAA,YAC5C,OAAO,OAAO;AAAA,YACd,YACE,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA;AAAA,QAE9D;AAAA,QACA,MAAM,aAAa,IAAI,MAAM,uBAAuB;AAAA;AAAA,IAExD,CAAC;AAAA;AAAA;;AC+BL,SAAS,MAAM,CAAC,QAAmC;AAAA,EACjD,MAAM,QAAkB,CAAC,OAAO,KAAK;AAAA,EACrC,IAAI,OAAO;AAAA,IAAO,MAAM,KAAK,SAAS,OAAO,OAAO;AAAA,EACpD,IAAI,OAAO;AAAA,IAAS,MAAM,KAAK,WAAW,OAAO,SAAS;AAAA,EAC1D,IAAI,OAAO;AAAA,IACT,MAAM,KAAK,SAAS,OAAO,kBAAkB;AAAA,EAC/C,IAAI,OAAO;AAAA,IAAO,MAAM,KAAK,SAAS,OAAO,OAAO;AAAA,EACpD,OAAO,MAAM,KAAK,GAAG;AAAA;AAAA;AAGhB,MAAM,iBAAiB;AAAA,EACpB,KAAuB;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,EACT,UAAU,IAAI;AAAA,EAId,OAAO,IAAI;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,iBAAuD;AAAA,EAEvD;AAAA,EACA;AAAA,EACA;AAAA,EAER,WAAW,CAAC,KAAa,QAAmC;AAAA,IAC1D,KAAK,MAAM;AAAA,IACX,KAAK,YAAY,QAAQ,aAAa;AAAA,IACtC,KAAK,uBAAuB,QAAQ,wBAAwB;AAAA,IAC5D,KAAK,qBAAqB,QAAQ,sBAAsB;AAAA;AAAA,EAGlD,OAAO,GAAkB;AAAA,IAC/B,IAAI,KAAK,IAAI,eAAe,UAAU;AAAA,MAAM,OAAO,QAAQ,QAAQ;AAAA,IACnE,IAAI,KAAK,IAAI,eAAe,UAAU,YAAY;AAAA,MAChD,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,QACtC,MAAM,SAAS,MAAM;AAAA,UACnB,KAAK,IAAI,oBAAoB,SAAS,OAAO;AAAA,UAC7C,QAAQ;AAAA;AAAA,QAEV,MAAM,UAAU,CAAC,MAAa;AAAA,UAC5B,KAAK,IAAI,oBAAoB,QAAQ,MAAM;AAAA,UAC3C,OACE,IAAI,eAAe,+BAA+B;AAAA,YAChD,SAAS,OAAO,CAAC;AAAA,UACnB,CAAC,CACH;AAAA;AAAA,QAEF,KAAK,GAAI,iBAAiB,QAAQ,QAAQ,EAAE,MAAM,KAAK,CAAC;AAAA,QACxD,KAAK,GAAI,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAAA,OAC3D;AAAA,IACH;AAAA,IAEA,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,MACtC,KAAK,KAAK,IAAI,UAAU,KAAK,GAAG;AAAA,MAEhC,KAAK,GAAG,iBACN,QACA,MAAM;AAAA,QACJ,KAAK,mBAAmB;AAAA,QACxB,KAAK,eAAe;AAAA,QACpB,QAAQ;AAAA,SAEV,EAAE,MAAM,KAAK,CACf;AAAA,MAEA,KAAK,GAAG,iBACN,SACA,CAAC,MAAM;AAAA,QACL,OACE,IAAI,eAAe,+BAA+B;AAAA,UAChD,SAAS,OAAO,CAAC;AAAA,QACnB,CAAC,CACH;AAAA,SAEF,EAAE,MAAM,KAAK,CACf;AAAA,MAEA,KAAK,GAAG,iBAAiB,WAAW,CAAC,UAAU;AAAA,QAC7C,KAAK,cAAc,MAAM,IAAI;AAAA,OAC9B;AAAA,MAED,KAAK,GAAG,iBAAiB,SAAS,MAAM;AAAA,QACtC,IAAI,CAAC,KAAK;AAAA,UAAW,KAAK,iBAAiB;AAAA,OAC5C;AAAA,KACF;AAAA;AAAA,EAGK,aAAa,CAAC,KAAkC;AAAA,IACtD,MAAM,OACJ,OAAO,QAAQ,WAAW,MAAM,IAAI,YAAY,EAAE,OAAO,GAAkB;AAAA,IAE7E,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,MAAM,KAAK,MAAM,IAAI;AAAA,MACrB,MAAM;AAAA,MACN;AAAA;AAAA,IAIF,IAAI,QAAQ,OAAO,IAAI,MAAM,MAAM;AAAA,MACjC,MAAM,MAAM;AAAA,MACZ,MAAM,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE;AAAA,MACjC,IAAI,CAAC;AAAA,QAAG;AAAA,MACR,KAAK,QAAQ,OAAO,IAAI,EAAE;AAAA,MAC1B,IAAI,IAAI,OAAO;AAAA,QACb,EAAE,OACA,IAAI,eAAe,IAAI,MAAM,SAAS;AAAA,UACpC,SAAS,kBAAkB,IAAI,MAAM;AAAA,QACvC,CAAC,CACH;AAAA,MACF,EAAO;AAAA,QACL,EAAE,QAAQ,IAAI,MAAM;AAAA;AAAA,MAEtB;AAAA,IACF;AAAA,IAGA,MAAM,QAAQ;AAAA,IACd,IAAI,CAAC,MAAM;AAAA,MAAQ;AAAA,IAEnB,cAAc,UAAU,KAAK,MAAM;AAAA,MACjC,IAAI,MAAM,OAAO,UAAU,MAAM,QAAQ;AAAA,QACvC,WAAW,MAAM,MAAM,WAAW;AAAA,UAChC,IAAI;AAAA,YACF,GAAG,MAAM,MAAM;AAAA,YACf,MAAM;AAAA,QAGV;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EAGM,gBAAgB,GAAG;AAAA,IACzB,KAAK,KAAK;AAAA,IAGV,cAAc,MAAM,KAAK,SAAS;AAAA,MAChC,EAAE,OAAO,IAAI,eAAe,wBAAwB,CAAC;AAAA,IACvD;AAAA,IACA,KAAK,QAAQ,MAAM;AAAA,IAEnB,IACE,KAAK,aACL,KAAK,KAAK,OAAO,KACjB,KAAK,mBAAmB,KAAK,sBAC7B;AAAA,MACA,KAAK,kBAAkB;AAAA,IACzB;AAAA;AAAA,EAGM,iBAAiB,GAAG;AAAA,IAC1B,IAAI,KAAK,aAAa,KAAK;AAAA,MAAc;AAAA,IACzC,KAAK,eAAe;AAAA,IACpB,MAAM,QAAQ,KAAK,qBAAqB,KAAK,KAAK;AAAA,IAClD,KAAK;AAAA,IAEL,KAAK,iBAAiB,WAAW,YAAY;AAAA,MAC3C,KAAK,eAAe;AAAA,MACpB,IAAI;AAAA,QACF,MAAM,KAAK,QAAQ;AAAA,QACnB,MAAM,KAAK,eAAe;AAAA,QAC1B,MAAM;AAAA,QACN,IAAI,CAAC,KAAK,aAAa,KAAK,KAAK,OAAO,GAAG;AAAA,UACzC,KAAK,iBAAiB;AAAA,QACxB;AAAA;AAAA,OAED,KAAK;AAAA;AAAA,OAGI,eAAc,GAAG;AAAA,IAC7B,cAAc,UAAU,KAAK,MAAM;AAAA,MACjC,MAAM,KAAK,QAAQ,aAAa,MAAM,MAAM;AAAA,IAC9C;AAAA;AAAA,EAGM,OAAO,CAAC,QAAgB,QAAmD;AAAA,IACjF,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,MACtC,IAAI,CAAC,KAAK,MAAM,KAAK,GAAG,eAAe,UAAU,MAAM;AAAA,QACrD,OAAO,OAAO,IAAI,eAAe,yBAAyB,CAAC;AAAA,MAC7D;AAAA,MAEA,MAAM,KAAK,KAAK;AAAA,MAChB,MAAM,MAAsB;AAAA,QAC1B,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ,IAAI,IAAI,EAAE,SAAS,OAAO,CAAC;AAAA,MACxC,KAAK,GAAG,KAAK,KAAK,UAAU,GAAG,CAAC;AAAA,KACjC;AAAA;AAAA,OAGG,UAAS,CACb,QACA,UACuB;AAAA,IACvB,IAAI,KAAK,WAAW;AAAA,MAClB,MAAM,IAAI,eAAe,sCAAsC;AAAA,IACjE;AAAA,IAEA,MAAM,KAAK,QAAQ;AAAA,IAEnB,MAAM,MAAM,OAAO,MAAM;AAAA,IACzB,IAAI,QAAQ,KAAK,KAAK,IAAI,GAAG;AAAA,IAE7B,IAAI,OAAO;AAAA,MAET,MAAM,UAAU,IAAI,QAAQ;AAAA,IAC9B,EAAO;AAAA,MAEL,QAAQ,EAAE,QAAQ,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AAAA,MACjD,KAAK,KAAK,IAAI,KAAK,KAAK;AAAA,MACxB,MAAM,KAAK,QAAQ,aAAa,MAAM;AAAA;AAAA,IAGxC,OAAO;AAAA,MACL,aAAa,MAAM;AAAA,QACjB,MAAM,IAAI,KAAK,KAAK,IAAI,GAAG;AAAA,QAC3B,IAAI,CAAC;AAAA,UAAG;AAAA,QACR,EAAE,UAAU,OAAO,QAAQ;AAAA,QAC3B,IAAI,EAAE,UAAU,SAAS,GAAG;AAAA,UAC1B,KAAK,KAAK,OAAO,GAAG;AAAA,UAEpB,IAAI,KAAK,IAAI,eAAe,UAAU,MAAM;AAAA,YAC1C,KAAK,QAAQ,eAAe,MAAM,EAAE,MAAM,MAAM,EAAE;AAAA,UACpD;AAAA,UAEA,IAAI,KAAK,KAAK,SAAS;AAAA,YAAG,KAAK,aAAa;AAAA,QAC9C;AAAA;AAAA,IAEJ;AAAA;AAAA,EAGM,YAAY,GAAG;AAAA,IACrB,IAAI,KAAK,IAAI;AAAA,MACX,KAAK,GAAG,MAAM;AAAA,MACd,KAAK,KAAK;AAAA,IACZ;AAAA;AAAA,EAGF,OAAO,GAAS;AAAA,IACd,KAAK,YAAY;AAAA,IACjB,IAAI,KAAK;AAAA,MAAgB,aAAa,KAAK,cAAc;AAAA,IAEzD,cAAc,MAAM,KAAK,SAAS;AAAA,MAChC,EAAE,OAAO,IAAI,eAAe,6BAA6B,CAAC;AAAA,IAC5D;AAAA,IACA,KAAK,QAAQ,MAAM;AAAA,IACnB,KAAK,KAAK,MAAM;AAAA,IAEhB,IAAI,KAAK,IAAI;AAAA,MACX,KAAK,GAAG,MAAM;AAAA,MACd,KAAK,KAAK;AAAA,IACZ;AAAA;AAEJ;AAEA,SAAS,WAAW,CAAC,SAAyB;AAAA,EAC5C,OAAO,QAAQ,QAAQ,SAAS,IAAI,EAAE,QAAQ,OAAO,EAAE,IAAI;AAAA;AAOtD,SAAS,SAAS,CACvB,KACA,QACkB;AAAA,EAClB,OAAO,CAAC,WAAW;AAAA,IACjB,MAAM,UACJ,QAAQ,OACR,QAAQ,OAAO,QAAQ,QAAQ,KAAK,MACpC;AAAA,IAEF,MAAM,QACJ,OACA,QAAQ,OAAO,QAAQ,QAAQ,KAAK,MACpC,YAAY,OAAO;AAAA,IAErB,MAAM,qBAAsC;AAAA,SACvC;AAAA,MACH,KAAK;AAAA,IACP;AAAA,IAEA,MAAM,UAAU,IAAI,iBAAiB,OAAO,MAAM;AAAA,IAElD,MAAM,YAAgC;AAAA,MACpC,MAAM;AAAA,MACN,SAAS,eAAe,SAAS,kBAAkB;AAAA,MACnD,QAAQ;AAAA,MACR,WAAW,CAAC,WAAW,aACrB,QAAQ,UAAU,WAAW,QAAQ;AAAA,MACvC,SAAS,MAAM,QAAQ,QAAQ;AAAA,IACjC;AAAA,IAEA,OAAO;AAAA;AAAA;",
|
|
19
19
|
"debugId": "14D412871FDC247A64756E2164756E21",
|
|
20
20
|
"names": []
|
|
21
21
|
}
|
package/dist/src/index.js
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
simulateTransaction,
|
|
23
23
|
sponsorTransaction,
|
|
24
24
|
transferStx
|
|
25
|
-
} from "../shared/stacks-
|
|
25
|
+
} from "../shared/stacks-8qhfd37f.js";
|
|
26
26
|
import {
|
|
27
27
|
callContract,
|
|
28
28
|
estimateFee,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
getNonce,
|
|
31
31
|
readContract,
|
|
32
32
|
sendTransaction
|
|
33
|
-
} from "../shared/stacks-
|
|
33
|
+
} from "../shared/stacks-0hqzpm29.js";
|
|
34
34
|
import {
|
|
35
35
|
WebSocketError,
|
|
36
36
|
watchAddress,
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
buildContractCall,
|
|
47
47
|
buildContractDeploy,
|
|
48
48
|
buildTokenTransfer
|
|
49
|
-
} from "../shared/stacks-
|
|
49
|
+
} from "../shared/stacks-nbz193yk.js";
|
|
50
50
|
import"../shared/stacks-j2cy7qtt.js";
|
|
51
51
|
import"../shared/stacks-8yykgdww.js";
|
|
52
52
|
import {
|