diff --git a/doc/rollup_tx.monopic b/doc/rollup_tx.monopic new file mode 100644 index 0000000..89725b9 Binary files /dev/null and b/doc/rollup_tx.monopic differ diff --git a/doc/root_transfer.monopic b/doc/root_transfer.monopic new file mode 100644 index 0000000..032c0ba Binary files /dev/null and b/doc/root_transfer.monopic differ diff --git a/doc/smt_verifier_sm.monopic b/doc/smt_verifier_sm.monopic index 12e78c7..60551cb 100644 Binary files a/doc/smt_verifier_sm.monopic and b/doc/smt_verifier_sm.monopic differ diff --git a/doc/voting.monopic b/doc/voting.monopic new file mode 100644 index 0000000..0e1710d Binary files /dev/null and b/doc/voting.monopic differ diff --git a/package.json b/package.json index 0a2aa37..83f8b9f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "cirpedersen", - "version": "0.0.3", - "description": "Pesersen Circuit for Circom", + "name": "circomlib", + "version": "0.0.1", + "description": "Basic circuits library for Circom", "main": "index.js", "directories": { "test": "test" @@ -17,7 +17,11 @@ "circom", "zksnark" ], - "author": "Jordi Baylina", + "repository": { + "type": "git", + "url": "https://github.com/iden3/circomlib.git" + }, + "author": "0Kims", "license": "GPL-3.0", "dependencies": { "blake-hash": "^1.1.0", diff --git a/rolluptx.circom b/rolluptx.circom new file mode 100644 index 0000000..2652e51 --- /dev/null +++ b/rolluptx.circom @@ -0,0 +1,43 @@ +/* +fnc[0] fn[1] Function S1 S2 S3 S4 +0 0 NOP 0 0 0 0 +0 1 TRANSFER 0 1 0 1 +1 0 ENTRY 0 1 0 1 +1 1 EXIT 1 0 1 1 + +*/ + +template rollupTx(nLevels) { + signal input fromIdx; // 24 + signal input toIdx; // 24 + signal input fpTxAmount; // 24 + + signal input fnc[2]; // 2 + + signal oldRoot; + signal newRoot; + + signal input sigR8; + signal input sigS; + +// State 1 + signal input Ax1; + signal input Ay1; + signal input St1; + signal input siblings1[nlevels]; + + // Required for inserts and delete + signal input isOld0_1; // 1 + signal input oldKey; + signal input oldValue; + +// State 2 + signal input Ax2; + signal input Ay2; + signal input St2; + signal input siblings2[nlevels]; + signal input isOld0_1; // 1 + signal input oldKey; + signal input oldValue; + +}