[
	{
		"type": "constructor",
		"inputs": [
			{
				"name": "curve",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "poolManager",
				"type": "address",
				"internalType": "contract IPoolManager"
			},
			{
				"name": "hook",
				"type": "address",
				"internalType": "contract LaunchpadHook"
			},
			{
				"name": "positionManager",
				"type": "address",
				"internalType": "contract IPositionManager"
			},
			{
				"name": "permit2",
				"type": "address",
				"internalType": "contract IAllowanceTransfer"
			}
		],
		"stateMutability": "nonpayable"
	},
	{
		"type": "receive",
		"stateMutability": "payable"
	},
	{
		"type": "function",
		"name": "BURN_ADDRESS",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "CURVE",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "HOOK",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "contract LaunchpadHook"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "LP_FEE",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint24",
				"internalType": "uint24"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "PERMIT2",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "contract IAllowanceTransfer"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "POOL_MANAGER",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "contract IPoolManager"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "POSITION_MANAGER",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "contract IPositionManager"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "SQRT_RATIO_TICK_LOWER",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint160",
				"internalType": "uint160"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "SQRT_RATIO_TICK_UPPER",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint160",
				"internalType": "uint160"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "TICK_LOWER",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "int24",
				"internalType": "int24"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "TICK_SPACING",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "int24",
				"internalType": "int24"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "TICK_UPPER",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "int24",
				"internalType": "int24"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "VERSION",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "string",
				"internalType": "string"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "defaultPoolFeeBps",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "isAllowedBuyWindow",
		"inputs": [
			{
				"name": "launchBuyFeeBps",
				"type": "uint16",
				"internalType": "uint16"
			},
			{
				"name": "launchBuyFeeDecay",
				"type": "uint32",
				"internalType": "uint32"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "isAllowedBuyWindowRate",
		"inputs": [
			{
				"name": "launchBuyFeeBps",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "isAllowedCompoundCommit",
		"inputs": [
			{
				"name": "compoundCommitBps",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "isAllowedPoolFeeBps",
		"inputs": [
			{
				"name": "feeBps",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "isAllowedSellWindow",
		"inputs": [
			{
				"name": "launchSellFeeBps",
				"type": "uint16",
				"internalType": "uint16"
			},
			{
				"name": "launchSellFeeDecay",
				"type": "uint32",
				"internalType": "uint32"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "isAllowedSellWindowRate",
		"inputs": [
			{
				"name": "launchSellFeeBps",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "mandatoryCommitBps",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "migrate",
		"inputs": [
			{
				"name": "asset",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "quoteToken",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "creator",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "payoutRecipient",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "closingEthReserve",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "closingTokenReserve",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "poolFeeBps",
				"type": "uint16",
				"internalType": "uint16"
			},
			{
				"name": "launchSellFeeBps",
				"type": "uint16",
				"internalType": "uint16"
			},
			{
				"name": "launchSellFeeDecay",
				"type": "uint32",
				"internalType": "uint32"
			},
			{
				"name": "launchBuyFeeBps",
				"type": "uint16",
				"internalType": "uint16"
			},
			{
				"name": "launchBuyFeeDecay",
				"type": "uint32",
				"internalType": "uint32"
			},
			{
				"name": "compoundCommitBps",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "payable"
	},
	{
		"type": "function",
		"name": "positionTokenIds",
		"inputs": [
			{
				"name": "poolId",
				"type": "bytes32",
				"internalType": "PoolId"
			}
		],
		"outputs": [
			{
				"name": "tokenId",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "sweepStranded",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "amount",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "nonpayable"
	},
	{
		"type": "event",
		"name": "LeftoversStranded",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "treasury",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "amount",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "LeftoversSwept",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "treasury",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "amount",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "MigratedV4",
		"inputs": [
			{
				"name": "poolId",
				"type": "bytes32",
				"indexed": true,
				"internalType": "PoolId"
			},
			{
				"name": "asset",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "quote",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "liquidity",
				"type": "uint128",
				"indexed": false,
				"internalType": "uint128"
			},
			{
				"name": "quoteSeeded",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "coinSeeded",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "tokenId",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "error",
		"name": "EthTransferFailed",
		"inputs": []
	},
	{
		"type": "error",
		"name": "MigratorMisWired",
		"inputs": []
	},
	{
		"type": "error",
		"name": "NothingToSweep",
		"inputs": []
	},
	{
		"type": "error",
		"name": "PriceOutOfRange",
		"inputs": []
	},
	{
		"type": "error",
		"name": "SafeCastOverflowedUintDowncast",
		"inputs": [
			{
				"name": "bits",
				"type": "uint8",
				"internalType": "uint8"
			},
			{
				"name": "value",
				"type": "uint256",
				"internalType": "uint256"
			}
		]
	},
	{
		"type": "error",
		"name": "SafeERC20FailedOperation",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		]
	},
	{
		"type": "error",
		"name": "SenderNotCurve",
		"inputs": []
	},
	{
		"type": "error",
		"name": "ZeroCreator",
		"inputs": []
	}
]
