diff --git a/keys/TreeUpdate.json b/keys/TreeUpdate.json index 6a6d7ea..249cbe8 100644 --- a/keys/TreeUpdate.json +++ b/keys/TreeUpdate.json @@ -29856,7 +29856,7 @@ { "name": "main", "params": { - "n": "20", + "levels": "20", "zeroLeaf": "21663839004416932945382355908790599225266501822907911457504978515578255421292" }, "template": "MerkleTreeUpdater", @@ -647093,16 +647093,16 @@ "CompConstant": "function(ctx) {\n ctx.setVar(\"sum\", [], \"0\");\n ctx.setVar(\"b\", [], \"340282366920938463463374607431768211455\");\n ctx.setVar(\"a\", [], \"1\");\n ctx.setVar(\"e\", [], \"1\");\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(\"127\")) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setVar(\"clsb\", [], bigInt(bigInt(bigInt(ctx.getVar(\"i\",[])).mul(bigInt(\"2\")).mod(__P__)).greater(bigInt(256)) ? 0 : bigInt(ctx.getVar(\"ct\",[])).shr(bigInt(bigInt(ctx.getVar(\"i\",[])).mul(bigInt(\"2\")).mod(__P__))).and(__MASK__)).and(bigInt(\"1\")).and(__MASK__));\n ctx.setVar(\"cmsb\", [], bigInt(bigInt(bigInt(bigInt(ctx.getVar(\"i\",[])).mul(bigInt(\"2\")).mod(__P__)).add(bigInt(\"1\")).mod(__P__)).greater(bigInt(256)) ? 0 : bigInt(ctx.getVar(\"ct\",[])).shr(bigInt(bigInt(bigInt(ctx.getVar(\"i\",[])).mul(bigInt(\"2\")).mod(__P__)).add(bigInt(\"1\")).mod(__P__))).and(__MASK__)).and(bigInt(\"1\")).and(__MASK__));\n ctx.setVar(\"slsb\", [], ctx.getSignal(\"in\", [bigInt(ctx.getVar(\"i\",[])).mul(bigInt(\"2\")).mod(__P__)]));\n ctx.setVar(\"smsb\", [], ctx.getSignal(\"in\", [bigInt(bigInt(ctx.getVar(\"i\",[])).mul(bigInt(\"2\")).mod(__P__)).add(bigInt(\"1\")).mod(__P__)]));\n if (bigInt(bigInt((bigInt(ctx.getVar(\"cmsb\",[])).eq(bigInt(\"0\")) ? 1 : 0)).and(bigInt((bigInt(ctx.getVar(\"clsb\",[])).eq(bigInt(\"0\")) ? 1 : 0))).and(__MASK__)).neq(bigInt(0))) {\n {\n ctx.setSignal(\"parts\", [ctx.getVar(\"i\",[])], bigInt(bigInt(bigInt(bigInt(__P__.sub(bigInt(ctx.getVar(\"b\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"smsb\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"slsb\",[]))).mod(__P__)).add(bigInt(bigInt(ctx.getVar(\"b\",[])).mul(bigInt(ctx.getVar(\"smsb\",[]))).mod(__P__))).mod(__P__)).add(bigInt(bigInt(ctx.getVar(\"b\",[])).mul(bigInt(ctx.getVar(\"slsb\",[]))).mod(__P__))).mod(__P__));\n }\n\n } else {\n if (bigInt(bigInt((bigInt(ctx.getVar(\"cmsb\",[])).eq(bigInt(\"0\")) ? 1 : 0)).and(bigInt((bigInt(ctx.getVar(\"clsb\",[])).eq(bigInt(\"1\")) ? 1 : 0))).and(__MASK__)).neq(bigInt(0))) {\n {\n ctx.setSignal(\"parts\", [ctx.getVar(\"i\",[])], bigInt(bigInt(bigInt(bigInt(bigInt(bigInt(ctx.getVar(\"a\",[])).mul(bigInt(ctx.getVar(\"smsb\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"slsb\",[]))).mod(__P__)).add(__P__).sub(bigInt(bigInt(ctx.getVar(\"a\",[])).mul(bigInt(ctx.getVar(\"slsb\",[]))).mod(__P__))).mod(__P__)).add(bigInt(bigInt(ctx.getVar(\"b\",[])).mul(bigInt(ctx.getVar(\"smsb\",[]))).mod(__P__))).mod(__P__)).add(__P__).sub(bigInt(bigInt(ctx.getVar(\"a\",[])).mul(bigInt(ctx.getVar(\"smsb\",[]))).mod(__P__))).mod(__P__)).add(bigInt(ctx.getVar(\"a\",[]))).mod(__P__));\n }\n\n } else {\n if (bigInt(bigInt((bigInt(ctx.getVar(\"cmsb\",[])).eq(bigInt(\"1\")) ? 1 : 0)).and(bigInt((bigInt(ctx.getVar(\"clsb\",[])).eq(bigInt(\"0\")) ? 1 : 0))).and(__MASK__)).neq(bigInt(0))) {\n {\n ctx.setSignal(\"parts\", [ctx.getVar(\"i\",[])], bigInt(bigInt(bigInt(bigInt(ctx.getVar(\"b\",[])).mul(bigInt(ctx.getVar(\"smsb\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"slsb\",[]))).mod(__P__)).add(__P__).sub(bigInt(bigInt(ctx.getVar(\"a\",[])).mul(bigInt(ctx.getVar(\"smsb\",[]))).mod(__P__))).mod(__P__)).add(bigInt(ctx.getVar(\"a\",[]))).mod(__P__));\n }\n\n } else {\n {\n ctx.setSignal(\"parts\", [ctx.getVar(\"i\",[])], bigInt(bigInt(bigInt(__P__.sub(bigInt(ctx.getVar(\"a\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"smsb\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"slsb\",[]))).mod(__P__)).add(bigInt(ctx.getVar(\"a\",[]))).mod(__P__));\n }\n\n }\n\n }\n\n }\n ctx.setVar(\"sum\", [], bigInt(ctx.getVar(\"sum\",[])).add(bigInt(ctx.getSignal(\"parts\", [ctx.getVar(\"i\",[])]))).mod(__P__));\n ctx.setVar(\"b\", [], bigInt(ctx.getVar(\"b\",[])).add(__P__).sub(bigInt(ctx.getVar(\"e\",[]))).mod(__P__));\n ctx.setVar(\"a\", [], bigInt(ctx.getVar(\"a\",[])).add(bigInt(ctx.getVar(\"e\",[]))).mod(__P__));\n ctx.setVar(\"e\", [], bigInt(ctx.getVar(\"e\",[])).mul(bigInt(\"2\")).mod(__P__));\n }\n\n }\n ctx.setSignal(\"sout\", [], ctx.getVar(\"sum\",[]));\n ctx.setPin(\"num2bits\", [], \"in\", [], ctx.getSignal(\"sout\", []));\n ctx.setSignal(\"out\", [], ctx.getPin(\"num2bits\", [], \"out\", [\"127\"]));\n}\n", "AliasCheck": "function(ctx) {\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(\"254\")) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n ctx.setPin(\"compConstant\", [], \"in\", [ctx.getVar(\"i\",[])], ctx.getSignal(\"in\", [ctx.getVar(\"i\",[])]))\n }\n ctx.assert(ctx.getPin(\"compConstant\", [], \"out\", []), \"0\", \"undefined:30:4\");\n}\n", "AliasCheckBabyJub": "function(ctx) {\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(\"251\")) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n ctx.setPin(\"compConstant\", [], \"in\", [ctx.getVar(\"i\",[])], ctx.getSignal(\"in\", [ctx.getVar(\"i\",[])]))\n }\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(\"3\")) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n ctx.setPin(\"compConstant\", [], \"in\", [bigInt(\"251\").add(bigInt(ctx.getVar(\"i\",[]))).mod(__P__)], \"0\")\n }\n ctx.assert(bigInt(ctx.getPin(\"compConstant\", [], \"out\", [])).mul(bigInt(ctx.getSignal(\"enabled\", []))).mod(__P__), \"0\", \"undefined:42:4\");\n}\n", - "Num2Bits": "function(ctx) {\n ctx.setVar(\"lc1\", [], \"0\");\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"n\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setSignal(\"out\", [ctx.getVar(\"i\",[])], bigInt(bigInt(ctx.getVar(\"i\",[])).greater(bigInt(256)) ? 0 : bigInt(ctx.getSignal(\"in\", [])).shr(bigInt(ctx.getVar(\"i\",[]))).and(__MASK__)).and(bigInt(\"1\")).and(__MASK__));\n ctx.assert(bigInt(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[])])).mul(bigInt(bigInt(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[])])).add(__P__).sub(bigInt(\"1\")).mod(__P__))).mod(__P__), \"0\", \"/Users/pertsev/projects/tornado-deploy/tornado-anonymity-mining/node_modules/circomlib/circuits/bitify.circom:32:8\");\n ctx.setVar(\"lc1\", [], bigInt(ctx.getVar(\"lc1\",[])).add(bigInt(bigInt(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[])])).mul(bigInt(bigInt(\"2\").modPow(bigInt(ctx.getVar(\"i\",[])), __P__))).mod(__P__))).mod(__P__));\n }\n\n }\n ctx.assert(ctx.getVar(\"lc1\",[]), ctx.getSignal(\"in\", []), \"/Users/pertsev/projects/tornado-deploy/tornado-anonymity-mining/node_modules/circomlib/circuits/bitify.circom:36:4\");\n}\n", + "Num2Bits": "function(ctx) {\n ctx.setVar(\"lc1\", [], \"0\");\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"n\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setSignal(\"out\", [ctx.getVar(\"i\",[])], bigInt(bigInt(ctx.getVar(\"i\",[])).greater(bigInt(256)) ? 0 : bigInt(ctx.getSignal(\"in\", [])).shr(bigInt(ctx.getVar(\"i\",[]))).and(__MASK__)).and(bigInt(\"1\")).and(__MASK__));\n ctx.assert(bigInt(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[])])).mul(bigInt(bigInt(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[])])).add(__P__).sub(bigInt(\"1\")).mod(__P__))).mod(__P__), \"0\", \"/Users/rstorm/repos/stormdapps/torn_deploy_final/tornado-deploy/tornado-anonymity-mining/node_modules/circomlib/circuits/bitify.circom:32:8\");\n ctx.setVar(\"lc1\", [], bigInt(ctx.getVar(\"lc1\",[])).add(bigInt(bigInt(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[])])).mul(bigInt(bigInt(\"2\").modPow(bigInt(ctx.getVar(\"i\",[])), __P__))).mod(__P__))).mod(__P__));\n }\n\n }\n ctx.assert(ctx.getVar(\"lc1\",[]), ctx.getSignal(\"in\", []), \"/Users/rstorm/repos/stormdapps/torn_deploy_final/tornado-deploy/tornado-anonymity-mining/node_modules/circomlib/circuits/bitify.circom:36:4\");\n}\n", "Num2Bits_strict": "function(ctx) {\n ctx.setPin(\"n2b\", [], \"in\", [], ctx.getSignal(\"in\", []));\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(\"254\")) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setSignal(\"out\", [ctx.getVar(\"i\",[])], ctx.getPin(\"n2b\", [], \"out\", [ctx.getVar(\"i\",[])]));\n ctx.setPin(\"aliasCheck\", [], \"in\", [ctx.getVar(\"i\",[])], ctx.getPin(\"n2b\", [], \"out\", [ctx.getVar(\"i\",[])]));\n }\n\n }\n}\n", "Bits2Num": "function(ctx) {\n ctx.setVar(\"lc1\", [], \"0\");\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"n\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setVar(\"lc1\", [], bigInt(ctx.getVar(\"lc1\",[])).add(bigInt(bigInt(ctx.getSignal(\"in\", [ctx.getVar(\"i\",[])])).mul(bigInt(bigInt(\"2\").modPow(bigInt(ctx.getVar(\"i\",[])), __P__))).mod(__P__))).mod(__P__));\n }\n\n }\n ctx.setSignal(\"out\", [], ctx.getVar(\"lc1\",[]));\n}\n", "Bits2Num_strict": "function(ctx) {\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(\"254\")) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setPin(\"b2n\", [], \"in\", [ctx.getVar(\"i\",[])], ctx.getSignal(\"in\", [ctx.getVar(\"i\",[])]));\n ctx.setPin(\"aliasCheck\", [], \"in\", [ctx.getVar(\"i\",[])], ctx.getSignal(\"in\", [ctx.getVar(\"i\",[])]));\n }\n\n }\n ctx.setSignal(\"out\", [], ctx.getPin(\"b2n\", [], \"out\", []));\n}\n", "Num2BitsNeg": "function(ctx) {\n ctx.setVar(\"lc1\", [], \"0\");\n ctx.setVar(\"neg\", [], bigInt((bigInt(ctx.getVar(\"n\",[])).eq(bigInt(\"0\")) ? 1 : 0)).neq(bigInt(0)) ? (\"0\") : (bigInt(bigInt(\"2\").modPow(bigInt(ctx.getVar(\"n\",[])), __P__)).add(__P__).sub(bigInt(ctx.getSignal(\"in\", []))).mod(__P__)));\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"n\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setSignal(\"out\", [ctx.getVar(\"i\",[])], bigInt(bigInt(ctx.getVar(\"i\",[])).greater(bigInt(256)) ? 0 : bigInt(ctx.getVar(\"neg\",[])).shr(bigInt(ctx.getVar(\"i\",[]))).and(__MASK__)).and(bigInt(\"1\")).and(__MASK__));\n ctx.assert(bigInt(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[])])).mul(bigInt(bigInt(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[])])).add(__P__).sub(bigInt(\"1\")).mod(__P__))).mod(__P__), \"0\", \"undefined:94:8\");\n ctx.setVar(\"lc1\", [], bigInt(ctx.getVar(\"lc1\",[])).add(bigInt(bigInt(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[])])).mul(bigInt(bigInt(\"2\").modPow(bigInt(ctx.getVar(\"i\",[])), __P__))).mod(__P__))).mod(__P__));\n }\n\n }\n ctx.setPin(\"isZero\", [], \"in\", [], ctx.getSignal(\"in\", []));\n ctx.assert(bigInt(ctx.getVar(\"lc1\",[])).add(bigInt(bigInt(ctx.getPin(\"isZero\", [], \"out\", [])).mul(bigInt(bigInt(\"2\").modPow(bigInt(ctx.getVar(\"n\",[])), __P__))).mod(__P__))).mod(__P__), bigInt(bigInt(\"2\").modPow(bigInt(ctx.getVar(\"n\",[])), __P__)).add(__P__).sub(bigInt(ctx.getSignal(\"in\", []))).mod(__P__), \"undefined:102:4\");\n}\n", "HashLeftRight": "function(ctx) {\n ctx.setPin(\"hasher\", [], \"inputs\", [\"0\"], ctx.getSignal(\"left\", []));\n ctx.setPin(\"hasher\", [], \"inputs\", [\"1\"], ctx.getSignal(\"right\", []));\n ctx.setSignal(\"hash\", [], ctx.getPin(\"hasher\", [], \"out\", []));\n}\n", - "DualMux": "function(ctx) {\n ctx.assert(bigInt(ctx.getSignal(\"s\", [])).mul(bigInt(bigInt(\"1\").add(__P__).sub(bigInt(ctx.getSignal(\"s\", []))).mod(__P__))).mod(__P__), \"0\", \"/Users/pertsev/projects/tornado-deploy/tornado-anonymity-mining/circuits/MerkleTree.circom:23:4\");\n ctx.setSignal(\"out\", [\"0\"], bigInt(bigInt(bigInt(ctx.getSignal(\"in\", [\"1\"])).add(__P__).sub(bigInt(ctx.getSignal(\"in\", [\"0\"]))).mod(__P__)).mul(bigInt(ctx.getSignal(\"s\", []))).mod(__P__)).add(bigInt(ctx.getSignal(\"in\", [\"0\"]))).mod(__P__));\n ctx.setSignal(\"out\", [\"1\"], bigInt(bigInt(bigInt(ctx.getSignal(\"in\", [\"0\"])).add(__P__).sub(bigInt(ctx.getSignal(\"in\", [\"1\"]))).mod(__P__)).mul(bigInt(ctx.getSignal(\"s\", []))).mod(__P__)).add(bigInt(ctx.getSignal(\"in\", [\"1\"]))).mod(__P__));\n}\n", + "DualMux": "function(ctx) {\n ctx.assert(bigInt(ctx.getSignal(\"s\", [])).mul(bigInt(bigInt(\"1\").add(__P__).sub(bigInt(ctx.getSignal(\"s\", []))).mod(__P__))).mod(__P__), \"0\", \"/Users/rstorm/repos/stormdapps/torn_deploy_final/tornado-deploy/tornado-anonymity-mining/circuits/MerkleTree.circom:23:4\");\n ctx.setSignal(\"out\", [\"0\"], bigInt(bigInt(bigInt(ctx.getSignal(\"in\", [\"1\"])).add(__P__).sub(bigInt(ctx.getSignal(\"in\", [\"0\"]))).mod(__P__)).mul(bigInt(ctx.getSignal(\"s\", []))).mod(__P__)).add(bigInt(ctx.getSignal(\"in\", [\"0\"]))).mod(__P__));\n ctx.setSignal(\"out\", [\"1\"], bigInt(bigInt(bigInt(ctx.getSignal(\"in\", [\"0\"])).add(__P__).sub(bigInt(ctx.getSignal(\"in\", [\"1\"]))).mod(__P__)).mul(bigInt(ctx.getSignal(\"s\", []))).mod(__P__)).add(bigInt(ctx.getSignal(\"in\", [\"1\"]))).mod(__P__));\n}\n", "RawMerkleTree": "function(ctx) {\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"levels\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setPin(\"selectors\", [ctx.getVar(\"i\",[])], \"in\", [\"0\"], bigInt((bigInt(ctx.getVar(\"i\",[])).eq(bigInt(\"0\")) ? 1 : 0)).neq(bigInt(0)) ? (ctx.getSignal(\"leaf\", [])) : (ctx.getPin(\"hashers\", [bigInt(ctx.getVar(\"i\",[])).add(__P__).sub(bigInt(\"1\")).mod(__P__)], \"hash\", [])));\n ctx.setPin(\"selectors\", [ctx.getVar(\"i\",[])], \"in\", [\"1\"], ctx.getSignal(\"pathElements\", [ctx.getVar(\"i\",[])]));\n ctx.setPin(\"selectors\", [ctx.getVar(\"i\",[])], \"s\", [], ctx.getSignal(\"pathIndices\", [ctx.getVar(\"i\",[])]));\n ctx.setPin(\"hashers\", [ctx.getVar(\"i\",[])], \"left\", [], ctx.getPin(\"selectors\", [ctx.getVar(\"i\",[])], \"out\", [\"0\"]));\n ctx.setPin(\"hashers\", [ctx.getVar(\"i\",[])], \"right\", [], ctx.getPin(\"selectors\", [ctx.getVar(\"i\",[])], \"out\", [\"1\"]));\n }\n\n }\n ctx.setSignal(\"root\", [], ctx.getPin(\"hashers\", [bigInt(ctx.getVar(\"levels\",[])).add(__P__).sub(bigInt(\"1\")).mod(__P__)], \"hash\", []));\n}\n", "MerkleTree": "function(ctx) {\n ctx.setPin(\"indexBits\", [], \"in\", [], ctx.getSignal(\"pathIndices\", []));\n ctx.setPin(\"tree\", [], \"leaf\", [], ctx.getSignal(\"leaf\", []));\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"levels\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setPin(\"tree\", [], \"pathIndices\", [ctx.getVar(\"i\",[])], ctx.getPin(\"indexBits\", [], \"out\", [ctx.getVar(\"i\",[])]));\n ctx.setPin(\"tree\", [], \"pathElements\", [ctx.getVar(\"i\",[])], ctx.getSignal(\"pathElements\", [ctx.getVar(\"i\",[])]));\n }\n\n }\n ctx.setSignal(\"root\", [], ctx.getPin(\"tree\", [], \"root\", []));\n}\n", - "MerkleTreeUpdater": "function(ctx) {\n ctx.setPin(\"indexBits\", [], \"in\", [], ctx.getSignal(\"pathIndices\", []));\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"n\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setPin(\"treeBefore\", [], \"pathIndices\", [ctx.getVar(\"i\",[])], ctx.getPin(\"indexBits\", [], \"out\", [ctx.getVar(\"i\",[])]));\n ctx.setPin(\"treeBefore\", [], \"pathElements\", [ctx.getVar(\"i\",[])], ctx.getSignal(\"pathElements\", [ctx.getVar(\"i\",[])]));\n }\n\n }\n ctx.setPin(\"treeBefore\", [], \"leaf\", [], ctx.getVar(\"zeroLeaf\",[]));\n ctx.assert(ctx.getPin(\"treeBefore\", [], \"root\", []), ctx.getSignal(\"oldRoot\", []), \"/Users/pertsev/projects/tornado-deploy/tornado-anonymity-mining/circuits/MerkleTreeUpdater.circom:24:4\");\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"n\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setPin(\"treeAfter\", [], \"pathIndices\", [ctx.getVar(\"i\",[])], ctx.getPin(\"indexBits\", [], \"out\", [ctx.getVar(\"i\",[])]));\n ctx.setPin(\"treeAfter\", [], \"pathElements\", [ctx.getVar(\"i\",[])], ctx.getSignal(\"pathElements\", [ctx.getVar(\"i\",[])]));\n }\n\n }\n ctx.setPin(\"treeAfter\", [], \"leaf\", [], ctx.getSignal(\"leaf\", []));\n ctx.assert(ctx.getPin(\"treeAfter\", [], \"root\", []), ctx.getSignal(\"newRoot\", []), \"/Users/pertsev/projects/tornado-deploy/tornado-anonymity-mining/circuits/MerkleTreeUpdater.circom:32:4\");\n}\n" + "MerkleTreeUpdater": "function(ctx) {\n ctx.setPin(\"indexBits\", [], \"in\", [], ctx.getSignal(\"pathIndices\", []));\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"levels\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setPin(\"treeBefore\", [], \"pathIndices\", [ctx.getVar(\"i\",[])], ctx.getPin(\"indexBits\", [], \"out\", [ctx.getVar(\"i\",[])]));\n ctx.setPin(\"treeBefore\", [], \"pathElements\", [ctx.getVar(\"i\",[])], ctx.getSignal(\"pathElements\", [ctx.getVar(\"i\",[])]));\n }\n\n }\n ctx.setPin(\"treeBefore\", [], \"leaf\", [], ctx.getVar(\"zeroLeaf\",[]));\n ctx.assert(ctx.getPin(\"treeBefore\", [], \"root\", []), ctx.getSignal(\"oldRoot\", []), \"/Users/rstorm/repos/stormdapps/torn_deploy_final/tornado-deploy/tornado-anonymity-mining/circuits/MerkleTreeUpdater.circom:24:4\");\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(ctx.getVar(\"levels\",[]))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setPin(\"treeAfter\", [], \"pathIndices\", [ctx.getVar(\"i\",[])], ctx.getPin(\"indexBits\", [], \"out\", [ctx.getVar(\"i\",[])]));\n ctx.setPin(\"treeAfter\", [], \"pathElements\", [ctx.getVar(\"i\",[])], ctx.getSignal(\"pathElements\", [ctx.getVar(\"i\",[])]));\n }\n\n }\n ctx.setPin(\"treeAfter\", [], \"leaf\", [], ctx.getSignal(\"leaf\", []));\n ctx.assert(ctx.getPin(\"treeAfter\", [], \"root\", []), ctx.getSignal(\"newRoot\", []), \"/Users/rstorm/repos/stormdapps/torn_deploy_final/tornado-deploy/tornado-anonymity-mining/circuits/MerkleTreeUpdater.circom:32:4\");\n}\n" }, "functions": { "POSEIDON_C": { diff --git a/keys/TreeUpdate_proving_key.bin b/keys/TreeUpdate_proving_key.bin index fe57846..fbcfede 100644 Binary files a/keys/TreeUpdate_proving_key.bin and b/keys/TreeUpdate_proving_key.bin differ