{"abi":[{"type":"function","name":"addPermission","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"permissionBits","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clearPermissions","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"permissions","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"removePermission","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"permissionBits","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"UpdatedPermissions","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"permissions","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610544806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063300ecdb9146100515780635d0f6cba146100815780638ec998a01461009d578063e2317087146100b9575b600080fd5b61006b60048036038101906100669190610451565b6100d5565b60405161007891906104a0565b60405180910390f35b61009b600480360381019061009691906104bb565b6100fa565b005b6100b760048036038101906100b291906104bb565b61010a565b005b6100d360048036038101906100ce9190610451565b61011a565b005b6000602052816000526040600020602052806000526040600020600091509150505481565b610105838383610128565b505050565b610115838383610221565b505050565b6101248282610319565b5050565b600080600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508119811690508060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808373ffffffffffffffffffffffffffffffffffffffff16857f35fb03d0d293ef5b362761900725ce891f8f766b5a662cdd445372355448e7ca60405160405180910390a450505050565b600080600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811790508060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808373ffffffffffffffffffffffffffffffffffffffff16857f35fb03d0d293ef5b362761900725ce891f8f766b5a662cdd445372355448e7ca60405160405180910390a450505050565b600080600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff16837f35fb03d0d293ef5b362761900725ce891f8f766b5a662cdd445372355448e7ca60405160405180910390a45050565b600080fd5b6000819050919050565b6103d0816103bd565b81146103db57600080fd5b50565b6000813590506103ed816103c7565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061041e826103f3565b9050919050565b61042e81610413565b811461043957600080fd5b50565b60008135905061044b81610425565b92915050565b60008060408385031215610468576104676103b8565b5b6000610476858286016103de565b92505060206104878582860161043c565b9150509250929050565b61049a816103bd565b82525050565b60006020820190506104b56000830184610491565b92915050565b6000806000606084860312156104d4576104d36103b8565b5b60006104e2868287016103de565b93505060206104f38682870161043c565b9250506040610504868287016103de565b915050925092509256fea2646970667358221220ac77cddaf23bb05a80a87a18539e4f47a8322470990f86c4f9f3c1ac9ce23efb64736f6c63430008110033","sourceMap":"151:498:200:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063300ecdb9146100515780635d0f6cba146100815780638ec998a01461009d578063e2317087146100b9575b600080fd5b61006b60048036038101906100669190610451565b6100d5565b60405161007891906104a0565b60405180910390f35b61009b600480360381019061009691906104bb565b6100fa565b005b6100b760048036038101906100b291906104bb565b61010a565b005b6100d360048036038101906100ce9190610451565b61011a565b005b6000602052816000526040600020602052806000526040600020600091509150505481565b610105838383610128565b505050565b610115838383610221565b505050565b6101248282610319565b5050565b600080600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508119811690508060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808373ffffffffffffffffffffffffffffffffffffffff16857f35fb03d0d293ef5b362761900725ce891f8f766b5a662cdd445372355448e7ca60405160405180910390a450505050565b600080600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811790508060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808373ffffffffffffffffffffffffffffffffffffffff16857f35fb03d0d293ef5b362761900725ce891f8f766b5a662cdd445372355448e7ca60405160405180910390a450505050565b600080600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff16837f35fb03d0d293ef5b362761900725ce891f8f766b5a662cdd445372355448e7ca60405160405180910390a45050565b600080fd5b6000819050919050565b6103d0816103bd565b81146103db57600080fd5b50565b6000813590506103ed816103c7565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061041e826103f3565b9050919050565b61042e81610413565b811461043957600080fd5b50565b60008135905061044b81610425565b92915050565b60008060408385031215610468576104676103b8565b5b6000610476858286016103de565b92505060206104878582860161043c565b9150509250929050565b61049a816103bd565b82525050565b60006020820190506104b56000830184610491565b92915050565b6000806000606084860312156104d4576104d36103b8565b5b60006104e2868287016103de565b93505060206104f38682870161043c565b9250506040610504868287016103de565b915050925092509256fea2646970667358221220ac77cddaf23bb05a80a87a18539e4f47a8322470990f86c4f9f3c1ac9ce23efb64736f6c63430008110033","sourceMap":"151:498:200:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;157:66:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;492:155:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;216:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;371:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;157:66:172;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;492:155:200:-;592:48;610:7;619:4;625:14;592:17;:48::i;:::-;492:155;;;:::o;216:149::-;313:45;328:7;337:4;343:14;313;:45::i;:::-;216:149;;;:::o;371:115::-;447:32;465:7;474:4;447:17;:32::i;:::-;371:115;;:::o;2601:327:171:-;2702:24;2729:11;:20;2741:7;2729:20;;;;;;;;;;;:26;2750:4;2729:26;;;;;;;;;;;;;;;;2702:53;;2786:14;2785:15;2765:35;;;;2839:16;2810:11;:20;2822:7;2810:20;;;;;;;;;;;:26;2831:4;2810:26;;;;;;;;;;;;;;;:45;;;;2904:16;2898:4;2870:51;;2889:7;2870:51;;;;;;;;;;2692:236;2601:327;;;:::o;1680:323::-;1778:24;1805:11;:20;1817:7;1805:20;;;;;;;;;;;:26;1826:4;1805:26;;;;;;;;;;;;;;;;1778:53;;1861:14;1841:34;;;;1914:16;1885:11;:20;1897:7;1885:20;;;;;;;;;;;:26;1906:4;1885:26;;;;;;;;;;;;;;;:45;;;;1979:16;1973:4;1945:51;;1964:7;1945:51;;;;;;;;;;1768:235;1680:323;;;:::o;2161:165::-;2267:1;2238:11;:20;2250:7;2238:20;;;;;;;;;;;:26;2259:4;2238:26;;;;;;;;;;;;;;;:30;;;;2317:1;2311:4;2283:36;;2302:7;2283:36;;;;;;;;;;2161:165;;:::o;88:117:214:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:619::-;2106:6;2114;2122;2171:2;2159:9;2150:7;2146:23;2142:32;2139:119;;;2177:79;;:::i;:::-;2139:119;2297:1;2322:53;2367:7;2358:6;2347:9;2343:22;2322:53;:::i;:::-;2312:63;;2268:117;2424:2;2450:53;2495:7;2486:6;2475:9;2471:22;2450:53;:::i;:::-;2440:63;;2395:118;2552:2;2578:53;2623:7;2614:6;2603:9;2599:22;2578:53;:::i;:::-;2568:63;;2523:118;2029:619;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"addPermission(uint256,address,uint256)":"8ec998a0","clearPermissions(uint256,address)":"e2317087","permissions(uint256,address)":"300ecdb9","removePermission(uint256,address,uint256)":"5d0f6cba"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"permissions\",\"type\":\"uint256\"}],\"name\":\"UpdatedPermissions\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"permissionBits\",\"type\":\"uint256\"}],\"name\":\"addPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"clearPermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"permissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"permissionBits\",\"type\":\"uint256\"}],\"name\":\"removePermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"UpdatedPermissions(uint256,address,uint256)\":{\"notice\":\"Emitted when permissions are updated\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mock/MockPermissionControl.sol\":\"MockPermissionControl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":0},\"remappings\":[\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@zoralabs/mints-contracts/src/=node_modules/@zoralabs/mints-contracts/src/\",\":@zoralabs/openzeppelin-contracts-upgradeable/=node_modules/@zoralabs/openzeppelin-contracts-upgradeable/\",\":@zoralabs/protocol-rewards/src/=node_modules/@zoralabs/protocol-rewards/src/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":_imagine/=_imagine/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":mint/=_imagine/mint/\",\":solady/=node_modules/solady/src/\",\":solemate/=/node_modules/solemate/src/\",\":solmate/=node_modules/solmate/\"]},\"sources\":{\"src/interfaces/ICreatorPermissionControl.sol\":{\"keccak256\":\"0xbc1e789b56c9768a4a3cda2ddbeeb6cc6a3c06d18486ffbcb0164cf00349597a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1502b08e04380b2646a9a5f30ada5f6305243620571c9583ebe90e6be9c05fd4\",\"dweb:/ipfs/QmdmWcGhruHzWwKBMdfPAMzr82thzTAqtxCFKAP5USbHVC\"]},\"src/permissions/CreatorPermissionControl.sol\":{\"keccak256\":\"0x60655e2f4296582ea5f11d766abf52db10beee418fc75a836a9d6e703db0552b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://134ded96a6edd4d43c4004fe2cc59e112425d71ffbb3cad19790413a57323f69\",\"dweb:/ipfs/QmcM5dp889igWDLGzAueh6tMnq34ng8Xw39Kk88c7GS1aT\"]},\"src/permissions/CreatorPermissionStorageV1.sol\":{\"keccak256\":\"0xc621b1ddded80bc7efe6938e6be0d0f358a0e41dca86a9acfd37e841e1bfabd3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4748fa31453431d357b2751a298450b0acb0436962f004de593b0c8d491e0559\",\"dweb:/ipfs/QmR4YSBMrjaR5KVRvkAEY1rkRSRERhLHPViqPrA5zrEJmE\"]},\"test/mock/MockPermissionControl.sol\":{\"keccak256\":\"0x7e0d7a833305923fa739b81d60fcd6be200683a54f7ad560b58a8b6d08d71c5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9a9d50b9eb1aacdfaa46b44f95e2a670fc254b9802615fc35f49b74c37cff8b\",\"dweb:/ipfs/QmdRXbXN4txpdXKcEmywpkWQhdEZjq3Rz6LHmms4nEAHGY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.17+commit.8df45f5f"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"permissions","type":"uint256","indexed":true}],"type":"event","name":"UpdatedPermissions","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"permissionBits","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addPermission"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"clearPermissions"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"permissions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"permissionBits","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removePermission"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@zoralabs/mints-contracts/src/=node_modules/@zoralabs/mints-contracts/src/","@zoralabs/openzeppelin-contracts-upgradeable/=node_modules/@zoralabs/openzeppelin-contracts-upgradeable/","@zoralabs/protocol-rewards/src/=node_modules/@zoralabs/protocol-rewards/src/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","_imagine/=_imagine/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","mint/=_imagine/mint/","solady/=node_modules/solady/src/","solemate/=/node_modules/solemate/src/","solmate/=node_modules/solmate/"],"optimizer":{"enabled":false,"runs":0},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mock/MockPermissionControl.sol":"MockPermissionControl"},"evmVersion":"london","libraries":{}},"sources":{"src/interfaces/ICreatorPermissionControl.sol":{"keccak256":"0xbc1e789b56c9768a4a3cda2ddbeeb6cc6a3c06d18486ffbcb0164cf00349597a","urls":["bzz-raw://1502b08e04380b2646a9a5f30ada5f6305243620571c9583ebe90e6be9c05fd4","dweb:/ipfs/QmdmWcGhruHzWwKBMdfPAMzr82thzTAqtxCFKAP5USbHVC"],"license":"MIT"},"src/permissions/CreatorPermissionControl.sol":{"keccak256":"0x60655e2f4296582ea5f11d766abf52db10beee418fc75a836a9d6e703db0552b","urls":["bzz-raw://134ded96a6edd4d43c4004fe2cc59e112425d71ffbb3cad19790413a57323f69","dweb:/ipfs/QmcM5dp889igWDLGzAueh6tMnq34ng8Xw39Kk88c7GS1aT"],"license":"MIT"},"src/permissions/CreatorPermissionStorageV1.sol":{"keccak256":"0xc621b1ddded80bc7efe6938e6be0d0f358a0e41dca86a9acfd37e841e1bfabd3","urls":["bzz-raw://4748fa31453431d357b2751a298450b0acb0436962f004de593b0c8d491e0559","dweb:/ipfs/QmR4YSBMrjaR5KVRvkAEY1rkRSRERhLHPViqPrA5zrEJmE"],"license":"MIT"},"test/mock/MockPermissionControl.sol":{"keccak256":"0x7e0d7a833305923fa739b81d60fcd6be200683a54f7ad560b58a8b6d08d71c5a","urls":["bzz-raw://f9a9d50b9eb1aacdfaa46b44f95e2a670fc254b9802615fc35f49b74c37cff8b","dweb:/ipfs/QmdRXbXN4txpdXKcEmywpkWQhdEZjq3Rz6LHmms4nEAHGY"],"license":"MIT"}},"version":1},"id":200}