@auditable/privacy-pool-zk-sdk 0.0.2-rc.8 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/main.wasm +0 -0
- package/assets/main_final.zkey +0 -0
- package/assets/witness_calculator.js +2 -0
- package/dist/cli.js +1500 -417
- package/dist/cli.js.map +1 -1
- package/dist/ephemeral-key.d.ts +28 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.mjs +1238 -374
- package/dist/index.mjs.map +1 -1
- package/dist/sdk.d.ts +69 -8
- package/dist/shared-secret.d.ts +24 -0
- package/dist/stealth-address.d.ts +23 -0
- package/dist/stealth-sign-message.d.ts +7 -0
- package/dist/stealth-signature.d.ts +21 -0
- package/dist/types.d.ts +12 -1
- package/dist/withdrawal-transaction-input.d.ts +91 -0
- package/dist/witness.d.ts +2 -2
- package/package.json +10 -6
- package/pkg/client_sdk_wasm.d.ts +105 -0
- package/pkg/client_sdk_wasm.js +708 -0
- package/pkg/client_sdk_wasm_bg.wasm +0 -0
- package/pkg/client_sdk_wasm_bg.wasm.d.ts +19 -0
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../pkg/client_sdk_wasm.js","../src/wasm.ts","../../circuits/build/main_js/witness_calculator.js","../src/witness.ts","../src/prover.ts","../src/sdk.ts"],"sourcesContent":["let wasm;\n\nconst heap = new Array(128).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet heap_next = heap.length;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export_0(addHeapObject(e));\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\nlet cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.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 = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\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\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );\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/**\n * Convert snarkjs public signals JSON to hex bytes for Soroban contract.\n * @param {string} public_json\n * @returns {string}\n */\nexport function publicToHex(public_json) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(public_json, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2);\n const len0 = WASM_VECTOR_LEN;\n wasm.publicToHex(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_3(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Calculate nullifier hash from nullifier decimal string.\n * Returns hex string (0x...)\n * @param {string} nullifier_decimal\n * @returns {string}\n */\nexport function calculateNullifierHash(nullifier_decimal) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(nullifier_decimal, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2);\n const len0 = WASM_VECTOR_LEN;\n wasm.calculateNullifierHash(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr2 = r0;\n var len2 = r1;\n if (r3) {\n ptr2 = 0; len2 = 0;\n throw takeObject(r2);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_3(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * Generate withdrawal SNARK input from coin and state JSON strings.\n * Returns JSON string of SnarkInput.\n * @param {string} coin_json\n * @param {string} state_json\n * @returns {string}\n */\nexport function generateWithdrawalInput(coin_json, state_json) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(coin_json, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(state_json, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2);\n const len1 = WASM_VECTOR_LEN;\n wasm.generateWithdrawalInput(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr3 = r0;\n var len3 = r1;\n if (r3) {\n ptr3 = 0; len3 = 0;\n throw takeObject(r2);\n }\n deferred4_0 = ptr3;\n deferred4_1 = len3;\n return getStringFromWasm0(ptr3, len3);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_3(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * Generate a new coin with random nullifier and secret.\n * Returns JSON: { coin: { value, nullifier, secret, commitment }, commitment_hex }\n * @returns {any}\n */\nexport function generateCoin() {\n const ret = wasm.generateCoin();\n return takeObject(ret);\n}\n\n/**\n * Convert snarkjs proof JSON to hex bytes for Soroban contract.\n * @param {string} proof_json\n * @returns {string}\n */\nexport function proofToHex(proof_json) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(proof_json, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2);\n const len0 = WASM_VECTOR_LEN;\n wasm.proofToHex(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_3(deferred2_0, deferred2_1, 1);\n }\n}\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n const validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_buffer_a1a27a0dfa70165d = function(arg0) {\n const ret = getObject(arg0).buffer;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_call_f2db6205e5c51dc8 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_fbe8be8bf6436ce5 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_crypto_574e78ad8b13b65f = function(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_getRandomValues_b8f5dbd5f3995a9e = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).getRandomValues(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_msCrypto_a61aeb35a24c1329 = function(arg0) {\n const ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_07b483f72211fd66 = function() {\n const ret = new Object();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_e52b3efaaa774f96 = function(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newnoargs_ff528e72d35de39a = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newwithbyteoffsetandlength_3b01ecda099177e8 = function(arg0, arg1, arg2) {\n const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newwithlength_08f872dc1e3ada2e = function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_node_905d3e251edff8a2 = function(arg0) {\n const ret = getObject(arg0).node;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_process_dc0fbacc7c1c06f7 = function(arg0) {\n const ret = getObject(arg0).process;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_randomFillSync_ac0988aba3254290 = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).randomFillSync(takeObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_require_60cc747a6bc5215a = function() { return handleError(function () {\n const ret = module.require;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) {\n getObject(arg0)[takeObject(arg1)] = takeObject(arg2);\n };\n imports.wbg.__wbg_set_fe4e79d1ed3b0e9b = function(arg0, arg1, arg2) {\n getObject(arg0).set(getObject(arg1), arg2 >>> 0);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_487c52c58d65314d = function() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_THIS_ee9704f328b6b291 = function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_SELF_78c9e3071b912620 = function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_WINDOW_a093d21393777366 = function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_subarray_dd4ade7d53bd8e26 = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_versions_c01dfd4722a88165 = function(arg0) {\n const ret = getObject(arg0).versions;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbindgen_is_function = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n return ret;\n };\n imports.wbg.__wbindgen_is_object = function(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n };\n imports.wbg.__wbindgen_is_string = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'string';\n return ret;\n };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_memory = function() {\n const ret = wasm.memory;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('client_sdk_wasm_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n __wbg_init_memory(imports);\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n",null,"module.exports = async function builder(code, options) {\n\n options = options || {};\n\n let wasmModule;\n try {\n\twasmModule = await WebAssembly.compile(code);\n } catch (err) {\n\tconsole.log(err);\n\tconsole.log(\"\\nTry to run circom --c in order to generate c++ code instead\\n\");\n\tthrow new Error(err);\n }\n\n let wc;\n\n let errStr = \"\";\n let msgStr = \"\";\n \n const instance = await WebAssembly.instantiate(wasmModule, {\n runtime: {\n exceptionHandler : function(code) {\n\t\tlet err;\n if (code == 1) {\n err = \"Signal not found.\\n\";\n } else if (code == 2) {\n err = \"Too many signals set.\\n\";\n } else if (code == 3) {\n err = \"Signal already set.\\n\";\n\t\t} else if (code == 4) {\n err = \"Assert Failed.\\n\";\n\t\t} else if (code == 5) {\n err = \"Not enough memory.\\n\";\n\t\t} else if (code == 6) {\n err = \"Input signal array access exceeds the size.\\n\";\n\t\t} else {\n\t\t err = \"Unknown error.\\n\";\n }\n throw new Error(err + errStr);\n },\n\t printErrorMessage : function() {\n\t\terrStr += getMessage() + \"\\n\";\n // console.error(getMessage());\n\t },\n\t writeBufferMessage : function() {\n\t\t\tconst msg = getMessage();\n\t\t\t// Any calls to `log()` will always end with a `\\n`, so that's when we print and reset\n\t\t\tif (msg === \"\\n\") {\n\t\t\t\tconsole.log(msgStr);\n\t\t\t\tmsgStr = \"\";\n\t\t\t} else {\n\t\t\t\t// If we've buffered other content, put a space in between the items\n\t\t\t\tif (msgStr !== \"\") {\n\t\t\t\t\tmsgStr += \" \"\n\t\t\t\t}\n\t\t\t\t// Then append the message to the message we are creating\n\t\t\t\tmsgStr += msg;\n\t\t\t}\n\t },\n\t showSharedRWMemory : function() {\n\t\tprintSharedRWMemory ();\n }\n\n }\n });\n\n const sanityCheck =\n options\n// options &&\n// (\n// options.sanityCheck ||\n// options.logGetSignal ||\n// options.logSetSignal ||\n// options.logStartComponent ||\n// options.logFinishComponent\n// );\n\n \n wc = new WitnessCalculator(instance, sanityCheck);\n return wc;\n\n function getMessage() {\n var message = \"\";\n\tvar c = instance.exports.getMessageChar();\n while ( c != 0 ) {\n\t message += String.fromCharCode(c);\n\t c = instance.exports.getMessageChar();\n\t}\n return message;\n }\n\t\n function printSharedRWMemory () {\n\tconst shared_rw_memory_size = instance.exports.getFieldNumLen32();\n\tconst arr = new Uint32Array(shared_rw_memory_size);\n\tfor (let j=0; j<shared_rw_memory_size; j++) {\n\t arr[shared_rw_memory_size-1-j] = instance.exports.readSharedRWMemory(j);\n\t}\n\n\t// If we've buffered other content, put a space in between the items\n\tif (msgStr !== \"\") {\n\t\tmsgStr += \" \"\n\t}\n\t// Then append the value to the message we are creating\n\tmsgStr += (fromArray32(arr).toString());\n\t}\n\n};\n\nclass WitnessCalculator {\n constructor(instance, sanityCheck) {\n this.instance = instance;\n\n\tthis.version = this.instance.exports.getVersion();\n this.n32 = this.instance.exports.getFieldNumLen32();\n\n this.instance.exports.getRawPrime();\n const arr = new Uint32Array(this.n32);\n for (let i=0; i<this.n32; i++) {\n arr[this.n32-1-i] = this.instance.exports.readSharedRWMemory(i);\n }\n this.prime = fromArray32(arr);\n\n this.witnessSize = this.instance.exports.getWitnessSize();\n\n this.sanityCheck = sanityCheck;\n }\n \n circom_version() {\n\treturn this.instance.exports.getVersion();\n }\n\n async _doCalculateWitness(input_orig, sanityCheck) {\n\t//input is assumed to be a map from signals to arrays of bigints\n this.instance.exports.init((this.sanityCheck || sanityCheck) ? 1 : 0);\n\tlet prefix = \"\";\n\tvar input = new Object();\n\t//console.log(\"Input: \", input_orig);\n\tqualify_input(prefix,input_orig,input);\n\t//console.log(\"Input after: \",input);\t\n const keys = Object.keys(input);\n\tvar input_counter = 0;\n keys.forEach( (k) => {\n const h = fnvHash(k);\n const hMSB = parseInt(h.slice(0,8), 16);\n const hLSB = parseInt(h.slice(8,16), 16);\n const fArr = flatArray(input[k]);\n\t let signalSize = this.instance.exports.getInputSignalSize(hMSB, hLSB);\n\t if (signalSize < 0){\n\t\tthrow new Error(`Signal ${k} not found\\n`);\n\t }\n\t if (fArr.length < signalSize) {\n\t\tthrow new Error(`Not enough values for input signal ${k}\\n`);\n\t }\n\t if (fArr.length > signalSize) {\n\t\tthrow new Error(`Too many values for input signal ${k}\\n`);\n\t }\n for (let i=0; i<fArr.length; i++) {\n const arrFr = toArray32(normalize(fArr[i],this.prime),this.n32)\n for (let j=0; j<this.n32; j++) {\n\t\t this.instance.exports.writeSharedRWMemory(j,arrFr[this.n32-1-j]);\n\t\t}\n\t\ttry {\n this.instance.exports.setInputSignal(hMSB, hLSB,i);\n\t\t input_counter++;\n\t\t} catch (err) {\n\t\t // console.log(`After adding signal ${i} of ${k}`)\n throw new Error(err);\n\t\t}\n }\n\n });\n\tif (input_counter < this.instance.exports.getInputSize()) {\n\t throw new Error(`Not all inputs have been set. Only ${input_counter} out of ${this.instance.exports.getInputSize()}`);\n\t}\n }\n\n async calculateWitness(input, sanityCheck) {\n\n const w = [];\n await this._doCalculateWitness(input, sanityCheck);\n\n for (let i=0; i<this.witnessSize; i++) {\n this.instance.exports.getWitness(i);\n\t const arr = new Uint32Array(this.n32);\n for (let j=0; j<this.n32; j++) {\n arr[this.n32-1-j] = this.instance.exports.readSharedRWMemory(j);\n }\n w.push(fromArray32(arr));\n }\n\n return w;\n }\n \n\n async calculateBinWitness(input, sanityCheck) {\n\n const buff32 = new Uint32Array(this.witnessSize*this.n32);\n\tconst buff = new Uint8Array( buff32.buffer);\n await this._doCalculateWitness(input, sanityCheck);\n\n for (let i=0; i<this.witnessSize; i++) {\n this.instance.exports.getWitness(i);\n\t const pos = i*this.n32;\n for (let j=0; j<this.n32; j++) {\n\t\tbuff32[pos+j] = this.instance.exports.readSharedRWMemory(j);\n }\n }\n\n\treturn buff;\n }\n \n\n async calculateWTNSBin(input, sanityCheck) {\n\n const buff32 = new Uint32Array(this.witnessSize*this.n32+this.n32+11);\n\tconst buff = new Uint8Array( buff32.buffer);\n await this._doCalculateWitness(input, sanityCheck);\n \n\t//\"wtns\"\n\tbuff[0] = \"w\".charCodeAt(0)\n\tbuff[1] = \"t\".charCodeAt(0)\n\tbuff[2] = \"n\".charCodeAt(0)\n\tbuff[3] = \"s\".charCodeAt(0)\n\n\t//version 2\n\tbuff32[1] = 2;\n\n\t//number of sections: 2\n\tbuff32[2] = 2;\n\n\t//id section 1\n\tbuff32[3] = 1;\n\n\tconst n8 = this.n32*4;\n\t//id section 1 length in 64bytes\n\tconst idSection1length = 8 + n8;\n\tconst idSection1lengthHex = idSection1length.toString(16);\n buff32[4] = parseInt(idSection1lengthHex.slice(0,8), 16);\n buff32[5] = parseInt(idSection1lengthHex.slice(8,16), 16);\n\n\t//this.n32\n\tbuff32[6] = n8;\n\n\t//prime number\n\tthis.instance.exports.getRawPrime();\n\n\tvar pos = 7;\n for (let j=0; j<this.n32; j++) {\n\t buff32[pos+j] = this.instance.exports.readSharedRWMemory(j);\n }\n\tpos += this.n32;\n\n\t// witness size\n\tbuff32[pos] = this.witnessSize;\n\tpos++;\n\n\t//id section 2\n\tbuff32[pos] = 2;\n\tpos++;\n\n\t// section 2 length\n\tconst idSection2length = n8*this.witnessSize;\n\tconst idSection2lengthHex = idSection2length.toString(16);\n buff32[pos] = parseInt(idSection2lengthHex.slice(0,8), 16);\n buff32[pos+1] = parseInt(idSection2lengthHex.slice(8,16), 16);\n\n\tpos += 2;\n for (let i=0; i<this.witnessSize; i++) {\n this.instance.exports.getWitness(i);\n for (let j=0; j<this.n32; j++) {\n\t\tbuff32[pos+j] = this.instance.exports.readSharedRWMemory(j);\n }\n\t pos += this.n32;\n }\n\n\treturn buff;\n }\n\n}\n\n\nfunction qualify_input_list(prefix,input,input1){\n if (Array.isArray(input)) {\n\tfor (let i = 0; i<input.length; i++) {\n\t let new_prefix = prefix + \"[\" + i + \"]\";\n\t qualify_input_list(new_prefix,input[i],input1);\n\t}\n } else {\n\tqualify_input(prefix,input,input1);\n }\n}\n\nfunction qualify_input(prefix,input,input1) {\n if (Array.isArray(input)) {\n\ta = flatArray(input);\n\tif (a.length > 0) {\n\t let t = typeof a[0];\n\t for (let i = 1; i<a.length; i++) {\n\t\tif (typeof a[i] != t){\n\t\t throw new Error(`Types are not the same in the key ${prefix}`);\n\t\t}\n\t }\n\t if (t == \"object\") {\n\t\tqualify_input_list(prefix,input,input1);\n\t } else {\n\t\tinput1[prefix] = input;\n\t }\n\t} else {\t \n\t input1[prefix] = input;\n\t}\n } else if (typeof input == \"object\") {\n const keys = Object.keys(input);\n\tkeys.forEach( (k) => {\n\t let new_prefix = prefix == \"\"? k : prefix + \".\" + k;\n\t qualify_input(new_prefix,input[k],input1);\n\t});\n } else {\n\tinput1[prefix] = input;\n }\n}\n\nfunction toArray32(rem,size) {\n const res = []; //new Uint32Array(size); //has no unshift\n const radix = BigInt(0x100000000);\n while (rem) {\n res.unshift( Number(rem % radix));\n rem = rem / radix;\n }\n if (size) {\n\tvar i = size - res.length;\n\twhile (i>0) {\n\t res.unshift(0);\n\t i--;\n\t}\n }\n return res;\n}\n\nfunction fromArray32(arr) { //returns a BigInt\n var res = BigInt(0);\n const radix = BigInt(0x100000000);\n for (let i = 0; i<arr.length; i++) {\n res = res*radix + BigInt(arr[i]);\n }\n return res;\n}\n\nfunction flatArray(a) {\n var res = [];\n fillArray(res, a);\n return res;\n\n function fillArray(res, a) {\n if (Array.isArray(a)) {\n for (let i=0; i<a.length; i++) {\n fillArray(res, a[i]);\n }\n } else {\n res.push(a);\n }\n }\n}\n\nfunction normalize(n, prime) {\n let res = BigInt(n) % prime\n if (res < 0) res += prime\n return res\n}\n\nfunction fnvHash(str) {\n const uint64_max = BigInt(2) ** BigInt(64);\n let hash = BigInt(\"0xCBF29CE484222325\");\n for (var i = 0; i < str.length; i++) {\n\thash ^= BigInt(str[i].charCodeAt());\n\thash *= BigInt(0x100000001B3);\n\thash %= uint64_max;\n }\n let shash = hash.toString(16);\n let n = 16 - shash.length;\n shash = '0'.repeat(n).concat(shash);\n return shash;\n}\n",null,null,null],"names":["isNode","wasmBindings.initSync","wasmBindings.default"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../pkg/client_sdk_wasm.js","../src/wasm.ts","../../circuits/build/main_js/witness_calculator.js","../src/witness.ts","../src/prover.ts","../node_modules/bech32/dist/index.js","../src/ephemeral-key.ts","../src/shared-secret.ts","../src/stealth-address.ts","../src/stealth-sign-message.ts","../src/withdrawal-transaction-input.ts","../src/stealth-signature.ts","../src/sdk.ts","../src/types.ts"],"sourcesContent":["/* @ts-self-types=\"./client_sdk_wasm.d.ts\" */\n\n/**\n * Merkle root, path, and coin field strings for the first withdraw leg (JSON → JSON).\n * @param {string} coin_json\n * @param {string} state_json\n * @returns {string}\n */\nexport function buildWithdrawMerkleWitness(coin_json, state_json) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(coin_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(state_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n wasm.buildWithdrawMerkleWitness(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr3 = r0;\n var len3 = r1;\n if (r3) {\n ptr3 = 0; len3 = 0;\n throw takeObject(r2);\n }\n deferred4_0 = ptr3;\n deferred4_1 = len3;\n return getStringFromWasm0(ptr3, len3);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * Calculate nullifier hash from nullifier decimal string.\n * Returns hex string (0x...)\n * @param {string} nullifier_decimal\n * @returns {string}\n */\nexport function calculateNullifierHash(nullifier_decimal) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(nullifier_decimal, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.calculateNullifierHash(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr2 = r0;\n var len2 = r1;\n if (r3) {\n ptr2 = 0; len2 = 0;\n throw takeObject(r2);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * UTF-8 seed → `SHA256` → scalar → BabyJubJub `BASE8 * r` (circom `ECDHEphemeralKey`).\n * `x` and `y` are lowercase hex (no `0x`). Bech32 / stealth string: TypeScript `encodeStealthAddress`.\n * @param {string} seed\n * @returns {any}\n */\nexport function ecdhEphemeralPublicKey(seed) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(seed, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.ecdhEphemeralPublicKey(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * 32-byte scalar as 64 hex chars (optional `0x`) → `ecdh_ephemeral_public_key` (no UTF-8 seed hash).\n * @param {string} scalar_hex\n * @returns {any}\n */\nexport function ecdhEphemeralPublicKeyFromScalarHex(scalar_hex) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(scalar_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.ecdhEphemeralPublicKeyFromScalarHex(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * Circuit `ECDH`: `priv * (pub_x, pub_y)` → shared key (`key[0], key[1]` hex).\n * @param {string} priv_hex\n * @param {string} pub_x_hex\n * @param {string} pub_y_hex\n * @returns {any}\n */\nexport function ecdhSharedKey(priv_hex, pub_x_hex, pub_y_hex) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(priv_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(pub_x_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(pub_y_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len2 = WASM_VECTOR_LEN;\n wasm.ecdhSharedKey(retptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * Generate a new coin with random nullifier, secret, and shared-secret field elements.\n * `amount` is stroops (u64); JS passes `bigint`.\n * Returns JSON: { coin: { value, nullifier, secret, commitment }, commitment_hex }\n * @param {bigint} amount\n * @returns {any}\n */\nexport function generateCoin(amount) {\n const ret = wasm.generateCoin(amount);\n return takeObject(ret);\n}\n\n/**\n * `Poseidon₁(scalar)` secret + fixed ECDH shared coords (hex), matching an aligned deposit witness.\n * @param {string} scalar_hex\n * @param {string} shared_x_hex\n * @param {string} shared_y_hex\n * @param {bigint} amount\n * @returns {any}\n */\nexport function generateCoinForDepositWithSharedHex(scalar_hex, shared_x_hex, shared_y_hex, amount) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(scalar_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(shared_x_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(shared_y_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len2 = WASM_VECTOR_LEN;\n wasm.generateCoinForDepositWithSharedHex(retptr, ptr0, len0, ptr1, len1, ptr2, len2, amount);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * `secret` in coin = `Poseidon255(1)(scalar)` per `deposit.circom`; scalar is 32-byte hex (64 chars, optional `0x`).\n * @param {string} scalar_hex\n * @param {bigint} amount\n * @returns {any}\n */\nexport function generateCoinFromDepositEphemeralScalarHex(scalar_hex, amount) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(scalar_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.generateCoinFromDepositEphemeralScalarHex(retptr, ptr0, len0, amount);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * Same as `generateCoin`, but commitment uses the given ECDH shared key (64-char hex coords from `ecdhSharedKey`); shared coords are not stored in `coin` JSON.\n * @param {string} shared_x_hex\n * @param {string} shared_y_hex\n * @param {bigint} amount\n * @returns {any}\n */\nexport function generateCoinWithSharedSecretHex(shared_x_hex, shared_y_hex, amount) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(shared_x_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(shared_y_hex, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n wasm.generateCoinWithSharedSecretHex(retptr, ptr0, len0, ptr1, len1, amount);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * Convert snarkjs proof JSON to hex bytes for Soroban contract.\n * @param {string} proof_json\n * @returns {string}\n */\nexport function proofToHex(proof_json) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(proof_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.proofToHex(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Convert snarkjs public signals JSON to hex bytes for Soroban contract.\n * @param {string} public_json\n * @returns {string}\n */\nexport function publicToHex(public_json) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(public_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.publicToHex(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);\n }\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_String_8564e559799eccda: function(arg0, arg1) {\n const ret = String(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_debug_string_5398f5bb970e0daa: function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_is_function_3c846841762788c1: function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n return ret;\n },\n __wbg___wbindgen_is_object_781bc9f159099513: function(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_string_7ef6b97b02428fae: function(arg0) {\n const ret = typeof(getObject(arg0)) === 'string';\n return ret;\n },\n __wbg___wbindgen_is_undefined_52709e72fb9f179c: function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n },\n __wbg___wbindgen_throw_6ddd609b62940d55: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_call_2d781c1f4d5c0ef8: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments); },\n __wbg_crypto_38df2bab126b63dc: function(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n },\n __wbg_getRandomValues_c44a50d8cfdaebeb: function() { return handleError(function (arg0, arg1) {\n getObject(arg0).getRandomValues(getObject(arg1));\n }, arguments); },\n __wbg_length_ea16607d7b61445b: function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n },\n __wbg_msCrypto_bd5a034af96bcba6: function(arg0) {\n const ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n },\n __wbg_new_ab79df5bd7c26067: function() {\n const ret = new Object();\n return addHeapObject(ret);\n },\n __wbg_new_with_length_825018a1616e9e55: function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n },\n __wbg_node_84ea875411254db1: function(arg0) {\n const ret = getObject(arg0).node;\n return addHeapObject(ret);\n },\n __wbg_process_44c7a14e11e9f69e: function(arg0) {\n const ret = getObject(arg0).process;\n return addHeapObject(ret);\n },\n __wbg_prototypesetcall_d62e5099504357e6: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));\n },\n __wbg_randomFillSync_6c25eac9869eb53c: function() { return handleError(function (arg0, arg1) {\n getObject(arg0).randomFillSync(takeObject(arg1));\n }, arguments); },\n __wbg_require_b4edbdcf3e2a1ef0: function() { return handleError(function () {\n const ret = module.require;\n return addHeapObject(ret);\n }, arguments); },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n getObject(arg0)[takeObject(arg1)] = takeObject(arg2);\n },\n __wbg_static_accessor_GLOBAL_8adb955bd33fac2f: function() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n },\n __wbg_static_accessor_GLOBAL_THIS_ad356e0db91c7913: function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n },\n __wbg_static_accessor_SELF_f207c857566db248: function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n },\n __wbg_static_accessor_WINDOW_bb9f1ba69d61b386: function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n },\n __wbg_subarray_a068d24e39478a8a: function(arg0, arg1, arg2) {\n const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n },\n __wbg_versions_276b2795b1c6a219: function(arg0) {\n const ret = getObject(arg0).versions;\n return addHeapObject(ret);\n },\n __wbindgen_cast_0000000000000001: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref(\"Uint8Array\")`.\n const ret = getArrayU8FromWasm0(arg0, arg1);\n return addHeapObject(ret);\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n },\n __wbindgen_object_clone_ref: function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n },\n __wbindgen_object_drop_ref: function(arg0) {\n takeObject(arg0);\n },\n };\n return {\n __proto__: null,\n \"./client_sdk_wasm_bg.js\": import0,\n };\n}\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction dropObject(idx) {\n if (idx < 1028) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\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 getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export3(addHeapObject(e));\n }\n}\n\nlet heap = new Array(1024).fill(undefined);\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\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 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 = cachedTextEncoder.encodeInto(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\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\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 TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = 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}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('client_sdk_wasm_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n",null,"module.exports = async function builder(code, options) {\n\n options = options || {};\n\n let wasmModule;\n try {\n\twasmModule = await WebAssembly.compile(code);\n } catch (err) {\n\tconsole.log(err);\n\tconsole.log(\"\\nTry to run circom --c in order to generate c++ code instead\\n\");\n\tthrow new Error(err);\n }\n\n let wc;\n\n let errStr = \"\";\n let msgStr = \"\";\n \n const instance = await WebAssembly.instantiate(wasmModule, {\n runtime: {\n exceptionHandler : function(code) {\n\t\tlet err;\n if (code == 1) {\n err = \"Signal not found.\\n\";\n } else if (code == 2) {\n err = \"Too many signals set.\\n\";\n } else if (code == 3) {\n err = \"Signal already set.\\n\";\n\t\t} else if (code == 4) {\n err = \"Assert Failed.\\n\";\n\t\t} else if (code == 5) {\n err = \"Not enough memory.\\n\";\n\t\t} else if (code == 6) {\n err = \"Input signal array access exceeds the size.\\n\";\n\t\t} else if (code == 7) {\n err = \"Out of bounds array access.\\n\";\n\t\t} else {\n\t\t err = \"Unknown error.\\n\";\n }\n throw new Error(err + errStr);\n },\n\t printErrorMessage : function() {\n\t\terrStr += getMessage() + \"\\n\";\n // console.error(getMessage());\n\t },\n\t writeBufferMessage : function() {\n\t\t\tconst msg = getMessage();\n\t\t\t// Any calls to `log()` will always end with a `\\n`, so that's when we print and reset\n\t\t\tif (msg === \"\\n\") {\n\t\t\t\tconsole.log(msgStr);\n\t\t\t\tmsgStr = \"\";\n\t\t\t} else {\n\t\t\t\t// If we've buffered other content, put a space in between the items\n\t\t\t\tif (msgStr !== \"\") {\n\t\t\t\t\tmsgStr += \" \"\n\t\t\t\t}\n\t\t\t\t// Then append the message to the message we are creating\n\t\t\t\tmsgStr += msg;\n\t\t\t}\n\t },\n\t showSharedRWMemory : function() {\n\t\tprintSharedRWMemory ();\n }\n\n }\n });\n\n const sanityCheck =\n options\n// options &&\n// (\n// options.sanityCheck ||\n// options.logGetSignal ||\n// options.logSetSignal ||\n// options.logStartComponent ||\n// options.logFinishComponent\n// );\n\n \n wc = new WitnessCalculator(instance, sanityCheck);\n return wc;\n\n function getMessage() {\n var message = \"\";\n\tvar c = instance.exports.getMessageChar();\n while ( c != 0 ) {\n\t message += String.fromCharCode(c);\n\t c = instance.exports.getMessageChar();\n\t}\n return message;\n }\n\t\n function printSharedRWMemory () {\n\tconst shared_rw_memory_size = instance.exports.getFieldNumLen32();\n\tconst arr = new Uint32Array(shared_rw_memory_size);\n\tfor (let j=0; j<shared_rw_memory_size; j++) {\n\t arr[shared_rw_memory_size-1-j] = instance.exports.readSharedRWMemory(j);\n\t}\n\n\t// If we've buffered other content, put a space in between the items\n\tif (msgStr !== \"\") {\n\t\tmsgStr += \" \"\n\t}\n\t// Then append the value to the message we are creating\n\tmsgStr += (fromArray32(arr).toString());\n\t}\n\n};\n\nclass WitnessCalculator {\n constructor(instance, sanityCheck) {\n this.instance = instance;\n\n\tthis.version = this.instance.exports.getVersion();\n this.n32 = this.instance.exports.getFieldNumLen32();\n\n this.instance.exports.getRawPrime();\n const arr = new Uint32Array(this.n32);\n for (let i=0; i<this.n32; i++) {\n arr[this.n32-1-i] = this.instance.exports.readSharedRWMemory(i);\n }\n this.prime = fromArray32(arr);\n\n this.witnessSize = this.instance.exports.getWitnessSize();\n\n this.sanityCheck = sanityCheck;\n }\n \n circom_version() {\n\treturn this.instance.exports.getVersion();\n }\n\n async _doCalculateWitness(input_orig, sanityCheck) {\n\t//input is assumed to be a map from signals to arrays of bigints\n this.instance.exports.init((this.sanityCheck || sanityCheck) ? 1 : 0);\n\tlet prefix = \"\";\n\tvar input = new Object();\n\t//console.log(\"Input: \", input_orig);\n\tqualify_input(prefix,input_orig,input);\n\t//console.log(\"Input after: \",input);\t\n const keys = Object.keys(input);\n\tvar input_counter = 0;\n keys.forEach( (k) => {\n const h = fnvHash(k);\n const hMSB = parseInt(h.slice(0,8), 16);\n const hLSB = parseInt(h.slice(8,16), 16);\n const fArr = flatArray(input[k]);\n\t let signalSize = this.instance.exports.getInputSignalSize(hMSB, hLSB);\n\t if (signalSize < 0){\n\t\tthrow new Error(`Signal ${k} not found\\n`);\n\t }\n\t if (fArr.length < signalSize) {\n\t\tthrow new Error(`Not enough values for input signal ${k}\\n`);\n\t }\n\t if (fArr.length > signalSize) {\n\t\tthrow new Error(`Too many values for input signal ${k}\\n`);\n\t }\n for (let i=0; i<fArr.length; i++) {\n const arrFr = toArray32(normalize(fArr[i],this.prime),this.n32)\n for (let j=0; j<this.n32; j++) {\n\t\t this.instance.exports.writeSharedRWMemory(j,arrFr[this.n32-1-j]);\n\t\t}\n\t\ttry {\n this.instance.exports.setInputSignal(hMSB, hLSB,i);\n\t\t input_counter++;\n\t\t} catch (err) {\n\t\t // console.log(`After adding signal ${i} of ${k}`)\n throw new Error(err);\n\t\t}\n }\n\n });\n\tif (input_counter < this.instance.exports.getInputSize()) {\n\t throw new Error(`Not all inputs have been set. Only ${input_counter} out of ${this.instance.exports.getInputSize()}`);\n\t}\n }\n\n async calculateWitness(input, sanityCheck) {\n\n const w = [];\n await this._doCalculateWitness(input, sanityCheck);\n\n for (let i=0; i<this.witnessSize; i++) {\n this.instance.exports.getWitness(i);\n\t const arr = new Uint32Array(this.n32);\n for (let j=0; j<this.n32; j++) {\n arr[this.n32-1-j] = this.instance.exports.readSharedRWMemory(j);\n }\n w.push(fromArray32(arr));\n }\n\n return w;\n }\n \n\n async calculateBinWitness(input, sanityCheck) {\n\n const buff32 = new Uint32Array(this.witnessSize*this.n32);\n\tconst buff = new Uint8Array( buff32.buffer);\n await this._doCalculateWitness(input, sanityCheck);\n\n for (let i=0; i<this.witnessSize; i++) {\n this.instance.exports.getWitness(i);\n\t const pos = i*this.n32;\n for (let j=0; j<this.n32; j++) {\n\t\tbuff32[pos+j] = this.instance.exports.readSharedRWMemory(j);\n }\n }\n\n\treturn buff;\n }\n \n\n async calculateWTNSBin(input, sanityCheck) {\n\n const buff32 = new Uint32Array(this.witnessSize*this.n32+this.n32+11);\n\tconst buff = new Uint8Array( buff32.buffer);\n await this._doCalculateWitness(input, sanityCheck);\n \n\t//\"wtns\"\n\tbuff[0] = \"w\".charCodeAt(0)\n\tbuff[1] = \"t\".charCodeAt(0)\n\tbuff[2] = \"n\".charCodeAt(0)\n\tbuff[3] = \"s\".charCodeAt(0)\n\n\t//version 2\n\tbuff32[1] = 2;\n\n\t//number of sections: 2\n\tbuff32[2] = 2;\n\n\t//id section 1\n\tbuff32[3] = 1;\n\n\tconst n8 = this.n32*4;\n\t//id section 1 length in 64bytes\n\tconst idSection1length = 8 + n8;\n\tconst idSection1lengthHex = idSection1length.toString(16);\n buff32[4] = parseInt(idSection1lengthHex.slice(0,8), 16);\n buff32[5] = parseInt(idSection1lengthHex.slice(8,16), 16);\n\n\t//this.n32\n\tbuff32[6] = n8;\n\n\t//prime number\n\tthis.instance.exports.getRawPrime();\n\n\tvar pos = 7;\n for (let j=0; j<this.n32; j++) {\n\t buff32[pos+j] = this.instance.exports.readSharedRWMemory(j);\n }\n\tpos += this.n32;\n\n\t// witness size\n\tbuff32[pos] = this.witnessSize;\n\tpos++;\n\n\t//id section 2\n\tbuff32[pos] = 2;\n\tpos++;\n\n\t// section 2 length\n\tconst idSection2length = n8*this.witnessSize;\n\tconst idSection2lengthHex = idSection2length.toString(16);\n buff32[pos] = parseInt(idSection2lengthHex.slice(0,8), 16);\n buff32[pos+1] = parseInt(idSection2lengthHex.slice(8,16), 16);\n\n\tpos += 2;\n for (let i=0; i<this.witnessSize; i++) {\n this.instance.exports.getWitness(i);\n for (let j=0; j<this.n32; j++) {\n\t\tbuff32[pos+j] = this.instance.exports.readSharedRWMemory(j);\n }\n\t pos += this.n32;\n }\n\n\treturn buff;\n }\n\n}\n\n\nfunction qualify_input_list(prefix,input,input1){\n if (Array.isArray(input)) {\n\tfor (let i = 0; i<input.length; i++) {\n\t let new_prefix = prefix + \"[\" + i + \"]\";\n\t qualify_input_list(new_prefix,input[i],input1);\n\t}\n } else {\n\tqualify_input(prefix,input,input1);\n }\n}\n\nfunction qualify_input(prefix,input,input1) {\n if (Array.isArray(input)) {\n\ta = flatArray(input);\n\tif (a.length > 0) {\n\t let t = typeof a[0];\n\t for (let i = 1; i<a.length; i++) {\n\t\tif (typeof a[i] != t){\n\t\t throw new Error(`Types are not the same in the key ${prefix}`);\n\t\t}\n\t }\n\t if (t == \"object\") {\n\t\tqualify_input_list(prefix,input,input1);\n\t } else {\n\t\tinput1[prefix] = input;\n\t }\n\t} else {\t \n\t input1[prefix] = input;\n\t}\n } else if (typeof input == \"object\") {\n const keys = Object.keys(input);\n\tkeys.forEach( (k) => {\n\t let new_prefix = prefix == \"\"? k : prefix + \".\" + k;\n\t qualify_input(new_prefix,input[k],input1);\n\t});\n } else {\n\tinput1[prefix] = input;\n }\n}\n\nfunction toArray32(rem,size) {\n const res = []; //new Uint32Array(size); //has no unshift\n const radix = BigInt(0x100000000);\n while (rem) {\n res.unshift( Number(rem % radix));\n rem = rem / radix;\n }\n if (size) {\n\tvar i = size - res.length;\n\twhile (i>0) {\n\t res.unshift(0);\n\t i--;\n\t}\n }\n return res;\n}\n\nfunction fromArray32(arr) { //returns a BigInt\n var res = BigInt(0);\n const radix = BigInt(0x100000000);\n for (let i = 0; i<arr.length; i++) {\n res = res*radix + BigInt(arr[i]);\n }\n return res;\n}\n\nfunction flatArray(a) {\n var res = [];\n fillArray(res, a);\n return res;\n\n function fillArray(res, a) {\n if (Array.isArray(a)) {\n for (let i=0; i<a.length; i++) {\n fillArray(res, a[i]);\n }\n } else {\n res.push(a);\n }\n }\n}\n\nfunction normalize(n, prime) {\n let res = BigInt(n) % prime\n if (res < 0) res += prime\n return res\n}\n\nfunction fnvHash(str) {\n const uint64_max = BigInt(2) ** BigInt(64);\n let hash = BigInt(\"0xCBF29CE484222325\");\n for (var i = 0; i < str.length; i++) {\n\thash ^= BigInt(str[i].charCodeAt());\n\thash *= BigInt(0x100000001B3);\n\thash %= uint64_max;\n }\n let shash = hash.toString(16);\n let n = 16 - shash.length;\n shash = '0'.repeat(n).concat(shash);\n return shash;\n}\n",null,null,"'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bech32m = exports.bech32 = void 0;\nconst ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nconst ALPHABET_MAP = {};\nfor (let z = 0; z < ALPHABET.length; z++) {\n const x = ALPHABET.charAt(z);\n ALPHABET_MAP[x] = z;\n}\nfunction polymodStep(pre) {\n const b = pre >> 25;\n return (((pre & 0x1ffffff) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3));\n}\nfunction prefixChk(prefix) {\n let chk = 1;\n for (let i = 0; i < prefix.length; ++i) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n return 'Invalid prefix (' + prefix + ')';\n chk = polymodStep(chk) ^ (c >> 5);\n }\n chk = polymodStep(chk);\n for (let i = 0; i < prefix.length; ++i) {\n const v = prefix.charCodeAt(i);\n chk = polymodStep(chk) ^ (v & 0x1f);\n }\n return chk;\n}\nfunction convert(data, inBits, outBits, pad) {\n let value = 0;\n let bits = 0;\n const maxV = (1 << outBits) - 1;\n const result = [];\n for (let i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i];\n bits += inBits;\n while (bits >= outBits) {\n bits -= outBits;\n result.push((value >> bits) & maxV);\n }\n }\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV);\n }\n }\n else {\n if (bits >= inBits)\n return 'Excess padding';\n if ((value << (outBits - bits)) & maxV)\n return 'Non-zero padding';\n }\n return result;\n}\nfunction toWords(bytes) {\n return convert(bytes, 8, 5, true);\n}\nfunction fromWordsUnsafe(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n}\nfunction fromWords(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n throw new Error(res);\n}\nfunction getLibraryFromEncoding(encoding) {\n let ENCODING_CONST;\n if (encoding === 'bech32') {\n ENCODING_CONST = 1;\n }\n else {\n ENCODING_CONST = 0x2bc830a3;\n }\n function encode(prefix, words, LIMIT) {\n LIMIT = LIMIT || 90;\n if (prefix.length + 7 + words.length > LIMIT)\n throw new TypeError('Exceeds length limit');\n prefix = prefix.toLowerCase();\n // determine chk mod\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n throw new Error(chk);\n let result = prefix + '1';\n for (let i = 0; i < words.length; ++i) {\n const x = words[i];\n if (x >> 5 !== 0)\n throw new Error('Non 5-bit word');\n chk = polymodStep(chk) ^ x;\n result += ALPHABET.charAt(x);\n }\n for (let i = 0; i < 6; ++i) {\n chk = polymodStep(chk);\n }\n chk ^= ENCODING_CONST;\n for (let i = 0; i < 6; ++i) {\n const v = (chk >> ((5 - i) * 5)) & 0x1f;\n result += ALPHABET.charAt(v);\n }\n return result;\n }\n function __decode(str, LIMIT) {\n LIMIT = LIMIT || 90;\n if (str.length < 8)\n return str + ' too short';\n if (str.length > LIMIT)\n return 'Exceeds length limit';\n // don't allow mixed case\n const lowered = str.toLowerCase();\n const uppered = str.toUpperCase();\n if (str !== lowered && str !== uppered)\n return 'Mixed-case string ' + str;\n str = lowered;\n const split = str.lastIndexOf('1');\n if (split === -1)\n return 'No separator character for ' + str;\n if (split === 0)\n return 'Missing prefix for ' + str;\n const prefix = str.slice(0, split);\n const wordChars = str.slice(split + 1);\n if (wordChars.length < 6)\n return 'Data too short';\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n return chk;\n const words = [];\n for (let i = 0; i < wordChars.length; ++i) {\n const c = wordChars.charAt(i);\n const v = ALPHABET_MAP[c];\n if (v === undefined)\n return 'Unknown character ' + c;\n chk = polymodStep(chk) ^ v;\n // not in the checksum?\n if (i + 6 >= wordChars.length)\n continue;\n words.push(v);\n }\n if (chk !== ENCODING_CONST)\n return 'Invalid checksum for ' + str;\n return { prefix, words };\n }\n function decodeUnsafe(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n }\n function decode(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n throw new Error(res);\n }\n return {\n decodeUnsafe,\n decode,\n encode,\n toWords,\n fromWordsUnsafe,\n fromWords,\n };\n}\nexports.bech32 = getLibraryFromEncoding('bech32');\nexports.bech32m = getLibraryFromEncoding('bech32m');\n",null,null,null,null,null,null,null,null],"names":["isNode","wasmBindings.initSync","wasmBindings.default","normalizeHex","hexToBytes","bytesToHex","formatStealthAddressSignMessage","encodeDecodedEphemeralKeyBech","decodeDecodedEphemeralKeyBech","encodeDepositorPreimageBech","decodeDepositorPreimageBech","sharedSecretFromDepositorPreimageFn","sharedSecretFromRecipientPreimageFn"],"mappings":"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","x_google_ignoreList":[5]}
|
package/dist/sdk.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type DecodedDepositorSharedSecretPreimage, type DecodedEphemeralKey, type EncodedDepositorSharedSecretPreimage, type EncodedEphemeralKey } from './ephemeral-key';
|
|
2
|
+
import { type SharedSecret } from './shared-secret';
|
|
3
|
+
import type { DecodedRecipientSharedSecretPreimage } from './stealth-address';
|
|
4
|
+
import type { CoinData, GeneratedCoin, SDKOptions, StateFile, WithdrawMerkleWitness, WithdrawResult } from './types';
|
|
5
|
+
import { type DepositSlot, type WithdrawalProofPublicParams, type WithdrawSlot } from './withdrawal-transaction-input';
|
|
2
6
|
export declare class PrivacyPoolSDK {
|
|
3
7
|
private wasm;
|
|
4
8
|
private options;
|
|
@@ -18,13 +22,47 @@ export declare class PrivacyPoolSDK {
|
|
|
18
22
|
*/
|
|
19
23
|
static init(options?: SDKOptions): Promise<PrivacyPoolSDK>;
|
|
20
24
|
/**
|
|
21
|
-
*
|
|
25
|
+
* Uniform 32-byte scalar as lowercase hex (Web Crypto). Same in browser and Node 19+.
|
|
22
26
|
*/
|
|
23
|
-
|
|
27
|
+
static generateRandomScalarHex32(): string;
|
|
24
28
|
/**
|
|
25
|
-
*
|
|
29
|
+
* Text to sign with a Stellar wallet for stealth derivation (UTF-8). No WASM required.
|
|
26
30
|
*/
|
|
27
|
-
|
|
31
|
+
static buildStealthAddressSignMessage(address: string, nonce?: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Generate a new coin with random nullifier, secret, and random shared-secret field elements (dev / self-contained tests).
|
|
34
|
+
* @param amount Stroops encoded as `bigint` or integer `number` (WASM `u64`).
|
|
35
|
+
*/
|
|
36
|
+
generateCoin(amount: bigint | number): GeneratedCoin;
|
|
37
|
+
/**
|
|
38
|
+
* Generate a coin with the same commitment shape as on-chain deposit: pass `ecdhSharedKey` output (hex x, y).
|
|
39
|
+
* @param amount Stroops (`bigint` | `number`).
|
|
40
|
+
*/
|
|
41
|
+
generateCoinWithSharedSecret(shared: SharedSecret, amount: bigint | number): GeneratedCoin;
|
|
42
|
+
/**
|
|
43
|
+
* Coin for a depositor `ephemeralKeyScalar` (32-byte hex): `coin.secret = Poseidon255(1)(scalar)` as in `deposit.circom`.
|
|
44
|
+
* @param amount Stroops (`bigint` | `number`).
|
|
45
|
+
*/
|
|
46
|
+
generateCoinFromDepositEphemeralScalarHex(scalarHex: string, amount: bigint | number): GeneratedCoin;
|
|
47
|
+
/**
|
|
48
|
+
* Aligned deposit coin: `secret = Poseidon₁(scalar)` and ECDH shared key from hex coords (e.g. `ecdhSharedKey(scalar, recipient_x, recipient_y)`).
|
|
49
|
+
* @param amount Stroops (`bigint` | `number`).
|
|
50
|
+
*/
|
|
51
|
+
generateCoinForDepositWithSharedHex(scalarHex: string, sharedXHex: string, sharedYHex: string, amount: bigint | number): GeneratedCoin;
|
|
52
|
+
/**
|
|
53
|
+
* Merkle root, path, and coin fields for the first withdraw leg (Rust LeanIMT + Poseidon).
|
|
54
|
+
*/
|
|
55
|
+
buildWithdrawMerkleWitness(coin: CoinData, state: StateFile): WithdrawMerkleWitness;
|
|
56
|
+
/**
|
|
57
|
+
* Full `Transaction(20,2,2)` withdrawal proof: one real withdraw + dummies, using coin/state and depositor ECDH point (hex).
|
|
58
|
+
*/
|
|
59
|
+
proveWithdrawal(coin: CoinData, state: StateFile, params: {
|
|
60
|
+
withdrawAddressHi: string;
|
|
61
|
+
withdrawAddressLo: string;
|
|
62
|
+
privKeyScalar: string;
|
|
63
|
+
ephemeralXHex: string;
|
|
64
|
+
ephemeralYHex: string;
|
|
65
|
+
}): Promise<WithdrawResult>;
|
|
28
66
|
/**
|
|
29
67
|
* Convert a snarkjs proof JSON to hex bytes for Soroban.
|
|
30
68
|
*/
|
|
@@ -34,14 +72,37 @@ export declare class PrivacyPoolSDK {
|
|
|
34
72
|
*/
|
|
35
73
|
publicToHex(publicSignals: string[]): string;
|
|
36
74
|
/**
|
|
37
|
-
*
|
|
38
|
-
|
|
75
|
+
* BabyJubJub ephemeral point from a 32-byte scalar (hex). For custom {@link WithdrawObject} / tests.
|
|
76
|
+
*/
|
|
77
|
+
ecdhEphemeralPublicKeyFromScalarHex(scalarHex: string): {
|
|
78
|
+
x: string;
|
|
79
|
+
y: string;
|
|
80
|
+
};
|
|
81
|
+
/** Circuit `ECDH`: scalar (32-byte hex) × recipient BabyJub point → shared key hex coords. */
|
|
82
|
+
ecdhSharedKey(scalarHex: string, recipientPubXHex: string, recipientPubYHex: string): SharedSecret;
|
|
83
|
+
/**
|
|
84
|
+
* `Transaction(20,2,2)` proof from high-level legs: maps to witness input (incl. `"dummy"` ECDH via WASM), then Groth16 → Soroban hex.
|
|
85
|
+
*
|
|
86
|
+
* @param publicParams Public inputs: `stateRoot`, `withdrawAddressHi` / `withdrawAddressLo`, `privKeyScalar` (decimal field strings).
|
|
87
|
+
* @param withdraws Exactly two withdraw slots (`WithdrawObject` or `"dummy"`).
|
|
88
|
+
* @param deposits Exactly two deposit slots (`DepositObject` or `"dummy"`).
|
|
39
89
|
*/
|
|
40
|
-
|
|
90
|
+
proveTransaction(publicParams: WithdrawalProofPublicParams, withdraws: [WithdrawSlot, WithdrawSlot], deposits: [DepositSlot, DepositSlot]): Promise<WithdrawResult>;
|
|
41
91
|
/**
|
|
42
92
|
* Calculate nullifier hash: Poseidon(nullifier)
|
|
43
93
|
* @param nullifier Nullifier decimal string from coin data
|
|
44
94
|
* @returns Hex string (0x...) of the hash bytes
|
|
45
95
|
*/
|
|
46
96
|
calculateNullifierHash(nullifier: string): string;
|
|
97
|
+
/**
|
|
98
|
+
* Ed25519 signature from signing {@link buildStealthAddressSignMessage}: **128 hex chars** (optional `0x`)
|
|
99
|
+
* or **base64** (64 raw bytes after decode). `SHA-256(signature bytes)` → scalar → ECDH → `stpl1` Bech32.
|
|
100
|
+
*/
|
|
101
|
+
generateStealthAddressFromStellarSignature(signature: string): Promise<string>;
|
|
102
|
+
encodeDecodedEphemeralKey(decoded: DecodedEphemeralKey): EncodedEphemeralKey;
|
|
103
|
+
decodeDecodedEphemeralKey(encoded: EncodedEphemeralKey): DecodedEphemeralKey;
|
|
104
|
+
encodeDepositorSharedSecretPreimage(decoded: DecodedDepositorSharedSecretPreimage): EncodedDepositorSharedSecretPreimage;
|
|
105
|
+
decodeDepositorSharedSecretPreimage(encoded: EncodedDepositorSharedSecretPreimage): DecodedDepositorSharedSecretPreimage;
|
|
106
|
+
sharedSecretFromDepositorPreimage(preimage: DecodedDepositorSharedSecretPreimage): SharedSecret;
|
|
107
|
+
sharedSecretFromRecipientPreimage(preimage: DecodedRecipientSharedSecretPreimage): SharedSecret;
|
|
47
108
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DecodedDepositorSharedSecretPreimage, DecodedEphemeralKey } from './ephemeral-key';
|
|
2
|
+
import type { DecodedRecipientSharedSecretPreimage, Hex } from './stealth-address';
|
|
3
|
+
/** ECDH shared key coordinates (`ecdh_shared_key` / circuit `ECDH` output). */
|
|
4
|
+
export interface SharedSecret {
|
|
5
|
+
x: Hex;
|
|
6
|
+
y: Hex;
|
|
7
|
+
}
|
|
8
|
+
/** Withdrawer-side material: recipient private scalar ‖ depositor’s ephemeral point. */
|
|
9
|
+
export interface DecodedWithdrawerSharedSecret {
|
|
10
|
+
recipientScalar: Hex;
|
|
11
|
+
ephemeralKey: DecodedEphemeralKey;
|
|
12
|
+
}
|
|
13
|
+
export type EcdhSharedKeyFn = (privHex64: string, pubXHex64: string, pubYHex64: string) => {
|
|
14
|
+
x: string;
|
|
15
|
+
y: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Depositor: `randomNonceScalar * recipientStealthPoint` (same as circom `ECDH` with depositor scalar).
|
|
19
|
+
*/
|
|
20
|
+
export declare function sharedSecretFromDepositorPreimage(ecdhShared: EcdhSharedKeyFn, preimage: DecodedDepositorSharedSecretPreimage): SharedSecret;
|
|
21
|
+
/**
|
|
22
|
+
* Recipient: `recipientScalar * ephemeralKey` (same shared point as depositor path when keys match).
|
|
23
|
+
*/
|
|
24
|
+
export declare function sharedSecretFromRecipientPreimage(ecdhShared: EcdhSharedKeyFn, preimage: DecodedRecipientSharedSecretPreimage): SharedSecret;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DecodedEphemeralKey } from './ephemeral-key';
|
|
2
|
+
/** Lowercase hex string (optional `0x` prefix when parsing). */
|
|
3
|
+
export type Hex = string;
|
|
4
|
+
export type StealthAddress = string;
|
|
5
|
+
export interface DecodedStealthAddress {
|
|
6
|
+
x: Hex;
|
|
7
|
+
y: Hex;
|
|
8
|
+
}
|
|
9
|
+
/** Withdrawer preimage: recipient scalar ‖ depositor-revealed ephemeral point. */
|
|
10
|
+
export interface DecodedRecipientSharedSecretPreimage {
|
|
11
|
+
ephemeralKey: DecodedEphemeralKey;
|
|
12
|
+
recipientScalar: Hex;
|
|
13
|
+
}
|
|
14
|
+
export declare const STEALTH_ADDRESS_HRP: "stpl1";
|
|
15
|
+
/**
|
|
16
|
+
* Encodes `x || y` as Bech32 (BIP-173) with human-readable part {@link STEALTH_ADDRESS_HRP} (`stpl1`).
|
|
17
|
+
* `x` and `y` must have the same byte length so decoding can split the payload in half.
|
|
18
|
+
*/
|
|
19
|
+
export declare function encodeStealthAddress(decoded: DecodedStealthAddress): StealthAddress;
|
|
20
|
+
/**
|
|
21
|
+
* Decodes a `stpl1` Bech32 stealth address into `x` and `y` (each half of the payload, as lowercase hex).
|
|
22
|
+
*/
|
|
23
|
+
export declare function decodeStealthAddress(address: StealthAddress): DecodedStealthAddress;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Default nonce when deriving the wallet sign-in message. */
|
|
2
|
+
export declare const DEFAULT_STEALTH_SIGN_NONCE = "main address";
|
|
3
|
+
/**
|
|
4
|
+
* Plaintext for Stellar wallet message signing (stealth address derivation).
|
|
5
|
+
* Sign the exact bytes of this string (UTF-8) with the stellar account key.
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildStealthAddressSignMessage(address: string, nonce?: string): string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ed25519 signature as **128 hex chars** (optional `0x`) or **base64** (typically 88 chars for 64 bytes, whitespace ignored).
|
|
3
|
+
*/
|
|
4
|
+
export declare function parseStellarEd25519SignatureRaw(input: string): Uint8Array;
|
|
5
|
+
/** SHA-256 via Web Crypto only (`crypto.subtle`) — works in browsers and Node 19+ (global `crypto`). */
|
|
6
|
+
export declare function sha256(data: Uint8Array): Promise<Uint8Array>;
|
|
7
|
+
/**
|
|
8
|
+
* Stellar Ed25519 signature (hex or base64) → SHA-256(signature bytes) → scalar → WASM ECDH (no UTF-8 seed hash).
|
|
9
|
+
*/
|
|
10
|
+
export declare function stealthAddressFromStellarSignature(ecdhFromScalarHex: (scalarHex64: string) => {
|
|
11
|
+
x: string;
|
|
12
|
+
y: string;
|
|
13
|
+
}, encodeStealth: (decoded: {
|
|
14
|
+
x: string;
|
|
15
|
+
y: string;
|
|
16
|
+
}) => string, signature: string): Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* SHA-256(signature) as 32-byte BE integer, truncated to **253 bits** (same effective scalar as
|
|
19
|
+
* `libs/cryptography` `scalar_mul_253` / circom `Num2Bits(253)`), decimal for `privKeyScalar`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function privKeyScalarDecimalFromStellarSignature(signature: string): Promise<string>;
|