[
 {
  "type": "constructor",
  "inputs": [
   {
    "name": "owner_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "poolManager_",
    "type": "address",
    "internalType": "contract IPoolManager"
   },
   {
    "name": "stackRegistry_",
    "type": "address",
    "internalType": "contract IHookrStackRegistryV1CoordinatorV3"
   },
   {
    "name": "treasury_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "receive",
  "stateMutability": "payable"
 },
 {
  "type": "function",
  "name": "BAND_TICKS",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "int24",
    "internalType": "int24"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "DYNAMIC_FEE_FLAG",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint24",
    "internalType": "uint24"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_INITIAL_BUY_SUBJECT",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_MODULE_DATA_LENGTH",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_PROTOCOL_SHARE_BPS",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint24",
    "internalType": "uint24"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "SUPPLY",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "TOKEN_SALT_DOMAIN",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "acceptOwnership",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "clearCreatorTier",
  "inputs": [
   {
    "name": "creator",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "collectLpFees",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "amount0",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "amount1",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "computeNewTokenSalt",
  "inputs": [
   {
    "name": "args",
    "type": "tuple",
    "internalType": "struct HookrMarketCoordinatorV5.NewTokenArgs",
    "components": [
     {
      "name": "name",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "symbol",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "tagline",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "logoURI",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "expectedCreator",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "totalSupply",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "deploymentSalt",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "market",
      "type": "tuple",
      "internalType": "struct HookrMarketCoordinatorV5.MarketParams",
      "components": [
       {
        "name": "quote",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "subjectAmount",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "quoteAmount",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "lpFeeRecipient",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "tickSpacing",
        "type": "int24",
        "internalType": "int24"
       },
       {
        "name": "sqrtPriceX96",
        "type": "uint160",
        "internalType": "uint160"
       },
       {
        "name": "kernelId",
        "type": "bytes32",
        "internalType": "bytes32"
       },
       {
        "name": "modules",
        "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"
         }
        ]
       }
      ]
     },
     {
      "name": "initialBuy",
      "type": "tuple",
      "internalType": "struct HookrMarketCoordinatorV5.InitialBuyParams",
      "components": [
       {
        "name": "quoteAmountIn",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "subjectAmountOutMinimum",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "deadline",
        "type": "uint256",
        "internalType": "uint256"
       },
       {
        "name": "moduleData",
        "type": "bytes",
        "internalType": "bytes"
       }
      ]
     }
    ]
   },
   {
    "name": "intentId",
    "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": "creatorTier",
  "inputs": [
   {
    "name": "creator",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "set",
    "type": "bool",
    "internalType": "bool"
   },
   {
    "name": "shareBps",
    "type": "uint24",
    "internalType": "uint24"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "defaultProtocolShareBps",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint24",
    "internalType": "uint24"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "getMarket",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "market",
    "type": "tuple",
    "internalType": "struct HookrMarketCoordinatorV5.Market",
    "components": [
     {
      "name": "live",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "origin",
      "type": "uint8",
      "internalType": "enum HookrMarketCoordinatorV5.MarketOrigin"
     },
     {
      "name": "subject",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "quote",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "creator",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "kernel",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "lpFeeRecipient",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "kernelId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "stackHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "poolId",
      "type": "bytes32",
      "internalType": "PoolId"
     },
     {
      "name": "sqrtPriceX96",
      "type": "uint160",
      "internalType": "uint160"
     },
     {
      "name": "tickSpacing",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "subjectSupplied",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "quoteSupplied",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "subjectUsed",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "quoteUsed",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "cumulativeFee0",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "cumulativeFee1",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "openedAtBlock",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "launchIntentId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "initialBuyRouter",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "creatorAllocation",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "initialBuyQuoteIn",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "initialBuySubjectOut",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "initialBuySubjectOutMinimum",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "initialBuyModuleDataHash",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "guardLpFeeAccounting",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "module",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "cumulativeEarned",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "launchedByIntent",
  "inputs": [
   {
    "name": "creator",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "intentId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "subject",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "marketCount",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "marketOpeningPaused",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "maxInitialBuySubject",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "openExistingTokenMarket",
  "inputs": [
   {
    "name": "args",
    "type": "tuple",
    "internalType": "struct HookrMarketCoordinatorV5.ExistingTokenArgs",
    "components": [
     {
      "name": "subject",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "market",
      "type": "tuple",
      "internalType": "struct HookrMarketCoordinatorV5.MarketParams",
      "components": [
       {
        "name": "quote",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "subjectAmount",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "quoteAmount",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "lpFeeRecipient",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "tickSpacing",
        "type": "int24",
        "internalType": "int24"
       },
       {
        "name": "sqrtPriceX96",
        "type": "uint160",
        "internalType": "uint160"
       },
       {
        "name": "kernelId",
        "type": "bytes32",
        "internalType": "bytes32"
       },
       {
        "name": "modules",
        "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"
   }
  ],
  "stateMutability": "payable"
 },
 {
  "type": "function",
  "name": "openNewTokenMarket",
  "inputs": [
   {
    "name": "args",
    "type": "tuple",
    "internalType": "struct HookrMarketCoordinatorV5.NewTokenArgs",
    "components": [
     {
      "name": "name",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "symbol",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "tagline",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "logoURI",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "expectedCreator",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "totalSupply",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "deploymentSalt",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "market",
      "type": "tuple",
      "internalType": "struct HookrMarketCoordinatorV5.MarketParams",
      "components": [
       {
        "name": "quote",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "subjectAmount",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "quoteAmount",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "lpFeeRecipient",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "tickSpacing",
        "type": "int24",
        "internalType": "int24"
       },
       {
        "name": "sqrtPriceX96",
        "type": "uint160",
        "internalType": "uint160"
       },
       {
        "name": "kernelId",
        "type": "bytes32",
        "internalType": "bytes32"
       },
       {
        "name": "modules",
        "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"
         }
        ]
       }
      ]
     },
     {
      "name": "initialBuy",
      "type": "tuple",
      "internalType": "struct HookrMarketCoordinatorV5.InitialBuyParams",
      "components": [
       {
        "name": "quoteAmountIn",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "subjectAmountOutMinimum",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "deadline",
        "type": "uint256",
        "internalType": "uint256"
       },
       {
        "name": "moduleData",
        "type": "bytes",
        "internalType": "bytes"
       }
      ]
     }
    ]
   },
   {
    "name": "intentId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "expectedToken",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "subject",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "stateMutability": "payable"
 },
 {
  "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": "poolKeyFor",
  "inputs": [
   {
    "name": "subject",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "params",
    "type": "tuple",
    "internalType": "struct HookrMarketCoordinatorV5.MarketParams",
    "components": [
     {
      "name": "quote",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "subjectAmount",
      "type": "uint128",
      "internalType": "uint128"
     },
     {
      "name": "quoteAmount",
      "type": "uint128",
      "internalType": "uint128"
     },
     {
      "name": "lpFeeRecipient",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "tickSpacing",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "sqrtPriceX96",
      "type": "uint160",
      "internalType": "uint160"
     },
     {
      "name": "kernelId",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "modules",
      "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": "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"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "poolManager",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IPoolManager"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "previewNewTokenAddress",
  "inputs": [
   {
    "name": "args",
    "type": "tuple",
    "internalType": "struct HookrMarketCoordinatorV5.NewTokenArgs",
    "components": [
     {
      "name": "name",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "symbol",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "tagline",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "logoURI",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "expectedCreator",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "totalSupply",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "deploymentSalt",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "market",
      "type": "tuple",
      "internalType": "struct HookrMarketCoordinatorV5.MarketParams",
      "components": [
       {
        "name": "quote",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "subjectAmount",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "quoteAmount",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "lpFeeRecipient",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "tickSpacing",
        "type": "int24",
        "internalType": "int24"
       },
       {
        "name": "sqrtPriceX96",
        "type": "uint160",
        "internalType": "uint160"
       },
       {
        "name": "kernelId",
        "type": "bytes32",
        "internalType": "bytes32"
       },
       {
        "name": "modules",
        "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"
         }
        ]
       }
      ]
     },
     {
      "name": "initialBuy",
      "type": "tuple",
      "internalType": "struct HookrMarketCoordinatorV5.InitialBuyParams",
      "components": [
       {
        "name": "quoteAmountIn",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "subjectAmountOutMinimum",
        "type": "uint128",
        "internalType": "uint128"
       },
       {
        "name": "deadline",
        "type": "uint256",
        "internalType": "uint256"
       },
       {
        "name": "moduleData",
        "type": "bytes",
        "internalType": "bytes"
       }
      ]
     }
    ]
   },
   {
    "name": "intentId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "predicted",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "proposeOwner",
  "inputs": [
   {
    "name": "nextOwner",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "protocolShareBps",
  "inputs": [
   {
    "name": "creator",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "shareBps",
    "type": "uint24",
    "internalType": "uint24"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "setCreatorTier",
  "inputs": [
   {
    "name": "creator",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "shareBps",
    "type": "uint24",
    "internalType": "uint24"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setDefaultProtocolShareBps",
  "inputs": [
   {
    "name": "shareBps",
    "type": "uint24",
    "internalType": "uint24"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setMarketOpeningPaused",
  "inputs": [
   {
    "name": "paused_",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "stackRegistry",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IHookrStackRegistryV1CoordinatorV3"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "tokenByCreate2Salt",
  "inputs": [
   {
    "name": "create2Salt",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "subject",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "treasury",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "treasuryBeneficiary",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "unlockCallback",
  "inputs": [
   {
    "name": "data",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "event",
  "name": "CreatorBuyExecuted",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "subject",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "creator",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "intentId",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "stackHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "router",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "requestedQuoteIn",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "actualQuoteIn",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "subjectOut",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "subjectOutMinimum",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "moduleDataHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "creatorAllocation",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "subjectSeedResidue",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "quoteSeedResidue",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "CreatorTierCleared",
  "inputs": [
   {
    "name": "creator",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "CreatorTierSet",
  "inputs": [
   {
    "name": "creator",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "shareBps",
    "type": "uint24",
    "indexed": false,
    "internalType": "uint24"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "DefaultProtocolShareBpsSet",
  "inputs": [
   {
    "name": "shareBps",
    "type": "uint24",
    "indexed": false,
    "internalType": "uint24"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "LpFeesCollected",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "recipient",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "amount0",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "amount1",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "MarketCreated",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "subject",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "creator",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "quote",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "origin",
    "type": "uint8",
    "indexed": false,
    "internalType": "enum HookrMarketCoordinatorV5.MarketOrigin"
   },
   {
    "name": "kernel",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "lpFeeRecipient",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "kernelId",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "stackHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "sqrtPriceX96",
    "type": "uint160",
    "indexed": false,
    "internalType": "uint160"
   },
   {
    "name": "tickSpacing",
    "type": "int24",
    "indexed": false,
    "internalType": "int24"
   },
   {
    "name": "subjectUsed",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "quoteUsed",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "MarketOpeningPauseSet",
  "inputs": [
   {
    "name": "paused",
    "type": "bool",
    "indexed": false,
    "internalType": "bool"
   }
  ],
  "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": "ProtocolShareResolved",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "creator",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "shareBps",
    "type": "uint24",
    "indexed": false,
    "internalType": "uint24"
   }
  ],
  "anonymous": false
 },
 {
  "type": "error",
  "name": "BadCallback",
  "inputs": []
 },
 {
  "type": "error",
  "name": "CreatorTierUnchanged",
  "inputs": [
   {
    "name": "creator",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "DefaultProtocolShareBpsUnchanged",
  "inputs": []
 },
 {
  "type": "error",
  "name": "DuplicateMarket",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ]
 },
 {
  "type": "error",
  "name": "ExcessiveSettlement",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InitialBuyAboveCap",
  "inputs": [
   {
    "name": "subjectOut",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "cap",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "InitialBuyInputMismatch",
  "inputs": [
   {
    "name": "expected",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "actual",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "IntentAlreadyUsed",
  "inputs": [
   {
    "name": "creator",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "intentId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "subject",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "InvalidInitialBuy",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidMarketArgs",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidPayment",
  "inputs": [
   {
    "name": "expected",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "received",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "InvalidStack",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidToken",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidWiring",
  "inputs": []
 },
 {
  "type": "error",
  "name": "MarketOpeningPauseUnchanged",
  "inputs": []
 },
 {
  "type": "error",
  "name": "MarketOpeningPaused",
  "inputs": [
   {
    "name": "caller",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "NativeMechanicsModuleRequired",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NativeTransferFailed",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NoFoundingPosition",
  "inputs": [
   {
    "name": "poolId",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ]
 },
 {
  "type": "error",
  "name": "NotCreator",
  "inputs": [
   {
    "name": "expected",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "caller",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "NotOwner",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotPendingOwner",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotPoolManager",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ProtocolShareAboveCeiling",
  "inputs": [
   {
    "name": "shareBps",
    "type": "uint24",
    "internalType": "uint24"
   }
  ]
 },
 {
  "type": "error",
  "name": "ReentrantCall",
  "inputs": []
 },
 {
  "type": "error",
  "name": "TaxedTransfer",
  "inputs": []
 },
 {
  "type": "error",
  "name": "TierNotSet",
  "inputs": [
   {
    "name": "account",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "TokenSaltAlreadyUsed",
  "inputs": [
   {
    "name": "create2Salt",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "subject",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "TransferFailed",
  "inputs": []
 },
 {
  "type": "error",
  "name": "UnexpectedToken",
  "inputs": [
   {
    "name": "expected",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "actual",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ZeroLiquidity",
  "inputs": []
 }
]