Skip to content

Commit

Permalink
feat: js to rust compiler
Browse files Browse the repository at this point in the history
  • Loading branch information
Bisht13 committed Feb 5, 2024
1 parent 6f49854 commit e3ab02f
Show file tree
Hide file tree
Showing 14 changed files with 501 additions and 333 deletions.
10 changes: 6 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions packages/circom/circuits/common/email_addr.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"parts": [
{
"is_public": true,
"regex_def": "(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|0|1|2|3|4|5|6|7|8|9|!|#|$|%|&|'|\\*|\\+|-|/|=|\\?|^|_|`|{|\\||}|~|\\.)+@(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|0|1|2|3|4|5|6|7|8|9|\\.|-)+"
}
]
}
"parts": [
{
"is_public": true,
"regex_def": "[A-Za-z0-9!#$%&'*+=?^_`{|}~.]+@[A-Za-z0-9.-]+"
}
]
}
79 changes: 36 additions & 43 deletions packages/circom/circuits/common/email_addr_regex.circom
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ template EmailAddrRegex(msg_bytes) {
in[i+1] <== msg[i];
}

component eq[25][num_bytes];
component eq[24][num_bytes];
component lt[8][num_bytes];
component and[9][num_bytes];
component multi_or[5][num_bytes];
Expand Down Expand Up @@ -71,55 +71,49 @@ template EmailAddrRegex(msg_bytes) {
eq[7][i].in[1] <== 43;
eq[8][i] = IsEqual();
eq[8][i].in[0] <== in[i];
eq[8][i].in[1] <== 45;
eq[8][i].in[1] <== 46;
eq[9][i] = IsEqual();
eq[9][i].in[0] <== in[i];
eq[9][i].in[1] <== 46;
eq[9][i].in[1] <== 48;
eq[10][i] = IsEqual();
eq[10][i].in[0] <== in[i];
eq[10][i].in[1] <== 47;
eq[10][i].in[1] <== 49;
eq[11][i] = IsEqual();
eq[11][i].in[0] <== in[i];
eq[11][i].in[1] <== 48;
eq[11][i].in[1] <== 50;
eq[12][i] = IsEqual();
eq[12][i].in[0] <== in[i];
eq[12][i].in[1] <== 49;
eq[12][i].in[1] <== 51;
eq[13][i] = IsEqual();
eq[13][i].in[0] <== in[i];
eq[13][i].in[1] <== 50;
eq[13][i].in[1] <== 52;
eq[14][i] = IsEqual();
eq[14][i].in[0] <== in[i];
eq[14][i].in[1] <== 51;
eq[14][i].in[1] <== 53;
eq[15][i] = IsEqual();
eq[15][i].in[0] <== in[i];
eq[15][i].in[1] <== 52;
eq[15][i].in[1] <== 54;
eq[16][i] = IsEqual();
eq[16][i].in[0] <== in[i];
eq[16][i].in[1] <== 53;
eq[16][i].in[1] <== 55;
eq[17][i] = IsEqual();
eq[17][i].in[0] <== in[i];
eq[17][i].in[1] <== 54;
eq[17][i].in[1] <== 56;
eq[18][i] = IsEqual();
eq[18][i].in[0] <== in[i];
eq[18][i].in[1] <== 55;
eq[18][i].in[1] <== 57;
eq[19][i] = IsEqual();
eq[19][i].in[0] <== in[i];
eq[19][i].in[1] <== 56;
eq[19][i].in[1] <== 61;
eq[20][i] = IsEqual();
eq[20][i].in[0] <== in[i];
eq[20][i].in[1] <== 57;
eq[20][i].in[1] <== 63;
eq[21][i] = IsEqual();
eq[21][i].in[0] <== in[i];
eq[21][i].in[1] <== 61;
eq[22][i] = IsEqual();
eq[22][i].in[0] <== in[i];
eq[22][i].in[1] <== 63;
eq[23][i] = IsEqual();
eq[23][i].in[0] <== in[i];
eq[23][i].in[1] <== 255;
eq[21][i].in[1] <== 255;
and[2][i] = AND();
and[2][i].a <== states[i][0];
multi_or[0][i] = MultiOR(26);
multi_or[0][i] = MultiOR(24);
multi_or[0][i].in[0] <== and[0][i].out;
multi_or[0][i].in[1] <== and[1][i].out;
multi_or[0][i].in[2] <== eq[0][i].out;
Expand All @@ -144,8 +138,6 @@ template EmailAddrRegex(msg_bytes) {
multi_or[0][i].in[21] <== eq[19][i].out;
multi_or[0][i].in[22] <== eq[20][i].out;
multi_or[0][i].in[23] <== eq[21][i].out;
multi_or[0][i].in[24] <== eq[22][i].out;
multi_or[0][i].in[25] <== eq[23][i].out;
and[2][i].b <== multi_or[0][i].out;
lt[4][i] = LessEqThan(8);
lt[4][i].in[0] <== 94;
Expand All @@ -158,7 +150,7 @@ template EmailAddrRegex(msg_bytes) {
and[3][i].b <== lt[5][i].out;
and[4][i] = AND();
and[4][i].a <== states[i][1];
multi_or[1][i] = MultiOR(25);
multi_or[1][i] = MultiOR(23);
multi_or[1][i].in[0] <== and[0][i].out;
multi_or[1][i].in[1] <== and[3][i].out;
multi_or[1][i].in[2] <== eq[0][i].out;
Expand All @@ -182,20 +174,18 @@ template EmailAddrRegex(msg_bytes) {
multi_or[1][i].in[20] <== eq[18][i].out;
multi_or[1][i].in[21] <== eq[19][i].out;
multi_or[1][i].in[22] <== eq[20][i].out;
multi_or[1][i].in[23] <== eq[21][i].out;
multi_or[1][i].in[24] <== eq[22][i].out;
and[4][i].b <== multi_or[1][i].out;
multi_or[2][i] = MultiOR(2);
multi_or[2][i].in[0] <== and[2][i].out;
multi_or[2][i].in[1] <== and[4][i].out;
states[i+1][1] <== multi_or[2][i].out;
state_changed[i].in[0] <== states[i+1][1];
eq[24][i] = IsEqual();
eq[24][i].in[0] <== in[i];
eq[24][i].in[1] <== 64;
eq[22][i] = IsEqual();
eq[22][i].in[0] <== in[i];
eq[22][i].in[1] <== 64;
and[5][i] = AND();
and[5][i].a <== states[i][1];
and[5][i].b <== eq[24][i].out;
and[5][i].b <== eq[22][i].out;
states[i+1][2] <== and[5][i].out;
state_changed[i].in[1] <== states[i+1][2];
lt[6][i] = LessEqThan(8);
Expand All @@ -207,23 +197,26 @@ template EmailAddrRegex(msg_bytes) {
and[6][i] = AND();
and[6][i].a <== lt[6][i].out;
and[6][i].b <== lt[7][i].out;
eq[23][i] = IsEqual();
eq[23][i].in[0] <== in[i];
eq[23][i].in[1] <== 45;
and[7][i] = AND();
and[7][i].a <== states[i][2];
multi_or[3][i] = MultiOR(14);
multi_or[3][i].in[0] <== and[0][i].out;
multi_or[3][i].in[1] <== and[6][i].out;
multi_or[3][i].in[2] <== eq[8][i].out;
multi_or[3][i].in[3] <== eq[9][i].out;
multi_or[3][i].in[4] <== eq[11][i].out;
multi_or[3][i].in[5] <== eq[12][i].out;
multi_or[3][i].in[6] <== eq[13][i].out;
multi_or[3][i].in[7] <== eq[14][i].out;
multi_or[3][i].in[8] <== eq[15][i].out;
multi_or[3][i].in[9] <== eq[16][i].out;
multi_or[3][i].in[10] <== eq[17][i].out;
multi_or[3][i].in[11] <== eq[18][i].out;
multi_or[3][i].in[12] <== eq[19][i].out;
multi_or[3][i].in[13] <== eq[20][i].out;
multi_or[3][i].in[2] <== eq[23][i].out;
multi_or[3][i].in[3] <== eq[8][i].out;
multi_or[3][i].in[4] <== eq[9][i].out;
multi_or[3][i].in[5] <== eq[10][i].out;
multi_or[3][i].in[6] <== eq[11][i].out;
multi_or[3][i].in[7] <== eq[12][i].out;
multi_or[3][i].in[8] <== eq[13][i].out;
multi_or[3][i].in[9] <== eq[14][i].out;
multi_or[3][i].in[10] <== eq[15][i].out;
multi_or[3][i].in[11] <== eq[16][i].out;
multi_or[3][i].in[12] <== eq[17][i].out;
multi_or[3][i].in[13] <== eq[18][i].out;
and[7][i].b <== multi_or[3][i].out;
and[8][i] = AND();
and[8][i].a <== states[i][3];
Expand Down
30 changes: 15 additions & 15 deletions packages/circom/circuits/common/email_domain.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"parts": [
{
"is_public": false,
"regex_def": "(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|0|1|2|3|4|5|6|7|8|9|!|#|$|%|&|'|\\*|\\+|-|/|=|\\?|^|_|`|{|\\||}|~|\\.)+"
},
{
"is_public": false,
"regex_def": "@"
},
{
"is_public": true,
"regex_def": "(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|0|1|2|3|4|5|6|7|8|9|\\.|-)+"
}
]
}
"parts": [
{
"is_public": false,
"regex_def": "[A-Za-z0-9!#$%&'\\*\\+-/=\\?^_`{\\|}~\\.]+"
},
{
"is_public": false,
"regex_def": "@"
},
{
"is_public": true,
"regex_def": "[A-Za-z0-9\\.-]+"
}
]
}
Loading

0 comments on commit e3ab02f

Please sign in to comment.