[{"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":"PLUGIN_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":"deprecatePlugin","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"},{"name":"reasonDigest","type":"bytes32","internalType":"bytes32"},{"name":"replacementSpecDigest","type":"bytes32","internalType":"bytes32"},{"name":"walletValidUntil","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":"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 KeelPluginRegistry.Review","components":[{"name":"status","type":"uint8","internalType":"enum KeelPluginRegistry.Status"},{"name":"reviewDigest","type":"bytes32","internalType":"bytes32"},{"name":"reasonDigest","type":"bytes32","internalType":"bytes32"},{"name":"replacementSpecDigest","type":"bytes32","internalType":"bytes32"},{"name":"walletValidUntil","type":"uint64","internalType":"uint64"},{"name":"updatedAt","type":"uint64","internalType":"uint64"},{"name":"reviewer","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"revokePlugin","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":"sanctionPlugin","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"},{"name":"reviewDigest","type":"bytes32","internalType":"bytes32"},{"name":"walletValidUntil","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"specDigest","inputs":[{"name":"spec","type":"tuple","internalType":"struct KeelPluginRegistry.PluginSpec","components":[{"name":"pluginId","type":"bytes32","internalType":"bytes32"},{"name":"pluginVersion","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint8","internalType":"enum KeelPluginRegistry.PluginKind"},{"name":"target","type":"address","internalType":"address"},{"name":"targetRuntimeCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"requiredInterfaceId","type":"bytes4","internalType":"bytes4"},{"name":"graphId","type":"bytes32","internalType":"bytes32"},{"name":"graphVersion","type":"uint64","internalType":"uint64"},{"name":"pluginManifestDigest","type":"bytes32","internalType":"bytes32"},{"name":"abiDigest","type":"bytes32","internalType":"bytes32"},{"name":"walletRuntimeDigest","type":"bytes32","internalType":"bytes32"},{"name":"adapterDigest","type":"bytes32","internalType":"bytes32"},{"name":"permissionsDigest","type":"bytes32","internalType":"bytes32"},{"name":"legacyTarget","type":"address","internalType":"address"},{"name":"legacyRuntimeCodeHash","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 KeelPluginRegistry.Submission","components":[{"name":"spec","type":"tuple","internalType":"struct KeelPluginRegistry.PluginSpec","components":[{"name":"pluginId","type":"bytes32","internalType":"bytes32"},{"name":"pluginVersion","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint8","internalType":"enum KeelPluginRegistry.PluginKind"},{"name":"target","type":"address","internalType":"address"},{"name":"targetRuntimeCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"requiredInterfaceId","type":"bytes4","internalType":"bytes4"},{"name":"graphId","type":"bytes32","internalType":"bytes32"},{"name":"graphVersion","type":"uint64","internalType":"uint64"},{"name":"pluginManifestDigest","type":"bytes32","internalType":"bytes32"},{"name":"abiDigest","type":"bytes32","internalType":"bytes32"},{"name":"walletRuntimeDigest","type":"bytes32","internalType":"bytes32"},{"name":"adapterDigest","type":"bytes32","internalType":"bytes32"},{"name":"permissionsDigest","type":"bytes32","internalType":"bytes32"},{"name":"legacyTarget","type":"address","internalType":"address"},{"name":"legacyRuntimeCodeHash","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":"submitPlugin","inputs":[{"name":"spec","type":"tuple","internalType":"struct KeelPluginRegistry.PluginSpec","components":[{"name":"pluginId","type":"bytes32","internalType":"bytes32"},{"name":"pluginVersion","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint8","internalType":"enum KeelPluginRegistry.PluginKind"},{"name":"target","type":"address","internalType":"address"},{"name":"targetRuntimeCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"requiredInterfaceId","type":"bytes4","internalType":"bytes4"},{"name":"graphId","type":"bytes32","internalType":"bytes32"},{"name":"graphVersion","type":"uint64","internalType":"uint64"},{"name":"pluginManifestDigest","type":"bytes32","internalType":"bytes32"},{"name":"abiDigest","type":"bytes32","internalType":"bytes32"},{"name":"walletRuntimeDigest","type":"bytes32","internalType":"bytes32"},{"name":"adapterDigest","type":"bytes32","internalType":"bytes32"},{"name":"permissionsDigest","type":"bytes32","internalType":"bytes32"},{"name":"legacyTarget","type":"address","internalType":"address"},{"name":"legacyRuntimeCodeHash","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":"function","name":"walletAuthorized","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"PluginDeprecated","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":"walletValidUntil","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"reviewer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PluginRevoked","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":"PluginSanctioned","inputs":[{"name":"specDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"reviewDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"walletValidUntil","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"reviewer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PluginSubmitted","inputs":[{"name":"specDigest","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pluginId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pluginVersion","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"kind","type":"uint8","indexed":false,"internalType":"enum KeelPluginRegistry.PluginKind"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"targetRuntimeCodeHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"graphId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"graphVersion","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"pluginManifestDigest","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":"ContractBindingMismatch","inputs":[]},{"type":"error","name":"InvalidContract","inputs":[]},{"type":"error","name":"InvalidExpiry","inputs":[]},{"type":"error","name":"InvalidSpec","inputs":[]},{"type":"error","name":"InvalidStatus","inputs":[]},{"type":"error","name":"ManifestBindingMismatch","inputs":[]},{"type":"error","name":"SpecAlreadySubmitted","inputs":[]},{"type":"error","name":"SpecMissing","inputs":[]},{"type":"error","name":"UpgradeableTargetForbidden","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}]
