[{"type":"constructor","inputs":[{"name":"admin","type":"address","internalType":"address"},{"name":"approver","type":"address","internalType":"address"},{"name":"graphRegistry_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"APPROVER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_PROTOCOL","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SPEC_DOMAIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"bindingsMatch","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deprecateModule","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"},{"name":"reasonDigest","type":"bytes32","internalType":"bytes32"},{"name":"replacementSpecDigest","type":"bytes32","internalType":"bytes32"},{"name":"validUntil","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"graphRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IKeelGraphRegistry"}],"stateMutability":"view"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleAuthorized","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"review","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct KeelModuleReviewRegistry.Review","components":[{"name":"status","type":"uint8","internalType":"enum KeelModuleReviewRegistry.Status"},{"name":"reviewDigest","type":"bytes32","internalType":"bytes32"},{"name":"reasonDigest","type":"bytes32","internalType":"bytes32"},{"name":"replacementSpecDigest","type":"bytes32","internalType":"bytes32"},{"name":"validUntil","type":"uint64","internalType":"uint64"},{"name":"updatedAt","type":"uint64","internalType":"uint64"},{"name":"reviewer","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"revokeModule","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"},{"name":"reasonDigest","type":"bytes32","internalType":"bytes32"},{"name":"replacementSpecDigest","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sanctionModule","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"},{"name":"reviewDigest","type":"bytes32","internalType":"bytes32"},{"name":"validUntil","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"specDigest","inputs":[{"name":"spec","type":"tuple","internalType":"struct KeelModuleReviewRegistry.ModuleSpec","components":[{"name":"moduleId","type":"bytes32","internalType":"bytes32"},{"name":"moduleVersion","type":"uint64","internalType":"uint64"},{"name":"format","type":"uint8","internalType":"enum KeelModuleReviewRegistry.ModuleFormat"},{"name":"graphId","type":"bytes32","internalType":"bytes32"},{"name":"graphVersion","type":"uint64","internalType":"uint64"},{"name":"manifestDigest","type":"bytes32","internalType":"bytes32"},{"name":"resourceGraphDigest","type":"bytes32","internalType":"bytes32"},{"name":"metadataDigest","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"submission","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct KeelModuleReviewRegistry.Submission","components":[{"name":"spec","type":"tuple","internalType":"struct KeelModuleReviewRegistry.ModuleSpec","components":[{"name":"moduleId","type":"bytes32","internalType":"bytes32"},{"name":"moduleVersion","type":"uint64","internalType":"uint64"},{"name":"format","type":"uint8","internalType":"enum KeelModuleReviewRegistry.ModuleFormat"},{"name":"graphId","type":"bytes32","internalType":"bytes32"},{"name":"graphVersion","type":"uint64","internalType":"uint64"},{"name":"manifestDigest","type":"bytes32","internalType":"bytes32"},{"name":"resourceGraphDigest","type":"bytes32","internalType":"bytes32"},{"name":"metadataDigest","type":"bytes32","internalType":"bytes32"}]},{"name":"submitter","type":"address","internalType":"address"},{"name":"submittedAt","type":"uint64","internalType":"uint64"},{"name":"exists","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"submitModule","inputs":[{"name":"spec","type":"tuple","internalType":"struct KeelModuleReviewRegistry.ModuleSpec","components":[{"name":"moduleId","type":"bytes32","internalType":"bytes32"},{"name":"moduleVersion","type":"uint64","internalType":"uint64"},{"name":"format","type":"uint8","internalType":"enum KeelModuleReviewRegistry.ModuleFormat"},{"name":"graphId","type":"bytes32","internalType":"bytes32"},{"name":"graphVersion","type":"uint64","internalType":"uint64"},{"name":"manifestDigest","type":"bytes32","internalType":"bytes32"},{"name":"resourceGraphDigest","type":"bytes32","internalType":"bytes32"},{"name":"metadataDigest","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ModuleDeprecated","inputs":[{"name":"specDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"reasonDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"replacementSpecDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"validUntil","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"reviewer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ModuleRevoked","inputs":[{"name":"specDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"reasonDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"replacementSpecDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"reviewer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ModuleSanctioned","inputs":[{"name":"specDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"reviewDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"validUntil","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"reviewer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ModuleSubmitted","inputs":[{"name":"specDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"moduleId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"moduleVersion","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"format","type":"uint8","indexed":false,"internalType":"enum KeelModuleReviewRegistry.ModuleFormat"},{"name":"graphId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"graphVersion","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"manifestDigest","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidContract","inputs":[]},{"type":"error","name":"InvalidExpiry","inputs":[]},{"type":"error","name":"InvalidGraphKind","inputs":[]},{"type":"error","name":"InvalidSpec","inputs":[]},{"type":"error","name":"InvalidStatus","inputs":[]},{"type":"error","name":"ManifestBindingMismatch","inputs":[]},{"type":"error","name":"ResourceBindingMismatch","inputs":[]},{"type":"error","name":"SpecAlreadySubmitted","inputs":[]},{"type":"error","name":"SpecMissing","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}]
