@auditable/privacy-pool-zk-sdk 0.0.2-rc.6 → 0.0.2-rc.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +577 -8
- package/dist/cli.js.map +1 -1
- package/dist/index.mjs +575 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sources":["../src/wasm.ts","../../circuits/build/main_js/witness_calculator.js","../src/witness.ts","../src/prover.ts","../src/sdk.ts","../src/cli.ts"],"sourcesContent":[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,null],"names":["isNode","wasmBindings","snarkjs","fs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","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","../src/cli.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,null],"names":["isNode","wasmBindings.initSync","wasmBindings.default","snarkjs","fs"],"mappings":"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"}
|