@lendasat/lendaswap-sdk-pure 0.2.43 → 0.2.44
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/{_esm-6K2AP5GG.js → _esm-7KJOBTZC.js} +3 -6
- package/dist/_esm-7KJOBTZC.js.map +1 -0
- package/dist/base-B6OGU65B.js +7 -0
- package/dist/{base-HMHH3XPM.js.map → base-B6OGU65B.js.map} +1 -1
- package/dist/ccip-MPMAZOUF.js +5 -0
- package/dist/{ccip-EBXWV2U3.js.map → ccip-MPMAZOUF.js.map} +1 -1
- package/dist/cctp-bridge/index.js +1 -3
- package/dist/cctp-bridge/index.js.map +1 -1
- package/dist/{chunk-PRN5VZOM.js → chunk-3JWT4OW2.js} +3 -4
- package/dist/chunk-3JWT4OW2.js.map +1 -0
- package/dist/{chunk-DBBCKPZ5.js → chunk-C4YXYD24.js} +4 -7
- package/dist/chunk-C4YXYD24.js.map +1 -0
- package/dist/{chunk-GVAPVS4Z.js → chunk-CZNQYFDP.js} +4 -7
- package/dist/chunk-CZNQYFDP.js.map +1 -0
- package/dist/{chunk-Z2FCTNRC.js → chunk-DKTFDGIU.js} +3 -6
- package/dist/chunk-DKTFDGIU.js.map +1 -0
- package/dist/{chunk-LA3YX2HD.js → chunk-EPKFLKTM.js} +4 -7
- package/dist/chunk-EPKFLKTM.js.map +1 -0
- package/dist/{chunk-4JXN4UPB.js → chunk-NPFJAXKV.js} +3 -6
- package/dist/chunk-NPFJAXKV.js.map +1 -0
- package/dist/{chunk-I7TGLGN6.js → chunk-PLDDJCW6.js} +5 -8
- package/dist/{chunk-I7TGLGN6.js.map → chunk-PLDDJCW6.js.map} +1 -1
- package/dist/{chunk-EIK6BZWG.js → chunk-YEZOPVAH.js} +2 -6
- package/dist/chunk-YEZOPVAH.js.map +1 -0
- package/dist/delegate.js +4 -7
- package/dist/{dist-PWXNFVDF.js → dist-NE2R4YCX.js} +5 -8
- package/dist/{dist-PWXNFVDF.js.map → dist-NE2R4YCX.js.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +18 -21
- package/dist/index.js.map +1 -1
- package/dist/{mine.wasm-LUTPOAD2.js → mine.wasm-JJEJEODX.js} +3 -6
- package/dist/mine.wasm-JJEJEODX.js.map +1 -0
- package/dist/node.js +1 -3
- package/dist/node.js.map +1 -1
- package/dist/secp256k1-VZNNVEPN.js +5 -0
- package/dist/{secp256k1-B6OW5ZCM.js.map → secp256k1-VZNNVEPN.js.map} +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/wallet-SCGRX3EN.js +4 -0
- package/dist/{wallet-4YGTKWNZ.js.map → wallet-SCGRX3EN.js.map} +1 -1
- package/package.json +1 -1
- package/dist/_esm-6K2AP5GG.js.map +0 -1
- package/dist/base-HMHH3XPM.js +0 -9
- package/dist/ccip-EBXWV2U3.js +0 -8
- package/dist/chunk-4JXN4UPB.js.map +0 -1
- package/dist/chunk-DBBCKPZ5.js.map +0 -1
- package/dist/chunk-EIK6BZWG.js.map +0 -1
- package/dist/chunk-GVAPVS4Z.js.map +0 -1
- package/dist/chunk-LA3YX2HD.js.map +0 -1
- package/dist/chunk-PRN5VZOM.js.map +0 -1
- package/dist/chunk-Z2FCTNRC.js.map +0 -1
- package/dist/mine.wasm-LUTPOAD2.js.map +0 -1
- package/dist/secp256k1-B6OW5ZCM.js +0 -8
- package/dist/wallet-4YGTKWNZ.js +0 -7
package/dist/ccip-EBXWV2U3.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module';
|
|
2
|
-
export { ccipRequest, offchainLookup, offchainLookupAbiItem, offchainLookupSignature } from './chunk-GVAPVS4Z.js';
|
|
3
|
-
import './chunk-PRN5VZOM.js';
|
|
4
|
-
import './chunk-I7TGLGN6.js';
|
|
5
|
-
|
|
6
|
-
createRequire(import.meta.url);
|
|
7
|
-
//# sourceMappingURL=ccip-EBXWV2U3.js.map
|
|
8
|
-
//# sourceMappingURL=ccip-EBXWV2U3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/.pnpm/@scure+base@2.0.0/node_modules/@scure/base/index.ts"],"names":["padding","bytes","str","alphabet"],"mappings":"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","file":"chunk-4JXN4UPB.js","sourcesContent":["/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\nexport interface Coder<F, T> {\n encode(from: F): T;\n decode(to: T): F;\n}\n\nexport interface BytesCoder extends Coder<Uint8Array, string> {\n encode: (data: Uint8Array) => string;\n decode: (str: string) => Uint8Array;\n}\n\nfunction isBytes(a: unknown): a is Uint8Array {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b: Uint8Array | undefined): void {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n}\n\nfunction isArrayOf(isString: boolean, arr: any[]) {\n if (!Array.isArray(arr)) return false;\n if (arr.length === 0) return true;\n if (isString) {\n return arr.every((item) => typeof item === 'string');\n } else {\n return arr.every((item) => Number.isSafeInteger(item));\n }\n}\n\nfunction afn(input: Function): input is Function {\n if (typeof input !== 'function') throw new Error('function expected');\n return true;\n}\n\nfunction astr(label: string, input: unknown): input is string {\n if (typeof input !== 'string') throw new Error(`${label}: string expected`);\n return true;\n}\n\nfunction anumber(n: number): void {\n if (!Number.isSafeInteger(n)) throw new Error(`invalid integer: ${n}`);\n}\n\nfunction aArr(input: any[]) {\n if (!Array.isArray(input)) throw new Error('array expected');\n}\nfunction astrArr(label: string, input: string[]) {\n if (!isArrayOf(true, input)) throw new Error(`${label}: array of strings expected`);\n}\nfunction anumArr(label: string, input: number[]) {\n if (!isArrayOf(false, input)) throw new Error(`${label}: array of numbers expected`);\n}\n\n// TODO: some recusive type inference so it would check correct order of input/output inside rest?\n// like <string, number>, <number, bytes>, <bytes, float>\ntype Chain = [Coder<any, any>, ...Coder<any, any>[]];\n// Extract info from Coder type\ntype Input<F> = F extends Coder<infer T, any> ? T : never;\ntype Output<F> = F extends Coder<any, infer T> ? T : never;\n// Generic function for arrays\ntype First<T> = T extends [infer U, ...any[]] ? U : never;\ntype Last<T> = T extends [...any[], infer U] ? U : never;\ntype Tail<T> = T extends [any, ...infer U] ? U : never;\n\ntype AsChain<C extends Chain, Rest = Tail<C>> = {\n // C[K] = Coder<Input<C[K]>, Input<Rest[k]>>\n [K in keyof C]: Coder<Input<C[K]>, Input<K extends keyof Rest ? Rest[K] : any>>;\n};\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain<T extends Chain & AsChain<T>>(...args: T): Coder<Input<First<T>>, Output<Last<T>>> {\n const id = (a: any) => a;\n // Wrap call in closure so JIT can inline calls\n const wrap = (a: any, b: any) => (c: any) => 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/**\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: string | string[]): Coder<number[], string[]> {\n // mapping 1 to \"b\"\n const lettersA = typeof letters === 'string' ? letters.split('') : letters;\n const len = lettersA.length;\n astrArr('alphabet', lettersA);\n\n // mapping \"b\" to 1\n const indexes = new Map(lettersA.map((l, i) => [l, i]));\n return {\n encode: (digits: number[]) => {\n aArr(digits);\n return digits.map((i) => {\n if (!Number.isSafeInteger(i) || i < 0 || i >= len)\n throw new Error(\n `alphabet.encode: digit index outside alphabet \"${i}\". Allowed: ${letters}`\n );\n return lettersA[i]!;\n });\n },\n decode: (input: string[]): number[] => {\n aArr(input);\n return input.map((letter) => {\n astr('alphabet.decode', letter);\n const i = indexes.get(letter);\n if (i === undefined) throw new Error(`Unknown letter: \"${letter}\". Allowed: ${letters}`);\n return i;\n });\n },\n };\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = ''): Coder<string[], string> {\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/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits: number, chr = '='): Coder<string[], string[]> {\n anumber(bits);\n astr('padding', chr);\n return {\n encode(data: string[]): string[] {\n astrArr('padding.encode', data);\n while ((data.length * bits) % 8) data.push(chr);\n return data;\n },\n decode(input: string[]): string[] {\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) throw new Error('padding: invalid, string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize<T>(fn: (val: T) => T): Coder<T, T> {\n afn(fn);\n return { encode: (from: T) => from, decode: (to: T) => fn(to) };\n}\n\n/**\n * Slow: O(n^2) time complexity\n */\nfunction convertRadix(data: number[], from: number, to: number): number[] {\n // base 1 is impossible\n if (from < 2) throw new Error(`convertRadix: invalid from=${from}, base cannot be less than 2`);\n if (to < 2) throw new Error(`convertRadix: invalid to=${to}, base cannot be less than 2`);\n aArr(data);\n if (!data.length) return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data, (d) => {\n anumber(d);\n if (d < 0 || d >= from) 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 (\n !Number.isSafeInteger(digitBase) ||\n fromCarry / from !== carry ||\n digitBase - digit !== fromCarry\n ) {\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) continue;\n else if (!rounded) pos = i;\n else done = false;\n }\n res.push(carry);\n if (done) break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++) res.push(0);\n return res.reverse();\n}\n\nconst gcd = (a: number, b: number): number => (b === 0 ? a : gcd(b, a % b));\nconst radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from: number, to: number) =>\n from + (to - gcd(from, to));\nconst powers: number[] = /* @__PURE__ */ (() => {\n let res = [];\n for (let i = 0; i < 40; i++) res.push(2 ** i);\n return res;\n})();\n/**\n * Implemented with numbers, because BigInt is 5x slower\n */\nfunction convertRadix2(data: number[], from: number, to: number, padding: boolean): number[] {\n aArr(data);\n if (from <= 0 || from > 32) throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32) throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(\n `convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`\n );\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: number[] = [];\n for (const n of data) {\n anumber(n);\n if (n >= max) throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32) throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to) res.push(((carry >> (pos - to)) & mask) >>> 0);\n const pow = powers[pos];\n if (pow === undefined) 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) throw new Error('Excess padding');\n if (!padding && carry > 0) throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0) res.push(carry >>> 0);\n return res;\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num: number): Coder<Uint8Array, number[]> {\n anumber(num);\n const _256 = 2 ** 8;\n return {\n encode: (bytes: Uint8Array) => {\n if (!isBytes(bytes)) throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), _256, num);\n },\n decode: (digits: number[]) => {\n anumArr('radix.decode', digits);\n return Uint8Array.from(convertRadix(digits, num, _256));\n },\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: number, revPadding = false): Coder<Uint8Array, number[]> {\n anumber(bits);\n if (bits <= 0 || bits > 32) 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: Uint8Array) => {\n if (!isBytes(bytes)) throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits: number[]) => {\n anumArr('radix2.decode', digits);\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\n\ntype ArgumentTypes<F extends Function> = F extends (...args: infer A) => any ? A : never;\nfunction unsafeWrapper<T extends (...args: any) => any>(fn: T) {\n afn(fn);\n return function (...args: ArgumentTypes<T>): ReturnType<T> | void {\n try {\n return fn.apply(null, args);\n } catch (e) {}\n };\n}\n\nfunction checksum(\n len: number,\n fn: (data: Uint8Array) => Uint8Array\n): Coder<Uint8Array, Uint8Array> {\n anumber(len);\n afn(fn);\n return {\n encode(data: Uint8Array) {\n if (!isBytes(data)) 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: Uint8Array) {\n if (!isBytes(data)) 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]) throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\n\n// prettier-ignore\nexport const utils: { alphabet: typeof alphabet; chain: typeof chain; checksum: typeof checksum; convertRadix: typeof convertRadix; convertRadix2: typeof convertRadix2; radix: typeof radix; radix2: typeof radix2; join: typeof join; padding: typeof padding; } = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n\n// RFC 4648 aka RFC 3548\n// ---------------------\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: BytesCoder = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\n\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: BytesCoder = chain(\n radix2(5),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'),\n padding(5),\n join('')\n);\n\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: BytesCoder = chain(\n radix2(5),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'),\n join('')\n);\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: BytesCoder = chain(\n radix2(5),\n alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'),\n padding(5),\n join('')\n);\n\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: BytesCoder = chain(\n radix2(5),\n alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'),\n join('')\n);\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: BytesCoder = chain(\n radix2(5),\n alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'),\n join(''),\n normalize((s: string) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1'))\n);\n\n// Built-in base64 conversion https://caniuse.com/mdn-javascript_builtins_uint8array_frombase64\n// prettier-ignore\nconst hasBase64Builtin: boolean = /* @__PURE__ */ (() =>\n typeof (Uint8Array as any).from([]).toBase64 === 'function' &&\n typeof (Uint8Array as any).fromBase64 === 'function')();\n\nconst decodeBase64Builtin = (s: string, isUrl: boolean) => {\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)) throw new Error('invalid base64');\n return (Uint8Array as any).fromBase64(s, { alphabet, lastChunkHandling: 'strict' });\n};\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: BytesCoder = hasBase64Builtin ? {\n encode(b) { abytes(b); return (b as any).toBase64(); },\n decode(s) { return decodeBase64Builtin(s, false); },\n} : chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'),\n padding(6),\n join('')\n);\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: BytesCoder = chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'),\n join('')\n);\n\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: BytesCoder = hasBase64Builtin ? {\n encode(b) { abytes(b); return (b as any).toBase64({ alphabet: 'base64url' }); },\n decode(s) { return decodeBase64Builtin(s, true); },\n} : chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'),\n padding(6),\n join('')\n);\n\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: BytesCoder = chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'),\n join('')\n);\n\n// base58 code\n// -----------\nconst genBase58 = /* @__NO_SIDE_EFFECTS__ */ (abc: string) =>\n chain(radix(58), alphabet(abc), join(''));\n\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: BytesCoder = genBase58(\n '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n);\n/**\n * base58: flickr version. Check out `base58`.\n */\nexport const base58flickr: BytesCoder = genBase58(\n '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n);\n/**\n * base58: XRP version. Check out `base58`.\n */\nexport const base58xrp: BytesCoder = genBase58(\n 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'\n);\n\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\n\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: BytesCoder = {\n encode(data: Uint8Array) {\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: string) {\n let res: number[] = [];\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) 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/**\n * Method, which creates base58check encoder.\n * Requires function, calculating sha256.\n */\nexport const createBase58check = (sha256: (data: Uint8Array) => Uint8Array): BytesCoder =>\n chain(\n checksum(4, (data) => sha256(sha256(data))),\n base58\n );\n\n/**\n * Use `createBase58check` instead.\n * @deprecated\n */\nexport const base58check: (sha256: (data: Uint8Array) => Uint8Array) => BytesCoder =\n createBase58check;\n\n// Bech32 code\n// -----------\nexport interface Bech32Decoded<Prefix extends string = string> {\n prefix: Prefix;\n words: number[];\n}\nexport interface Bech32DecodedWithArray<Prefix extends string = string> {\n prefix: Prefix;\n words: number[];\n bytes: Uint8Array;\n}\n\nconst BECH_ALPHABET: Coder<number[], string> = chain(\n alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'),\n join('')\n);\n\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre: number): number {\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) chk ^= POLYMOD_GENERATORS[i]!;\n }\n return chk;\n}\n\nfunction bechChecksum(prefix: string, words: number[], encodingConst = 1): string {\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) 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++) chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words) chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++) chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % powers[30]!], 30, 5, false));\n}\n\nexport interface Bech32 {\n encode<Prefix extends string>(\n prefix: Prefix,\n words: number[] | Uint8Array,\n limit?: number | false\n ): `${Lowercase<Prefix>}1${string}`;\n decode<Prefix extends string>(\n str: `${Prefix}1${string}`,\n limit?: number | false\n ): Bech32Decoded<Prefix>;\n encodeFromBytes(prefix: string, bytes: Uint8Array): string;\n decodeToBytes(str: string): Bech32DecodedWithArray;\n decodeUnsafe(str: string, limit?: number | false): void | Bech32Decoded<string>;\n fromWords(to: number[]): Uint8Array;\n fromWordsUnsafe(to: number[]): void | Uint8Array;\n toWords(from: Uint8Array): number[];\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding: 'bech32' | 'bech32m'): Bech32 {\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\n function encode<Prefix extends string>(\n prefix: Prefix,\n words: number[] | Uint8Array,\n limit: number | false = 90\n ): `${Lowercase<Prefix>}1${string}` {\n astr('bech32.encode prefix', prefix);\n if (isBytes(words)) words = Array.from(words);\n anumArr('bech32.encode', words);\n const plen = prefix.length;\n if (plen === 0) 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}` as `${Lowercase<Prefix>}1${string}`;\n }\n\n function decode<Prefix extends string>(\n str: `${Prefix}1${string}`,\n limit?: number | false\n ): Bech32Decoded<Prefix>;\n function decode(str: string, limit?: number | false): Bech32Decoded;\n function decode(str: string, limit: number | false = 90): Bech32Decoded {\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) 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)) throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n\n const decodeUnsafe = unsafeWrapper(decode);\n\n function decodeToBytes(str: string): Bech32DecodedWithArray {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n\n function encodeFromBytes(prefix: string, bytes: Uint8Array) {\n return encode(prefix, toWords(bytes));\n }\n\n return {\n encode,\n decode,\n encodeFromBytes,\n decodeToBytes,\n decodeUnsafe,\n fromWords,\n fromWordsUnsafe,\n toWords,\n };\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: Bech32 = genBech32('bech32');\n\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: Bech32 = genBech32('bech32m');\n\ndeclare const TextEncoder: any;\ndeclare const TextDecoder: any;\n\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: BytesCoder = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\n\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\n// prettier-ignore\nconst hasHexBuiltin: boolean = /* @__PURE__ */ (() =>\n typeof (Uint8Array as any).from([]).toHex === 'function' &&\n typeof (Uint8Array as any).fromHex === 'function')();\n// prettier-ignore\nconst hexBuiltin: BytesCoder = {\n encode(data) { abytes(data); return (data as any).toHex(); },\n decode(s) { astr('hex', s); return (Uint8Array as any).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: BytesCoder = hasHexBuiltin\n ? hexBuiltin\n : chain(\n radix2(4),\n alphabet('0123456789abcdef'),\n join(''),\n normalize((s: string) => {\n if (typeof s !== 'string' || s.length % 2 !== 0)\n throw new TypeError(\n `hex.decode: expected string, got ${typeof s} with length ${s.length}`\n );\n return s.toLowerCase();\n })\n );\n\nexport type SomeCoders = {\n utf8: BytesCoder;\n hex: BytesCoder;\n base16: BytesCoder;\n base32: BytesCoder;\n base64: BytesCoder;\n base64url: BytesCoder;\n base58: BytesCoder;\n base58xmr: BytesCoder;\n};\n// prettier-ignore\nconst CODERS: SomeCoders = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\ntype CoderType = keyof SomeCoders;\nconst coderTypeError =\n 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\n\n/** @deprecated */\nexport const bytesToString = (type: CoderType, bytes: Uint8Array): string => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type)) throw new TypeError(coderTypeError);\n if (!isBytes(bytes)) throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\n\n/** @deprecated */\nexport const str: (type: CoderType, bytes: Uint8Array) => string = bytesToString; // as in python, but for bytes only\n\n/** @deprecated */\nexport const stringToBytes = (type: CoderType, str: string): Uint8Array => {\n if (!CODERS.hasOwnProperty(type)) throw new TypeError(coderTypeError);\n if (typeof str !== 'string') throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\n/** @deprecated */\nexport const bytes: (type: CoderType, str: string) => Uint8Array = stringToBytes;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/delegate.ts","../src/arkade-network.ts","../src/logging.ts"],"names":["Transaction"],"mappings":"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","file":"chunk-DBBCKPZ5.js","sourcesContent":["/**\n * Delegate settlement for VHTLC VTXOs.\n *\n * Allows the client to prepare and sign delegate PSBTs (intent + forfeits),\n * then POST them to the lendaswap backend which runs the Ark batch ceremony.\n *\n * This works for spendable, recoverable, AND expired VTXOs — unlike the\n * offchain submitTx/finalizeTx path which only handles spendable VTXOs.\n */\n\nimport {\n ArkAddress,\n type ArkProvider,\n ConditionWitness,\n type IndexerProvider,\n Intent,\n type NetworkName,\n networks,\n RestArkProvider,\n RestIndexerProvider,\n SingleKey,\n setArkPsbtField,\n type TapLeafScript,\n Transaction,\n VHTLC,\n VtxoTaprootTree,\n} from \"@arkade-os/sdk\";\nimport { Address, OutScript, SigHash } from \"@scure/btc-signer\";\n\n// P2A is the zero-value anchor output (OP_1 0x4e73)\nconst P2A_SCRIPT = new Uint8Array([0x51, 0x02, 0x4e, 0x73]);\nconst P2A = { script: P2A_SCRIPT, amount: 0n };\n\nimport { ripemd160 } from \"@noble/hashes/legacy.js\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { base64, hex } from \"@scure/base\";\n\nimport {\n getNetworkHrp,\n getNetworkName,\n resolveArkadeServerUrlByName,\n} from \"./arkade-network.js\";\nimport { createSdkLogger, type Logger, type LogLevel } from \"./logging.js\";\n\nfunction secondsToTimelock(\n seconds: number,\n): VHTLC.Options[\"unilateralClaimDelay\"] {\n return { type: \"seconds\" as const, value: BigInt(seconds) };\n}\n\nfunction parseXOnlyPubKey(pubKeyHex: string): Uint8Array {\n const bytes = hex.decode(pubKeyHex);\n if (bytes.length === 33) return bytes.slice(1);\n if (bytes.length === 32) return bytes;\n throw new Error(`Invalid public key length: ${bytes.length}`);\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\nexport interface DelegateClaimParams {\n userSecretKey: string;\n userPubKey: string;\n lendaswapPubKey: string;\n arkadeServerPubKey: string;\n preimage: string;\n preimageHash: string;\n vhtlcAddress: string;\n refundLocktime: number;\n unilateralClaimDelay: number;\n unilateralRefundDelay: number;\n unilateralRefundWithoutReceiverDelay: number;\n /** Destination Arkade address */\n destinationAddress: string;\n network: string;\n /** Lendaswap API base URL (e.g. http://localhost:3333) */\n lendaswapApiUrl: string;\n arkadeServerUrl?: string;\n /** Optional swap ID — enables the backend to mark swap as ClientRedeemed. */\n swapId?: string;\n /** Optional logger sink. Silent by default. */\n logger?: Logger;\n /** Minimum log level to emit. Defaults to `silent`. */\n logLevel?: LogLevel;\n}\n\nexport interface DelegateRefundParams {\n userSecretKey: string;\n userPubKey: string;\n lendaswapPubKey: string;\n arkadeServerPubKey: string;\n hashLock: string;\n vhtlcAddress: string;\n refundLocktime: number;\n unilateralClaimDelay: number;\n unilateralRefundDelay: number;\n unilateralRefundWithoutReceiverDelay: number;\n destinationAddress: string;\n network: string;\n lendaswapApiUrl: string;\n arkadeServerUrl?: string;\n /** Optional logger sink. Silent by default. */\n logger?: Logger;\n /** Minimum log level to emit. Defaults to `silent`. */\n logLevel?: LogLevel;\n}\n\nexport interface DelegateSettleResult {\n commitmentTxid: string;\n}\n\n/**\n * Fetch the backend's static delegate cosigner public key.\n */\nexport async function fetchCosignerPk(\n lendaswapApiUrl: string,\n): Promise<string> {\n const url = `${lendaswapApiUrl.replace(/\\/$/, \"\")}/api/delegate/cosigner-pk`;\n const res = await fetch(url);\n if (!res.ok) {\n throw new Error(\n `Failed to fetch cosigner pk: ${res.status} ${await res.text()}`,\n );\n }\n const body = (await res.json()) as { cosigner_pk: string };\n return body.cosigner_pk;\n}\n\n/**\n * Settle a VHTLC via delegate claim (reveal preimage).\n */\nexport async function delegateClaim(\n params: DelegateClaimParams,\n): Promise<DelegateSettleResult> {\n const userPkBytes = parseXOnlyPubKey(params.userPubKey);\n const lendaswapPkBytes = parseXOnlyPubKey(params.lendaswapPubKey);\n const serverPkBytes = parseXOnlyPubKey(params.arkadeServerPubKey);\n\n const preimageBytes = hex.decode(params.preimage);\n const preimageHashBytes = ripemd160(sha256(preimageBytes));\n\n if (\n hex.encode(preimageHashBytes) !==\n hex.encode(ripemd160(hex.decode(params.preimageHash)))\n ) {\n throw new Error(\"Preimage hash mismatch\");\n }\n\n // Build VHTLC — for claim: lendaswap=sender, user=receiver\n const networkName = getNetworkName(params.network);\n const vhtlc = new VHTLC.Script({\n sender: lendaswapPkBytes,\n receiver: userPkBytes,\n server: serverPkBytes,\n preimageHash: preimageHashBytes,\n refundLocktime: BigInt(params.refundLocktime),\n unilateralClaimDelay: secondsToTimelock(params.unilateralClaimDelay),\n unilateralRefundDelay: secondsToTimelock(params.unilateralRefundDelay),\n unilateralRefundWithoutReceiverDelay: secondsToTimelock(\n params.unilateralRefundWithoutReceiverDelay,\n ),\n });\n\n const hrp = getNetworkHrp(networkName);\n const computedAddr = vhtlc.address(hrp, serverPkBytes).encode();\n if (computedAddr !== params.vhtlcAddress) {\n throw new Error(\n `VHTLC address mismatch: computed ${computedAddr}, expected ${params.vhtlcAddress}`,\n );\n }\n\n return settleDelegate({\n userSecretKey: params.userSecretKey,\n tapLeafScript: vhtlc.claim(),\n tapTree: vhtlc.encode(),\n vhtlcPkScript: hex.encode(vhtlc.pkScript),\n witnessData: preimageBytes,\n destinationAddress: params.destinationAddress,\n networkName,\n lendaswapApiUrl: params.lendaswapApiUrl,\n arkadeServerUrl: params.arkadeServerUrl,\n locktime: undefined,\n swapId: params.swapId,\n preimage: params.preimage,\n logger: params.logger,\n logLevel: params.logLevel,\n });\n}\n\n/**\n * Settle a VHTLC via delegate refund (after locktime expiry).\n */\nexport async function delegateRefund(\n params: DelegateRefundParams,\n): Promise<DelegateSettleResult> {\n const userPkBytes = parseXOnlyPubKey(params.userPubKey);\n const lendaswapPkBytes = parseXOnlyPubKey(params.lendaswapPubKey);\n const serverPkBytes = parseXOnlyPubKey(params.arkadeServerPubKey);\n\n const hashLockBytes = hex.decode(params.hashLock);\n const preimageHashBytes =\n hashLockBytes.length === 32 ? ripemd160(hashLockBytes) : hashLockBytes;\n\n // Build VHTLC — for refund: user=sender, lendaswap=receiver\n const networkName = getNetworkName(params.network);\n const vhtlc = new VHTLC.Script({\n sender: userPkBytes,\n receiver: lendaswapPkBytes,\n server: serverPkBytes,\n preimageHash: preimageHashBytes,\n refundLocktime: BigInt(params.refundLocktime),\n unilateralClaimDelay: secondsToTimelock(params.unilateralClaimDelay),\n unilateralRefundDelay: secondsToTimelock(params.unilateralRefundDelay),\n unilateralRefundWithoutReceiverDelay: secondsToTimelock(\n params.unilateralRefundWithoutReceiverDelay,\n ),\n });\n\n const hrp = getNetworkHrp(networkName);\n const computedAddr = vhtlc.address(hrp, serverPkBytes).encode();\n if (computedAddr !== params.vhtlcAddress) {\n throw new Error(\n `VHTLC address mismatch: computed ${computedAddr}, expected ${params.vhtlcAddress}`,\n );\n }\n\n return settleDelegate({\n userSecretKey: params.userSecretKey,\n tapLeafScript: vhtlc.refundWithoutReceiver(),\n tapTree: vhtlc.encode(),\n vhtlcPkScript: hex.encode(vhtlc.pkScript),\n witnessData: undefined,\n destinationAddress: params.destinationAddress,\n networkName,\n lendaswapApiUrl: params.lendaswapApiUrl,\n arkadeServerUrl: params.arkadeServerUrl,\n locktime: params.refundLocktime,\n logger: params.logger,\n logLevel: params.logLevel,\n });\n}\n\n// ---------------------------------------------------------------------------\n// Internal\n// ---------------------------------------------------------------------------\n\ninterface SettleDelegateOpts {\n userSecretKey: string;\n tapLeafScript: TapLeafScript;\n tapTree: Uint8Array;\n vhtlcPkScript: string;\n witnessData: Uint8Array | undefined;\n destinationAddress: string;\n networkName: NetworkName;\n lendaswapApiUrl: string;\n arkadeServerUrl: string | undefined;\n locktime: number | undefined;\n swapId?: string;\n preimage?: string;\n logger?: Logger;\n logLevel?: LogLevel;\n}\n\nasync function settleDelegate(\n opts: SettleDelegateOpts,\n): Promise<DelegateSettleResult> {\n const {\n userSecretKey,\n tapLeafScript,\n tapTree,\n vhtlcPkScript,\n witnessData,\n destinationAddress,\n networkName,\n lendaswapApiUrl,\n arkadeServerUrl,\n } = opts;\n\n const logger = createSdkLogger(opts).child({\n module: \"delegate\",\n operation: \"delegate.settle\",\n swapId: opts.swapId,\n data: { destinationAddress, networkName },\n });\n\n const serverUrl = resolveArkadeServerUrlByName(networkName, arkadeServerUrl);\n\n const arkProvider: ArkProvider = new RestArkProvider(serverUrl);\n const indexerProvider: IndexerProvider = new RestIndexerProvider(serverUrl);\n const serverInfo = await arkProvider.getInfo();\n\n // Fetch cosigner pk from lendaswap backend\n const cosignerPkHex = await fetchCosignerPk(lendaswapApiUrl);\n\n // Decode forfeit address (bech32) to pkScript\n const btcNetwork = networks[networkName];\n const forfeitDecoded = Address(btcNetwork).decode(serverInfo.forfeitAddress);\n const forfeitPkScript = OutScript.encode(forfeitDecoded);\n\n // Fetch VTXOs — include all (not just spendable)\n const { vtxos: allVtxos } = await indexerProvider.getVtxos({\n scripts: [vhtlcPkScript],\n });\n\n // Filter to unspent VTXOs\n const vtxos = allVtxos.filter((v) => !v.isSpent);\n\n if (vtxos.length === 0) {\n throw new Error(\"No settleable VTXOs found at the VHTLC address\");\n }\n\n const totalAmount = vtxos.reduce((acc, v) => acc + BigInt(v.value), 0n);\n if (totalAmount === 0n) {\n throw new Error(\"Total VTXO amount is zero\");\n }\n\n logger.info({\n event: \"delegate.settle.vtxos_found\",\n message: \"Found settleable VTXOs for delegate settlement\",\n data: { vtxoCount: vtxos.length, totalAmount },\n });\n\n // Parse destination (Ark address → taproot pkScript)\n const destAddr = ArkAddress.decode(destinationAddress);\n const destPkScript = destAddr.pkScript;\n\n // Build intent message\n const now = Math.floor(Date.now() / 1000);\n const intentMessage: Intent.RegisterMessage = {\n type: \"register\",\n onchain_output_indexes: [],\n valid_at: now,\n expire_at: now + 120,\n cosigners_public_keys: [cosignerPkHex],\n };\n\n // Build intent inputs from VTXOs\n const pkScriptBytes = hex.decode(vhtlcPkScript);\n const intentInputs = vtxos.map((v) => ({\n txid: hex.decode(v.txid),\n index: v.vout,\n witnessUtxo: {\n script: pkScriptBytes,\n amount: BigInt(v.value),\n },\n tapLeafScript: [tapLeafScript],\n sequence: opts.locktime ? 0xfffffffe : undefined,\n sighashType: SigHash.ALL,\n }));\n\n // Build intent proof PSBT\n const intentProof = Intent.create(intentMessage, intentInputs, [\n { script: destPkScript, amount: totalAmount },\n ]);\n\n // Set VtxoTaprootTree on each real input (skip input 0 which is the toSpend ref)\n for (let i = 0; i < vtxos.length; i++) {\n setArkPsbtField(intentProof, i + 1, VtxoTaprootTree, tapTree);\n }\n\n // Sign intent proof\n const signer = SingleKey.fromHex(userSecretKey);\n\n // Set condition witness (preimage) if claiming\n if (witnessData) {\n for (let i = 0; i < vtxos.length; i++) {\n setArkPsbtField(intentProof, i + 1, ConditionWitness, [witnessData]);\n }\n }\n\n const signedIntentProof = await signer.sign(intentProof);\n\n // Build and sign delegate forfeit PSBTs.\n // Delegate forfeits have 1 input (the VTXO) with SIGHASH_ALL|ANYONECANPAY.\n // The connector input is added later by the cosigner during batch finalization.\n // Output amount = vtxo_amount + connector_dust (anticipating the connector).\n const dust = serverInfo.dust;\n const signedForfeitPsbts: string[] = [];\n\n for (const v of vtxos) {\n const vtxoAmount = BigInt(v.value);\n\n const forfeitTx = new Transaction({\n version: 3,\n lockTime: 0,\n });\n\n forfeitTx.addInput({\n txid: hex.decode(v.txid),\n index: v.vout,\n witnessUtxo: {\n script: pkScriptBytes,\n amount: vtxoAmount,\n },\n tapLeafScript: [tapLeafScript],\n sighashType: SigHash.ALL_ANYONECANPAY,\n });\n\n // Main output: VTXO amount + connector dust → forfeit address\n forfeitTx.addOutput({\n script: forfeitPkScript,\n amount: vtxoAmount + dust,\n });\n\n // Anchor output (P2A)\n forfeitTx.addOutput(P2A);\n\n // Set taproot tree\n setArkPsbtField(forfeitTx, 0, VtxoTaprootTree, tapTree);\n\n if (witnessData) {\n setArkPsbtField(forfeitTx, 0, ConditionWitness, [witnessData]);\n }\n\n const signedForfeit = await signer.sign(forfeitTx);\n signedForfeitPsbts.push(base64.encode(signedForfeit.toPSBT()));\n }\n\n // Serialize intent proof\n const intentProofBase64 = base64.encode(signedIntentProof.toPSBT());\n const intentMessageJson = Intent.encodeMessage(intentMessage);\n\n // POST to backend\n const settleUrl = `${lendaswapApiUrl.replace(/\\/$/, \"\")}/api/delegate/settle`;\n const settleRes = await fetch(settleUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n intent_proof: intentProofBase64,\n intent_message: intentMessageJson,\n forfeit_psbts: signedForfeitPsbts,\n cosigner_pk: cosignerPkHex,\n swap_id: opts.swapId,\n preimage: opts.preimage,\n }),\n });\n\n if (!settleRes.ok) {\n const errBody = await settleRes.text();\n throw new Error(`Delegate settle failed: ${settleRes.status} ${errBody}`);\n }\n\n const result = (await settleRes.json()) as { commitment_txid: string };\n return { commitmentTxid: result.commitment_txid };\n}\n","import { type NetworkName, networks } from \"@arkade-os/sdk\";\n\n/** Default Arkade server URL by network */\nexport const DEFAULT_ARKADE_URLS: Record<string, string> = {\n bitcoin: \"https://arkade.computer\",\n mainnet: \"https://arkade.computer\",\n signet: \"https://mutinynet.arkade.sh\",\n mutinynet: \"https://mutinynet.arkade.sh\",\n};\n\nexport function getNetworkName(network: string): NetworkName {\n switch (network.toLowerCase()) {\n case \"mainnet\":\n case \"bitcoin\":\n return \"bitcoin\";\n case \"testnet\":\n return \"testnet\";\n case \"signet\":\n return \"signet\";\n case \"mutinynet\":\n return \"mutinynet\";\n case \"regtest\":\n return \"regtest\";\n default:\n throw new Error(`Unknown network: ${network}`);\n }\n}\n\nexport function getNetworkHrp(networkName: NetworkName): string {\n return networks[networkName].hrp;\n}\n\nexport function resolveArkadeServerUrl(\n network: string,\n arkadeServerUrl?: string,\n): string {\n const networkName = getNetworkName(network);\n return resolveArkadeServerUrlByName(networkName, arkadeServerUrl);\n}\n\nexport function resolveArkadeServerUrlByName(\n networkName: NetworkName,\n arkadeServerUrl?: string,\n): string {\n const serverUrl = arkadeServerUrl ?? DEFAULT_ARKADE_URLS[networkName];\n if (!serverUrl) {\n throw new Error(\n `No Arkade server URL configured for network: ${networkName}`,\n );\n }\n return serverUrl;\n}\n","export type LogLevel = \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"silent\";\n\nexport type ActiveLogLevel = Exclude<LogLevel, \"silent\">;\n\nexport interface LogRecord {\n level: ActiveLogLevel;\n message: string;\n event?: string;\n module?: string;\n operation?: string;\n swapId?: string;\n data?: Record<string, unknown>;\n error?: unknown;\n}\n\nexport interface Logger {\n trace?(record: LogRecord): void;\n debug?(record: LogRecord): void;\n info?(record: LogRecord): void;\n warn?(record: LogRecord): void;\n error?(record: LogRecord): void;\n}\n\nexport interface LoggerOptions {\n logger?: Logger;\n logLevel?: LogLevel;\n}\n\nexport interface LogContext {\n module?: string;\n operation?: string;\n swapId?: string;\n data?: Record<string, unknown>;\n}\n\nconst LEVEL_VALUE: Record<ActiveLogLevel, number> = {\n trace: 10,\n debug: 20,\n info: 30,\n warn: 40,\n error: 50,\n};\n\nconst SECRET_FIELD_PATTERN = new RegExp(\n \"(^|_|-|\\\\b)\" +\n \"(secret|secretkey|usersecretkey|privatekey|mnemonic|xprv|\" +\n \"preimage|signature|authorization|apikey|api_key|bearer)\" +\n \"(_|-|\\\\b|$)\",\n \"i\",\n);\n\nconst REDACTED = \"[REDACTED]\";\n\nexport const noopLogger: Logger = Object.freeze({});\n\nfunction shouldLog(level: ActiveLogLevel, configuredLevel: LogLevel): boolean {\n if (configuredLevel === \"silent\") return false;\n return LEVEL_VALUE[level] >= LEVEL_VALUE[configuredLevel];\n}\n\nfunction serializeError(error: unknown): unknown {\n if (error instanceof Error) {\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n };\n }\n return error;\n}\n\nexport function redactLogValue(value: unknown): unknown {\n if (typeof value === \"bigint\") return value.toString();\n if (value instanceof Error) return serializeError(value);\n if (Array.isArray(value)) return value.map(redactLogValue);\n if (value && typeof value === \"object\") {\n const out: Record<string, unknown> = {};\n for (const [key, nested] of Object.entries(\n value as Record<string, unknown>,\n )) {\n out[key] = SECRET_FIELD_PATTERN.test(key)\n ? REDACTED\n : redactLogValue(nested);\n }\n return out;\n }\n return value;\n}\n\nexport class SdkLogger {\n readonly #logger: Logger;\n readonly #level: LogLevel;\n readonly #context: LogContext;\n\n constructor(options: LoggerOptions = {}, context: LogContext = {}) {\n this.#logger = options.logger ?? noopLogger;\n this.#level = options.logLevel ?? \"silent\";\n this.#context = context;\n }\n\n child(context: LogContext): SdkLogger {\n return new SdkLogger(\n { logger: this.#logger, logLevel: this.#level },\n {\n ...this.#context,\n ...context,\n data: {\n ...this.#context.data,\n ...context.data,\n },\n },\n );\n }\n\n trace(record: Omit<LogRecord, \"level\">): void {\n this.#emit(\"trace\", record);\n }\n\n debug(record: Omit<LogRecord, \"level\">): void {\n this.#emit(\"debug\", record);\n }\n\n info(record: Omit<LogRecord, \"level\">): void {\n this.#emit(\"info\", record);\n }\n\n warn(record: Omit<LogRecord, \"level\">): void {\n this.#emit(\"warn\", record);\n }\n\n error(record: Omit<LogRecord, \"level\">): void {\n this.#emit(\"error\", record);\n }\n\n #emit(level: ActiveLogLevel, record: Omit<LogRecord, \"level\">): void {\n if (!shouldLog(level, this.#level)) return;\n\n const sink = this.#logger[level];\n if (!sink) return;\n\n const data = redactLogValue({\n ...this.#context.data,\n ...record.data,\n }) as Record<string, unknown>;\n\n sink({\n level,\n module: record.module ?? this.#context.module,\n operation: record.operation ?? this.#context.operation,\n swapId: record.swapId ?? this.#context.swapId,\n event: record.event,\n message: record.message,\n data: Object.keys(data).length > 0 ? data : undefined,\n error:\n record.error === undefined ? undefined : redactLogValue(record.error),\n });\n }\n}\n\nexport function createSdkLogger(options?: LoggerOptions): SdkLogger {\n return new SdkLogger(options);\n}\n\nexport function createConsoleLogger(): Logger {\n const write = (record: LogRecord) => {\n const { level, message, ...rest } = record;\n const payload = Object.fromEntries(\n Object.entries(rest).filter(([, value]) => value !== undefined),\n );\n const args =\n Object.keys(payload).length > 0 ? [message, payload] : [message];\n if (level === \"trace\") console.debug(...args);\n else if (level === \"debug\") console.debug(...args);\n else if (level === \"info\") console.info(...args);\n else if (level === \"warn\") console.warn(...args);\n else console.error(...args);\n };\n\n return {\n trace: write,\n debug: write,\n info: write,\n warn: write,\n error: write,\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/evm/wallet.ts"],"names":[],"mappings":"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","file":"chunk-EIK6BZWG.js","sourcesContent":["/**\n * EVM wallet / signer abstraction.\n *\n * Consumers inject an implementation that wraps their wallet library\n * (wagmi, viem, ethers, etc.). The SDK uses this interface to sign\n * typed data and send transactions without depending on any specific\n * EVM library.\n */\n\n// ── EIP-712 typed data ───────────────────────────────────────────────────────\n\n/** Generic EIP-712 typed data that can be passed to a wallet for signing. */\nexport interface EIP712TypedData {\n domain: {\n name?: string;\n version?: string;\n chainId?: number;\n verifyingContract?: string;\n };\n types: Record<string, Array<{ name: string; type: string }>>;\n primaryType: string;\n message: Record<string, unknown>;\n}\n\n// ── Signer interface ─────────────────────────────────────────────────────────\n\n/**\n * Minimal EVM signer that the SDK needs to fund and refund swaps.\n *\n * Example implementation using wagmi/viem:\n * ```ts\n * const signer: EvmSigner = {\n * address: walletClient.account.address,\n * chainId: walletClient.chain.id,\n * signTypedData: (td) => walletClient.signTypedData({ ...td, account: walletClient.account }),\n * sendTransaction: (tx) => walletClient.sendTransaction({ to: tx.to, data: tx.data, chain, gas: tx.gas }),\n * waitForReceipt: (hash) => publicClient.waitForTransactionReceipt({ hash }),\n * getTransaction: (hash) => publicClient.getTransaction({ hash }),\n * call: (tx) => publicClient.call({ to: tx.to, data: tx.data, account: tx.from, blockNumber: tx.blockNumber }),\n * };\n * ```\n */\nexport interface EvmSigner {\n /** The connected wallet address (checksummed or lowercase hex). */\n address: string;\n /** Current chain ID the wallet is connected to. */\n chainId: number;\n\n /**\n * Sign EIP-712 typed data.\n * Must return the 65-byte hex signature (0x-prefixed).\n */\n signTypedData(typedData: EIP712TypedData): Promise<string>;\n\n /**\n * Sign a raw message hash (personal_sign style).\n *\n * **Required for the CCTP-inbound flow** — Kernel signs the UserOp\n * hash via `signMessage({ raw })` on the owner. The direct-Permit2\n * path does not call this, so existing consumers can leave it\n * unimplemented.\n *\n * For wagmi/Privy/viem consumers this is a one-liner:\n * `(m) => walletClient.signMessage({ account, message: m })`.\n *\n * Must return the 65-byte hex signature (0x-prefixed).\n */\n signMessage?(message: { raw: string }): Promise<string>;\n\n /**\n * Sign an EIP-7702 authorization tuple.\n *\n * **Required for the CCTP-inbound flow under 7702** — the user's EOA\n * delegates to a Kernel implementation on its first UserOp; the\n * signed authorization rides along with the UserOp and is installed\n * on-chain by the bundler. Subsequent UserOps from the same EOA\n * skip this once delegation exists.\n *\n * The signature is over `keccak256(0x05 || rlp([chainId, address,\n * nonce]))` with **no** EIP-191 prefix — getting this wrong silently\n * fails at submission. viem / wagmi / Privy walletClients implement\n * it correctly via `walletClient.signAuthorization(...)`.\n *\n * For viem consumers this is a one-liner:\n * `(a) => walletClient.signAuthorization({ account, ...a })`.\n */\n signAuthorization?(authorization: {\n chainId: number;\n contractAddress: string;\n nonce: number;\n }): Promise<{\n r: string;\n s: string;\n v?: number;\n yParity: number;\n chainId: number;\n address: string;\n nonce: number;\n }>;\n\n /**\n * Send a raw transaction and return the transaction hash (0x-prefixed).\n *\n * @param tx.to - Target contract address (0x-prefixed)\n * @param tx.data - ABI-encoded calldata (0x-prefixed)\n * @param tx.gas - Optional gas limit; the SDK provides sensible defaults\n */\n sendTransaction(tx: {\n to: string;\n data: string;\n gas?: bigint;\n }): Promise<string>;\n\n /**\n * Wait for a transaction to be mined and return the receipt.\n *\n * The implementation should handle transaction replacements (speed-up /\n * cancel) — e.g. viem's `waitForTransactionReceipt` and ethers'\n * `provider.waitForTransaction` both do this automatically.\n *\n * @param hash - Transaction hash to wait for (0x-prefixed)\n */\n waitForReceipt(hash: string): Promise<TxReceipt>;\n\n /**\n * Get a transaction by hash. Used internally to replay reverted\n * transactions and extract on-chain revert reasons.\n *\n * @param hash - Transaction hash (0x-prefixed)\n */\n getTransaction(hash: string): Promise<{\n /** Target address, or null for contract creation */\n to: string | null;\n /** ABI-encoded calldata (0x-prefixed) */\n input: string;\n /** Sender address */\n from: string;\n }>;\n\n /**\n * Simulate a call via `eth_call`. Used internally to dry-run\n * transactions before sending and to extract revert reasons.\n *\n * @param tx.to - Target contract address (0x-prefixed)\n * @param tx.data - ABI-encoded calldata (0x-prefixed)\n * @param tx.from - Optional sender address for simulation context\n * @param tx.blockNumber - Optional block number to simulate against\n */\n call(tx: {\n to: string;\n data: string;\n from?: string;\n blockNumber?: bigint;\n }): Promise<string>;\n}\n\n// ── Transaction receipt ──────────────────────────────────────────────────────\n\nexport interface TxReceipt {\n status: \"success\" | \"reverted\";\n blockNumber: bigint;\n transactionHash: string;\n}\n\n// ── Helpers ──────────────────────────────────────────────────────────────────\n\n/**\n * Normalise a 20-byte address to a 32-byte ABI-encoded word (no 0x prefix).\n */\nfunction padAddress(addr: string): string {\n return addr.replace(/^0x/i, \"\").toLowerCase().padStart(64, \"0\");\n}\n\n/**\n * Encode a uint256 as a 32-byte ABI word (no 0x prefix).\n */\nfunction encodeUint256(value: bigint): string {\n return value.toString(16).padStart(64, \"0\");\n}\n\n// ERC-20 function selectors\nconst ALLOWANCE_SELECTOR = \"0xdd62ed3e\"; // allowance(address,address)\nconst BALANCE_SELECTOR = \"0x70a08231\"; // balanceOf(address)\nconst APPROVE_SELECTOR = \"0x095ea7b3\"; // approve(address,uint256)\nconst TRANSFER_SELECTOR = \"0xa9059cbb\"; // transfer(address,uint256)\n\nconst MAX_UINT256 = BigInt(\n \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n);\n\n/**\n * Encode an `allowance(owner, spender)` call.\n */\nexport function encodeAllowanceCall(\n tokenAddress: string,\n owner: string,\n spender: string,\n): { to: string; data: string } {\n return {\n to: tokenAddress,\n data: `${ALLOWANCE_SELECTOR}${padAddress(owner)}${padAddress(spender)}`,\n };\n}\n\n/**\n * Encode a `balanceOf(account)` call.\n */\nexport function encodeBalanceOfCall(\n tokenAddress: string,\n account: string,\n): { to: string; data: string } {\n return {\n to: tokenAddress,\n data: `${BALANCE_SELECTOR}${padAddress(account)}`,\n };\n}\n\n/**\n * Encode an `approve(spender, type(uint256).max)` transaction.\n */\nexport function encodeMaxApproveData(\n tokenAddress: string,\n spender: string,\n): { to: string; data: string } {\n return {\n to: tokenAddress,\n data: `${APPROVE_SELECTOR}${padAddress(spender)}${encodeUint256(MAX_UINT256)}`,\n };\n}\n\n/**\n * Encode a `transfer(to, amount)` transaction.\n */\nexport function encodeTransferCall(\n tokenAddress: string,\n to: string,\n amount: bigint,\n): { to: string; data: string } {\n return {\n to: tokenAddress,\n data: `${TRANSFER_SELECTOR}${padAddress(to)}${encodeUint256(amount)}`,\n };\n}\n\n/**\n * Decode a 32-byte ABI-encoded uint256 from a hex string.\n */\nexport function decodeUint256(hex: string): bigint {\n const clean = hex.replace(/^0x/i, \"\");\n if (clean.length === 0) return 0n;\n return BigInt(`0x${clean}`);\n}\n\n// ── Simulation ───────────────────────────────────────────────────────────────\n\n/**\n * Simulate a transaction via `eth_call`. Throws with the revert reason\n * if the call would fail, so callers don't burn gas on doomed transactions.\n */\nexport async function simulateTransaction(\n signer: EvmSigner,\n tx: { to: string; data: string },\n label: string,\n): Promise<void> {\n try {\n await signer.call({ to: tx.to, data: tx.data, from: signer.address });\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n const match =\n msg.match(/reverted with.*?:\\s*(.+)/i) ?? msg.match(/reason:\\s*(.+)/i);\n const reason = match?.[1]?.trim() ?? msg;\n throw new Error(`${label} would revert: ${reason}`);\n }\n}\n\n// ── Revert reason extraction ─────────────────────────────────────────────────\n\n/**\n * Replay a reverted transaction to extract the on-chain revert reason.\n */\nexport async function getRevertReason(\n signer: EvmSigner,\n txHash: string,\n blockNumber: bigint,\n): Promise<string> {\n try {\n const tx = await signer.getTransaction(txHash);\n if (!tx.to) return \"Transaction reverted\";\n await signer.call({\n to: tx.to,\n data: tx.input,\n from: tx.from,\n blockNumber,\n });\n return \"Transaction reverted\";\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n const match =\n msg.match(/reverted with.*?:\\s*(.+)/i) ?? msg.match(/reason:\\s*(.+)/i);\n return match?.[1]?.trim() ?? msg;\n }\n}\n\n// ── Error classification ─────────────────────────────────────────────────────\n\n/**\n * Returns true if the error message indicates the user rejected the\n * transaction in their wallet (MetaMask, etc.).\n */\nexport function isUserRejection(error: unknown): boolean {\n const msg = error instanceof Error ? error.message : String(error);\n return /user rejected|user denied|rejected the request/i.test(msg);\n}\n\n// ── Signature parsing ────────────────────────────────────────────────────────\n\n/**\n * Parse a 65-byte hex signature into its `v`, `r`, `s` components.\n */\nexport function parseSignature(signature: string): {\n v: number;\n r: string;\n s: string;\n} {\n const hex = signature.replace(/^0x/, \"\");\n return {\n r: `0x${hex.slice(0, 64)}`,\n s: `0x${hex.slice(64, 128)}`,\n v: Number.parseInt(hex.slice(128, 130), 16),\n };\n}\n"]}
|