UNPKG

@excubiae/contracts

Version:
1 lines 46.5 kB
{"abi":[{"type":"function","name":"ADVANCED_CHECKER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AdvancedChecker"}],"stateMutability":"view"},{"type":"function","name":"SKIP_POST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"SKIP_PRE","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"enforce","inputs":[{"name":"subject","type":"address","internalType":"address"},{"name":"evidence","type":"bytes","internalType":"bytes"},{"name":"checkType","type":"uint8","internalType":"enum Check"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAppendedBytes","inputs":[],"outputs":[{"name":"appendedBytes","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"guarded","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTarget","inputs":[{"name":"_guarded","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trait","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Enforced","inputs":[{"name":"subject","type":"address","indexed":true,"internalType":"address"},{"name":"guarded","type":"address","indexed":true,"internalType":"address"},{"name":"evidence","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"checkType","type":"uint8","indexed":false,"internalType":"enum Check"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TargetSet","inputs":[{"name":"guarded","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyEnforced","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"CannotPostCheckWhenSkipped","inputs":[]},{"type":"error","name":"CannotPreCheckWhenSkipped","inputs":[]},{"type":"error","name":"MainCheckAlreadyEnforced","inputs":[]},{"type":"error","name":"MainCheckNotEnforced","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PreCheckNotEnforced","inputs":[]},{"type":"error","name":"TargetAlreadySet","inputs":[]},{"type":"error","name":"TargetNotSet","inputs":[]},{"type":"error","name":"TargetOnly","inputs":[]},{"type":"error","name":"UnsuccessfulCheck","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b506097565b5f80546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b610c20806100a45f395ff3fe608060405234801561000f575f5ffd5b50600436106100da575f3560e01c80637b02c3bc11610088578063b41a4b1911610063578063b41a4b19146101e4578063bc971e87146101f9578063ce343deb1461021e578063f2fde38b14610257575f5ffd5b80637b02c3bc1461019a5780638129fc1c146101ba5780638da5cb5b146101c2575f5ffd5b8063715018a6116100b8578063715018a61461013a57806372f7a03014610142578063776d1a0114610187575f5ffd5b80630c691b0c146100de57806314423fde14610119578063158ef93e1461012e575b5f5ffd5b600254610104907501000000000000000000000000000000000000000000900460ff1681565b60405190151581526020015b60405180910390f35b61012c610127366004610933565b61026a565b005b5f546101049060ff1681565b61012c6102cd565b6001546101629073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610110565b61012c6101953660046109c9565b6102e0565b6002546101629073ffffffffffffffffffffffffffffffffffffffff1681565b61012c6103f3565b5f54610100900473ffffffffffffffffffffffffffffffffffffffff16610162565b6101ec6103fb565b6040516101109190610a37565b6002546101049074010000000000000000000000000000000000000000900460ff1681565b60408051808201909152600e81527f416476616e63656445524337323100000000000000000000000000000000000060208201526101ec565b61012c6102653660046109c9565b61040a565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102bb576040517f7d24b6fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c784848484610472565b50505050565b6102d5610685565b6102de5f6106dd565b565b6102e8610685565b73ffffffffffffffffffffffffffffffffffffffff8116610335576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015473ffffffffffffffffffffffffffffffffffffffff1615610385576040517fe0f2d7b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f3bfb4bbf112628248058745a3c57e35b13369386e474b8e56c552f3063a4a196905f90a250565b6102de610759565b6060610405610841565b905090565b610412610685565b73ffffffffffffffffffffffffffffffffffffffff8116610466576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b61046f816106dd565b50565b5f81600281111561048557610485610a49565b036104e45760025474010000000000000000000000000000000000000000900460ff16156104df576040517fb47f548400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610553565b60028160028111156104f8576104f8610a49565b03610553576002547501000000000000000000000000000000000000000000900460ff1615610553576040517fb0ee30f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546040517f939980de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063939980de906105af908790879087908790600401610af6565b602060405180830381865afa1580156105ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ee9190610b51565b610624576040517f4715494500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015460405173ffffffffffffffffffffffffffffffffffffffff918216918616907fc7819cb036063a47030dcfe5c7ec9aa238cf78ae59b1d2000fa93abf542b24839061067790879087908790610b6a565b60405180910390a350505050565b5f5473ffffffffffffffffffffffffffffffffffffffff6101009091041633146102de576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161045d565b5f805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b61076161084c565b5f61076a610841565b90505f5f5f5f848060200190518101906107849190610b94565b9350935093509350610795846106dd565b600280549115157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff93151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff9095169490941791909117919091169190911790555050565b60606104053061085d565b6108546108aa565b6102de336106dd565b60405164ffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3833b0116808252602090810190602d908301843c60408101815101604052919050565b5f5460ff16156108e6576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b73ffffffffffffffffffffffffffffffffffffffff8116811461046f575f5ffd5b5f5f5f5f60608587031215610946575f5ffd5b843561095181610912565b9350602085013567ffffffffffffffff81111561096c575f5ffd5b8501601f8101871361097c575f5ffd5b803567ffffffffffffffff811115610992575f5ffd5b8760208284010111156109a3575f5ffd5b602091909101935091506040850135600381106109be575f5ffd5b939692955090935050565b5f602082840312156109d9575f5ffd5b81356109e481610912565b9392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6109e460208301846109eb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60038110610af2577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b73ffffffffffffffffffffffffffffffffffffffff85168152606060208201525f610b25606083018587610a76565b9050610b346040830184610abd565b95945050505050565b80518015158114610b4c575f5ffd5b919050565b5f60208284031215610b61575f5ffd5b6109e482610b3d565b604081525f610b7d604083018587610a76565b9050610b8c6020830184610abd565b949350505050565b5f5f5f5f60808587031215610ba7575f5ffd5b8451610bb281610912565b6020860151909450610bc381610912565b9250610bd160408601610b3d565b9150610bdf60608601610b3d565b90509295919450925056fea2646970667358221220dba8dbd28e03125258991b9f687eec573f7325a74a9a183c316197509aa3ccca64736f6c634300081c0033","sourceMap":"299:267:69:-:0;;;;;;;;;;;;-1:-1:-1;482:10:62;;1269:95:87;;1322:31;;-1:-1:-1;;;1322:31:87;;1350:1;1322:31;;;160:51:133;133:18;;1322:31:87;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;299:267:69;;2912:187:87;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:87;;;3004:6;3020:17;;;-1:-1:-1;;;;;;3020:17:87;;;;;3052:40;;3004:6;;;;;;;3020:17;;3004:6;;3052:40;;;2975:124;2912:187;:::o;14:203:133:-;299:267:69;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100da575f3560e01c80637b02c3bc11610088578063b41a4b1911610063578063b41a4b19146101e4578063bc971e87146101f9578063ce343deb1461021e578063f2fde38b14610257575f5ffd5b80637b02c3bc1461019a5780638129fc1c146101ba5780638da5cb5b146101c2575f5ffd5b8063715018a6116100b8578063715018a61461013a57806372f7a03014610142578063776d1a0114610187575f5ffd5b80630c691b0c146100de57806314423fde14610119578063158ef93e1461012e575b5f5ffd5b600254610104907501000000000000000000000000000000000000000000900460ff1681565b60405190151581526020015b60405180910390f35b61012c610127366004610933565b61026a565b005b5f546101049060ff1681565b61012c6102cd565b6001546101629073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610110565b61012c6101953660046109c9565b6102e0565b6002546101629073ffffffffffffffffffffffffffffffffffffffff1681565b61012c6103f3565b5f54610100900473ffffffffffffffffffffffffffffffffffffffff16610162565b6101ec6103fb565b6040516101109190610a37565b6002546101049074010000000000000000000000000000000000000000900460ff1681565b60408051808201909152600e81527f416476616e63656445524337323100000000000000000000000000000000000060208201526101ec565b61012c6102653660046109c9565b61040a565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102bb576040517f7d24b6fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c784848484610472565b50505050565b6102d5610685565b6102de5f6106dd565b565b6102e8610685565b73ffffffffffffffffffffffffffffffffffffffff8116610335576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015473ffffffffffffffffffffffffffffffffffffffff1615610385576040517fe0f2d7b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f3bfb4bbf112628248058745a3c57e35b13369386e474b8e56c552f3063a4a196905f90a250565b6102de610759565b6060610405610841565b905090565b610412610685565b73ffffffffffffffffffffffffffffffffffffffff8116610466576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b61046f816106dd565b50565b5f81600281111561048557610485610a49565b036104e45760025474010000000000000000000000000000000000000000900460ff16156104df576040517fb47f548400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610553565b60028160028111156104f8576104f8610a49565b03610553576002547501000000000000000000000000000000000000000000900460ff1615610553576040517fb0ee30f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546040517f939980de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063939980de906105af908790879087908790600401610af6565b602060405180830381865afa1580156105ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ee9190610b51565b610624576040517f4715494500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015460405173ffffffffffffffffffffffffffffffffffffffff918216918616907fc7819cb036063a47030dcfe5c7ec9aa238cf78ae59b1d2000fa93abf542b24839061067790879087908790610b6a565b60405180910390a350505050565b5f5473ffffffffffffffffffffffffffffffffffffffff6101009091041633146102de576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161045d565b5f805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b61076161084c565b5f61076a610841565b90505f5f5f5f848060200190518101906107849190610b94565b9350935093509350610795846106dd565b600280549115157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff93151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff9095169490941791909117919091169190911790555050565b60606104053061085d565b6108546108aa565b6102de336106dd565b60405164ffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3833b0116808252602090810190602d908301843c60408101815101604052919050565b5f5460ff16156108e6576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b73ffffffffffffffffffffffffffffffffffffffff8116811461046f575f5ffd5b5f5f5f5f60608587031215610946575f5ffd5b843561095181610912565b9350602085013567ffffffffffffffff81111561096c575f5ffd5b8501601f8101871361097c575f5ffd5b803567ffffffffffffffff811115610992575f5ffd5b8760208284010111156109a3575f5ffd5b602091909101935091506040850135600381106109be575f5ffd5b939692955090935050565b5f602082840312156109d9575f5ffd5b81356109e481610912565b9392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6109e460208301846109eb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60038110610af2577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b73ffffffffffffffffffffffffffffffffffffffff85168152606060208201525f610b25606083018587610a76565b9050610b346040830184610abd565b95945050505050565b80518015158114610b4c575f5ffd5b919050565b5f60208284031215610b61575f5ffd5b6109e482610b3d565b604081525f610b7d604083018587610a76565b9050610b8c6020830184610abd565b949350505050565b5f5f5f5f60808587031215610ba7575f5ffd5b8451610bb281610912565b6020860151909450610bc381610912565b9250610bd160408601610b3d565b9150610bdf60608601610b3d565b90509295919450925056fea2646970667358221220dba8dbd28e03125258991b9f687eec573f7325a74a9a183c316197509aa3ccca64736f6c634300081c0033","sourceMap":"299:267:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;797:21:60;;;;;;;;;;;;;;;179:14:133;;172:22;154:41;;142:2;127:18;797:21:60;;;;;;;;1765:160;;;;;;:::i;:::-;;:::i;:::-;;552:23:63;;;;;;;;;2293:101:87;;;:::i;623:22:62:-;;;;;;;;;;;;1427:42:133;1415:55;;;1397:74;;1385:2;1370:18;623:22:62;1251:226:133;1322:254:62;;;;;;:::i;:::-;;:::i;587:39:60:-;;;;;;;;;750:61:63;;;:::i;1638:85:87:-;1684:7;1710:6;;;;;;1638:85;;1043:122:63;;;:::i;:::-;;;;;;;:::i;701:20:60:-;;;;;;;;;;;;469:95:69;534:23;;;;;;;;;;;;;;;;;469:95;;2543:215:87;;;;;;:::i;:::-;;:::i;1765:160:60:-;776:7:62;;;;762:10;:21;758:46;;792:12;;;;;;;;;;;;;;758:46;1880:38:60::1;1889:7;1898:8;;1908:9;1880:8;:38::i;:::-;1765:160:::0;;;;:::o;2293:101:87:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1322:254:62:-;1531:13:87;:11;:13::i;:::-;1400:22:62::1;::::0;::::1;1396:48;;1431:13;;;;;;;;;;;;;;1396:48;1458:7;::::0;:21:::1;:7;:21:::0;1454:52:::1;;1488:18;;;;;;;;;;;;;;1454:52;1517:7;:18:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;1550:19:::1;::::0;::::1;::::0;-1:-1:-1;;1550:19:62::1;1322:254:::0;:::o;750:61:63:-;791:13;:11;:13::i;1043:122::-;1094:26;1139:19;:17;:19::i;:::-;1132:26;;1043:122;:::o;2543:215:87:-;1531:13;:11;:13::i;:::-;2627:22:::1;::::0;::::1;2623:91;;2672:31;::::0;::::1;::::0;;2700:1:::1;2672:31;::::0;::::1;1397:74:133::0;1370:18;;2672:31:87::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2182:480:60:-;2303:9;2290;:22;;;;;;;;:::i;:::-;;2286:211;;2332:8;;;;;;;2328:48;;;2349:27;;;;;;;;;;;;;;2328:48;2286:211;;;2410:10;2397:9;:23;;;;;;;;:::i;:::-;;2393:104;;2440:9;;;;;;;2436:50;;;2458:28;;;;;;;;;;;;;;2436:50;2512:16;;:52;;;;;:16;;;;;:22;;:52;;2535:7;;2544:8;;;;2554:9;;2512:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2507:85;;2573:19;;;;;;;;;;;;;;2507:85;2626:7;;2608:47;;2626:7;;;;;2608:47;;;;;;;2635:8;;;;2645:9;;2608:47;:::i;:::-;;;;;;;;2182:480;;;;:::o;1796:162:87:-;1684:7;1710:6;1855:23;1710:6;;;;;735:10:98;1855:23:87;1851:101;;1901:40;;;;;735:10:98;1901:40:87;;;1397:74:133;1370:18;;1901:40:87;1251:226:133;2912:187:87;2985:16;3004:6;;;3020:17;;;3004:6;3020:17;;;;;;;;;3052:40;;3004:6;;;;;;;3020:17;;3004:6;;3052:40;;;2975:124;2912:187;:::o;975:455:60:-;1034:19;:17;:19::i;:::-;1064:17;1084:19;:17;:19::i;:::-;1064:39;;1114:14;1130:22;1154:12;1168:13;1209:4;1185:82;;;;;;;;;;;;:::i;:::-;1113:154;;;;;;;;1278:26;1297:6;1278:18;:26::i;:::-;1315:16;:50;;1403:20;;;;;;1375:18;;;;;;;;;1315:50;;;;1375:18;;;;;;;;1403:20;;;;;;;;;;-1:-1:-1;;975:455:60:o;1738:147:63:-;1798:26;1843:35;1872:4;1843:20;:35::i;958:176:62:-;1017:19;:17;:19::i;:::-;1097:30;1116:10;1097:18;:30::i;37363:452:132:-;37534:4;37528:11;37569:12;37583:32;37587:21;;37583:32;37565:51;37552:65;;;37713:4;37696:22;;;;37610:4;;37673:15;;37599:8;37651:68;37772:4;37766;37762:15;37755:4;37749:11;37745:33;37739:4;37732:47;37363:452;;;:::o;1384:129:63:-;1438:11;;;;1434:44;;;1458:20;;;;;;;;;;;;;;1434:44;1488:11;:18;;;;1502:4;1488:18;;;1384:129::o;206:154:133:-;292:42;285:5;281:54;274:5;271:65;261:93;;350:1;347;340:12;365:881;463:6;471;479;487;540:2;528:9;519:7;515:23;511:32;508:52;;;556:1;553;546:12;508:52;595:9;582:23;614:31;639:5;614:31;:::i;:::-;664:5;-1:-1:-1;720:2:133;705:18;;692:32;747:18;736:30;;733:50;;;779:1;776;769:12;733:50;802:22;;855:4;847:13;;843:27;-1:-1:-1;833:55:133;;884:1;881;874:12;833:55;924:2;911:16;950:18;942:6;939:30;936:50;;;982:1;979;972:12;936:50;1027:7;1022:2;1013:6;1009:2;1005:15;1001:24;998:37;995:57;;;1048:1;1045;1038:12;995:57;1079:2;1071:11;;;;;-1:-1:-1;1101:6:133;-1:-1:-1;1159:2:133;1144:18;;1131:32;1194:1;1182:14;;1172:42;;1210:1;1207;1200:12;1172:42;365:881;;;;-1:-1:-1;365:881:133;;-1:-1:-1;;365:881:133:o;1482:247::-;1541:6;1594:2;1582:9;1573:7;1569:23;1565:32;1562:52;;;1610:1;1607;1600:12;1562:52;1649:9;1636:23;1668:31;1693:5;1668:31;:::i;:::-;1718:5;1482:247;-1:-1:-1;;;1482:247:133:o;1988:347::-;2029:3;2067:5;2061:12;2094:6;2089:3;2082:19;2150:6;2143:4;2136:5;2132:16;2125:4;2120:3;2116:14;2110:47;2202:1;2195:4;2186:6;2181:3;2177:16;2173:27;2166:38;2324:4;2254:66;2249:2;2241:6;2237:15;2233:88;2228:3;2224:98;2220:109;2213:116;;;1988:347;;;;:::o;2340:217::-;2487:2;2476:9;2469:21;2450:4;2507:44;2547:2;2536:9;2532:18;2524:6;2507:44;:::i;2786:184::-;2838:77;2835:1;2828:88;2935:4;2932:1;2925:15;2959:4;2956:1;2949:15;2975:325;3063:6;3058:3;3051:19;3115:6;3108:5;3101:4;3096:3;3092:14;3079:43;;3167:1;3160:4;3151:6;3146:3;3142:16;3138:27;3131:38;3033:3;3289:4;3219:66;3214:2;3206:6;3202:15;3198:88;3193:3;3189:98;3185:109;3178:116;;2975:325;;;;:::o;3305:290::-;3382:1;3375:5;3372:12;3362:200;;3418:77;3415:1;3408:88;3519:4;3516:1;3509:15;3547:4;3544:1;3537:15;3362:200;3571:18;;3305:290::o;3600:458::-;3833:42;3825:6;3821:55;3810:9;3803:74;3913:2;3908;3897:9;3893:18;3886:30;3784:4;3933:61;3990:2;3979:9;3975:18;3967:6;3959;3933:61;:::i;:::-;3925:69;;4003:49;4048:2;4037:9;4033:18;4025:6;4003:49;:::i;:::-;3600:458;;;;;;;:::o;4063:164::-;4139:13;;4188;;4181:21;4171:32;;4161:60;;4217:1;4214;4207:12;4161:60;4063:164;;;:::o;4232:202::-;4299:6;4352:2;4340:9;4331:7;4327:23;4323:32;4320:52;;;4368:1;4365;4358:12;4320:52;4391:37;4418:9;4391:37;:::i;4439:338::-;4632:2;4621:9;4614:21;4595:4;4652:61;4709:2;4698:9;4694:18;4686:6;4678;4652:61;:::i;:::-;4644:69;;4722:49;4767:2;4756:9;4752:18;4744:6;4722:49;:::i;:::-;4439:338;;;;;;:::o;4782:560::-;4889:6;4897;4905;4913;4966:3;4954:9;4945:7;4941:23;4937:33;4934:53;;;4983:1;4980;4973:12;4934:53;5015:9;5009:16;5034:31;5059:5;5034:31;:::i;:::-;5134:2;5119:18;;5113:25;5084:5;;-1:-1:-1;5147:33:133;5113:25;5147:33;:::i;:::-;5199:7;-1:-1:-1;5225:46:133;5267:2;5252:18;;5225:46;:::i;:::-;5215:56;;5290:46;5332:2;5321:9;5317:18;5290:46;:::i;:::-;5280:56;;4782:560;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"ADVANCED_CHECKER()":"7b02c3bc","SKIP_POST()":"0c691b0c","SKIP_PRE()":"bc971e87","enforce(address,bytes,uint8)":"14423fde","getAppendedBytes()":"b41a4b19","guarded()":"72f7a030","initialize()":"8129fc1c","initialized()":"158ef93e","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setTarget(address)":"776d1a01","trait()":"ce343deb","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyEnforced\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotPostCheckWhenSkipped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotPreCheckWhenSkipped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MainCheckAlreadyEnforced\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MainCheckNotEnforced\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PreCheckNotEnforced\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TargetAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TargetNotSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TargetOnly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsuccessfulCheck\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subject\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guarded\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"evidence\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"enum Check\",\"name\":\"checkType\",\"type\":\"uint8\"}],\"name\":\"Enforced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guarded\",\"type\":\"address\"}],\"name\":\"TargetSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADVANCED_CHECKER\",\"outputs\":[{\"internalType\":\"contract AdvancedChecker\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SKIP_POST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SKIP_PRE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subject\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"evidence\",\"type\":\"bytes\"},{\"internalType\":\"enum Check\",\"name\":\"checkType\",\"type\":\"uint8\"}],\"name\":\"enforce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAppendedBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"appendedBytes\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guarded\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_guarded\",\"type\":\"address\"}],\"name\":\"setTarget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trait\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Leverages AdvancedChecker for pre, main, and post validation phases.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Enforced(address,address,bytes,uint8)\":{\"params\":{\"checkType\":\"The type of check performed (PRE, MAIN, POST).\",\"evidence\":\"Custom validation data.\",\"guarded\":\"Address of the protected contract.\",\"subject\":\"Address that passed the validation.\"}},\"TargetSet(address)\":{\"params\":{\"guarded\":\"Address of the protected contract.\"}}},\"kind\":\"dev\",\"methods\":{\"enforce(address,bytes,uint8)\":{\"details\":\"Handles pre, main, and post validation stages. Only callable by the guarded contract.\",\"params\":{\"checkType\":\"The type of check performed (PRE, MAIN, POST).\",\"evidence\":\"Custom validation data.\",\"subject\":\"Address to enforce the policy on.\"}},\"getAppendedBytes()\":{\"details\":\"Leverages `LibClone` to extract arguments from the clone's runtime bytecode.\",\"returns\":{\"appendedBytes\":\"The appended bytes extracted from the clone.\"}},\"initialize()\":{\"details\":\"Calls the internal `_initialize` function to set up the clone. Reverts if the clone is already initialized.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setTarget(address)\":{\"details\":\"Can only be called once by the owner.\",\"params\":{\"_guarded\":\"The contract address to protect.\"}},\"trait()\":{\"returns\":{\"_0\":\"The string identifier \\\"AdvancedERC721\\\".\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"AdvancedERC721Policy\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyEnforced()\":[{\"notice\":\"Error thrown when a user is already enforced.\"}],\"AlreadyInitialized()\":[{\"notice\":\"Error thrown when the clone is already initialized.\"}],\"CannotPostCheckWhenSkipped()\":[{\"notice\":\"Error thrown when a post-check is attempted while post-checks are skipped.\"}],\"CannotPreCheckWhenSkipped()\":[{\"notice\":\"Error thrown when a pre-check is attempted while pre-checks are skipped.\"}],\"MainCheckAlreadyEnforced()\":[{\"notice\":\"Error thrown when multiple main checks are attempted but not allowed.\"}],\"MainCheckNotEnforced()\":[{\"notice\":\"Error thrown when a post-check is attempted without a prior main check.\"}],\"PreCheckNotEnforced()\":[{\"notice\":\"Error thrown when a main check is attempted without a prior pre-check.\"}],\"TargetAlreadySet()\":[{\"notice\":\"Error thrown when attempting to set the guarded more than once.\"}],\"TargetNotSet()\":[{\"notice\":\"Error thrown when the guarded contract is not set.\"}],\"TargetOnly()\":[{\"notice\":\"Error thrown when a function is restricted to calls from the guarded contract.\"}],\"UnsuccessfulCheck()\":[{\"notice\":\"Error thrown when a validation check fails.\"}],\"ZeroAddress()\":[{\"notice\":\"Error thrown when a zero address is provided where not allowed.\"}]},\"events\":{\"Enforced(address,address,bytes,uint8)\":{\"notice\":\"Emitted when a subject successfully passes a validation check.\"},\"TargetSet(address)\":{\"notice\":\"Emitted when the guarded contract is successfully set.\"}},\"kind\":\"user\",\"methods\":{\"ADVANCED_CHECKER()\":{\"notice\":\"Reference to the AdvancedChecker contract used for validation.\"},\"SKIP_POST()\":{\"notice\":\"Controls whether post-condition checks are required.\"},\"SKIP_PRE()\":{\"notice\":\"Controls whether pre-condition checks are required.\"},\"enforce(address,bytes,uint8)\":{\"notice\":\"Enforces a multi-stage policy check.\"},\"getAppendedBytes()\":{\"notice\":\"Retrieves appended arguments from the clone.\"},\"guarded()\":{\"notice\":\"The address of the contract being protected by the policy.\"},\"initialize()\":{\"notice\":\"Initializes the clone.\"},\"initialized()\":{\"notice\":\"Tracks whether the clone has been initialized.\"},\"setTarget(address)\":{\"notice\":\"Sets the contract address to be protected by this policy.\"},\"trait()\":{\"notice\":\"Returns a unique identifier for the policy.\"}},\"notice\":\"Three-phase policy contract for ERC721 validation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/examples/advanced/AdvancedERC721Policy.sol\":\"AdvancedERC721Policy\"},\"evmVersion\":\"cancun\",\"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/checker/AdvancedChecker.sol\":{\"keccak256\":\"0x624a5e2ce50e0c6b9c03ce852b7372b9c860972e9a476923815a290e7755ec68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a809ca3880f0a82e3132cad494a3f73a41700c119df3aed99481ecb02f4f0c5\",\"dweb:/ipfs/QmYoUuGhtiBNnMMTtp4kZiZdXNuoWUg2gfgZWhn7E8nFtD\"]},\"contracts/interfaces/IAdvancedChecker.sol\":{\"keccak256\":\"0x6e6682ecc5cb0eb88ca8d7c2ff024f7351917e30b01c01b4670f36a4d6e0a24d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb311bf62e81e1ae8a6e7874d2cdfff4a5dd04b4bcba11796858fe248e6926e5\",\"dweb:/ipfs/Qmd4vtmw5WQUw8Ui4EV7aGW9ATvddC5cEWHyunT8paW2R4\"]},\"contracts/interfaces/IAdvancedPolicy.sol\":{\"keccak256\":\"0xc95ed6363a805b64e8be2fc2e3c36e1b999fbdd12d5b8ef9e356e185ec6a1489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3283d08ef2b7a03c30b6cbd03b32082568198c76c0c7f0cb5d0f2c430c204ef\",\"dweb:/ipfs/QmXb55ASwhdJ9tQDQh8fhgXF9iiFUCxxC9EceCcZ38LvhP\"]},\"contracts/interfaces/IClone.sol\":{\"keccak256\":\"0xc3f6a08a3ce1db7e80dd496c6631d4d9d7a409729e67ed543411baac396369e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e531790090250216d4c89b58e06b6cb942d79e94614c4e70f57021c4fdccef\",\"dweb:/ipfs/QmaGuDzcBxCr1XpWQiqB6M7GcsVaXeaouQFXsN53MnKLff\"]},\"contracts/interfaces/IPolicy.sol\":{\"keccak256\":\"0x82f96940502cdd880f1eacc03cd8c3895f306283efa907610c899a1f5509f78c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5baf97f88beb3155f244dc301ee040786780bf6762fbaaf569e2e86b17729b3f\",\"dweb:/ipfs/Qmec9wzmmFwkQHDthMo9QaFtYqa7CadjiCP2JMsgFGGaxU\"]},\"contracts/policy/AdvancedPolicy.sol\":{\"keccak256\":\"0x41014527233f3c0749dc225b95da7100ff7072b4e81fd1b58b4763345d0cd1e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7396d479efb591153e0b3b2ed9a505ec2cdd8833aa81f233ba0ce47a2cfb4e9b\",\"dweb:/ipfs/QmaWcuFkKqt9aZRLXA5Xj5TKcYcYrP7rPdnv9Qe7j9n7Ks\"]},\"contracts/policy/Policy.sol\":{\"keccak256\":\"0xb0c9186c6b880aadc1c6cc5ddae104c385f365b48eb9bbedf164f9085a242c1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978e15170f79da85a988a040f9e1071c62b0fc80e8fd5240253c0a6d1d1a3fc7\",\"dweb:/ipfs/QmdWqp9Xxe5H4kXa6CmsymfGzENoqu8VAoJBsUSsyZzbNd\"]},\"contracts/proxy/Clone.sol\":{\"keccak256\":\"0x0ec0acfcf7440fadcf621ec4fbf1679e390bd52c9633477ee7e6f06138e71b99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10f90028d43e745963e673a16d96a3b15c92a83b0dde396d5bdadab9b8a166ef\",\"dweb:/ipfs/Qmf3JjAMVuhPJBMa7hqXNTB3zp4QxPqZYdrntzbhCJXbiG\"]},\"contracts/test/examples/advanced/AdvancedERC721Policy.sol\":{\"keccak256\":\"0xd1fc51a90539151b578e5e8d93a80a01d531ac6bef83ed54f14a57e4cff2bfcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43569f74b0c538c6df70c912575c7b2eeb9ed30296ab87adb6ada782da691f4\",\"dweb:/ipfs/QmRtyWUsYX4iot1KjQPnh7YZiLjifwuTLZ1SdPprNrA5Tx\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/solady/src/utils/LibClone.sol\":{\"keccak256\":\"0x1388494b421db04cf6f33ab69580edc5b187328688818504b87eaea9fa3c0d2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f6bf027d6fe4f102360bf7e988923f73510697a87d970b28093a0d950d9a3e5\",\"dweb:/ipfs/QmUhdrSqiwhBp2cZPef6jcTfQ8Md3KoyfnK2ZteseAvude\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyEnforced"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"CannotPostCheckWhenSkipped"},{"inputs":[],"type":"error","name":"CannotPreCheckWhenSkipped"},{"inputs":[],"type":"error","name":"MainCheckAlreadyEnforced"},{"inputs":[],"type":"error","name":"MainCheckNotEnforced"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PreCheckNotEnforced"},{"inputs":[],"type":"error","name":"TargetAlreadySet"},{"inputs":[],"type":"error","name":"TargetNotSet"},{"inputs":[],"type":"error","name":"TargetOnly"},{"inputs":[],"type":"error","name":"UnsuccessfulCheck"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"subject","type":"address","indexed":true},{"internalType":"address","name":"guarded","type":"address","indexed":true},{"internalType":"bytes","name":"evidence","type":"bytes","indexed":false},{"internalType":"enum Check","name":"checkType","type":"uint8","indexed":false}],"type":"event","name":"Enforced","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"guarded","type":"address","indexed":true}],"type":"event","name":"TargetSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ADVANCED_CHECKER","outputs":[{"internalType":"contract AdvancedChecker","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SKIP_POST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SKIP_PRE","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"subject","type":"address"},{"internalType":"bytes","name":"evidence","type":"bytes"},{"internalType":"enum Check","name":"checkType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"enforce"},{"inputs":[],"stateMutability":"view","type":"function","name":"getAppendedBytes","outputs":[{"internalType":"bytes","name":"appendedBytes","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"guarded","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_guarded","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTarget"},{"inputs":[],"stateMutability":"pure","type":"function","name":"trait","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"enforce(address,bytes,uint8)":{"details":"Handles pre, main, and post validation stages. Only callable by the guarded contract.","params":{"checkType":"The type of check performed (PRE, MAIN, POST).","evidence":"Custom validation data.","subject":"Address to enforce the policy on."}},"getAppendedBytes()":{"details":"Leverages `LibClone` to extract arguments from the clone's runtime bytecode.","returns":{"appendedBytes":"The appended bytes extracted from the clone."}},"initialize()":{"details":"Calls the internal `_initialize` function to set up the clone. Reverts if the clone is already initialized."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setTarget(address)":{"details":"Can only be called once by the owner.","params":{"_guarded":"The contract address to protect."}},"trait()":{"returns":{"_0":"The string identifier \"AdvancedERC721\"."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"ADVANCED_CHECKER()":{"notice":"Reference to the AdvancedChecker contract used for validation."},"SKIP_POST()":{"notice":"Controls whether post-condition checks are required."},"SKIP_PRE()":{"notice":"Controls whether pre-condition checks are required."},"enforce(address,bytes,uint8)":{"notice":"Enforces a multi-stage policy check."},"getAppendedBytes()":{"notice":"Retrieves appended arguments from the clone."},"guarded()":{"notice":"The address of the contract being protected by the policy."},"initialize()":{"notice":"Initializes the clone."},"initialized()":{"notice":"Tracks whether the clone has been initialized."},"setTarget(address)":{"notice":"Sets the contract address to be protected by this policy."},"trait()":{"notice":"Returns a unique identifier for the policy."}},"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/examples/advanced/AdvancedERC721Policy.sol":"AdvancedERC721Policy"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/checker/AdvancedChecker.sol":{"keccak256":"0x624a5e2ce50e0c6b9c03ce852b7372b9c860972e9a476923815a290e7755ec68","urls":["bzz-raw://9a809ca3880f0a82e3132cad494a3f73a41700c119df3aed99481ecb02f4f0c5","dweb:/ipfs/QmYoUuGhtiBNnMMTtp4kZiZdXNuoWUg2gfgZWhn7E8nFtD"],"license":"MIT"},"contracts/interfaces/IAdvancedChecker.sol":{"keccak256":"0x6e6682ecc5cb0eb88ca8d7c2ff024f7351917e30b01c01b4670f36a4d6e0a24d","urls":["bzz-raw://bb311bf62e81e1ae8a6e7874d2cdfff4a5dd04b4bcba11796858fe248e6926e5","dweb:/ipfs/Qmd4vtmw5WQUw8Ui4EV7aGW9ATvddC5cEWHyunT8paW2R4"],"license":"MIT"},"contracts/interfaces/IAdvancedPolicy.sol":{"keccak256":"0xc95ed6363a805b64e8be2fc2e3c36e1b999fbdd12d5b8ef9e356e185ec6a1489","urls":["bzz-raw://d3283d08ef2b7a03c30b6cbd03b32082568198c76c0c7f0cb5d0f2c430c204ef","dweb:/ipfs/QmXb55ASwhdJ9tQDQh8fhgXF9iiFUCxxC9EceCcZ38LvhP"],"license":"MIT"},"contracts/interfaces/IClone.sol":{"keccak256":"0xc3f6a08a3ce1db7e80dd496c6631d4d9d7a409729e67ed543411baac396369e7","urls":["bzz-raw://d9e531790090250216d4c89b58e06b6cb942d79e94614c4e70f57021c4fdccef","dweb:/ipfs/QmaGuDzcBxCr1XpWQiqB6M7GcsVaXeaouQFXsN53MnKLff"],"license":"MIT"},"contracts/interfaces/IPolicy.sol":{"keccak256":"0x82f96940502cdd880f1eacc03cd8c3895f306283efa907610c899a1f5509f78c","urls":["bzz-raw://5baf97f88beb3155f244dc301ee040786780bf6762fbaaf569e2e86b17729b3f","dweb:/ipfs/Qmec9wzmmFwkQHDthMo9QaFtYqa7CadjiCP2JMsgFGGaxU"],"license":"MIT"},"contracts/policy/AdvancedPolicy.sol":{"keccak256":"0x41014527233f3c0749dc225b95da7100ff7072b4e81fd1b58b4763345d0cd1e4","urls":["bzz-raw://7396d479efb591153e0b3b2ed9a505ec2cdd8833aa81f233ba0ce47a2cfb4e9b","dweb:/ipfs/QmaWcuFkKqt9aZRLXA5Xj5TKcYcYrP7rPdnv9Qe7j9n7Ks"],"license":"MIT"},"contracts/policy/Policy.sol":{"keccak256":"0xb0c9186c6b880aadc1c6cc5ddae104c385f365b48eb9bbedf164f9085a242c1e","urls":["bzz-raw://978e15170f79da85a988a040f9e1071c62b0fc80e8fd5240253c0a6d1d1a3fc7","dweb:/ipfs/QmdWqp9Xxe5H4kXa6CmsymfGzENoqu8VAoJBsUSsyZzbNd"],"license":"MIT"},"contracts/proxy/Clone.sol":{"keccak256":"0x0ec0acfcf7440fadcf621ec4fbf1679e390bd52c9633477ee7e6f06138e71b99","urls":["bzz-raw://10f90028d43e745963e673a16d96a3b15c92a83b0dde396d5bdadab9b8a166ef","dweb:/ipfs/Qmf3JjAMVuhPJBMa7hqXNTB3zp4QxPqZYdrntzbhCJXbiG"],"license":"MIT"},"contracts/test/examples/advanced/AdvancedERC721Policy.sol":{"keccak256":"0xd1fc51a90539151b578e5e8d93a80a01d531ac6bef83ed54f14a57e4cff2bfcb","urls":["bzz-raw://c43569f74b0c538c6df70c912575c7b2eeb9ed30296ab87adb6ada782da691f4","dweb:/ipfs/QmRtyWUsYX4iot1KjQPnh7YZiLjifwuTLZ1SdPprNrA5Tx"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/solady/src/utils/LibClone.sol":{"keccak256":"0x1388494b421db04cf6f33ab69580edc5b187328688818504b87eaea9fa3c0d2c","urls":["bzz-raw://8f6bf027d6fe4f102360bf7e988923f73510697a87d970b28093a0d950d9a3e5","dweb:/ipfs/QmUhdrSqiwhBp2cZPef6jcTfQ8Md3KoyfnK2ZteseAvude"],"license":"MIT"}},"version":1},"id":69}