@argonprotocol/bitcoin 1.3.7 → 1.3.8
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/browser/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["wasm-module:/home/runner/work/mainchain/mainchain/bitcoin/nodejs/ts/wasm/bitcoin_bindings_bg.wasm","../ts/wasm/bitcoin_bindings_bg.js","../ts/wasm/bitcoin_bindings.js","../node_modules/@scure/base/index.ts","../ts/KeysHelper.ts","../ts/CosignScript.ts"],"names":["calculateFee","createCosignPubkey","getCosignPsbt","module","signPsbt","signPsbtDerived","ptr","imports","hexToU8a","u8aToHex"],"mappings":"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","file":"index.js","sourcesContent":["\n import wasmModule from \"/home/runner/work/mainchain/mainchain/bitcoin/nodejs/ts/wasm/bitcoin_bindings_bg.wasm\";\n\n \n // Import from JS modules\n import { __wbindgen_string_new, __wbg_new_8a6f238a6ece86ea, __wbg_stack_0ed75d68575b0f3c, __wbg_error_7534b8e9a36f1ab4, __wbindgen_throw, __wbindgen_init_externref_table } from \"./bitcoin_bindings_bg.js\";\n\n // Build the WASM import object\n const imports = {\n [\"./bitcoin_bindings_bg.js\"]: {\n __wbindgen_string_new,\n__wbg_new_8a6f238a6ece86ea,\n__wbg_stack_0ed75d68575b0f3c,\n__wbg_error_7534b8e9a36f1ab4,\n__wbindgen_throw,\n__wbindgen_init_externref_table\n }\n };\n\n async function loadWasm(module, imports) {\n if (typeof module === 'string') {\n\n // Resolve relative urls from the runtime script path\n if (module.startsWith('./')) {\n module = new URL(module, import.meta.url).href\n }\n\n \n\n const moduleRequest = await fetch(module);\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(moduleRequest, imports);\n } catch (e) {\n if (moduleRequest.headers.get('Content-Type') != 'application/wasm') {\n console.warn(e);\n } else {\n throw e;\n }\n }\n }\n module = await moduleRequest.arrayBuffer();\n\n \n }\n return await WebAssembly.instantiate(module, imports);\n }\n\n export const { instance, module } = await loadWasm(wasmModule, imports);\n\n export const memory = instance.exports.memory;\nexport const createCosignPubkey = instance.exports.createCosignPubkey;\nexport const calculateFee = instance.exports.calculateFee;\nexport const signPsbtDerived = instance.exports.signPsbtDerived;\nexport const signPsbt = instance.exports.signPsbt;\nexport const getCosignPsbt = instance.exports.getCosignPsbt;\nexport const rustsecp256k1_v0_10_0_context_create = instance.exports.rustsecp256k1_v0_10_0_context_create;\nexport const rustsecp256k1_v0_10_0_context_destroy = instance.exports.rustsecp256k1_v0_10_0_context_destroy;\nexport const rustsecp256k1_v0_10_0_default_illegal_callback_fn = instance.exports.rustsecp256k1_v0_10_0_default_illegal_callback_fn;\nexport const rustsecp256k1_v0_10_0_default_error_callback_fn = instance.exports.rustsecp256k1_v0_10_0_default_error_callback_fn;\nexport const __wbindgen_free = instance.exports.__wbindgen_free;\nexport const __wbindgen_malloc = instance.exports.__wbindgen_malloc;\nexport const __wbindgen_realloc = instance.exports.__wbindgen_realloc;\nexport const __wbindgen_export_3 = instance.exports.__wbindgen_export_3;\nexport const __externref_table_dealloc = instance.exports.__externref_table_dealloc;\nexport const __wbindgen_start = instance.exports.__wbindgen_start;\n ","let wasm;\nexport function __wbg_set_wasm(val) {\n wasm = val;\n}\n\n\nconst lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder;\n\nlet cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst lTextEncoder = typeof TextEncoder === 'undefined' ? (0, module.require)('util').TextEncoder : TextEncoder;\n\nlet cachedTextEncoder = new lTextEncoder('utf-8');\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_export_3.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n/**\n * @param {string} vault_pubkey_hex\n * @param {string} vault_claim_pubkey_hex\n * @param {string} owner_pubkey_hex\n * @param {bigint} vault_claim_height\n * @param {bigint} open_claim_height\n * @param {bigint} created_at_height\n * @param {BitcoinNetwork} bitcoin_network\n * @returns {string}\n */\nexport function createCosignPubkey(vault_pubkey_hex, vault_claim_pubkey_hex, owner_pubkey_hex, vault_claim_height, open_claim_height, created_at_height, bitcoin_network) {\n let deferred5_0;\n let deferred5_1;\n try {\n const ptr0 = passStringToWasm0(vault_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(vault_claim_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(owner_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.createCosignPubkey(ptr0, len0, ptr1, len1, ptr2, len2, vault_claim_height, open_claim_height, created_at_height, bitcoin_network);\n var ptr4 = ret[0];\n var len4 = ret[1];\n if (ret[3]) {\n ptr4 = 0; len4 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred5_0 = ptr4;\n deferred5_1 = len4;\n return getStringFromWasm0(ptr4, len4);\n } finally {\n wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);\n }\n}\n\n/**\n * @param {string} vault_pubkey_hex\n * @param {string} vault_claim_pubkey_hex\n * @param {string} owner_pubkey_hex\n * @param {bigint} vault_claim_height\n * @param {bigint} open_claim_height\n * @param {bigint} created_at_height\n * @param {BitcoinNetwork} bitcoin_network\n * @param {bigint} fee_rate_sats_per_vb\n * @param {string} to_script_pubkey\n * @returns {bigint}\n */\nexport function calculateFee(vault_pubkey_hex, vault_claim_pubkey_hex, owner_pubkey_hex, vault_claim_height, open_claim_height, created_at_height, bitcoin_network, fee_rate_sats_per_vb, to_script_pubkey) {\n const ptr0 = passStringToWasm0(vault_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(vault_claim_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(owner_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(to_script_pubkey, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.calculateFee(ptr0, len0, ptr1, len1, ptr2, len2, vault_claim_height, open_claim_height, created_at_height, bitcoin_network, fee_rate_sats_per_vb, ptr3, len3);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return BigInt.asUintN(64, ret[0]);\n}\n\n/**\n * @param {string} psbt_hex\n * @param {string} xpriv_b58\n * @param {string} xpriv_hd_path\n * @param {boolean} finalize\n * @returns {string}\n */\nexport function signPsbtDerived(psbt_hex, xpriv_b58, xpriv_hd_path, finalize) {\n let deferred5_0;\n let deferred5_1;\n try {\n const ptr0 = passStringToWasm0(psbt_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(xpriv_b58, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(xpriv_hd_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.signPsbtDerived(ptr0, len0, ptr1, len1, ptr2, len2, finalize);\n var ptr4 = ret[0];\n var len4 = ret[1];\n if (ret[3]) {\n ptr4 = 0; len4 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred5_0 = ptr4;\n deferred5_1 = len4;\n return getStringFromWasm0(ptr4, len4);\n } finally {\n wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);\n }\n}\n\n/**\n * @param {string} psbt_hex\n * @param {BitcoinNetwork} bitcoin_network\n * @param {string} private_key_hex\n * @param {boolean} finalize\n * @returns {string}\n */\nexport function signPsbt(psbt_hex, bitcoin_network, private_key_hex, finalize) {\n let deferred4_0;\n let deferred4_1;\n try {\n const ptr0 = passStringToWasm0(psbt_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(private_key_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.signPsbt(ptr0, len0, bitcoin_network, ptr1, len1, finalize);\n var ptr3 = ret[0];\n var len3 = ret[1];\n if (ret[3]) {\n ptr3 = 0; len3 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred4_0 = ptr3;\n deferred4_1 = len3;\n return getStringFromWasm0(ptr3, len3);\n } finally {\n wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * @param {string} txid\n * @param {number} vout\n * @param {bigint} satoshis\n * @param {string} vault_pubkey_hex\n * @param {string} vault_claim_pubkey_hex\n * @param {string} owner_pubkey_hex\n * @param {bigint} vault_claim_height\n * @param {bigint} open_claim_height\n * @param {bigint} created_at_height\n * @param {BitcoinNetwork} bitcoin_network\n * @param {string} to_script_pubkey_hex\n * @param {bigint} bitcoin_network_fee\n * @returns {string}\n */\nexport function getCosignPsbt(txid, vout, satoshis, vault_pubkey_hex, vault_claim_pubkey_hex, owner_pubkey_hex, vault_claim_height, open_claim_height, created_at_height, bitcoin_network, to_script_pubkey_hex, bitcoin_network_fee) {\n let deferred7_0;\n let deferred7_1;\n try {\n const ptr0 = passStringToWasm0(txid, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(vault_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(vault_claim_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(owner_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passStringToWasm0(to_script_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len4 = WASM_VECTOR_LEN;\n const ret = wasm.getCosignPsbt(ptr0, len0, vout, satoshis, ptr1, len1, ptr2, len2, ptr3, len3, vault_claim_height, open_claim_height, created_at_height, bitcoin_network, ptr4, len4, bitcoin_network_fee);\n var ptr6 = ret[0];\n var len6 = ret[1];\n if (ret[3]) {\n ptr6 = 0; len6 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred7_0 = ptr6;\n deferred7_1 = len6;\n return getStringFromWasm0(ptr6, len6);\n } finally {\n wasm.__wbindgen_free(deferred7_0, deferred7_1, 1);\n }\n}\n\n/**\n * @enum {0 | 1 | 2 | 3}\n */\nexport const BitcoinNetwork = Object.freeze({\n /**\n * Mainnet Bitcoin.\n */\n Bitcoin: 0, \"0\": \"Bitcoin\",\n /**\n * Bitcoin's testnet network.\n */\n Testnet: 1, \"1\": \"Testnet\",\n /**\n * Bitcoin's signet network\n */\n Signet: 2, \"2\": \"Signet\",\n /**\n * Bitcoin's regtest network.\n */\n Regtest: 3, \"3\": \"Regtest\",\n});\n\nexport function __wbg_error_7534b8e9a36f1ab4(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n};\n\nexport function __wbg_new_8a6f238a6ece86ea() {\n const ret = new Error();\n return ret;\n};\n\nexport function __wbg_stack_0ed75d68575b0f3c(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbindgen_init_externref_table() {\n const table = wasm.__wbindgen_export_3;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n ;\n};\n\nexport function __wbindgen_string_new(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n};\n\nexport function __wbindgen_throw(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\n","import * as wasm from \"./bitcoin_bindings_bg.wasm\";\nexport * from \"./bitcoin_bindings_bg.js\";\nimport { __wbg_set_wasm } from \"./bitcoin_bindings_bg.js\";\n__wbg_set_wasm(wasm);\nwasm.__wbindgen_start();\n","/*! 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, ...lengths: number[]): void {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\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\n// no abytes: seems to have 10% slowdown. Why?!\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","import { Address, NETWORK, OutScript, TEST_NETWORK } from '@scure/btc-signer';\nimport { bech32 } from '@scure/base';\nimport { HDKey, Versions } from '@scure/bip32';\nimport { hexToU8a, u8aToHex } from '@argonprotocol/mainchain';\nimport * as secp256k1 from '@noble/secp256k1';\nimport { BTC_NETWORK } from '@scure/btc-signer/utils';\nimport { BitcoinNetwork } from './wasm/bitcoin_bindings';\n\nexport { HDKey, BitcoinNetwork };\n\nexport function getBip32Version(network?: BitcoinNetwork): Versions | undefined {\n if (!network) {\n return undefined;\n }\n\n if (network === BitcoinNetwork.Testnet || network === BitcoinNetwork.Signet) {\n return {\n private: 0x04358394, // tprv\n public: 0x043587cf, // tpub\n };\n }\n if (network === BitcoinNetwork.Regtest) {\n return {\n private: 0x04358394, // rprv\n public: 0x043587cf, // rpub\n };\n }\n // If the network is Bitcoin, we return undefined to use the default BIP32 version\n return undefined;\n}\n\nexport function getChildXpriv(\n bip39Seed: Uint8Array,\n hdPath: string,\n network?: BitcoinNetwork,\n): HDKey {\n const root = HDKey.fromMasterSeed(bip39Seed, getBip32Version(network));\n return root.derive(hdPath);\n}\n\nexport function getXpubFromXpriv(xpriv: HDKey): string {\n return xpriv.publicExtendedKey;\n}\n\nexport function getCompressedPubkey(pubkey: string | Uint8Array): Uint8Array {\n const pubkeyUint8Array = keyToU8a(pubkey);\n\n // If already compressed (33 bytes), return as-is\n if (pubkeyUint8Array.length === 33) {\n return pubkeyUint8Array;\n }\n\n // Use @noble/secp256k1 to properly compress the point\n const point = secp256k1.Point.fromHex(pubkeyUint8Array);\n return point.toRawBytes(true); // true = compressed\n}\n\nexport function getBech32Prefix(network: BitcoinNetwork): string {\n return getScureNetwork(network).bech32;\n}\n\nexport function p2wshScriptHexToAddress(scriptPubKeyHex: string, network: BitcoinNetwork): string {\n const script = hexToU8a(scriptPubKeyHex);\n if (script.byteLength !== 34 || script[0] !== 0x00 || script[1] !== 0x20) {\n throw new Error('Invalid P2WSH scriptPubKey');\n }\n\n const witnessProgram = script.slice(2);\n const version = 0; // P2WSH uses version 0\n const prefix = getBech32Prefix(network);\n return bech32.encode(prefix, [version, ...bech32.toWords(witnessProgram)]);\n}\n\nexport function addressBytesHex(address: string, network: BitcoinNetwork): string {\n if (address.startsWith('0x')) {\n return address;\n }\n const bech32Prefix = getBech32Prefix(network);\n // if the address is all hex, we assume it's a script hash\n if (\n /^[0-9a-fA-F]+$/.test(address) &&\n !address.startsWith('bc') &&\n !address.startsWith(bech32Prefix)\n ) {\n return `0x${address}`;\n }\n const btcNetwork = getScureNetwork(network);\n const decoded = Address(btcNetwork).decode(address);\n const out = OutScript.encode(decoded);\n return u8aToHex(out);\n}\n\nexport function keyToU8a(pubkey: string | Uint8Array): Uint8Array {\n return typeof pubkey === 'string' ? hexToU8a(pubkey) : pubkey;\n}\n\nexport function getScureNetwork(network: BitcoinNetwork): BTC_NETWORK {\n if (network === BitcoinNetwork.Bitcoin) {\n return NETWORK;\n } else if (network === BitcoinNetwork.Testnet || network === BitcoinNetwork.Signet) {\n return TEST_NETWORK;\n } else {\n return {\n bech32: 'bcrt',\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n };\n }\n}\n","import { HDKey } from '@scure/bip32';\nimport { p2pkh, p2sh, p2wpkh, p2wsh, Transaction } from '@scure/btc-signer';\nimport {\n ArgonPrimitivesBitcoinBitcoinNetwork,\n hexToU8a,\n IBitcoinLock,\n IReleaseRequest,\n u8aEq,\n u8aToHex,\n} from '@argonprotocol/mainchain';\nimport {\n BitcoinNetwork,\n calculateFee,\n createCosignPubkey,\n getCosignPsbt,\n signPsbt,\n signPsbtDerived,\n} from './wasm/bitcoin_bindings.js';\nimport { addressBytesHex, getChildXpriv, getScureNetwork, keyToU8a } from './KeysHelper';\n\nexport class CosignScript {\n constructor(\n readonly lock: IBitcoinLock,\n private network: BitcoinNetwork,\n ) {}\n\n public getFundingPsbt(): Uint8Array {\n const { lock, network } = this;\n const tx = new Transaction();\n tx.addOutput({\n script: keyToU8a(lock.p2wshScriptHashHex),\n amount: lock.satoshis,\n });\n return tx.toPSBT(0);\n }\n\n public calculateFee(feeRatePerSatVb: bigint, toScriptPubkey: string): bigint {\n toScriptPubkey = addressBytesHex(toScriptPubkey, this.network);\n const { lock, network } = this;\n return calculateFee(\n lock.vaultPubkey,\n lock.vaultClaimPubkey,\n lock.ownerPubkey,\n BigInt(lock.vaultClaimHeight),\n BigInt(lock.openClaimHeight),\n BigInt(lock.createdAtHeight),\n network,\n feeRatePerSatVb,\n toScriptPubkey,\n );\n }\n\n public calculateScriptPubkey(): string {\n const { lock, network } = this;\n return createCosignPubkey(\n lock.vaultPubkey,\n lock.vaultClaimPubkey,\n lock.ownerPubkey,\n BigInt(lock.vaultClaimHeight),\n BigInt(lock.openClaimHeight),\n BigInt(lock.createdAtHeight),\n network,\n );\n }\n\n public getCosignPsbt(args: {\n utxoRef: { txid: string; vout: number };\n releaseRequest: IReleaseRequest;\n }) {\n const { lock, network } = this;\n const { releaseRequest, utxoRef } = args;\n\n releaseRequest.toScriptPubkey = addressBytesHex(releaseRequest.toScriptPubkey, network);\n\n const psbtStr = getCosignPsbt(\n utxoRef.txid,\n utxoRef.vout,\n lock.satoshis,\n lock.vaultPubkey,\n lock.vaultClaimPubkey,\n lock.ownerPubkey,\n BigInt(lock.vaultClaimHeight),\n BigInt(lock.openClaimHeight),\n BigInt(lock.createdAtHeight),\n network,\n releaseRequest.toScriptPubkey,\n releaseRequest.bitcoinNetworkFee,\n );\n return this.psbtFromHex(psbtStr);\n }\n\n psbtFromHex(psbtHex: string): Transaction {\n const psbtBytes = hexToU8a(psbtHex);\n const tx = Transaction.fromPSBT(psbtBytes);\n if (tx.inputsLength === 0) {\n throw new Error('PSBT has no inputs');\n }\n if (tx.outputsLength === 0) {\n throw new Error('PSBT has no outputs');\n }\n return tx;\n }\n\n /**\n * Cosigns the PSBT with the vault xpub.\n * @param psbt - The PSBT to cosign.\n * @param lock - The Bitcoin lock containing the vault information.\n * @param vaultXpriv - The vault's extended private key of which the xpub was used to create the vault.\n */\n public vaultCosignPsbt(psbt: Transaction, lock: IBitcoinLock, vaultXpriv: HDKey): Transaction {\n const parentFingerprint = lock.vaultXpubSources.parentFingerprint;\n const vaultFingerprint = vaultXpriv.identifier?.slice(0, 4);\n if (!vaultFingerprint) {\n throw new Error('Could not get vault fingerprint from HDKey');\n }\n if (!u8aEq(parentFingerprint, vaultFingerprint)) {\n throw new Error(\n `Vault xpub fingerprint ${u8aToHex(parentFingerprint)} does not match the vault xpriv fingerprint ${u8aToHex(vaultFingerprint)}`,\n );\n }\n\n const childPath = `${lock.vaultXpubSources.cosignHdIndex}`;\n const pubkey = vaultXpriv.deriveChild(lock.vaultXpubSources.cosignHdIndex).publicKey;\n if (!pubkey) {\n throw new Error(`Failed to derive public key for path ${childPath}`);\n }\n const vaultPubkey = keyToU8a(lock.vaultPubkey);\n if (!u8aEq(vaultPubkey, pubkey)) {\n throw new Error(\n `Vault pubkey ${u8aToHex(vaultPubkey)} does not match the derived pubkey ${u8aToHex(pubkey)} using path ${childPath}`,\n );\n }\n const signedPsbt = signPsbtDerived(\n u8aToHex(psbt.toPSBT()),\n vaultXpriv.privateExtendedKey,\n childPath,\n false,\n );\n psbt = this.psbtFromHex(signedPsbt);\n\n return psbt;\n }\n\n /**\n * Cosigns the transaction.\n */\n public cosignAndGenerateTx(args: {\n releaseRequest: IReleaseRequest;\n vaultCosignature: Uint8Array;\n utxoRef: { txid: string; vout: number };\n ownerXpriv: HDKey;\n ownerXprivChildHdPath?: string;\n addTx?: string;\n }): Transaction {\n const { lock } = this;\n const psbt = this.getCosignPsbt(args);\n const { addTx, vaultCosignature, ownerXpriv, ownerXprivChildHdPath } = args;\n\n // add the vault signature to the PSBT\n psbt.updateInput(0, {\n partialSig: [[keyToU8a(lock.vaultPubkey), vaultCosignature]],\n });\n const derivePubkey = ownerXprivChildHdPath\n ? ownerXpriv.derive(ownerXprivChildHdPath).publicKey\n : ownerXpriv.publicKey;\n if (!derivePubkey) {\n throw new Error('Failed to derive owner public key');\n }\n const ownerPubkey = keyToU8a(lock.ownerPubkey);\n if (!u8aEq(ownerPubkey, derivePubkey)) {\n throw new Error(\n `Owner pubkey ${u8aToHex(ownerPubkey)} does not match the derived pubkey ${u8aToHex(derivePubkey)}`,\n );\n }\n\n if (addTx) {\n const addTxBytes = hexToU8a(addTx);\n const tx = Transaction.fromPSBT(addTxBytes);\n for (let i = 0; i < tx.outputsLength; i++) {\n const output = tx.getOutput(i);\n const network = getScureNetwork(this.network);\n const scripts = [\n p2wpkh(ownerPubkey, network).script,\n p2wsh(p2wpkh(ownerPubkey, network), network).script,\n p2sh(p2pkh(ownerPubkey, network), network).script,\n p2pkh(ownerPubkey, network).script,\n ];\n\n if (scripts.some(x => x && output.script && u8aEq(output.script, x))) {\n psbt.addInput({\n txid: tx.id,\n index: i,\n witnessUtxo: {\n script: output.script!,\n amount: output.amount!,\n },\n });\n }\n }\n }\n\n const psbtBytes = u8aToHex(psbt.toPSBT());\n const signedPsbt = ownerXprivChildHdPath\n ? signPsbtDerived(psbtBytes, ownerXpriv.privateExtendedKey, ownerXprivChildHdPath, true)\n : signPsbt(psbtBytes, this.network, u8aToHex(ownerXpriv.privateKey, undefined, false), true);\n return this.psbtFromHex(signedPsbt);\n }\n}\n\nexport function getBitcoinNetworkFromApi(\n network: ArgonPrimitivesBitcoinBitcoinNetwork,\n): BitcoinNetwork {\n if (network.isBitcoin) {\n return BitcoinNetwork.Bitcoin;\n } else if (network.isTestnet) {\n return BitcoinNetwork.Testnet;\n } else if (network.isRegtest) {\n return BitcoinNetwork.Regtest;\n } else if (network.isSignet) {\n return BitcoinNetwork.Signet;\n }\n throw new Error('Unsupported network: ' + network);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["wasm-module:/home/runner/work/mainchain/mainchain/bitcoin/nodejs/ts/wasm/bitcoin_bindings_bg.wasm","../ts/wasm/bitcoin_bindings_bg.js","../ts/wasm/bitcoin_bindings.js","../node_modules/@scure/base/index.ts","../ts/KeysHelper.ts","../ts/CosignScript.ts"],"names":["calculateFee","createCosignPubkey","getCosignPsbt","module","signPsbt","signPsbtDerived","ptr","imports","hexToU8a","u8aToHex"],"mappings":"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","file":"index.js","sourcesContent":["\n import wasmModule from \"/home/runner/work/mainchain/mainchain/bitcoin/nodejs/ts/wasm/bitcoin_bindings_bg.wasm\";\n\n \n // Import from JS modules\n import { __wbg_new_8a6f238a6ece86ea, __wbg_stack_0ed75d68575b0f3c, __wbg_error_7534b8e9a36f1ab4, __wbg_wbindgenthrow_4c11a24fca429ccf, __wbindgen_init_externref_table, __wbindgen_cast_2241b6af4c4b2941 } from \"./bitcoin_bindings_bg.js\";\n\n // Build the WASM import object\n const imports = {\n [\"./bitcoin_bindings_bg.js\"]: {\n __wbg_new_8a6f238a6ece86ea,\n__wbg_stack_0ed75d68575b0f3c,\n__wbg_error_7534b8e9a36f1ab4,\n__wbg_wbindgenthrow_4c11a24fca429ccf,\n__wbindgen_init_externref_table,\n__wbindgen_cast_2241b6af4c4b2941\n }\n };\n\n async function loadWasm(module, imports) {\n if (typeof module === 'string') {\n\n // Resolve relative urls from the runtime script path\n if (module.startsWith('./')) {\n module = new URL(module, import.meta.url).href\n }\n\n \n\n const moduleRequest = await fetch(module);\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(moduleRequest, imports);\n } catch (e) {\n if (moduleRequest.headers.get('Content-Type') != 'application/wasm') {\n console.warn(e);\n } else {\n throw e;\n }\n }\n }\n module = await moduleRequest.arrayBuffer();\n\n \n }\n return await WebAssembly.instantiate(module, imports);\n }\n\n export const { instance, module } = await loadWasm(wasmModule, imports);\n\n export const memory = instance.exports.memory;\nexport const createCosignPubkey = instance.exports.createCosignPubkey;\nexport const calculateFee = instance.exports.calculateFee;\nexport const signPsbtDerived = instance.exports.signPsbtDerived;\nexport const signPsbt = instance.exports.signPsbt;\nexport const getCosignPsbt = instance.exports.getCosignPsbt;\nexport const rustsecp256k1_v0_10_0_context_create = instance.exports.rustsecp256k1_v0_10_0_context_create;\nexport const rustsecp256k1_v0_10_0_context_destroy = instance.exports.rustsecp256k1_v0_10_0_context_destroy;\nexport const rustsecp256k1_v0_10_0_default_illegal_callback_fn = instance.exports.rustsecp256k1_v0_10_0_default_illegal_callback_fn;\nexport const rustsecp256k1_v0_10_0_default_error_callback_fn = instance.exports.rustsecp256k1_v0_10_0_default_error_callback_fn;\nexport const __wbindgen_free = instance.exports.__wbindgen_free;\nexport const __wbindgen_malloc = instance.exports.__wbindgen_malloc;\nexport const __wbindgen_realloc = instance.exports.__wbindgen_realloc;\nexport const __wbindgen_export_3 = instance.exports.__wbindgen_export_3;\nexport const __externref_table_dealloc = instance.exports.__externref_table_dealloc;\nexport const __wbindgen_start = instance.exports.__wbindgen_start;\n ","let wasm;\nexport function __wbg_set_wasm(val) {\n wasm = val;\n}\n\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nconst lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder;\n\nlet cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst lTextEncoder = typeof TextEncoder === 'undefined' ? (0, module.require)('util').TextEncoder : TextEncoder;\n\nconst cachedTextEncoder = new lTextEncoder('utf-8');\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_export_3.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n/**\n * @param {string} vault_pubkey_hex\n * @param {string} vault_claim_pubkey_hex\n * @param {string} owner_pubkey_hex\n * @param {bigint} vault_claim_height\n * @param {bigint} open_claim_height\n * @param {bigint} created_at_height\n * @param {BitcoinNetwork} bitcoin_network\n * @returns {string}\n */\nexport function createCosignPubkey(vault_pubkey_hex, vault_claim_pubkey_hex, owner_pubkey_hex, vault_claim_height, open_claim_height, created_at_height, bitcoin_network) {\n let deferred5_0;\n let deferred5_1;\n try {\n const ptr0 = passStringToWasm0(vault_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(vault_claim_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(owner_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.createCosignPubkey(ptr0, len0, ptr1, len1, ptr2, len2, vault_claim_height, open_claim_height, created_at_height, bitcoin_network);\n var ptr4 = ret[0];\n var len4 = ret[1];\n if (ret[3]) {\n ptr4 = 0; len4 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred5_0 = ptr4;\n deferred5_1 = len4;\n return getStringFromWasm0(ptr4, len4);\n } finally {\n wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);\n }\n}\n\n/**\n * @param {string} vault_pubkey_hex\n * @param {string} vault_claim_pubkey_hex\n * @param {string} owner_pubkey_hex\n * @param {bigint} vault_claim_height\n * @param {bigint} open_claim_height\n * @param {bigint} created_at_height\n * @param {BitcoinNetwork} bitcoin_network\n * @param {bigint} fee_rate_sats_per_vb\n * @param {string} to_script_pubkey\n * @returns {bigint}\n */\nexport function calculateFee(vault_pubkey_hex, vault_claim_pubkey_hex, owner_pubkey_hex, vault_claim_height, open_claim_height, created_at_height, bitcoin_network, fee_rate_sats_per_vb, to_script_pubkey) {\n const ptr0 = passStringToWasm0(vault_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(vault_claim_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(owner_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(to_script_pubkey, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.calculateFee(ptr0, len0, ptr1, len1, ptr2, len2, vault_claim_height, open_claim_height, created_at_height, bitcoin_network, fee_rate_sats_per_vb, ptr3, len3);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return BigInt.asUintN(64, ret[0]);\n}\n\n/**\n * @param {string} psbt_hex\n * @param {string} xpriv_b58\n * @param {string} xpriv_hd_path\n * @param {boolean} finalize\n * @returns {string}\n */\nexport function signPsbtDerived(psbt_hex, xpriv_b58, xpriv_hd_path, finalize) {\n let deferred5_0;\n let deferred5_1;\n try {\n const ptr0 = passStringToWasm0(psbt_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(xpriv_b58, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(xpriv_hd_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.signPsbtDerived(ptr0, len0, ptr1, len1, ptr2, len2, finalize);\n var ptr4 = ret[0];\n var len4 = ret[1];\n if (ret[3]) {\n ptr4 = 0; len4 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred5_0 = ptr4;\n deferred5_1 = len4;\n return getStringFromWasm0(ptr4, len4);\n } finally {\n wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);\n }\n}\n\n/**\n * @param {string} psbt_hex\n * @param {BitcoinNetwork} bitcoin_network\n * @param {string} private_key_hex\n * @param {boolean} finalize\n * @returns {string}\n */\nexport function signPsbt(psbt_hex, bitcoin_network, private_key_hex, finalize) {\n let deferred4_0;\n let deferred4_1;\n try {\n const ptr0 = passStringToWasm0(psbt_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(private_key_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.signPsbt(ptr0, len0, bitcoin_network, ptr1, len1, finalize);\n var ptr3 = ret[0];\n var len3 = ret[1];\n if (ret[3]) {\n ptr3 = 0; len3 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred4_0 = ptr3;\n deferred4_1 = len3;\n return getStringFromWasm0(ptr3, len3);\n } finally {\n wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * @param {string} txid\n * @param {number} vout\n * @param {bigint} satoshis\n * @param {string} vault_pubkey_hex\n * @param {string} vault_claim_pubkey_hex\n * @param {string} owner_pubkey_hex\n * @param {bigint} vault_claim_height\n * @param {bigint} open_claim_height\n * @param {bigint} created_at_height\n * @param {BitcoinNetwork} bitcoin_network\n * @param {string} to_script_pubkey_hex\n * @param {bigint} bitcoin_network_fee\n * @returns {string}\n */\nexport function getCosignPsbt(txid, vout, satoshis, vault_pubkey_hex, vault_claim_pubkey_hex, owner_pubkey_hex, vault_claim_height, open_claim_height, created_at_height, bitcoin_network, to_script_pubkey_hex, bitcoin_network_fee) {\n let deferred7_0;\n let deferred7_1;\n try {\n const ptr0 = passStringToWasm0(txid, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(vault_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(vault_claim_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(owner_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passStringToWasm0(to_script_pubkey_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len4 = WASM_VECTOR_LEN;\n const ret = wasm.getCosignPsbt(ptr0, len0, vout, satoshis, ptr1, len1, ptr2, len2, ptr3, len3, vault_claim_height, open_claim_height, created_at_height, bitcoin_network, ptr4, len4, bitcoin_network_fee);\n var ptr6 = ret[0];\n var len6 = ret[1];\n if (ret[3]) {\n ptr6 = 0; len6 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred7_0 = ptr6;\n deferred7_1 = len6;\n return getStringFromWasm0(ptr6, len6);\n } finally {\n wasm.__wbindgen_free(deferred7_0, deferred7_1, 1);\n }\n}\n\n/**\n * @enum {0 | 1 | 2 | 3}\n */\nexport const BitcoinNetwork = Object.freeze({\n /**\n * Mainnet Bitcoin.\n */\n Bitcoin: 0, \"0\": \"Bitcoin\",\n /**\n * Bitcoin's testnet network.\n */\n Testnet: 1, \"1\": \"Testnet\",\n /**\n * Bitcoin's signet network\n */\n Signet: 2, \"2\": \"Signet\",\n /**\n * Bitcoin's regtest network.\n */\n Regtest: 3, \"3\": \"Regtest\",\n});\n\nexport function __wbg_error_7534b8e9a36f1ab4(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n};\n\nexport function __wbg_new_8a6f238a6ece86ea() {\n const ret = new Error();\n return ret;\n};\n\nexport function __wbg_stack_0ed75d68575b0f3c(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_wbindgenthrow_4c11a24fca429ccf(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\nexport function __wbindgen_cast_2241b6af4c4b2941(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n};\n\nexport function __wbindgen_init_externref_table() {\n const table = wasm.__wbindgen_export_3;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n ;\n};\n\n","import * as wasm from \"./bitcoin_bindings_bg.wasm\";\nexport * from \"./bitcoin_bindings_bg.js\";\nimport { __wbg_set_wasm } from \"./bitcoin_bindings_bg.js\";\n__wbg_set_wasm(wasm);\nwasm.__wbindgen_start();\n","/*! 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, ...lengths: number[]): void {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\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\n// no abytes: seems to have 10% slowdown. Why?!\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","import { Address, NETWORK, OutScript, TEST_NETWORK } from '@scure/btc-signer';\nimport { bech32 } from '@scure/base';\nimport { HDKey, Versions } from '@scure/bip32';\nimport { hexToU8a, u8aToHex } from '@argonprotocol/mainchain';\nimport * as secp256k1 from '@noble/secp256k1';\nimport { BTC_NETWORK } from '@scure/btc-signer/utils';\nimport { BitcoinNetwork } from './wasm/bitcoin_bindings';\n\nexport { HDKey, BitcoinNetwork };\n\nexport function getBip32Version(network?: BitcoinNetwork): Versions | undefined {\n if (!network) {\n return undefined;\n }\n\n if (network === BitcoinNetwork.Testnet || network === BitcoinNetwork.Signet) {\n return {\n private: 0x04358394, // tprv\n public: 0x043587cf, // tpub\n };\n }\n if (network === BitcoinNetwork.Regtest) {\n return {\n private: 0x04358394, // rprv\n public: 0x043587cf, // rpub\n };\n }\n // If the network is Bitcoin, we return undefined to use the default BIP32 version\n return undefined;\n}\n\nexport function getChildXpriv(\n bip39Seed: Uint8Array,\n hdPath: string,\n network?: BitcoinNetwork,\n): HDKey {\n const root = HDKey.fromMasterSeed(bip39Seed, getBip32Version(network));\n return root.derive(hdPath);\n}\n\nexport function getXpubFromXpriv(xpriv: HDKey): string {\n return xpriv.publicExtendedKey;\n}\n\nexport function getCompressedPubkey(pubkey: string | Uint8Array): Uint8Array {\n const pubkeyUint8Array = keyToU8a(pubkey);\n\n // If already compressed (33 bytes), return as-is\n if (pubkeyUint8Array.length === 33) {\n return pubkeyUint8Array;\n }\n\n // Use @noble/secp256k1 to properly compress the point\n const point = secp256k1.Point.fromHex(pubkeyUint8Array);\n return point.toRawBytes(true); // true = compressed\n}\n\nexport function getBech32Prefix(network: BitcoinNetwork): string {\n return getScureNetwork(network).bech32;\n}\n\nexport function p2wshScriptHexToAddress(scriptPubKeyHex: string, network: BitcoinNetwork): string {\n const script = hexToU8a(scriptPubKeyHex);\n if (script.byteLength !== 34 || script[0] !== 0x00 || script[1] !== 0x20) {\n throw new Error('Invalid P2WSH scriptPubKey');\n }\n\n const witnessProgram = script.slice(2);\n const version = 0; // P2WSH uses version 0\n const prefix = getBech32Prefix(network);\n return bech32.encode(prefix, [version, ...bech32.toWords(witnessProgram)]);\n}\n\nexport function addressBytesHex(address: string, network: BitcoinNetwork): string {\n if (address.startsWith('0x')) {\n return address;\n }\n const bech32Prefix = getBech32Prefix(network);\n // if the address is all hex, we assume it's a script hash\n if (\n /^[0-9a-fA-F]+$/.test(address) &&\n !address.startsWith('bc') &&\n !address.startsWith(bech32Prefix)\n ) {\n return `0x${address}`;\n }\n const btcNetwork = getScureNetwork(network);\n const decoded = Address(btcNetwork).decode(address);\n const out = OutScript.encode(decoded);\n return u8aToHex(out);\n}\n\nexport function keyToU8a(pubkey: string | Uint8Array): Uint8Array {\n return typeof pubkey === 'string' ? hexToU8a(pubkey) : pubkey;\n}\n\nexport function getScureNetwork(network: BitcoinNetwork): BTC_NETWORK {\n if (network === BitcoinNetwork.Bitcoin) {\n return NETWORK;\n } else if (network === BitcoinNetwork.Testnet || network === BitcoinNetwork.Signet) {\n return TEST_NETWORK;\n } else {\n return {\n bech32: 'bcrt',\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n };\n }\n}\n","import { HDKey } from '@scure/bip32';\nimport { p2pkh, p2sh, p2wpkh, p2wsh, Transaction } from '@scure/btc-signer';\nimport {\n ArgonPrimitivesBitcoinBitcoinNetwork,\n hexToU8a,\n IBitcoinLock,\n IReleaseRequest,\n u8aEq,\n u8aToHex,\n} from '@argonprotocol/mainchain';\nimport {\n BitcoinNetwork,\n calculateFee,\n createCosignPubkey,\n getCosignPsbt,\n signPsbt,\n signPsbtDerived,\n} from './wasm/bitcoin_bindings.js';\nimport { addressBytesHex, getChildXpriv, getScureNetwork, keyToU8a } from './KeysHelper';\n\nexport class CosignScript {\n constructor(\n readonly lock: IBitcoinLock,\n private network: BitcoinNetwork,\n ) {}\n\n public getFundingPsbt(): Uint8Array {\n const { lock, network } = this;\n const tx = new Transaction();\n tx.addOutput({\n script: keyToU8a(lock.p2wshScriptHashHex),\n amount: lock.satoshis,\n });\n return tx.toPSBT(0);\n }\n\n public calculateFee(feeRatePerSatVb: bigint, toScriptPubkey: string): bigint {\n toScriptPubkey = addressBytesHex(toScriptPubkey, this.network);\n const { lock, network } = this;\n return calculateFee(\n lock.vaultPubkey,\n lock.vaultClaimPubkey,\n lock.ownerPubkey,\n BigInt(lock.vaultClaimHeight),\n BigInt(lock.openClaimHeight),\n BigInt(lock.createdAtHeight),\n network,\n feeRatePerSatVb,\n toScriptPubkey,\n );\n }\n\n public calculateScriptPubkey(): string {\n const { lock, network } = this;\n return createCosignPubkey(\n lock.vaultPubkey,\n lock.vaultClaimPubkey,\n lock.ownerPubkey,\n BigInt(lock.vaultClaimHeight),\n BigInt(lock.openClaimHeight),\n BigInt(lock.createdAtHeight),\n network,\n );\n }\n\n public getCosignPsbt(args: {\n utxoRef: { txid: string; vout: number };\n releaseRequest: IReleaseRequest;\n }) {\n const { lock, network } = this;\n const { releaseRequest, utxoRef } = args;\n\n releaseRequest.toScriptPubkey = addressBytesHex(releaseRequest.toScriptPubkey, network);\n\n const psbtStr = getCosignPsbt(\n utxoRef.txid,\n utxoRef.vout,\n lock.satoshis,\n lock.vaultPubkey,\n lock.vaultClaimPubkey,\n lock.ownerPubkey,\n BigInt(lock.vaultClaimHeight),\n BigInt(lock.openClaimHeight),\n BigInt(lock.createdAtHeight),\n network,\n releaseRequest.toScriptPubkey,\n releaseRequest.bitcoinNetworkFee,\n );\n return this.psbtFromHex(psbtStr);\n }\n\n psbtFromHex(psbtHex: string): Transaction {\n const psbtBytes = hexToU8a(psbtHex);\n const tx = Transaction.fromPSBT(psbtBytes);\n if (tx.inputsLength === 0) {\n throw new Error('PSBT has no inputs');\n }\n if (tx.outputsLength === 0) {\n throw new Error('PSBT has no outputs');\n }\n return tx;\n }\n\n /**\n * Cosigns the PSBT with the vault xpub.\n * @param psbt - The PSBT to cosign.\n * @param lock - The Bitcoin lock containing the vault information.\n * @param vaultXpriv - The vault's extended private key of which the xpub was used to create the vault.\n */\n public vaultCosignPsbt(psbt: Transaction, lock: IBitcoinLock, vaultXpriv: HDKey): Transaction {\n const parentFingerprint = lock.vaultXpubSources.parentFingerprint;\n const vaultFingerprint = vaultXpriv.identifier?.slice(0, 4);\n if (!vaultFingerprint) {\n throw new Error('Could not get vault fingerprint from HDKey');\n }\n if (!u8aEq(parentFingerprint, vaultFingerprint)) {\n throw new Error(\n `Vault xpub fingerprint ${u8aToHex(parentFingerprint)} does not match the vault xpriv fingerprint ${u8aToHex(vaultFingerprint)}`,\n );\n }\n\n const childPath = `${lock.vaultXpubSources.cosignHdIndex}`;\n const pubkey = vaultXpriv.deriveChild(lock.vaultXpubSources.cosignHdIndex).publicKey;\n if (!pubkey) {\n throw new Error(`Failed to derive public key for path ${childPath}`);\n }\n const vaultPubkey = keyToU8a(lock.vaultPubkey);\n if (!u8aEq(vaultPubkey, pubkey)) {\n throw new Error(\n `Vault pubkey ${u8aToHex(vaultPubkey)} does not match the derived pubkey ${u8aToHex(pubkey)} using path ${childPath}`,\n );\n }\n const signedPsbt = signPsbtDerived(\n u8aToHex(psbt.toPSBT()),\n vaultXpriv.privateExtendedKey,\n childPath,\n false,\n );\n psbt = this.psbtFromHex(signedPsbt);\n\n return psbt;\n }\n\n /**\n * Cosigns the transaction.\n */\n public cosignAndGenerateTx(args: {\n releaseRequest: IReleaseRequest;\n vaultCosignature: Uint8Array;\n utxoRef: { txid: string; vout: number };\n ownerXpriv: HDKey;\n ownerXprivChildHdPath?: string;\n addTx?: string;\n }): Transaction {\n const { lock } = this;\n const psbt = this.getCosignPsbt(args);\n const { addTx, vaultCosignature, ownerXpriv, ownerXprivChildHdPath } = args;\n\n // add the vault signature to the PSBT\n psbt.updateInput(0, {\n partialSig: [[keyToU8a(lock.vaultPubkey), vaultCosignature]],\n });\n const derivePubkey = ownerXprivChildHdPath\n ? ownerXpriv.derive(ownerXprivChildHdPath).publicKey\n : ownerXpriv.publicKey;\n if (!derivePubkey) {\n throw new Error('Failed to derive owner public key');\n }\n const ownerPubkey = keyToU8a(lock.ownerPubkey);\n if (!u8aEq(ownerPubkey, derivePubkey)) {\n throw new Error(\n `Owner pubkey ${u8aToHex(ownerPubkey)} does not match the derived pubkey ${u8aToHex(derivePubkey)}`,\n );\n }\n\n if (addTx) {\n const addTxBytes = hexToU8a(addTx);\n const tx = Transaction.fromPSBT(addTxBytes);\n for (let i = 0; i < tx.outputsLength; i++) {\n const output = tx.getOutput(i);\n const network = getScureNetwork(this.network);\n const scripts = [\n p2wpkh(ownerPubkey, network).script,\n p2wsh(p2wpkh(ownerPubkey, network), network).script,\n p2sh(p2pkh(ownerPubkey, network), network).script,\n p2pkh(ownerPubkey, network).script,\n ];\n\n if (scripts.some(x => x && output.script && u8aEq(output.script, x))) {\n psbt.addInput({\n txid: tx.id,\n index: i,\n witnessUtxo: {\n script: output.script!,\n amount: output.amount!,\n },\n });\n }\n }\n }\n\n const psbtBytes = u8aToHex(psbt.toPSBT());\n const signedPsbt = ownerXprivChildHdPath\n ? signPsbtDerived(psbtBytes, ownerXpriv.privateExtendedKey, ownerXprivChildHdPath, true)\n : signPsbt(psbtBytes, this.network, u8aToHex(ownerXpriv.privateKey, undefined, false), true);\n return this.psbtFromHex(signedPsbt);\n }\n}\n\nexport function getBitcoinNetworkFromApi(\n network: ArgonPrimitivesBitcoinBitcoinNetwork,\n): BitcoinNetwork {\n if (network.isBitcoin) {\n return BitcoinNetwork.Bitcoin;\n } else if (network.isTestnet) {\n return BitcoinNetwork.Testnet;\n } else if (network.isRegtest) {\n return BitcoinNetwork.Regtest;\n } else if (network.isSignet) {\n return BitcoinNetwork.Signet;\n }\n throw new Error('Unsupported network: ' + network.toString());\n}\n"]}
|
|
Binary file
|
package/lib/index.js
CHANGED
|
@@ -39,16 +39,13 @@ __export(bitcoin_bindings_bg_exports, {
|
|
|
39
39
|
});
|
|
40
40
|
|
|
41
41
|
// wasm-deferred:/home/runner/work/mainchain/mainchain/bitcoin/nodejs/ts/wasm/bitcoin_bindings_bg.wasm
|
|
42
|
-
var bitcoin_bindings_bg_default = "./bitcoin_bindings_bg-
|
|
42
|
+
var bitcoin_bindings_bg_default = "./bitcoin_bindings_bg-E2BLTTTM.wasm";
|
|
43
43
|
|
|
44
44
|
// ts/wasm/bitcoin_bindings_bg.js
|
|
45
45
|
var wasm;
|
|
46
46
|
function __wbg_set_wasm(val) {
|
|
47
47
|
wasm = val;
|
|
48
48
|
}
|
|
49
|
-
var lTextDecoder = typeof TextDecoder === "undefined" ? (0, module.require)("util").TextDecoder : TextDecoder;
|
|
50
|
-
var cachedTextDecoder = new lTextDecoder("utf-8", { ignoreBOM: true, fatal: true });
|
|
51
|
-
cachedTextDecoder.decode();
|
|
52
49
|
var cachedUint8ArrayMemory0 = null;
|
|
53
50
|
function getUint8ArrayMemory0() {
|
|
54
51
|
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
|
|
@@ -56,9 +53,23 @@ function getUint8ArrayMemory0() {
|
|
|
56
53
|
}
|
|
57
54
|
return cachedUint8ArrayMemory0;
|
|
58
55
|
}
|
|
56
|
+
var lTextDecoder = typeof TextDecoder === "undefined" ? (0, module.require)("util").TextDecoder : TextDecoder;
|
|
57
|
+
var cachedTextDecoder = new lTextDecoder("utf-8", { ignoreBOM: true, fatal: true });
|
|
58
|
+
cachedTextDecoder.decode();
|
|
59
|
+
var MAX_SAFARI_DECODE_BYTES = 2146435072;
|
|
60
|
+
var numBytesDecoded = 0;
|
|
61
|
+
function decodeText(ptr, len) {
|
|
62
|
+
numBytesDecoded += len;
|
|
63
|
+
if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
|
|
64
|
+
cachedTextDecoder = new lTextDecoder("utf-8", { ignoreBOM: true, fatal: true });
|
|
65
|
+
cachedTextDecoder.decode();
|
|
66
|
+
numBytesDecoded = len;
|
|
67
|
+
}
|
|
68
|
+
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
|
|
69
|
+
}
|
|
59
70
|
function getStringFromWasm0(ptr, len) {
|
|
60
71
|
ptr = ptr >>> 0;
|
|
61
|
-
return
|
|
72
|
+
return decodeText(ptr, len);
|
|
62
73
|
}
|
|
63
74
|
var WASM_VECTOR_LEN = 0;
|
|
64
75
|
var lTextEncoder = typeof TextEncoder === "undefined" ? (0, module.require)("util").TextEncoder : TextEncoder;
|
|
@@ -276,6 +287,13 @@ function __wbg_stack_0ed75d68575b0f3c(arg0, arg1) {
|
|
|
276
287
|
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
277
288
|
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
278
289
|
}
|
|
290
|
+
function __wbg_wbindgenthrow_4c11a24fca429ccf(arg0, arg1) {
|
|
291
|
+
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
292
|
+
}
|
|
293
|
+
function __wbindgen_cast_2241b6af4c4b2941(arg0, arg1) {
|
|
294
|
+
const ret = getStringFromWasm0(arg0, arg1);
|
|
295
|
+
return ret;
|
|
296
|
+
}
|
|
279
297
|
function __wbindgen_init_externref_table() {
|
|
280
298
|
const table = wasm.__wbindgen_export_3;
|
|
281
299
|
const offset = table.grow(4);
|
|
@@ -286,23 +304,16 @@ function __wbindgen_init_externref_table() {
|
|
|
286
304
|
table.set(offset + 3, false);
|
|
287
305
|
;
|
|
288
306
|
}
|
|
289
|
-
function __wbindgen_string_new(arg0, arg1) {
|
|
290
|
-
const ret = getStringFromWasm0(arg0, arg1);
|
|
291
|
-
return ret;
|
|
292
|
-
}
|
|
293
|
-
function __wbindgen_throw(arg0, arg1) {
|
|
294
|
-
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
295
|
-
}
|
|
296
307
|
|
|
297
308
|
// wasm-module:/home/runner/work/mainchain/mainchain/bitcoin/nodejs/ts/wasm/bitcoin_bindings_bg.wasm
|
|
298
309
|
var imports = {
|
|
299
310
|
["./bitcoin_bindings_bg.js"]: {
|
|
300
|
-
__wbindgen_string_new,
|
|
301
311
|
__wbg_new_8a6f238a6ece86ea,
|
|
302
312
|
__wbg_stack_0ed75d68575b0f3c,
|
|
303
313
|
__wbg_error_7534b8e9a36f1ab4,
|
|
304
|
-
|
|
305
|
-
__wbindgen_init_externref_table
|
|
314
|
+
__wbg_wbindgenthrow_4c11a24fca429ccf,
|
|
315
|
+
__wbindgen_init_externref_table,
|
|
316
|
+
__wbindgen_cast_2241b6af4c4b2941
|
|
306
317
|
}
|
|
307
318
|
};
|
|
308
319
|
async function loadWasm(module3, imports2) {
|
|
@@ -609,7 +620,7 @@ function getBitcoinNetworkFromApi(network) {
|
|
|
609
620
|
} else if (network.isSignet) {
|
|
610
621
|
return BitcoinNetwork.Signet;
|
|
611
622
|
}
|
|
612
|
-
throw new Error("Unsupported network: " + network);
|
|
623
|
+
throw new Error("Unsupported network: " + network.toString());
|
|
613
624
|
}
|
|
614
625
|
|
|
615
626
|
// ts/index.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@argonprotocol/bitcoin",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8",
|
|
4
4
|
"description": "A client for interop with bitcoin in nodejs.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
},
|
|
14
14
|
"homepage": "https://github.com/argonprotocol/mainchain#readme",
|
|
15
15
|
"scripts": {
|
|
16
|
-
"wasm-pack": "wasm-pack build --target bundler --release --out-dir ts/wasm --out-name bitcoin_bindings --no-pack",
|
|
16
|
+
"wasm-pack": "RUSTFLAGS=\"--cfg substrate_runtime\" wasm-pack build --target bundler --release --out-dir ts/wasm --out-name bitcoin_bindings --no-pack -- --features=build",
|
|
17
17
|
"prebuild": "yarn workspace @argonprotocol/mainchain run build",
|
|
18
18
|
"build": "yarn wasm-pack && yarn tsc",
|
|
19
19
|
"pretsc": "yarn workspace @argonprotocol/mainchain run tsc",
|
|
20
20
|
"tsc": "yarn pretsc && tsup",
|
|
21
|
-
"test": "yarn build && vitest --run --typecheck --disableConsoleIntercept",
|
|
22
|
-
"test:ci": "yarn tsc && vitest --run --disableConsoleIntercept",
|
|
23
21
|
"tsup": "yarn tsc",
|
|
24
|
-
"watch": "yarn pretsc && tsup --watch"
|
|
22
|
+
"watch": "yarn pretsc && tsup --watch",
|
|
23
|
+
"pretest": "yarn build",
|
|
24
|
+
"pretest:ci": "yarn tsc"
|
|
25
25
|
},
|
|
26
26
|
"files": [
|
|
27
27
|
"lib/",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"./browser/index.js"
|
|
51
51
|
],
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@argonprotocol/mainchain": "1.3.
|
|
53
|
+
"@argonprotocol/mainchain": "1.3.8",
|
|
54
54
|
"@noble/secp256k1": "^2.3.0",
|
|
55
55
|
"@scure/bip32": "^1.7.0",
|
|
56
56
|
"@scure/bip39": "^1.6.0",
|
|
@@ -58,14 +58,12 @@
|
|
|
58
58
|
"bignumber.js": "^9.3.1"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@argonprotocol/testing": "1.3.
|
|
61
|
+
"@argonprotocol/testing": "1.3.8",
|
|
62
62
|
"@types/node": "22.17.1",
|
|
63
63
|
"esbuild-plugin-wasm": "^1.1.0",
|
|
64
64
|
"tsup": "^8.5.0",
|
|
65
65
|
"tsx": "^4.20.4",
|
|
66
66
|
"typescript": "^5.9.2",
|
|
67
|
-
"vite-plugin-wasm": "^3.5.0",
|
|
68
|
-
"vitest": "^3.2.4",
|
|
69
67
|
"wasm-pack": "^0.13.1"
|
|
70
68
|
},
|
|
71
69
|
"packageManager": "yarn@4.1.0"
|