{"abi":[{"type":"constructor","inputs":[{"name":"_groupIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_nullifiers","type":"uint256[]","internalType":"uint256[]"},{"name":"_validities","type":"bool[]","internalType":"bool[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"acceptGroupAdmin","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMember","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMembers","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createGroup","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"createGroup","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"createGroup","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"groupCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mockedGroups","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeMember","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateGroupAdmin","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateGroupMerkleTreeDuration","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateMember","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateProof","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"tuple","internalType":"struct ISemaphore.SemaphoreProof","components":[{"name":"merkleTreeDepth","type":"uint256","internalType":"uint256"},{"name":"merkleTreeRoot","type":"uint256","internalType":"uint256"},{"name":"nullifier","type":"uint256","internalType":"uint256"},{"name":"message","type":"uint256","internalType":"uint256"},{"name":"scope","type":"uint256","internalType":"uint256"},{"name":"points","type":"uint256[8]","internalType":"uint256[8]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyProof","inputs":[{"name":"groupId","type":"uint256","internalType":"uint256"},{"name":"proof","type":"tuple","internalType":"struct ISemaphore.SemaphoreProof","components":[{"name":"merkleTreeDepth","type":"uint256","internalType":"uint256"},{"name":"merkleTreeRoot","type":"uint256","internalType":"uint256"},{"name":"nullifier","type":"uint256","internalType":"uint256"},{"name":"message","type":"uint256","internalType":"uint256"},{"name":"scope","type":"uint256","internalType":"uint256"},{"name":"points","type":"uint256[8]","internalType":"uint256[8]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"GroupMerkleTreeDurationUpdated","inputs":[{"name":"groupId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"oldMerkleTreeDuration","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMerkleTreeDuration","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProofValidated","inputs":[{"name":"groupId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"merkleTreeDepth","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"merkleTreeRoot","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"nullifier","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"scope","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"points","type":"uint256[8]","indexed":false,"internalType":"uint256[8]"}],"anonymous":false},{"type":"error","name":"Semaphore__GroupHasNoMembers","inputs":[]},{"type":"error","name":"Semaphore__InvalidProof","inputs":[]},{"type":"error","name":"Semaphore__MerkleTreeDepthIsNotSupported","inputs":[]},{"type":"error","name":"Semaphore__MerkleTreeRootIsExpired","inputs":[]},{"type":"error","name":"Semaphore__MerkleTreeRootIsNotPartOfTheGroup","inputs":[]},{"type":"error","name":"Semaphore__YouAreUsingTheSameNullifierTwice","inputs":[]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516107d03803806107d083398101604081905261002e916101dd565b5f5b83518110156100995760015f5f86848151811061004f5761004f6102d2565b602002602001015181526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f81548092919061008c906102e6565b9091555050600101610030565b505f5b8251811015610104578181815181106100b7576100b76102d2565b602002602001015160015f8584815181106100d4576100d46102d2565b60209081029190910181015182528101919091526040015f20805460ff191691151591909117905560010161009c565b5050505061030a565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156101495761014961010d565b604052919050565b5f6001600160401b038211156101695761016961010d565b5060051b60200190565b5f82601f830112610182575f5ffd5b815161019561019082610151565b610121565b8082825260208201915060208360051b8601019250858311156101b6575f5ffd5b602085015b838110156101d35780518352602092830192016101bb565b5095945050505050565b5f5f5f606084860312156101ef575f5ffd5b83516001600160401b03811115610204575f5ffd5b61021086828701610173565b602086015190945090506001600160401b0381111561022d575f5ffd5b61023986828701610173565b604086015190935090506001600160401b03811115610256575f5ffd5b8401601f81018613610266575f5ffd5b805161027461019082610151565b8082825260208201915060208360051b850101925088831115610295575f5ffd5b6020840193505b828410156102c457835180151581146102b3575f5ffd5b82526020938401939091019061029c565b809450505050509250925092565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161030357634e487b7160e01b5f52601160045260245ffd5b5060010190565b6104b9806103175f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80635c3f3b6011610088578063d24924fe11610063578063d24924fe146101b9578063da3cda52146101c2578063fbad4139146101d3578063fcf0b6ec146100fe575f5ffd5b80635c3f3b60146101845780636cdd32fe14610197578063d0d898dd146101ab575f5ffd5b80634178c4d5116100c35780634178c4d514610138578063456f41881461014d578063568ee82614610170578063575185ed1461017e575f5ffd5b806304245371146100e95780631783efc3146100fe5780632c88036314610110575b5f5ffd5b6100fc6100f7366004610271565b505050565b005b6100fc61010c3660046102b9565b5050565b61012561011e366004610301565b5f92915050565b6040519081526020015b60405180910390f35b6100fc610146366004610329565b5050505050565b61016061015b366004610385565b6101f5565b604051901515815260200161012f565b6100fc61010c3660046103da565b5f610125565b610125610192366004610404565b505f90565b6100fc6101a536600461041d565b50505050565b6100fc61010c366004610385565b61012560025481565b6100fc6101d036600461046c565b50565b6101606101e136600461046c565b5f6020819052908152604090205460ff1681565b5f8281526020819052604081205460ff16801561022257506040808301355f9081526001602052205460ff165b9392505050565b5f5f83601f840112610239575f5ffd5b50813567ffffffffffffffff811115610250575f5ffd5b6020830191508360208260051b850101111561026a575f5ffd5b9250929050565b5f5f5f60408486031215610283575f5ffd5b83359250602084013567ffffffffffffffff8111156102a0575f5ffd5b6102ac86828701610229565b9497909650939450505050565b5f5f604083850312156102ca575f5ffd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff811681146102fc575f5ffd5b919050565b5f5f60408385031215610312575f5ffd5b61031b836102d9565b946020939093013593505050565b5f5f5f5f5f6080868803121561033d575f5ffd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115610368575f5ffd5b61037488828901610229565b969995985093965092949392505050565b5f5f8284036101c0811215610398575f5ffd5b833592506101a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0820112156103cc575f5ffd5b506020830190509250929050565b5f5f604083850312156103eb575f5ffd5b823591506103fb602084016102d9565b90509250929050565b5f60208284031215610414575f5ffd5b610222826102d9565b5f5f5f5f60608587031215610430575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115610454575f5ffd5b61046087828801610229565b95989497509550505050565b5f6020828403121561047c575f5ffd5b503591905056fea26469706673582212209e6c8e73bed56891c3d161b0ecc4985b9038142f6b9ebcfc45293e0e732937f764736f6c634300081c0033","sourceMap":"341:2282:86:-:0;;;1051:375;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1163:9;1158:133;1182:9;:16;1178:1;:20;1158:133;;;1248:4;1219:12;:26;1232:9;1242:1;1232:12;;;;;;;;:::i;:::-;;;;;;;1219:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;1266:12;;:14;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1200:3:86;;1158:133;;;-1:-1:-1;1306:9:86;1301:119;1325:11;:18;1321:1;:22;1301:119;;;1395:11;1407:1;1395:14;;;;;;;;:::i;:::-;;;;;;;1364:12;:28;1377:11;1389:1;1377:14;;;;;;;;:::i;:::-;;;;;;;;;;;;1364:28;;;;;;;;;;-1:-1:-1;1364:28:86;:45;;-1:-1:-1;;1364:45:86;;;;;;;;;;-1:-1:-1;1345:3:86;1301:119;;;;1051:375;;;341:2282;;14:127:133;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:133;247:40;;-1:-1:-1;;;;;302:34:133;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:133:o;426:183::-;486:4;-1:-1:-1;;;;;508:30:133;;505:56;;;541:18;;:::i;:::-;-1:-1:-1;586:1:133;582:14;598:4;578:25;;426:183::o;614:666::-;679:5;732:3;725:4;717:6;713:17;709:27;699:55;;750:1;747;740:12;699:55;783:6;777:13;810:64;826:47;866:6;826:47;:::i;:::-;810:64;:::i;:::-;898:3;922:6;917:3;910:19;954:4;949:3;945:14;938:21;;1015:4;1005:6;1002:1;998:14;990:6;986:27;982:38;968:52;;1043:3;1035:6;1032:15;1029:35;;;1060:1;1057;1050:12;1029:35;1096:4;1088:6;1084:17;1110:139;1126:6;1121:3;1118:15;1110:139;;;1194:10;;1182:23;;1234:4;1225:14;;;;1143;1110:139;;;-1:-1:-1;1267:7:133;614:666;-1:-1:-1;;;;;614:666:133:o;1285:1469::-;1445:6;1453;1461;1514:2;1502:9;1493:7;1489:23;1485:32;1482:52;;;1530:1;1527;1520:12;1482:52;1557:16;;-1:-1:-1;;;;;1585:30:133;;1582:50;;;1628:1;1625;1618:12;1582:50;1651:72;1715:7;1706:6;1695:9;1691:22;1651:72;:::i;:::-;1769:2;1754:18;;1748:25;1641:82;;-1:-1:-1;1748:25:133;-1:-1:-1;;;;;;1785:32:133;;1782:52;;;1830:1;1827;1820:12;1782:52;1853:74;1919:7;1908:8;1897:9;1893:24;1853:74;:::i;:::-;1973:2;1958:18;;1952:25;1843:84;;-1:-1:-1;1952:25:133;-1:-1:-1;;;;;;1989:32:133;;1986:52;;;2034:1;2031;2024:12;1986:52;2057:24;;2112:4;2104:13;;2100:27;-1:-1:-1;2090:55:133;;2141:1;2138;2131:12;2090:55;2174:2;2168:9;2197:64;2213:47;2253:6;2213:47;:::i;2197:64::-;2283:3;2307:6;2302:3;2295:19;2339:2;2334:3;2330:12;2323:19;;2394:2;2384:6;2381:1;2377:14;2373:2;2369:23;2365:32;2351:46;;2420:7;2412:6;2409:19;2406:39;;;2441:1;2438;2431:12;2406:39;2473:2;2469;2465:11;2454:22;;2485:239;2501:6;2496:3;2493:15;2485:239;;;2574:3;2568:10;2625:5;2618:13;2611:21;2604:5;2601:32;2591:60;;2647:1;2644;2637:12;2591:60;2664:18;;2711:2;2518:12;;;;2702;;;;2485:239;;;2743:5;2733:15;;;;;;1285:1469;;;;;:::o;2759:127::-;2820:10;2815:3;2811:20;2808:1;2801:31;2851:4;2848:1;2841:15;2875:4;2872:1;2865:15;2891:232;2930:3;2951:17;;;2948:140;;3010:10;3005:3;3001:20;2998:1;2991:31;3045:4;3042:1;3035:15;3073:4;3070:1;3063:15;2948:140;-1:-1:-1;3115:1:133;3104:13;;2891:232::o;:::-;341:2282:86;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80635c3f3b6011610088578063d24924fe11610063578063d24924fe146101b9578063da3cda52146101c2578063fbad4139146101d3578063fcf0b6ec146100fe575f5ffd5b80635c3f3b60146101845780636cdd32fe14610197578063d0d898dd146101ab575f5ffd5b80634178c4d5116100c35780634178c4d514610138578063456f41881461014d578063568ee82614610170578063575185ed1461017e575f5ffd5b806304245371146100e95780631783efc3146100fe5780632c88036314610110575b5f5ffd5b6100fc6100f7366004610271565b505050565b005b6100fc61010c3660046102b9565b5050565b61012561011e366004610301565b5f92915050565b6040519081526020015b60405180910390f35b6100fc610146366004610329565b5050505050565b61016061015b366004610385565b6101f5565b604051901515815260200161012f565b6100fc61010c3660046103da565b5f610125565b610125610192366004610404565b505f90565b6100fc6101a536600461041d565b50505050565b6100fc61010c366004610385565b61012560025481565b6100fc6101d036600461046c565b50565b6101606101e136600461046c565b5f6020819052908152604090205460ff1681565b5f8281526020819052604081205460ff16801561022257506040808301355f9081526001602052205460ff165b9392505050565b5f5f83601f840112610239575f5ffd5b50813567ffffffffffffffff811115610250575f5ffd5b6020830191508360208260051b850101111561026a575f5ffd5b9250929050565b5f5f5f60408486031215610283575f5ffd5b83359250602084013567ffffffffffffffff8111156102a0575f5ffd5b6102ac86828701610229565b9497909650939450505050565b5f5f604083850312156102ca575f5ffd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff811681146102fc575f5ffd5b919050565b5f5f60408385031215610312575f5ffd5b61031b836102d9565b946020939093013593505050565b5f5f5f5f5f6080868803121561033d575f5ffd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115610368575f5ffd5b61037488828901610229565b969995985093965092949392505050565b5f5f8284036101c0811215610398575f5ffd5b833592506101a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0820112156103cc575f5ffd5b506020830190509250929050565b5f5f604083850312156103eb575f5ffd5b823591506103fb602084016102d9565b90509250929050565b5f60208284031215610414575f5ffd5b610222826102d9565b5f5f5f5f60608587031215610430575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115610454575f5ffd5b61046087828801610229565b95989497509550505050565b5f6020828403121561047c575f5ffd5b503591905056fea26469706673582212209e6c8e73bed56891c3d161b0ecc4985b9038142f6b9ebcfc45293e0e732937f764736f6c634300081c0033","sourceMap":"341:2282:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2284:70;;;;;;:::i;:::-;;;;;;;2220:58;;;;;;:::i;:::-;;;;1892:105;;;;;;:::i;:::-;1963:7;1892:105;;;;;;;;1945:25:133;;;1933:2;1918:18;1892:105:86;;;;;;;;2360:90;;;;;;:::i;:::-;;;;;;;1432:176;;;;;;:::i;:::-;;:::i;:::-;;;3399:14:133;;3392:22;3374:41;;3362:2;3347:18;1432:176:86;3234:187:133;2003:65:86;;;;;;:::i;1695:89::-;1750:7;1695:89;;1790:96;;;;;;:::i;:::-;-1:-1:-1;1852:7:86;;1790:96;2456:81;;;;;;:::i;:::-;;;;;;2543:78;;;;;;:::i;693:27::-;;;;;;2074:56;;;;;;:::i;:::-;;;445:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1432:176;1524:4;1547:21;;;;;;;;;;;;;:54;;;;-1:-1:-1;1585:15:86;;;;;1572:29;;;;:12;:29;;;;;;1547:54;1540:61;1432:176;-1:-1:-1;;;1432:176:86:o;14:367:133:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:133;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:551::-;481:6;489;497;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;611:23;;;-1:-1:-1;709:2:133;694:18;;681:32;736:18;725:30;;722:50;;;768:1;765;758:12;722:50;807:70;869:7;860:6;849:9;845:22;807:70;:::i;:::-;386:551;;896:8;;-1:-1:-1;781:96:133;;-1:-1:-1;;;;386:551:133:o;942:346::-;1010:6;1018;1071:2;1059:9;1050:7;1046:23;1042:32;1039:52;;;1087:1;1084;1077:12;1039:52;-1:-1:-1;;1132:23:133;;;1252:2;1237:18;;;1224:32;;-1:-1:-1;942:346:133:o;1293:196::-;1361:20;;1421:42;1410:54;;1400:65;;1390:93;;1479:1;1476;1469:12;1390:93;1293:196;;;:::o;1494:300::-;1562:6;1570;1623:2;1611:9;1602:7;1598:23;1594:32;1591:52;;;1639:1;1636;1629:12;1591:52;1662:29;1681:9;1662:29;:::i;:::-;1652:39;1760:2;1745:18;;;;1732:32;;-1:-1:-1;;;1494:300:133:o;1981:792::-;2094:6;2102;2110;2118;2126;2179:3;2167:9;2158:7;2154:23;2150:33;2147:53;;;2196:1;2193;2186:12;2147:53;2241:23;;;-1:-1:-1;2361:2:133;2346:18;;2333:32;;-1:-1:-1;2464:2:133;2449:18;;2436:32;;-1:-1:-1;2545:2:133;2530:18;;2517:32;2572:18;2561:30;;2558:50;;;2604:1;2601;2594:12;2558:50;2643:70;2705:7;2696:6;2685:9;2681:22;2643:70;:::i;:::-;1981:792;;;;-1:-1:-1;1981:792:133;;-1:-1:-1;2732:8:133;;2617:96;1981:792;-1:-1:-1;;;1981:792:133:o;2778:451::-;2881:6;2889;2933:9;2924:7;2920:23;2963:3;2959:2;2955:12;2952:32;;;2980:1;2977;2970:12;2952:32;3025:23;;;-1:-1:-1;3165:3:133;3096:66;3088:75;;3084:85;3081:105;;;3182:1;3179;3172:12;3081:105;;3220:2;3209:9;3205:18;3195:28;;2778:451;;;;;:::o;3426:300::-;3494:6;3502;3555:2;3543:9;3534:7;3530:23;3526:32;3523:52;;;3571:1;3568;3561:12;3523:52;3616:23;;;-1:-1:-1;3682:38:133;3716:2;3701:18;;3682:38;:::i;:::-;3672:48;;3426:300;;;;;:::o;3731:186::-;3790:6;3843:2;3831:9;3822:7;3818:23;3814:32;3811:52;;;3859:1;3856;3849:12;3811:52;3882:29;3901:9;3882:29;:::i;3922:671::-;4026:6;4034;4042;4050;4103:2;4091:9;4082:7;4078:23;4074:32;4071:52;;;4119:1;4116;4109:12;4071:52;4164:23;;;-1:-1:-1;4284:2:133;4269:18;;4256:32;;-1:-1:-1;4365:2:133;4350:18;;4337:32;4392:18;4381:30;;4378:50;;;4424:1;4421;4414:12;4378:50;4463:70;4525:7;4516:6;4505:9;4501:22;4463:70;:::i;:::-;3922:671;;;;-1:-1:-1;4552:8:133;-1:-1:-1;;;;3922:671:133:o;4598:226::-;4657:6;4710:2;4698:9;4689:7;4685:23;4681:32;4678:52;;;4726:1;4723;4716:12;4678:52;-1:-1:-1;4771:23:133;;4598:226;-1:-1:-1;4598:226:133:o","linkReferences":{}},"methodIdentifiers":{"acceptGroupAdmin(uint256)":"da3cda52","addMember(uint256,uint256)":"1783efc3","addMembers(uint256,uint256[])":"04245371","createGroup()":"575185ed","createGroup(address)":"5c3f3b60","createGroup(address,uint256)":"2c880363","groupCounter()":"d24924fe","mockedGroups(uint256)":"fbad4139","removeMember(uint256,uint256,uint256[])":"6cdd32fe","updateGroupAdmin(uint256,address)":"568ee826","updateGroupMerkleTreeDuration(uint256,uint256)":"fcf0b6ec","updateMember(uint256,uint256,uint256,uint256[])":"4178c4d5","validateProof(uint256,(uint256,uint256,uint256,uint256,uint256,uint256[8]))":"d0d898dd","verifyProof(uint256,(uint256,uint256,uint256,uint256,uint256,uint256[8]))":"456f4188"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_groupIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_nullifiers\",\"type\":\"uint256[]\"},{\"internalType\":\"bool[]\",\"name\":\"_validities\",\"type\":\"bool[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Semaphore__GroupHasNoMembers\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Semaphore__InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Semaphore__MerkleTreeDepthIsNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Semaphore__MerkleTreeRootIsExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Semaphore__MerkleTreeRootIsNotPartOfTheGroup\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Semaphore__YouAreUsingTheSameNullifierTwice\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMerkleTreeDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMerkleTreeDuration\",\"type\":\"uint256\"}],\"name\":\"GroupMerkleTreeDurationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"merkleTreeDepth\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"merkleTreeRoot\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"message\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"scope\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[8]\",\"name\":\"points\",\"type\":\"uint256[8]\"}],\"name\":\"ProofValidated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"acceptGroupAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"addMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"addMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"createGroup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createGroup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"createGroup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"groupCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"mockedGroups\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"removeMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"updateGroupAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"updateGroupMerkleTreeDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"updateMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"merkleTreeDepth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"merkleTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"message\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scope\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"points\",\"type\":\"uint256[8]\"}],\"internalType\":\"struct ISemaphore.SemaphoreProof\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"validateProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"merkleTreeDepth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"merkleTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"message\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"scope\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"points\",\"type\":\"uint256[8]\"}],\"internalType\":\"struct ISemaphore.SemaphoreProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Simulates Semaphore contract behavior with predefined mocked proofs and groups.\",\"events\":{\"GroupMerkleTreeDurationUpdated(uint256,uint256,uint256)\":{\"details\":\"Event emitted when the Merkle tree duration of a group is updated.\",\"params\":{\"groupId\":\": Id of the group.\",\"newMerkleTreeDuration\":\": New Merkle tree duration of the group.\",\"oldMerkleTreeDuration\":\": Old Merkle tree duration of the group.\"}},\"ProofValidated(uint256,uint256,uint256,uint256,uint256,uint256,uint256[8])\":{\"details\":\"Event emitted when a Semaphore proof is validated.\",\"params\":{\"groupId\":\": Id of the group.\",\"merkleTreeDepth\":\": Depth of the Merkle tree.\",\"merkleTreeRoot\":\": Root of the Merkle tree.\",\"message\":\": Semaphore message.\",\"nullifier\":\": Nullifier.\",\"points\":\": Zero-knowledge points.\",\"scope\":\": Scope.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_groupIds\":\"Array of group IDs managed by the mock contract.\",\"_nullifiers\":\"Array of nullifiers representing mocked proofs.\",\"_validities\":\"Array of booleans indicating validity of the corresponding proofs.\"}},\"verifyProof(uint256,(uint256,uint256,uint256,uint256,uint256,uint256[8]))\":{\"details\":\"Verifies a zero-knowledge proof by returning true or false.\",\"params\":{\"groupId\":\": Id of the group.\",\"proof\":\": Semaphore zero-knowledge proof.\"}}},\"title\":\"SemaphoreMock\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initializes the mock contract with predefined groups and proofs.\"},\"createGroup()\":{\"notice\":\"Stub functions required to comply with the ISemaphore interface.\"},\"groupCounter()\":{\"notice\":\"Counter to track the number of mocked groups created.\"},\"mockedGroups(uint256)\":{\"notice\":\"Mapping to track mocked groups by their IDs.\"}},\"notice\":\"Mock implementation of the ISemaphore interface for testing purposes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/extensions/mocks/SemaphoreMock.sol\":\"SemaphoreMock\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200000},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@semaphore-protocol/=node_modules/@semaphore-protocol/\",\":@solady/=node_modules/solady/\",\":@zk-kit/=node_modules/@zk-kit/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=node_modules/forge-std/\",\":hardhat/=node_modules/hardhat/\",\":poseidon-solidity/=node_modules/poseidon-solidity/\",\":solady/=node_modules/solady/\"]},\"sources\":{\"contracts/test/extensions/mocks/SemaphoreMock.sol\":{\"keccak256\":\"0x05b7b234c2fe076a73486622b507ad08a1c6dfea49f21957ceac99175bc93bae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7f2f865c12b204bd6331146650f8d1787191113a0a9522670b16e095bf8e118\",\"dweb:/ipfs/QmNMUunTaCP5GqEfQJFZtw5TAXwsHDC5p915PkM8rpAskg\"]},\"node_modules/@semaphore-protocol/contracts/interfaces/ISemaphore.sol\":{\"keccak256\":\"0xb9cc56ef5155c65147e6a2e1842015993c9f60f0b2b786c818917431dd6fcfe1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec1f5cb5a286b9b1c6b6deb424041cfd818e10dc324d48f3b89214fff1071ef2\",\"dweb:/ipfs/QmcvReZP94tcqda25yG4unNXJ6uaAw7FaEVsQ2DaxhdpdX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256[]","name":"_groupIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_nullifiers","type":"uint256[]"},{"internalType":"bool[]","name":"_validities","type":"bool[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"Semaphore__GroupHasNoMembers"},{"inputs":[],"type":"error","name":"Semaphore__InvalidProof"},{"inputs":[],"type":"error","name":"Semaphore__MerkleTreeDepthIsNotSupported"},{"inputs":[],"type":"error","name":"Semaphore__MerkleTreeRootIsExpired"},{"inputs":[],"type":"error","name":"Semaphore__MerkleTreeRootIsNotPartOfTheGroup"},{"inputs":[],"type":"error","name":"Semaphore__YouAreUsingTheSameNullifierTwice"},{"inputs":[{"internalType":"uint256","name":"groupId","type":"uint256","indexed":true},{"internalType":"uint256","name":"oldMerkleTreeDuration","type":"uint256","indexed":false},{"internalType":"uint256","name":"newMerkleTreeDuration","type":"uint256","indexed":false}],"type":"event","name":"GroupMerkleTreeDurationUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"groupId","type":"uint256","indexed":true},{"internalType":"uint256","name":"merkleTreeDepth","type":"uint256","indexed":false},{"internalType":"uint256","name":"merkleTreeRoot","type":"uint256","indexed":true},{"internalType":"uint256","name":"nullifier","type":"uint256","indexed":false},{"internalType":"uint256","name":"message","type":"uint256","indexed":false},{"internalType":"uint256","name":"scope","type":"uint256","indexed":true},{"internalType":"uint256[8]","name":"points","type":"uint256[8]","indexed":false}],"type":"event","name":"ProofValidated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"acceptGroupAdmin"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addMember"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"addMembers"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createGroup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"createGroup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"createGroup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"groupCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"mockedGroups","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"removeMember"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateGroupAdmin"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateGroupMerkleTreeDuration"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"updateMember"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"struct ISemaphore.SemaphoreProof","name":"","type":"tuple","components":[{"internalType":"uint256","name":"merkleTreeDepth","type":"uint256"},{"internalType":"uint256","name":"merkleTreeRoot","type":"uint256"},{"internalType":"uint256","name":"nullifier","type":"uint256"},{"internalType":"uint256","name":"message","type":"uint256"},{"internalType":"uint256","name":"scope","type":"uint256"},{"internalType":"uint256[8]","name":"points","type":"uint256[8]"}]}],"stateMutability":"nonpayable","type":"function","name":"validateProof"},{"inputs":[{"internalType":"uint256","name":"groupId","type":"uint256"},{"internalType":"struct ISemaphore.SemaphoreProof","name":"proof","type":"tuple","components":[{"internalType":"uint256","name":"merkleTreeDepth","type":"uint256"},{"internalType":"uint256","name":"merkleTreeRoot","type":"uint256"},{"internalType":"uint256","name":"nullifier","type":"uint256"},{"internalType":"uint256","name":"message","type":"uint256"},{"internalType":"uint256","name":"scope","type":"uint256"},{"internalType":"uint256[8]","name":"points","type":"uint256[8]"}]}],"stateMutability":"view","type":"function","name":"verifyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_groupIds":"Array of group IDs managed by the mock contract.","_nullifiers":"Array of nullifiers representing mocked proofs.","_validities":"Array of booleans indicating validity of the corresponding proofs."}},"verifyProof(uint256,(uint256,uint256,uint256,uint256,uint256,uint256[8]))":{"details":"Verifies a zero-knowledge proof by returning true or false.","params":{"groupId":": Id of the group.","proof":": Semaphore zero-knowledge proof."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Initializes the mock contract with predefined groups and proofs."},"createGroup()":{"notice":"Stub functions required to comply with the ISemaphore interface."},"groupCounter()":{"notice":"Counter to track the number of mocked groups created."},"mockedGroups(uint256)":{"notice":"Mapping to track mocked groups by their IDs."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@semaphore-protocol/=node_modules/@semaphore-protocol/","@solady/=node_modules/solady/","@zk-kit/=node_modules/@zk-kit/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=node_modules/forge-std/","hardhat/=node_modules/hardhat/","poseidon-solidity/=node_modules/poseidon-solidity/","solady/=node_modules/solady/"],"optimizer":{"enabled":true,"runs":200000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/test/extensions/mocks/SemaphoreMock.sol":"SemaphoreMock"},"evmVersion":"prague","libraries":{}},"sources":{"contracts/test/extensions/mocks/SemaphoreMock.sol":{"keccak256":"0x05b7b234c2fe076a73486622b507ad08a1c6dfea49f21957ceac99175bc93bae","urls":["bzz-raw://b7f2f865c12b204bd6331146650f8d1787191113a0a9522670b16e095bf8e118","dweb:/ipfs/QmNMUunTaCP5GqEfQJFZtw5TAXwsHDC5p915PkM8rpAskg"],"license":"MIT"},"node_modules/@semaphore-protocol/contracts/interfaces/ISemaphore.sol":{"keccak256":"0xb9cc56ef5155c65147e6a2e1842015993c9f60f0b2b786c818917431dd6fcfe1","urls":["bzz-raw://ec1f5cb5a286b9b1c6b6deb424041cfd818e10dc324d48f3b89214fff1071ef2","dweb:/ipfs/QmcvReZP94tcqda25yG4unNXJ6uaAw7FaEVsQ2DaxhdpdX"],"license":"MIT"}},"version":1},"id":86}