[
 {
  "type": "constructor",
  "inputs": [
   {
    "name": "poolManager_",
    "type": "address",
    "internalType": "contract IPoolManager"
   },
   {
    "name": "stackRegistry_",
    "type": "address",
    "internalType": "contract IHookrStackRegistryV1"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "DYNAMIC_FEE_FLAG",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint24",
    "internalType": "uint24"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "KERNEL_FAMILY_ID",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_MODULE_DATA_LENGTH",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_SQRT_PRICE_LIMIT",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint160",
    "internalType": "uint160"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MIN_SQRT_PRICE_LIMIT",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint160",
    "internalType": "uint160"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "QUOTER_INTEGRATION_KIND",
  "inputs": [],
  "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": "integrationFamilyId",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "integrationKind",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "integrationVersion",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint32",
    "internalType": "uint32"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "poolManager",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IPoolManager"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "quote",
  "inputs": [
   {
    "name": "params",
    "type": "tuple",
    "internalType": "struct HookrKernelQuoterV1.QuoteParams",
    "components": [
     {
      "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": "payer",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "recipient",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "zeroForOne",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "amountSpecified",
      "type": "int128",
      "internalType": "int128"
     },
     {
      "name": "amountBound",
      "type": "uint128",
      "internalType": "uint128"
     },
     {
      "name": "sqrtPriceLimitX96",
      "type": "uint160",
      "internalType": "uint160"
     }
    ]
   },
   {
    "name": "moduleData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "amountIn",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "amountOut",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "stackRegistry",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IHookrStackRegistryV1"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "unlockCallback",
  "inputs": [
   {
    "name": "rawData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "error",
  "name": "CallbackNotActive",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidAmount",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidAmountBound",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidIdentity",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidQuoteResult",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidSqrtPriceLimit",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidStack",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidWiring",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ModuleDataTooLarge",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotPoolManager",
  "inputs": []
 },
 {
  "type": "error",
  "name": "QuoteResult",
  "inputs": [
   {
    "name": "quoteId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "amountIn",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "amountOut",
    "type": "uint128",
    "internalType": "uint128"
   }
  ]
 },
 {
  "type": "error",
  "name": "Reentrancy",
  "inputs": []
 },
 {
  "type": "error",
  "name": "SimulationDidNotRevert",
  "inputs": []
 },
 {
  "type": "error",
  "name": "StackNotInitialized",
  "inputs": []
 },
 {
  "type": "error",
  "name": "TooLittleReceived",
  "inputs": [
   {
    "name": "minimum",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "received",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "TooMuchRequested",
  "inputs": [
   {
    "name": "maximum",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "requested",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "UnexpectedDelta",
  "inputs": []
 },
 {
  "type": "error",
  "name": "UntrustedStackQuoter",
  "inputs": [
   {
    "name": "expected",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "actual",
    "type": "address",
    "internalType": "address"
   }
  ]
 }
]