[
 {
  "type": "constructor",
  "inputs": [
   {
    "name": "manager",
    "type": "address",
    "internalType": "contract IPoolManager"
   },
   {
    "name": "factory_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "protocolRecipient_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "EMA_WINDOW",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_DEV",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "int24",
    "internalType": "int24"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "activateChanges",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "activateModule",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "afterAddLiquidity",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "params",
    "type": "tuple",
    "internalType": "struct ModifyLiquidityParams",
    "components": [
     {
      "name": "tickLower",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "tickUpper",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "liquidityDelta",
      "type": "int256",
      "internalType": "int256"
     },
     {
      "name": "salt",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   },
   {
    "name": "delta",
    "type": "int256",
    "internalType": "BalanceDelta"
   },
   {
    "name": "feesAccrued",
    "type": "int256",
    "internalType": "BalanceDelta"
   },
   {
    "name": "hookData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   },
   {
    "name": "",
    "type": "int256",
    "internalType": "BalanceDelta"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "afterDonate",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "amount0",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "amount1",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "hookData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "afterInitialize",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "sqrtPriceX96",
    "type": "uint160",
    "internalType": "uint160"
   },
   {
    "name": "tick",
    "type": "int24",
    "internalType": "int24"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "afterRemoveLiquidity",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "params",
    "type": "tuple",
    "internalType": "struct ModifyLiquidityParams",
    "components": [
     {
      "name": "tickLower",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "tickUpper",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "liquidityDelta",
      "type": "int256",
      "internalType": "int256"
     },
     {
      "name": "salt",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   },
   {
    "name": "delta",
    "type": "int256",
    "internalType": "BalanceDelta"
   },
   {
    "name": "feesAccrued",
    "type": "int256",
    "internalType": "BalanceDelta"
   },
   {
    "name": "hookData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   },
   {
    "name": "",
    "type": "int256",
    "internalType": "BalanceDelta"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "afterSwap",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "params",
    "type": "tuple",
    "internalType": "struct SwapParams",
    "components": [
     {
      "name": "zeroForOne",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "amountSpecified",
      "type": "int256",
      "internalType": "int256"
     },
     {
      "name": "sqrtPriceLimitX96",
      "type": "uint160",
      "internalType": "uint160"
     }
    ]
   },
   {
    "name": "delta",
    "type": "int256",
    "internalType": "BalanceDelta"
   },
   {
    "name": "hookData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   },
   {
    "name": "",
    "type": "int128",
    "internalType": "int128"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "approvedRouter",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "attestModule",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "impl",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "ok",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "beforeAddLiquidity",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "params",
    "type": "tuple",
    "internalType": "struct ModifyLiquidityParams",
    "components": [
     {
      "name": "tickLower",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "tickUpper",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "liquidityDelta",
      "type": "int256",
      "internalType": "int256"
     },
     {
      "name": "salt",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   },
   {
    "name": "hookData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "beforeDonate",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "amount0",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "amount1",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "hookData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "beforeInitialize",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "sqrtPriceX96",
    "type": "uint160",
    "internalType": "uint160"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "beforeRemoveLiquidity",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "params",
    "type": "tuple",
    "internalType": "struct ModifyLiquidityParams",
    "components": [
     {
      "name": "tickLower",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "tickUpper",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "liquidityDelta",
      "type": "int256",
      "internalType": "int256"
     },
     {
      "name": "salt",
      "type": "bytes32",
      "internalType": "bytes32"
     }
    ]
   },
   {
    "name": "hookData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "beforeSwap",
  "inputs": [
   {
    "name": "sender",
    "type": "address",
    "internalType": "address"
   },
   {
    "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": "params",
    "type": "tuple",
    "internalType": "struct SwapParams",
    "components": [
     {
      "name": "zeroForOne",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "amountSpecified",
      "type": "int256",
      "internalType": "int256"
     },
     {
      "name": "sqrtPriceLimitX96",
      "type": "uint160",
      "internalType": "uint160"
     }
    ]
   },
   {
    "name": "hookData",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes4",
    "internalType": "bytes4"
   },
   {
    "name": "",
    "type": "int256",
    "internalType": "BeforeSwapDelta"
   },
   {
    "name": "",
    "type": "uint24",
    "internalType": "uint24"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "birthCreatorBps",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint16",
    "internalType": "uint16"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "blockState",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "potCarry",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "vestAccrued",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "vestReleased",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "buys",
    "type": "uint32",
    "internalType": "uint32"
   },
   {
    "name": "budgetBlock",
    "type": "uint64",
    "internalType": "uint64"
   },
   {
    "name": "budgetBought",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "burnBlock",
    "type": "uint64",
    "internalType": "uint64"
   },
   {
    "name": "burnTs",
    "type": "uint40",
    "internalType": "uint40"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "creatorOf",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "devRate",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "isBuy",
    "type": "bool",
    "internalType": "bool"
   },
   {
    "name": "spotTp",
    "type": "int24",
    "internalType": "int24"
   }
  ],
  "outputs": [
   {
    "name": "extra",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "factory",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "feeRates",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "isBuy",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "outputs": [
   {
    "name": "rate",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "base",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "flush",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "getHookPermissions",
  "inputs": [],
  "outputs": [
   {
    "name": "p",
    "type": "tuple",
    "internalType": "struct Hooks.Permissions",
    "components": [
     {
      "name": "beforeInitialize",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "afterInitialize",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "beforeAddLiquidity",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "afterAddLiquidity",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "beforeRemoveLiquidity",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "afterRemoveLiquidity",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "beforeSwap",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "afterSwap",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "beforeDonate",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "afterDonate",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "beforeSwapReturnDelta",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "afterSwapReturnDelta",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "afterAddLiquidityReturnDelta",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "afterRemoveLiquidityReturnDelta",
      "type": "bool",
      "internalType": "bool"
     }
    ]
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "held",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "launch",
  "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": "t",
    "type": "tuple",
    "internalType": "struct LaunchTermsV2",
    "components": [
     {
      "name": "token",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "quote",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "tokenIs0",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "rewards",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "feeless",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "poolFeeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "buyTaxBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "sellTaxBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "protocolBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "sniperStartBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "sniperSeconds",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "surplusTo",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "launchTs",
      "type": "uint40",
      "internalType": "uint40"
     },
     {
      "name": "startTp",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "creatorPayout",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "split",
      "type": "tuple",
      "internalType": "struct Split",
      "components": [
       {
        "name": "creator",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "holders",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "liquidity",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "burn",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "floor",
        "type": "uint16",
        "internalType": "uint16"
       }
      ]
     },
     {
      "name": "blocks",
      "type": "tuple",
      "internalType": "struct Blocks",
      "components": [
       {
        "name": "sizeFeeBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "sizeThresholdBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "devFeeBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "capBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "capSeconds",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "potNth",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "potBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "vestSeconds",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "burnCapBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "burnMinInterval",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "gateSeconds",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "budgetBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "budgetSeconds",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "gateRoot",
        "type": "bytes32",
        "internalType": "bytes32"
       }
      ]
     },
     {
      "name": "legs",
      "type": "tuple[]",
      "internalType": "struct Leg[]",
      "components": [
       {
        "name": "to",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "bps",
        "type": "uint16",
        "internalType": "uint16"
       }
      ]
     }
    ]
   },
   {
    "name": "m",
    "type": "tuple",
    "internalType": "struct Module",
    "components": [
     {
      "name": "impl",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "floorBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "ceilingBps",
      "type": "uint16",
      "internalType": "uint16"
     }
    ]
   },
   {
    "name": "creator",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "liqBatchQuote",
    "type": "uint128",
    "internalType": "uint128"
   }
  ],
  "outputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "moduleOf",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "impl",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "floorBps",
    "type": "uint16",
    "internalType": "uint16"
   },
   {
    "name": "ceilingBps",
    "type": "uint16",
    "internalType": "uint16"
   },
   {
    "name": "creator",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "next",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "nextAt",
    "type": "uint40",
    "internalType": "uint40"
   },
   {
    "name": "liqBatchQuote",
    "type": "uint128",
    "internalType": "uint128"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "nextChanges",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "split",
    "type": "tuple",
    "internalType": "struct Split",
    "components": [
     {
      "name": "creator",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "holders",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "liquidity",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "burn",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "floor",
      "type": "uint16",
      "internalType": "uint16"
     }
    ]
   },
   {
    "name": "splitAt",
    "type": "uint40",
    "internalType": "uint40"
   },
   {
    "name": "legs",
    "type": "tuple[]",
    "internalType": "struct Leg[]",
    "components": [
     {
      "name": "to",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "bps",
      "type": "uint16",
      "internalType": "uint16"
     }
    ]
   },
   {
    "name": "legsAt",
    "type": "uint40",
    "internalType": "uint40"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "nextLegsAt",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint40",
    "internalType": "uint40"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "nextSplitAt",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint40",
    "internalType": "uint40"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "owed",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "owedTotal",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "poolKey",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "",
    "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": "poolState",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "pendingBase",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "pendingSniper",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "carryBurn",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "carryLiquidity",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "carryFloor",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "feesTotal",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "emaTp",
    "type": "int24",
    "internalType": "int24"
   },
   {
    "name": "emaTs",
    "type": "uint40",
    "internalType": "uint40"
   },
   {
    "name": "reserve",
    "type": "uint128",
    "internalType": "uint128"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "prices",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "spotTp",
    "type": "int24",
    "internalType": "int24"
   },
   {
    "name": "emaTp",
    "type": "int24",
    "internalType": "int24"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "proposeLegs",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "next",
    "type": "tuple[]",
    "internalType": "struct Leg[]",
    "components": [
     {
      "name": "to",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "bps",
      "type": "uint16",
      "internalType": "uint16"
     }
    ]
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "proposeModule",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "impl",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "proposeSplit",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "next",
    "type": "tuple",
    "internalType": "struct Split",
    "components": [
     {
      "name": "creator",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "holders",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "liquidity",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "burn",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "floor",
      "type": "uint16",
      "internalType": "uint16"
     }
    ]
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "protocolRecipient",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "provenHash",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "prover",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "quoteOf",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "rewardToken",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "setProver",
  "inputs": [
   {
    "name": "p",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setRouter",
  "inputs": [
   {
    "name": "router",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "ok",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "sizeRate",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   },
   {
    "name": "amt",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "extra",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "stats",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "protocolPaid",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "creatorPaid",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "holdersPaid",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "burnSpent",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "liquiditySpent",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "floorSpent",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "tokensBurned",
    "type": "uint128",
    "internalType": "uint128"
   },
   {
    "name": "potPaid",
    "type": "uint128",
    "internalType": "uint128"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "terms",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "tuple",
    "internalType": "struct LaunchTermsV2",
    "components": [
     {
      "name": "token",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "quote",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "tokenIs0",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "rewards",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "feeless",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "poolFeeBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "buyTaxBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "sellTaxBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "protocolBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "sniperStartBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "sniperSeconds",
      "type": "uint32",
      "internalType": "uint32"
     },
     {
      "name": "surplusTo",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "launchTs",
      "type": "uint40",
      "internalType": "uint40"
     },
     {
      "name": "startTp",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "creatorPayout",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "split",
      "type": "tuple",
      "internalType": "struct Split",
      "components": [
       {
        "name": "creator",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "holders",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "liquidity",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "burn",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "floor",
        "type": "uint16",
        "internalType": "uint16"
       }
      ]
     },
     {
      "name": "blocks",
      "type": "tuple",
      "internalType": "struct Blocks",
      "components": [
       {
        "name": "sizeFeeBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "sizeThresholdBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "devFeeBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "capBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "capSeconds",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "potNth",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "potBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "vestSeconds",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "burnCapBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "burnMinInterval",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "gateSeconds",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "budgetBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "budgetSeconds",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "gateRoot",
        "type": "bytes32",
        "internalType": "bytes32"
       }
      ]
     },
     {
      "name": "legs",
      "type": "tuple[]",
      "internalType": "struct Leg[]",
      "components": [
       {
        "name": "to",
        "type": "address",
        "internalType": "address"
       },
       {
        "name": "bps",
        "type": "uint16",
        "internalType": "uint16"
       }
      ]
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "unlockCallback",
  "inputs": [
   {
    "name": "data",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "vestReleasable",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "internalType": "PoolId"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "withdrawOwed",
  "inputs": [
   {
    "name": "recipient",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "quote",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "event",
  "name": "ChangeCancelled",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "split",
    "type": "bool",
    "indexed": false,
    "internalType": "bool"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "FeeTaken",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "buy",
    "type": "bool",
    "indexed": false,
    "internalType": "bool"
   },
   {
    "name": "fee",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "tax",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "sniperSurplus",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "LegsActivated",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "legs",
    "type": "tuple[]",
    "indexed": false,
    "internalType": "struct Leg[]",
    "components": [
     {
      "name": "to",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "bps",
      "type": "uint16",
      "internalType": "uint16"
     }
    ]
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "LegsProposed",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "legs",
    "type": "tuple[]",
    "indexed": false,
    "internalType": "struct Leg[]",
    "components": [
     {
      "name": "to",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "bps",
      "type": "uint16",
      "internalType": "uint16"
     }
    ]
   },
   {
    "name": "activatesAt",
    "type": "uint40",
    "indexed": false,
    "internalType": "uint40"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "ModuleActivated",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "impl",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "ModuleAttested",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "impl",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "ok",
    "type": "bool",
    "indexed": false,
    "internalType": "bool"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "ModuleCancelled",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "impl",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "ModuleProposed",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "impl",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "activatesAt",
    "type": "uint40",
    "indexed": false,
    "internalType": "uint40"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "OwedPaid",
  "inputs": [
   {
    "name": "recipient",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "quote",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "PayoutOwed",
  "inputs": [
   {
    "name": "recipient",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "quote",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "PotWon",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "winner",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "buyIndex",
    "type": "uint32",
    "indexed": false,
    "internalType": "uint32"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "ProverSet",
  "inputs": [
   {
    "name": "prover",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "RouterSet",
  "inputs": [
   {
    "name": "router",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "approved",
    "type": "bool",
    "indexed": false,
    "internalType": "bool"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "SplitActivated",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "split",
    "type": "tuple",
    "indexed": false,
    "internalType": "struct Split",
    "components": [
     {
      "name": "creator",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "holders",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "liquidity",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "burn",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "floor",
      "type": "uint16",
      "internalType": "uint16"
     }
    ]
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "SplitProposed",
  "inputs": [
   {
    "name": "id",
    "type": "bytes32",
    "indexed": true,
    "internalType": "PoolId"
   },
   {
    "name": "split",
    "type": "tuple",
    "indexed": false,
    "internalType": "struct Split",
    "components": [
     {
      "name": "creator",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "holders",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "liquidity",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "burn",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "floor",
      "type": "uint16",
      "internalType": "uint16"
     }
    ]
   },
   {
    "name": "activatesAt",
    "type": "uint40",
    "indexed": false,
    "internalType": "uint40"
   }
  ],
  "anonymous": false
 },
 {
  "type": "error",
  "name": "BadChange",
  "inputs": []
 },
 {
  "type": "error",
  "name": "BadLaunch",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ExactOutputUnsupported",
  "inputs": []
 },
 {
  "type": "error",
  "name": "Gated",
  "inputs": []
 },
 {
  "type": "error",
  "name": "HookNotImplemented",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InSwap",
  "inputs": []
 },
 {
  "type": "error",
  "name": "Locked",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NoModule",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotCreator",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotFactory",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotPoolManager",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotProver",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotYet",
  "inputs": []
 },
 {
  "type": "error",
  "name": "OverBudget",
  "inputs": []
 },
 {
  "type": "error",
  "name": "PartialFill",
  "inputs": []
 },
 {
  "type": "error",
  "name": "PayoutStarved",
  "inputs": []
 },
 {
  "type": "error",
  "name": "UnknownPool",
  "inputs": []
 },
 {
  "type": "error",
  "name": "WhaleCap",
  "inputs": []
 }
]
