[
 {
  "type": "constructor",
  "inputs": [
   {
    "name": "owner_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "poolManager_",
    "type": "address",
    "internalType": "contract IPoolManager"
   },
   {
    "name": "moduleCatalog_",
    "type": "address",
    "internalType": "contract HookrModuleCatalogV1"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "ALL_HOOK_FLAGS",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint160",
    "internalType": "uint160"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "CORRECTION_EXECUTOR_INTEGRATION_KIND",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "INTEGRATION_ID_DOMAIN",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "INTEGRATION_WIRING_GAS",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint32",
    "internalType": "uint32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "KERNEL_ID_DOMAIN",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "KERNEL_WIRING_GAS",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint32",
    "internalType": "uint32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_CONFIG_BYTES",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint32",
    "internalType": "uint32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_CORRECTION_VOLUME_BPS",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint16",
    "internalType": "uint16"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "QUOTER_INTEGRATION_KIND",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "ROOT_PROFILE_MANIFEST_DOMAIN",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "ROOT_PROFILE_MODULES_DOMAIN",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "ROUTER_INTEGRATION_KIND",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "STABLE_ROOT_STACK_ID_DOMAIN",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "STACK_ID_DOMAIN",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "STACK_MODULES_DOMAIN",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "SUPPORTED_KERNEL_INSTANCE_LAYOUT_ID",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "acceptOwnership",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "activeIntegration",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "snapshot",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.IntegrationSnapshot",
    "components": [
     {
      "name": "integrationId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "integrationKind",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "integrationFamilyId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "implementationCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "activeKernel",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "snapshot",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.KernelSnapshot",
    "components": [
     {
      "name": "kernelId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "kernelFamilyId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "implementationCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "hookFlags",
      "type": "uint160",
      "internalType": "uint160"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "computeIntegrationId",
  "inputs": [
   {
    "name": "registration",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.IntegrationRegistration",
    "components": [
     {
      "name": "integrationKind",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "integrationFamilyId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     }
    ]
   },
   {
    "name": "implementationCodeHash",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "computeKernelId",
  "inputs": [
   {
    "name": "registration",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.KernelRegistration",
    "components": [
     {
      "name": "kernelFamilyId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "hookFlags",
      "type": "uint160",
      "internalType": "uint160"
     }
    ]
   },
   {
    "name": "implementationCodeHash",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "contractName",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "string",
    "internalType": "string"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "contractVersion",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "string",
    "internalType": "string"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "coordinator",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "createStack",
  "inputs": [
   {
    "name": "key",
    "type": "tuple",
    "internalType": "struct PoolKey",
    "components": [
     {
      "name": "currency0",
      "type": "address",
      "internalType": "Currency"
     },
     {
      "name": "currency1",
      "type": "address",
      "internalType": "Currency"
     },
     {
      "name": "fee",
      "type": "uint24",
      "internalType": "uint24"
     },
     {
      "name": "tickSpacing",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "hooks",
      "type": "address",
      "internalType": "contract IHooks"
     }
    ]
   },
   {
    "name": "subject",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "quote",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "selections",
    "type": "tuple[]",
    "internalType": "struct HookrModuleTypesV1.ModuleSelection[]",
    "components": [
     {
      "name": "moduleId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "config",
      "type": "bytes",
      "internalType": "bytes"
     }
    ]
   },
   {
    "name": "limits",
    "type": "tuple",
    "internalType": "struct HookrModuleTypesV1.StackLimits",
    "components": [
     {
      "name": "baseLpFeePips",
      "type": "uint24",
      "internalType": "uint24"
     },
     {
      "name": "maxLpFeePips",
      "type": "uint24",
      "internalType": "uint24"
     },
     {
      "name": "maxSpecifiedQuoteTakeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "maxUnspecifiedQuoteTakeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "maxSubjectTakeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "maxTotalModuleGas",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "trustedRouter",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "trustedQuoter",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "correctionExecutor",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "correctionCreator",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "correctionMaxVolumeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "correctionMinProfitQuote",
      "type": "uint96",
      "internalType": "uint96"
     },
     {
      "name": "correctionFeePolicyId",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   }
  ],
  "outputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "stackHash",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "exceptionalKernelInstancesSupported",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "frozenModuleConfigHash",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "configHash",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "integration",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "snapshot",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.IntegrationSnapshot",
    "components": [
     {
      "name": "integrationId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "integrationKind",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "integrationFamilyId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "implementationCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "integrationCount",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "integrationIdAt",
  "inputs": [
   {
    "name": "index",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "integrationIdFor",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "integrationStatus",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "status",
    "type": "uint8",
    "internalType": "enum HookrStackRegistryV1.IntegrationStatus"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "isRootProfileModuleAllowed",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "kernel",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "snapshot",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.KernelSnapshot",
    "components": [
     {
      "name": "kernelId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "kernelFamilyId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "implementationCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "hookFlags",
      "type": "uint160",
      "internalType": "uint160"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "kernelCount",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "kernelIdAt",
  "inputs": [
   {
    "name": "index",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "kernelInstanceFactory",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.KernelInstanceFactorySnapshot",
    "components": [
     {
      "name": "factory",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "factoryCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "templateKernelId",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "kernelInstanceFactoryFor",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "kernelInstanceFactoryStatus",
  "inputs": [
   {
    "name": "factory",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "status",
    "type": "uint8",
    "internalType": "enum HookrStackRegistryV1.KernelInstanceFactoryStatus"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "kernelStatus",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "status",
    "type": "uint8",
    "internalType": "enum HookrStackRegistryV1.KernelStatus"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "markInitialized",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "module",
  "inputs": [
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "snapshot",
    "type": "tuple",
    "internalType": "struct HookrModuleTypesV1.ModuleSnapshot",
    "components": [
     {
      "name": "moduleId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "moduleKey",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "implementationCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "configSchemaHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "requiredHookFlags",
      "type": "uint160",
      "internalType": "uint160"
     },
     {
      "name": "phaseMask",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "exclusiveGroup",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "executionMode",
      "type": "uint8",
      "internalType": "enum HookrModuleTypesV1.ExecutionMode"
     },
     {
      "name": "maxLpFeeSurchargePips",
      "type": "uint24",
      "internalType": "uint24"
     },
     {
      "name": "maxSpecifiedQuoteTakeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "maxUnspecifiedQuoteTakeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "maxSubjectTakeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "callbackGasLimit",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "requirementsHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "conflictsHash",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "moduleAt",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "index",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "module_",
    "type": "tuple",
    "internalType": "struct HookrModuleTypesV1.ModuleSnapshot",
    "components": [
     {
      "name": "moduleId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "moduleKey",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "implementationCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "configSchemaHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "requiredHookFlags",
      "type": "uint160",
      "internalType": "uint160"
     },
     {
      "name": "phaseMask",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "exclusiveGroup",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "executionMode",
      "type": "uint8",
      "internalType": "enum HookrModuleTypesV1.ExecutionMode"
     },
     {
      "name": "maxLpFeeSurchargePips",
      "type": "uint24",
      "internalType": "uint24"
     },
     {
      "name": "maxSpecifiedQuoteTakeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "maxUnspecifiedQuoteTakeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "maxSubjectTakeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "callbackGasLimit",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "requirementsHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "conflictsHash",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   },
   {
    "name": "config",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "moduleCatalog",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract HookrModuleCatalogV1"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "owner",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "pendingOwner",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "poolIdAt",
  "inputs": [
   {
    "name": "index",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "poolManager",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IPoolManager"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "proposeOwner",
  "inputs": [
   {
    "name": "nextOwner",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "registerIntegration",
  "inputs": [
   {
    "name": "registration",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.IntegrationRegistration",
    "components": [
     {
      "name": "integrationKind",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "integrationFamilyId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     }
    ]
   }
  ],
  "outputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "registerKernel",
  "inputs": [
   {
    "name": "registration",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.KernelRegistration",
    "components": [
     {
      "name": "kernelFamilyId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "version",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "implementation",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "hookFlags",
      "type": "uint160",
      "internalType": "uint160"
     }
    ]
   }
  ],
  "outputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "registerKernelInstance",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "registerKernelInstanceFactory",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "retireIntegration",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "retireKernel",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "retireKernelInstanceFactory",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "rootKernelForProfile",
  "inputs": [
   {
    "name": "profileId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "profileVersion",
    "type": "uint32",
    "internalType": "uint32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "rootProfile",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "profile",
    "type": "tuple",
    "internalType": "struct HookrStackRegistryV1.RootProfileSnapshot",
    "components": [
     {
      "name": "isSealed",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "allowsExceptionalInstances",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "moduleCount",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "profileVersion",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "profileId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "profileManifestHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "moduleSetHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "routerIntegrationId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "quoterIntegrationId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "correctionExecutorIntegrationId",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "rootProfileModuleAt",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "index",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "rootProfileSource",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "sealRootProfile",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "profileId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "profileVersion",
    "type": "uint32",
    "internalType": "uint32"
   },
   {
    "name": "moduleIds",
    "type": "bytes32[]",
    "internalType": "bytes32[]"
   },
   {
    "name": "routerIntegrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "quoterIntegrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "correctionExecutorIntegrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "allowsExceptionalInstances",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "outputs": [
   {
    "name": "profileManifestHash",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setCoordinatorOnce",
  "inputs": [
   {
    "name": "coordinator_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "stableRootProfilesRequired",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "stack",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "core",
    "type": "tuple",
    "internalType": "struct HookrModuleTypesV1.StackCore",
    "components": [
     {
      "name": "configured",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "initialized",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "kernel",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "kernelId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "kernelFamilyId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "kernelCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "subject",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "quote",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "stackHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "trustedRouterIntegrationId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "trustedRouterCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "trustedQuoterIntegrationId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "trustedQuoterCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "correctionExecutorIntegrationId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "correctionExecutorCodeHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "moduleCount",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "limits",
      "type": "tuple",
      "internalType": "struct HookrModuleTypesV1.StackLimits",
      "components": [
       {
        "name": "baseLpFeePips",
        "type": "uint24",
        "internalType": "uint24"
       },
       {
        "name": "maxLpFeePips",
        "type": "uint24",
        "internalType": "uint24"
       },
       {
        "name": "maxSpecifiedQuoteTakeBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "maxUnspecifiedQuoteTakeBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "maxSubjectTakeBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "maxTotalModuleGas",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "trustedRouter",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "trustedQuoter",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "correctionExecutor",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "correctionCreator",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "correctionMaxVolumeBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "correctionMinProfitQuote",
        "type": "uint96",
        "internalType": "uint96"
       },
       {
        "name": "correctionFeePolicyId",
        "type": "bytes32",
        "internalType": "bytes32"
       }
      ]
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "stackCount",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "event",
  "name": "CoordinatorSet",
  "inputs": [
   {
    "name": "coordinator",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "ExceptionalKernelInstanceRegistered",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "rootKernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "implementation",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "profileManifestHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "IntegrationRegistered",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "integrationKind",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "integrationFamilyId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "version",
    "type": "uint32",
    "indexed": false,
    "internalType": "uint32"
   },
   {
    "name": "implementation",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "implementationCodeHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "IntegrationRetired",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "KernelInstanceFactoryRegistered",
  "inputs": [
   {
    "name": "factory",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "templateKernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "factoryCodeHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "KernelInstanceFactoryRetired",
  "inputs": [
   {
    "name": "factory",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "templateKernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "KernelInstanceRegistered",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "templateKernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "factory",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "implementation",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "KernelRegistered",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "kernelFamilyId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "version",
    "type": "uint32",
    "indexed": true,
    "internalType": "uint32"
   },
   {
    "name": "implementation",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "implementationCodeHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "hookFlags",
    "type": "uint160",
    "indexed": false,
    "internalType": "uint160"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "KernelRetired",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "OwnerProposed",
  "inputs": [
   {
    "name": "pendingOwner",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "OwnerSet",
  "inputs": [
   {
    "name": "owner",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "RootProfileSealed",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "profileId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "profileVersion",
    "type": "uint32",
    "indexed": true,
    "internalType": "uint32"
   },
   {
    "name": "profileManifestHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "moduleSetHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "routerIntegrationId",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "quoterIntegrationId",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "correctionExecutorIntegrationId",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "allowsExceptionalInstances",
    "type": "bool",
    "indexed": false,
    "internalType": "bool"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "StackConfigured",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "stackHash",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "kernelId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "subject",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "quote",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "moduleCount",
    "type": "uint8",
    "indexed": false,
    "internalType": "uint8"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "StackInitialized",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "stackHash",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "kernel",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "error",
  "name": "ConfigTooLarge",
  "inputs": [
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "CoordinatorAlreadySet",
  "inputs": []
 },
 {
  "type": "error",
  "name": "CoordinatorNotSet",
  "inputs": []
 },
 {
  "type": "error",
  "name": "DuplicateModule",
  "inputs": [
   {
    "name": "moduleKey",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "DuplicateModuleImplementation",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "ExceptionalKernelInstancesDisabled",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "ExclusiveGroupConflict",
  "inputs": [
   {
    "name": "exclusiveGroup",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationAlreadyExists",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationAlreadyRetired",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationCodeChanged",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "expected",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "actual",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationFamilyMismatch",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "expected",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "actual",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationImplementationAlreadyRegistered",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationKindMismatch",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "expected",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "actual",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationMetadataMismatch",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationNotActive",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationOutsideRootProfile",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationPoolManagerMismatch",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntegrationStackRegistryMismatch",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "InvalidCurrencyPair",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidHookFlagDependencies",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidHookFlags",
  "inputs": [
   {
    "name": "expected",
    "type": "uint160",
    "internalType": "uint160"
   },
   {
    "name": "actual",
    "type": "uint160",
    "internalType": "uint160"
   }
  ]
 },
 {
  "type": "error",
  "name": "InvalidIntegration",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidIntegrationWiring",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidKernel",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidKernelInstance",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "InvalidKernelInstanceFactory",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidModuleConfig",
  "inputs": [
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "InvalidModuleStackBinding",
  "inputs": [
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "InvalidPoolKey",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidRootProfile",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidStackLimits",
  "inputs": []
 },
 {
  "type": "error",
  "name": "KernelAlreadyExists",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "KernelAlreadyRetired",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "KernelCodeChanged",
  "inputs": [
   {
    "name": "expected",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "actual",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "KernelCoordinatorMismatch",
  "inputs": []
 },
 {
  "type": "error",
  "name": "KernelInstanceFactoryAlreadyExists",
  "inputs": [
   {
    "name": "factory",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "KernelInstanceFactoryAlreadyRetired",
  "inputs": [
   {
    "name": "factory",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "KernelInstanceFactoryCodeChanged",
  "inputs": [
   {
    "name": "factory",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "expected",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "actual",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "KernelInstanceFactoryNotActive",
  "inputs": [
   {
    "name": "factory",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "KernelNotActive",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "KernelPoolManagerMismatch",
  "inputs": []
 },
 {
  "type": "error",
  "name": "KernelStackRegistryMismatch",
  "inputs": []
 },
 {
  "type": "error",
  "name": "MissingDependency",
  "inputs": [
   {
    "name": "moduleKey",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "requiredModuleKey",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "ModuleCapsExceedStackLimits",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ModuleCodeChanged",
  "inputs": [
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "expected",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "actual",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "ModuleConfigCapsExceedSnapshot",
  "inputs": [
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "ModuleConflict",
  "inputs": [
   {
    "name": "moduleKey",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "conflictingModuleKey",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "ModuleGasExceedsStackLimit",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ModuleMetadataMismatch",
  "inputs": [
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "ModuleOutsideRootProfile",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "NonCanonicalProfileModuleOrder",
  "inputs": [
   {
    "name": "previousModuleId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "NotCoordinator",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotOwner",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotPendingOwner",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotStackKernel",
  "inputs": [
   {
    "name": "expected",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "actual",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "RootImplementationAlreadyRegistered",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "RootProfileAlreadySealed",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "RootProfileIdentityAlreadyUsed",
  "inputs": [
   {
    "name": "profileId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "profileVersion",
    "type": "uint32",
    "internalType": "uint32"
   },
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "RootProfileNotSealed",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "StableRootProfilesRequired",
  "inputs": []
 },
 {
  "type": "error",
  "name": "StackAlreadyConfigured",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ]
 },
 {
  "type": "error",
  "name": "StackAlreadyInitialized",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ]
 },
 {
  "type": "error",
  "name": "TooManyModules",
  "inputs": []
 },
 {
  "type": "error",
  "name": "UnknownIntegration",
  "inputs": [
   {
    "name": "integrationId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "UnknownKernel",
  "inputs": [
   {
    "name": "kernelId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "UnknownKernelInstanceFactory",
  "inputs": [
   {
    "name": "factory",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "UnknownStack",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ]
 },
 {
  "type": "error",
  "name": "UnregisteredIntegration",
  "inputs": [
   {
    "name": "implementation",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "UnsupportedHookFlags",
  "inputs": [
   {
    "name": "moduleId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "required",
    "type": "uint160",
    "internalType": "uint160"
   },
   {
    "name": "available",
    "type": "uint160",
    "internalType": "uint160"
   }
  ]
 },
 {
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
 }
]