UNPKG

@excubiae/contracts

Version:
1 lines 30.3 kB
{"abi":[{"type":"constructor","inputs":[{"name":"_policy","type":"address","internalType":"contract AdvancedPolicy"}],"stateMutability":"nonpayable"},{"type":"function","name":"POLICY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AdvancedPolicy"}],"stateMutability":"view"},{"type":"function","name":"eligible","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasVoted","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isEligible","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registered","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vote","inputs":[{"name":"option","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Eligible","inputs":[{"name":"voter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Registered","inputs":[{"name":"voter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Voted","inputs":[{"name":"voter","type":"address","indexed":false,"internalType":"address"},{"name":"option","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"error","name":"AlreadyEligible","inputs":[]},{"type":"error","name":"InvalidOption","inputs":[]},{"type":"error","name":"NotEligible","inputs":[]},{"type":"error","name":"NotRegistered","inputs":[]},{"type":"error","name":"NotVoted","inputs":[]}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b5060405161081138038061081183398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f5ffd5b81516001600160a01b0381168114610065575f5ffd5b9392505050565b6080516107786100995f395f818161011b0152818161021e01528181610440015261051501526107785ff3fe608060405234801561000f575f5ffd5b506004361061007a575f3560e01c8063b3f98adc11610058578063b3f98adc146100f9578063d832d92f1461010e578063dadbccee14610116578063f207564e14610162575f5ffd5b806309eef43e1461007e57806366e305fd146100b5578063b2dd5c07146100d7575b5f5ffd5b6100a061008c366004610625565b60016020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100a06100c3366004610625565b60026020525f908152604090205460ff1681565b6100a06100e5366004610625565b5f6020819052908152604090205460ff1681565b61010c61010736600461065f565b610175565b005b61010c61031d565b61013d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ac565b61010c61017036600461067f565b610513565b335f9081526020819052604090205460ff166101bd576040517faba4733900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028160ff16106101fa576040517f2a71953100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160ff8316602082015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916314423fde9133910160405160208183030381529060405260016040518463ffffffff1660e01b815260040161027793929190610696565b5f604051808303815f87803b15801561028e575f5ffd5b505af11580156102a0573d5f5f3e3d5ffd5b5050335f8181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155815192835260ff8616908301527f14075e33dffdc00c1fcaf75d0f86d667170be57fb566b12b41b499e5fa53b12593500190505b60405180910390a150565b335f9081526020819052604090205460ff16610365576040517faba4733900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f9081526001602052604090205460ff166103ad576040517ff8d49bcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f9081526002602052604090205460ff16156103f6576040517f8eb49d8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080515f815260208101918290527f14423fde0000000000000000000000000000000000000000000000000000000090915273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906314423fde90610478903390600260248201610696565b5f604051808303815f87803b15801561048f575f5ffd5b505af11580156104a1573d5f5f3e3d5ffd5b5050335f8181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590519182527f36cd5b9d4fdc2d0cf34eda84f3ffd903552e17139454f5f502a305eb3bed15ad935001905060405180910390a1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166314423fde338360405160200161056391815260200190565b6040516020818303038152906040525f6040518463ffffffff1660e01b815260040161059193929190610696565b5f604051808303815f87803b1580156105a8575f5ffd5b505af11580156105ba573d5f5f3e3d5ffd5b5050335f818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590519182527f2d3734a8e47ac8316e500ac231c90a6e1848ca2285f40d07eaa52005e4b3a0e99350019050610312565b5f60208284031215610635575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610658575f5ffd5b9392505050565b5f6020828403121561066f575f5ffd5b813560ff81168114610658575f5ffd5b5f6020828403121561068f575f5ffd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201525f83518060608401528060208601608085015e5f6080828501015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505060038310610734577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b82604083015294935050505056fea2646970667358221220ca225acc11aa6badfd63eb25fc8106b2f7cb1f1f1c79900f50c64f441f78b17264736f6c634300081c0033","sourceMap":"389:3989:71:-:0;;;2106:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2152:16:71;;;389:3989;;14:313:133;107:6;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;202:16;;-1:-1:-1;;;;;247:31:133;;237:42;;227:70;;293:1;290;283:12;227:70;316:5;14:313;-1:-1:-1;;;14:313:133:o;:::-;389:3989:71;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061007a575f3560e01c8063b3f98adc11610058578063b3f98adc146100f9578063d832d92f1461010e578063dadbccee14610116578063f207564e14610162575f5ffd5b806309eef43e1461007e57806366e305fd146100b5578063b2dd5c07146100d7575b5f5ffd5b6100a061008c366004610625565b60016020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100a06100c3366004610625565b60026020525f908152604090205460ff1681565b6100a06100e5366004610625565b5f6020819052908152604090205460ff1681565b61010c61010736600461065f565b610175565b005b61010c61031d565b61013d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ac565b61010c61017036600461067f565b610513565b335f9081526020819052604090205460ff166101bd576040517faba4733900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028160ff16106101fa576040517f2a71953100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160ff8316602082015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916314423fde9133910160405160208183030381529060405260016040518463ffffffff1660e01b815260040161027793929190610696565b5f604051808303815f87803b15801561028e575f5ffd5b505af11580156102a0573d5f5f3e3d5ffd5b5050335f8181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155815192835260ff8616908301527f14075e33dffdc00c1fcaf75d0f86d667170be57fb566b12b41b499e5fa53b12593500190505b60405180910390a150565b335f9081526020819052604090205460ff16610365576040517faba4733900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f9081526001602052604090205460ff166103ad576040517ff8d49bcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f9081526002602052604090205460ff16156103f6576040517f8eb49d8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080515f815260208101918290527f14423fde0000000000000000000000000000000000000000000000000000000090915273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906314423fde90610478903390600260248201610696565b5f604051808303815f87803b15801561048f575f5ffd5b505af11580156104a1573d5f5f3e3d5ffd5b5050335f8181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590519182527f36cd5b9d4fdc2d0cf34eda84f3ffd903552e17139454f5f502a305eb3bed15ad935001905060405180910390a1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166314423fde338360405160200161056391815260200190565b6040516020818303038152906040525f6040518463ffffffff1660e01b815260040161059193929190610696565b5f604051808303815f87803b1580156105a8575f5ffd5b505af11580156105ba573d5f5f3e3d5ffd5b5050335f818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590519182527f2d3734a8e47ac8316e500ac231c90a6e1848ca2285f40d07eaa52005e4b3a0e99350019050610312565b5f60208284031215610635575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610658575f5ffd5b9392505050565b5f6020828403121561066f575f5ffd5b813560ff81168114610658575f5ffd5b5f6020828403121561068f575f5ffd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201525f83518060608401528060208601608085015e5f6080828501015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505060038310610734577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b82604083015294935050505056fea2646970667358221220ca225acc11aa6badfd63eb25fc8106b2f7cb1f1f1c79900f50c64f441f78b17264736f6c634300081c0033","sourceMap":"389:3989:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1801:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;493:14:133;;486:22;468:41;;456:2;441:18;1801:40:71;;;;;;;;1916:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1702;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2957:569;;;;;;:::i;:::-;;:::i;:::-;;3689:687;;;:::i;1597:38::-;;;;;;;;993:42:133;981:55;;;963:74;;951:2;936:18;1597:38:71;794:249:133;2419:343:71;;;;;;:::i;:::-;;:::i;2957:569::-;3077:10;3066;:22;;;;;;;;;;;;;3061:51;;3097:15;;;;;;;;;;;;;;3061:51;3209:1;3199:6;:11;;;3195:39;;3219:15;;;;;;;;;;;;;;3195:39;3330:18;;;1405:4:133;1393:17;;3330:18:71;;;1375:36:133;3303:14:71;:6;:14;;;;3318:10;;1348:18:133;3330::71;;;;;;;;;;;;3350:10;3303:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3409:10:71;3400:20;;;;3423:4;3400:20;;;;;;;;;:27;;;;;;;;;;3494:25;;2484:74:133;;;2606:4;2594:17;;2574:18;;;2567:45;3494:25:71;;-1:-1:-1;2457:18:133;;-1:-1:-1;3494:25:71;;;;;;;;2957:569;:::o;3689:687::-;3809:10;3798;:22;;;;;;;;;;;;;3793:51;;3829:15;;;;;;;;;;;;;;3793:51;3924:10;3915:20;;;;:8;:20;;;;;;;;3910:44;;3944:10;;;;;;;;;;;;;;3910:44;4048:10;4037:22;;;;:10;:22;;;;;;;;4033:52;;;4068:17;;;;;;;;;;;;;;4033:52;4181:12;;;;;;;;;;;;;4154:52;;;;:14;:6;:14;;;;:52;;4169:10;;4195;4154:52;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4259:10:71;4248:22;;;;:10;:22;;;;;;;;;:29;;;;4273:4;4248:29;;;4349:20;;963:74:133;;;4349:20:71;;-1:-1:-1;936:18:133;;-1:-1:-1;4349:20:71;;;;;;;3689:687::o;2419:343::-;2539:6;:14;;;2554:10;2577:7;2566:19;;;;;;3000:25:133;;2988:2;2973:18;;2854:177;2566:19:71;;;;;;;;;;;;;2587:9;2539:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2649:10:71;2638;:22;;;;;;;;;;;;:29;;;;2663:4;2638:29;;;2733:22;;963:74:133;;;2733:22:71;;-1:-1:-1;936:18:133;;-1:-1:-1;2733:22:71;794:249:133;14:309;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:133:o;520:269::-;577:6;630:2;618:9;609:7;605:23;601:32;598:52;;;646:1;643;636:12;598:52;685:9;672:23;735:4;728:5;724:16;717:5;714:27;704:55;;755:1;752;745:12;1048:180;1107:6;1160:2;1148:9;1139:7;1135:23;1131:32;1128:52;;;1176:1;1173;1166:12;1128:52;-1:-1:-1;1199:23:133;;1048:180;-1:-1:-1;1048:180:133:o;1422:887::-;1645:42;1637:6;1633:55;1622:9;1615:74;1725:2;1720;1709:9;1705:18;1698:30;1596:4;1757:6;1751:13;1800:6;1795:2;1784:9;1780:18;1773:34;1860:6;1855:2;1847:6;1843:15;1837:3;1826:9;1822:19;1816:51;1917:1;1911:3;1902:6;1891:9;1887:22;1883:32;1876:43;2046:3;1976:66;1971:2;1963:6;1959:15;1955:88;1944:9;1940:104;1936:114;1928:122;;;2080:1;2072:6;2069:13;2059:201;;2116:77;2113:1;2106:88;2217:4;2214:1;2207:15;2245:4;2242:1;2235:15;2059:201;2296:6;2291:2;2280:9;2276:18;2269:34;1422:887;;;;;;:::o","linkReferences":{},"immutableReferences":{"9931":[{"start":283,"length":32},{"start":542,"length":32},{"start":1088,"length":32},{"start":1301,"length":32}]}},"methodIdentifiers":{"POLICY()":"dadbccee","eligible()":"d832d92f","hasVoted(address)":"09eef43e","isEligible(address)":"66e305fd","register(uint256)":"f207564e","registered(address)":"b2dd5c07","vote(uint8)":"b3f98adc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AdvancedPolicy\",\"name\":\"_policy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyEligible\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEligible\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVoted\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"Eligible\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"option\",\"type\":\"uint8\"}],\"name\":\"Voted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY\",\"outputs\":[{\"internalType\":\"contract AdvancedPolicy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eligible\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isEligible\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"option\",\"type\":\"uint8\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Combines pre, main, and post phases for registration, voting, and eligibility verification.\",\"events\":{\"Eligible(address)\":{\"params\":{\"voter\":\"Address of the voter who met eligibility criteria.\"}},\"Registered(address)\":{\"params\":{\"voter\":\"Address of the voter who registered.\"}},\"Voted(address,uint8)\":{\"params\":{\"option\":\"The chosen voting option (0 or 1).\",\"voter\":\"Address of the voter who cast their vote.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_policy\":\"Address of the AdvancedPolicy contract to use for validation.\"}},\"eligible()\":{\"details\":\"Enforces the post-check phase to ensure eligibility criteria are met.\"},\"register(uint256)\":{\"details\":\"Enforces the pre-check phase using the AdvancedPolicy contract.\",\"params\":{\"tokenId\":\"The ID of the NFT used to verify registration eligibility.\"}},\"vote(uint8)\":{\"details\":\"Enforces the main-check phase and updates the vote count.\",\"params\":{\"option\":\"The chosen voting option (0 or 1).\"}}},\"stateVariables\":{\"hasVoted\":{\"details\":\"Tracks whether an address has voted.\"},\"isEligible\":{\"details\":\"Tracks whether an address has been marked as eligible.\"},\"registered\":{\"details\":\"Tracks whether an address has been registered.\"}},\"title\":\"AdvancedVoting\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyEligible()\":[{\"notice\":\"Error thrown when a user tries to verify eligibility more than once.\"}],\"InvalidOption()\":[{\"notice\":\"Error thrown when an invalid voting option is provided.\"}],\"NotEligible()\":[{\"notice\":\"Error thrown when a user does not meet the eligibility criteria.\"}],\"NotRegistered()\":[{\"notice\":\"Error thrown when a user attempts an action without registering first.\"}],\"NotVoted()\":[{\"notice\":\"Error thrown when a user attempts to verify eligibility without voting.\"}]},\"events\":{\"Eligible(address)\":{\"notice\":\"Emitted when a voter is deemed eligible.\"},\"Registered(address)\":{\"notice\":\"Emitted when a voter registers successfully.\"},\"Voted(address,uint8)\":{\"notice\":\"Emitted when a vote is cast successfully.\"}},\"kind\":\"user\",\"methods\":{\"POLICY()\":{\"notice\":\"Reference to the policy contract enforcing multi-phase validation.\"},\"constructor\":{\"notice\":\"Constructor to set the policy contract.\"},\"eligible()\":{\"notice\":\"Verifies a user's eligibility after voting has concluded.\"},\"register(uint256)\":{\"notice\":\"Registers a user for voting by validating their NFT ownership.\"},\"vote(uint8)\":{\"notice\":\"Allows a registered user to cast their vote.\"}},\"notice\":\"Multi-phase governance system with NFT-based validation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/examples/advanced/AdvancedVoting.sol\":\"AdvancedVoting\"},\"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/checker/AdvancedChecker.sol\":{\"keccak256\":\"0xa49de7cf42d5a78342e2d7130884d263627b0ddca700c478160ea228f23f5b2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1840a1d279f2ae9f11dc62e844705e3476176734b6b6e67653b3eff0d9874f34\",\"dweb:/ipfs/Qmbrafzp6NNxTH5uzkWLPFzRMwh8K5Gstvvpw65326E8ma\"]},\"contracts/interfaces/IAdvancedChecker.sol\":{\"keccak256\":\"0x6e6682ecc5cb0eb88ca8d7c2ff024f7351917e30b01c01b4670f36a4d6e0a24d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb311bf62e81e1ae8a6e7874d2cdfff4a5dd04b4bcba11796858fe248e6926e5\",\"dweb:/ipfs/Qmd4vtmw5WQUw8Ui4EV7aGW9ATvddC5cEWHyunT8paW2R4\"]},\"contracts/interfaces/IAdvancedPolicy.sol\":{\"keccak256\":\"0x135e6b4dfb7b7608cd3916d4ecf697eddf3ae782998ac1f5789fb78fb0c9eb4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c7532f05af171df261d988ae40824b1e55a2a7e59eb74d0be1832a8d5c02481\",\"dweb:/ipfs/QmYE4QYWQBwamssEbrhnvGr2hA4yfdtKnm4UCpgHZZNKEy\"]},\"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\":\"0x12e2b44469a0fc0f84e0b36e6b82fe2e4a2e50c2af51a62757a4f68d3f3fcf1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://525d8de9858aa0fd79464de30390590ebac2511c81283e1e526a2f99ba221b5a\",\"dweb:/ipfs/QmcgzqXf1BE1zmtjBjbHdn3nLBYsb5AfrRiRMU7uCBKuG5\"]},\"contracts/policy/Policy.sol\":{\"keccak256\":\"0x3e6ef3213ffccff5285c8c2dc2d2b062ebd27dc8380ab2e092510375533aab8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de88bd02c3caf55beb562b26ff5218e594122a58fe969ae15e41376efc8c2dc9\",\"dweb:/ipfs/QmP1o2aaXueaM34CwZNJwtpuUZ6DEqkJc2wvVVNwgTJqdT\"]},\"contracts/proxy/Clone.sol\":{\"keccak256\":\"0x6453f61944f6a5e19d23c930abae166f01bc1613506fd0204e8c541e611b8164\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://520e2bdb7935ac9181d7474a61129151bb2096513e62793ff1c5220827662720\",\"dweb:/ipfs/QmXCDDZfJjX9EaK6QtwDE9FHK7z6ZsG6Ebgrt4CFxxL1wU\"]},\"contracts/test/examples/advanced/AdvancedVoting.sol\":{\"keccak256\":\"0x730ce5386a4ade26b96f62eb11ca37d779ca4ebfaa7c84e5bb1d75f6e41880ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b48e8a4d6d87efe087acd034e811f4b66bb1aec374152811ed9b4bbe51ba54e\",\"dweb:/ipfs/QmdrirEeQQTGBCfhnCzZU14oumeg4soDszjGu7HAw16mHM\"]},\"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":[{"internalType":"contract AdvancedPolicy","name":"_policy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyEligible"},{"inputs":[],"type":"error","name":"InvalidOption"},{"inputs":[],"type":"error","name":"NotEligible"},{"inputs":[],"type":"error","name":"NotRegistered"},{"inputs":[],"type":"error","name":"NotVoted"},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":false}],"type":"event","name":"Eligible","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":false},{"internalType":"uint8","name":"option","type":"uint8","indexed":false}],"type":"event","name":"Voted","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"POLICY","outputs":[{"internalType":"contract AdvancedPolicy","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"eligible"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isEligible","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"register"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"registered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint8","name":"option","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"vote"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_policy":"Address of the AdvancedPolicy contract to use for validation."}},"eligible()":{"details":"Enforces the post-check phase to ensure eligibility criteria are met."},"register(uint256)":{"details":"Enforces the pre-check phase using the AdvancedPolicy contract.","params":{"tokenId":"The ID of the NFT used to verify registration eligibility."}},"vote(uint8)":{"details":"Enforces the main-check phase and updates the vote count.","params":{"option":"The chosen voting option (0 or 1)."}}},"version":1},"userdoc":{"kind":"user","methods":{"POLICY()":{"notice":"Reference to the policy contract enforcing multi-phase validation."},"constructor":{"notice":"Constructor to set the policy contract."},"eligible()":{"notice":"Verifies a user's eligibility after voting has concluded."},"register(uint256)":{"notice":"Registers a user for voting by validating their NFT ownership."},"vote(uint8)":{"notice":"Allows a registered user to cast their vote."}},"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/AdvancedVoting.sol":"AdvancedVoting"},"evmVersion":"prague","libraries":{}},"sources":{"contracts/checker/AdvancedChecker.sol":{"keccak256":"0xa49de7cf42d5a78342e2d7130884d263627b0ddca700c478160ea228f23f5b2f","urls":["bzz-raw://1840a1d279f2ae9f11dc62e844705e3476176734b6b6e67653b3eff0d9874f34","dweb:/ipfs/Qmbrafzp6NNxTH5uzkWLPFzRMwh8K5Gstvvpw65326E8ma"],"license":"MIT"},"contracts/interfaces/IAdvancedChecker.sol":{"keccak256":"0x6e6682ecc5cb0eb88ca8d7c2ff024f7351917e30b01c01b4670f36a4d6e0a24d","urls":["bzz-raw://bb311bf62e81e1ae8a6e7874d2cdfff4a5dd04b4bcba11796858fe248e6926e5","dweb:/ipfs/Qmd4vtmw5WQUw8Ui4EV7aGW9ATvddC5cEWHyunT8paW2R4"],"license":"MIT"},"contracts/interfaces/IAdvancedPolicy.sol":{"keccak256":"0x135e6b4dfb7b7608cd3916d4ecf697eddf3ae782998ac1f5789fb78fb0c9eb4f","urls":["bzz-raw://4c7532f05af171df261d988ae40824b1e55a2a7e59eb74d0be1832a8d5c02481","dweb:/ipfs/QmYE4QYWQBwamssEbrhnvGr2hA4yfdtKnm4UCpgHZZNKEy"],"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":"0x12e2b44469a0fc0f84e0b36e6b82fe2e4a2e50c2af51a62757a4f68d3f3fcf1b","urls":["bzz-raw://525d8de9858aa0fd79464de30390590ebac2511c81283e1e526a2f99ba221b5a","dweb:/ipfs/QmcgzqXf1BE1zmtjBjbHdn3nLBYsb5AfrRiRMU7uCBKuG5"],"license":"MIT"},"contracts/policy/Policy.sol":{"keccak256":"0x3e6ef3213ffccff5285c8c2dc2d2b062ebd27dc8380ab2e092510375533aab8c","urls":["bzz-raw://de88bd02c3caf55beb562b26ff5218e594122a58fe969ae15e41376efc8c2dc9","dweb:/ipfs/QmP1o2aaXueaM34CwZNJwtpuUZ6DEqkJc2wvVVNwgTJqdT"],"license":"MIT"},"contracts/proxy/Clone.sol":{"keccak256":"0x6453f61944f6a5e19d23c930abae166f01bc1613506fd0204e8c541e611b8164","urls":["bzz-raw://520e2bdb7935ac9181d7474a61129151bb2096513e62793ff1c5220827662720","dweb:/ipfs/QmXCDDZfJjX9EaK6QtwDE9FHK7z6ZsG6Ebgrt4CFxxL1wU"],"license":"MIT"},"contracts/test/examples/advanced/AdvancedVoting.sol":{"keccak256":"0x730ce5386a4ade26b96f62eb11ca37d779ca4ebfaa7c84e5bb1d75f6e41880ea","urls":["bzz-raw://0b48e8a4d6d87efe087acd034e811f4b66bb1aec374152811ed9b4bbe51ba54e","dweb:/ipfs/QmdrirEeQQTGBCfhnCzZU14oumeg4soDszjGu7HAw16mHM"],"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":71}