[
	{
		"type": "constructor",
		"inputs": [
			{
				"name": "owner_",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "treasury_",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "feeBps_",
				"type": "uint16",
				"internalType": "uint16"
			},
			{
				"name": "migrationFeeBps_",
				"type": "uint16",
				"internalType": "uint16"
			},
			{
				"name": "minBondingTarget_",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "maxBondingTarget_",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "launchFee_",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "maxLaunchFee_",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "maxSellWindowFeeBps_",
				"type": "uint16",
				"internalType": "uint16"
			},
			{
				"name": "maxBuyWindowFeeBps_",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "ABANDON_DELAY",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MAX_DESCRIPTION_LENGTH",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MAX_FEE_BPS",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MAX_LAUNCH_FEE",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MAX_MIGRATION_FEE_BPS",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MAX_NAME_LENGTH",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MAX_SNIPER_EXEMPTIONS",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MAX_SNIPER_TAX_WINDOW",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint32",
				"internalType": "uint32"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MAX_SYMBOL_LENGTH",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MAX_URI_LENGTH",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MIN_CURVE_CREATOR_SHARE_BPS",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MIN_FEE_BPS",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MIN_MIGRATION_FEE_BPS",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "MIN_VIABLE_BONDING_TARGET",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "RESERVE_SUPPLY",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "SELLABLE_SUPPLY",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "SNIPER_TAX_BPS",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "TOKEN_OFFSET",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "TOTAL_SUPPLY",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "VERSION",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "string",
				"internalType": "string"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "abandon",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "acceptCreator",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "acceptOwnership",
		"inputs": [],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "accruedFees",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "accruedQuoteFees",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "amount",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "approveQuote",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "decimals",
				"type": "uint8",
				"internalType": "uint8"
			},
			{
				"name": "minTarget",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "maxTarget",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "buy",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "quoteIn",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "minTokensOut",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"outputs": [
			{
				"name": "tokensOut",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "payable"
	},
	{
		"type": "function",
		"name": "buyWindowEnabled",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "collect",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "creatorAmount",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "treasuryAmount",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "commitSeat",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "clone",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "creatorCurveFeesEnabled",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "curveCreatorShareBps",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "feeBps",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "finishInlineGraduation",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "buyer",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "getCoin",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "tuple",
				"internalType": "struct BondingCurveV4.Coin",
				"components": [
					{
						"name": "creator",
						"type": "address",
						"internalType": "address"
					},
					{
						"name": "devBuyer",
						"type": "address",
						"internalType": "address"
					},
					{
						"name": "migrator",
						"type": "address",
						"internalType": "address"
					},
					{
						"name": "quoteToken",
						"type": "address",
						"internalType": "address"
					},
					{
						"name": "feeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "migrationFeeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "complete",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"name": "graduated",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"name": "active",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"name": "abandoned",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"name": "creatorCurveFees",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"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"
					},
					{
						"name": "sniperTaxWindow",
						"type": "uint32",
						"internalType": "uint32"
					},
					{
						"name": "openedAt",
						"type": "uint64",
						"internalType": "uint64"
					},
					{
						"name": "completedAt",
						"type": "uint64",
						"internalType": "uint64"
					},
					{
						"name": "ethOffset",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "ethReserve",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "tokenReserve",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "bondingTarget",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "accrued",
						"type": "uint256",
						"internalType": "uint256"
					}
				]
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "graduate",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "liquidity",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "launch",
		"inputs": [
			{
				"name": "params",
				"type": "tuple",
				"internalType": "struct LaunchParams",
				"components": [
					{
						"name": "meta",
						"type": "tuple",
						"internalType": "struct TokenMetadata",
						"components": [
							{
								"name": "name",
								"type": "string",
								"internalType": "string"
							},
							{
								"name": "symbol",
								"type": "string",
								"internalType": "string"
							},
							{
								"name": "tokenURI",
								"type": "string",
								"internalType": "string"
							},
							{
								"name": "logo",
								"type": "string",
								"internalType": "string"
							},
							{
								"name": "description",
								"type": "string",
								"internalType": "string"
							}
						]
					},
					{
						"name": "salt",
						"type": "bytes32",
						"internalType": "bytes32"
					},
					{
						"name": "bondingTarget",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "awaitDevBuy",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"name": "devBuyMinTokens",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "quoteToken",
						"type": "address",
						"internalType": "address"
					},
					{
						"name": "devBuyQuoteIn",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "poolFeeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "sellWindowFeeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "sellWindowDecay",
						"type": "uint32",
						"internalType": "uint32"
					},
					{
						"name": "compounding",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"name": "devBuyer",
						"type": "address",
						"internalType": "address"
					},
					{
						"name": "buyWindowFeeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "buyWindowDecay",
						"type": "uint32",
						"internalType": "uint32"
					},
					{
						"name": "compoundCommitBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "sniperExempt",
						"type": "address[]",
						"internalType": "address[]"
					}
				]
			}
		],
		"outputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "payable"
	},
	{
		"type": "function",
		"name": "launchFee",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "launchesPaused",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "maxBondingTarget",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "maxBuyWindowFeeBps",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "maxSellWindowFeeBps",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "migrationFeeBps",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "migrator",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "minBondingTarget",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "operators",
		"inputs": [
			{
				"name": "operator",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "allowed",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "owed",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "recipient",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "amount",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "owner",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "passFactory",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "payOut",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "to",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "amount",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "payoutRecipient",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "recipient",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "pendingCreators",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "proposed",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "pendingFees",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "creatorAmount",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "treasuryAmount",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "pendingOwner",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "predictToken",
		"inputs": [
			{
				"name": "launcher",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "meta",
				"type": "tuple",
				"internalType": "struct TokenMetadata",
				"components": [
					{
						"name": "name",
						"type": "string",
						"internalType": "string"
					},
					{
						"name": "symbol",
						"type": "string",
						"internalType": "string"
					},
					{
						"name": "tokenURI",
						"type": "string",
						"internalType": "string"
					},
					{
						"name": "logo",
						"type": "string",
						"internalType": "string"
					},
					{
						"name": "description",
						"type": "string",
						"internalType": "string"
					}
				]
			},
			{
				"name": "salt",
				"type": "bytes32",
				"internalType": "bytes32"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "proposeCreator",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "proposed",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "quoteAssets",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "approved",
				"type": "bool",
				"internalType": "bool"
			},
			{
				"name": "decimals",
				"type": "uint8",
				"internalType": "uint8"
			},
			{
				"name": "minTarget",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "maxTarget",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "quoteBuyFor",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "buyer",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "ethGross",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"outputs": [
			{
				"name": "",
				"type": "tuple",
				"internalType": "struct BuyQuote",
				"components": [
					{
						"name": "tokensOut",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "ethUsed",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "tradeFee",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "completes",
						"type": "bool",
						"internalType": "bool"
					}
				]
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "quoteSell",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "tokensIn",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"outputs": [
			{
				"name": "ethOut",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "ethGross",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "fee",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "renounceOwnership",
		"inputs": [],
		"outputs": [],
		"stateMutability": "pure"
	},
	{
		"type": "function",
		"name": "revokeQuote",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "sell",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "tokensIn",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "minEthOut",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"outputs": [
			{
				"name": "ethOut",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "sellWindowEnabled",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "setBuyWindowEnabled",
		"inputs": [
			{
				"name": "enabled",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setCreator",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "creator_",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setCreatorCurveFees",
		"inputs": [
			{
				"name": "enabled",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setFeeBps",
		"inputs": [
			{
				"name": "feeBps_",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setLaunchFee",
		"inputs": [
			{
				"name": "launchFee_",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setLaunchesPaused",
		"inputs": [
			{
				"name": "paused",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setMaxBondingTarget",
		"inputs": [
			{
				"name": "maxBondingTarget_",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setMaxBuyWindowFeeBps",
		"inputs": [
			{
				"name": "maxBuyWindowFeeBps_",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setMaxSellWindowFeeBps",
		"inputs": [
			{
				"name": "maxSellWindowFeeBps_",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setMigrationFeeBps",
		"inputs": [
			{
				"name": "migrationFeeBps_",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setMigrator",
		"inputs": [
			{
				"name": "migrator_",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setMinBondingTarget",
		"inputs": [
			{
				"name": "minBondingTarget_",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setOperator",
		"inputs": [
			{
				"name": "operator",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "allowed",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setPassFactory",
		"inputs": [
			{
				"name": "factory_",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setPayoutRecipient",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "recipient",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setQuoteBand",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "minTarget",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "maxTarget",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setSellWindowEnabled",
		"inputs": [
			{
				"name": "enabled",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setShares",
		"inputs": [
			{
				"name": "creatorShareBps_",
				"type": "uint16",
				"internalType": "uint16"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setSniperTaxWindow",
		"inputs": [
			{
				"name": "sniperTaxWindow_",
				"type": "uint32",
				"internalType": "uint32"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "setTreasury",
		"inputs": [
			{
				"name": "treasury_",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "sniperExempt",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			},
			{
				"name": "wallet",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "exempt",
				"type": "bool",
				"internalType": "bool"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "sniperTaxWindow",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "uint32",
				"internalType": "uint32"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "sweepFees",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "amount",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "totalOwed",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "total",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "transferOwnership",
		"inputs": [
			{
				"name": "newOwner",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [],
		"stateMutability": "nonpayable"
	},
	{
		"type": "function",
		"name": "treasury",
		"inputs": [],
		"outputs": [
			{
				"name": "",
				"type": "address",
				"internalType": "address"
			}
		],
		"stateMutability": "view"
	},
	{
		"type": "function",
		"name": "withdrawOwed",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"internalType": "address"
			}
		],
		"outputs": [
			{
				"name": "amount",
				"type": "uint256",
				"internalType": "uint256"
			}
		],
		"stateMutability": "nonpayable"
	},
	{
		"type": "event",
		"name": "Abandoned",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "by",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "raise",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "Bought",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "buyer",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "ethGross",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "fee",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "tokensOut",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "ethReserve",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "tokenReserve",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "BuyWindowEnabledSet",
		"inputs": [
			{
				"name": "enabled",
				"type": "bool",
				"indexed": false,
				"internalType": "bool"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "Completed",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "buyer",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "finalRaise",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "CreatorCurveFeesSet",
		"inputs": [
			{
				"name": "enabled",
				"type": "bool",
				"indexed": false,
				"internalType": "bool"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "CreatorProposed",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "creator",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "proposed",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "CreatorSet",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "previousCreator",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "creator",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "FeeSet",
		"inputs": [
			{
				"name": "feeBps",
				"type": "uint16",
				"indexed": false,
				"internalType": "uint16"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "FeesCollected",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "tradeAmount",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "creatorAmount",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "treasuryAmount",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "FeesSwept",
		"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": "Graduated",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "pool",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "migrator",
				"type": "address",
				"indexed": false,
				"internalType": "address"
			},
			{
				"name": "caller",
				"type": "address",
				"indexed": false,
				"internalType": "address"
			},
			{
				"name": "ethMigrated",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "migrationFee",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "liquidity",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "GraduationFailed",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "buyer",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "reason",
				"type": "bytes",
				"indexed": false,
				"internalType": "bytes"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "LaunchFeeSet",
		"inputs": [
			{
				"name": "launchFee",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "Launched",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "creator",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "terms",
				"type": "tuple",
				"indexed": false,
				"internalType": "struct BondingCurveV4.LaunchTerms",
				"components": [
					{
						"name": "bondingTarget",
						"type": "uint256",
						"internalType": "uint256"
					},
					{
						"name": "feeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "migrationFeeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "migrator",
						"type": "address",
						"internalType": "address"
					},
					{
						"name": "active",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"name": "launchSellFeeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "launchSellFeeDecay",
						"type": "uint32",
						"internalType": "uint32"
					},
					{
						"name": "poolFeeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "compounding",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"name": "launchBuyFeeBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "launchBuyFeeDecay",
						"type": "uint32",
						"internalType": "uint32"
					},
					{
						"name": "compoundCommitBps",
						"type": "uint16",
						"internalType": "uint16"
					},
					{
						"name": "creatorCurveFees",
						"type": "bool",
						"internalType": "bool"
					},
					{
						"name": "quoteToken",
						"type": "address",
						"internalType": "address"
					},
					{
						"name": "sniperTaxWindow",
						"type": "uint32",
						"internalType": "uint32"
					}
				]
			},
			{
				"name": "name",
				"type": "string",
				"indexed": false,
				"internalType": "string"
			},
			{
				"name": "symbol",
				"type": "string",
				"indexed": false,
				"internalType": "string"
			},
			{
				"name": "tokenURI",
				"type": "string",
				"indexed": false,
				"internalType": "string"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "LaunchesPausedSet",
		"inputs": [
			{
				"name": "paused",
				"type": "bool",
				"indexed": false,
				"internalType": "bool"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "MaxBondingTargetSet",
		"inputs": [
			{
				"name": "maxBondingTarget",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "MaxBuyWindowFeeBpsSet",
		"inputs": [
			{
				"name": "maxBuyWindowFeeBps",
				"type": "uint16",
				"indexed": false,
				"internalType": "uint16"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "MaxSellWindowFeeBpsSet",
		"inputs": [
			{
				"name": "maxSellWindowFeeBps",
				"type": "uint16",
				"indexed": false,
				"internalType": "uint16"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "MigrationFeeSet",
		"inputs": [
			{
				"name": "migrationFeeBps",
				"type": "uint16",
				"indexed": false,
				"internalType": "uint16"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "MigratorSet",
		"inputs": [
			{
				"name": "migrator",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "MinBondingTargetSet",
		"inputs": [
			{
				"name": "minBondingTarget",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "OperatorSet",
		"inputs": [
			{
				"name": "operator",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "allowed",
				"type": "bool",
				"indexed": false,
				"internalType": "bool"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "OwedWithdrawn",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "recipient",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "amount",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "OwnershipTransferStarted",
		"inputs": [
			{
				"name": "previousOwner",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "newOwner",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "OwnershipTransferred",
		"inputs": [
			{
				"name": "previousOwner",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "newOwner",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "PassFactorySet",
		"inputs": [
			{
				"name": "factory",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "PayoutOwed",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "recipient",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "amount",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "PayoutRecipientSet",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "creator",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "recipient",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "QuoteApproved",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "decimals",
				"type": "uint8",
				"indexed": false,
				"internalType": "uint8"
			},
			{
				"name": "minTarget",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "maxTarget",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "QuoteRevoked",
		"inputs": [
			{
				"name": "quote",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "SellWindowEnabledSet",
		"inputs": [
			{
				"name": "enabled",
				"type": "bool",
				"indexed": false,
				"internalType": "bool"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "SharesSet",
		"inputs": [
			{
				"name": "creatorShareBps",
				"type": "uint16",
				"indexed": false,
				"internalType": "uint16"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "SniperExemptionsSet",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "wallets",
				"type": "address[]",
				"indexed": false,
				"internalType": "address[]"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "SniperTaxWindowSet",
		"inputs": [
			{
				"name": "sniperTaxWindow",
				"type": "uint32",
				"indexed": false,
				"internalType": "uint32"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "Sold",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "seller",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			},
			{
				"name": "tokensIn",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "fee",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "ethOut",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "ethReserve",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			},
			{
				"name": "tokenReserve",
				"type": "uint256",
				"indexed": false,
				"internalType": "uint256"
			}
		],
		"anonymous": false
	},
	{
		"type": "event",
		"name": "TreasurySet",
		"inputs": [
			{
				"name": "treasury",
				"type": "address",
				"indexed": true,
				"internalType": "address"
			}
		],
		"anonymous": false
	},
	{
		"type": "error",
		"name": "AlreadyGraduated",
		"inputs": []
	},
	{
		"type": "error",
		"name": "AmountTooSmall",
		"inputs": []
	},
	{
		"type": "error",
		"name": "BondingTargetBandInverted",
		"inputs": []
	},
	{
		"type": "error",
		"name": "BuyWindowDisabled",
		"inputs": []
	},
	{
		"type": "error",
		"name": "CoinAbandoned",
		"inputs": []
	},
	{
		"type": "error",
		"name": "CoinNotActive",
		"inputs": []
	},
	{
		"type": "error",
		"name": "Create2EmptyBytecode",
		"inputs": []
	},
	{
		"type": "error",
		"name": "CreatorShareTooSmall",
		"inputs": []
	},
	{
		"type": "error",
		"name": "CurveComplete",
		"inputs": []
	},
	{
		"type": "error",
		"name": "CurveNotActive",
		"inputs": []
	},
	{
		"type": "error",
		"name": "CurveNotComplete",
		"inputs": []
	},
	{
		"type": "error",
		"name": "EthTransferFailed",
		"inputs": []
	},
	{
		"type": "error",
		"name": "FailedDeployment",
		"inputs": []
	},
	{
		"type": "error",
		"name": "FeeOutOfBand",
		"inputs": []
	},
	{
		"type": "error",
		"name": "GraduationOutOfGas",
		"inputs": []
	},
	{
		"type": "error",
		"name": "GraduationWhilePoolManagerUnlocked",
		"inputs": []
	},
	{
		"type": "error",
		"name": "GraduationWhilePositionManagerLocked",
		"inputs": []
	},
	{
		"type": "error",
		"name": "InsufficientBalance",
		"inputs": [
			{
				"name": "balance",
				"type": "uint256",
				"internalType": "uint256"
			},
			{
				"name": "needed",
				"type": "uint256",
				"internalType": "uint256"
			}
		]
	},
	{
		"type": "error",
		"name": "InvalidDevBuyer",
		"inputs": []
	},
	{
		"type": "error",
		"name": "LaunchFeeNotPaid",
		"inputs": []
	},
	{
		"type": "error",
		"name": "LaunchFeeTooHigh",
		"inputs": []
	},
	{
		"type": "error",
		"name": "LaunchesPaused",
		"inputs": []
	},
	{
		"type": "error",
		"name": "MetadataEmpty",
		"inputs": []
	},
	{
		"type": "error",
		"name": "MetadataTooLong",
		"inputs": []
	},
	{
		"type": "error",
		"name": "MigratorUnset",
		"inputs": []
	},
	{
		"type": "error",
		"name": "NativeValueMismatch",
		"inputs": []
	},
	{
		"type": "error",
		"name": "NotAbandonable",
		"inputs": []
	},
	{
		"type": "error",
		"name": "NotOperator",
		"inputs": []
	},
	{
		"type": "error",
		"name": "NotPassFactory",
		"inputs": []
	},
	{
		"type": "error",
		"name": "NotProposedCreator",
		"inputs": []
	},
	{
		"type": "error",
		"name": "NotSelf",
		"inputs": []
	},
	{
		"type": "error",
		"name": "OwnableInvalidOwner",
		"inputs": [
			{
				"name": "owner",
				"type": "address",
				"internalType": "address"
			}
		]
	},
	{
		"type": "error",
		"name": "OwnableUnauthorizedAccount",
		"inputs": [
			{
				"name": "account",
				"type": "address",
				"internalType": "address"
			}
		]
	},
	{
		"type": "error",
		"name": "OwnershipNotRenounceable",
		"inputs": []
	},
	{
		"type": "error",
		"name": "PoolTermsRejected",
		"inputs": []
	},
	{
		"type": "error",
		"name": "QuoteDecimalsMismatch",
		"inputs": [
			{
				"name": "expected",
				"type": "uint8",
				"internalType": "uint8"
			},
			{
				"name": "actual",
				"type": "uint8",
				"internalType": "uint8"
			}
		]
	},
	{
		"type": "error",
		"name": "QuoteExceedsInput",
		"inputs": []
	},
	{
		"type": "error",
		"name": "QuoteInvalid",
		"inputs": []
	},
	{
		"type": "error",
		"name": "QuoteNotApproved",
		"inputs": []
	},
	{
		"type": "error",
		"name": "RecipientIsSelf",
		"inputs": []
	},
	{
		"type": "error",
		"name": "ReentrancyGuardReentrantCall",
		"inputs": []
	},
	{
		"type": "error",
		"name": "SafeERC20FailedOperation",
		"inputs": [
			{
				"name": "token",
				"type": "address",
				"internalType": "address"
			}
		]
	},
	{
		"type": "error",
		"name": "SellWindowDisabled",
		"inputs": []
	},
	{
		"type": "error",
		"name": "SlippageExceeded",
		"inputs": []
	},
	{
		"type": "error",
		"name": "SniperWindowTooLong",
		"inputs": []
	},
	{
		"type": "error",
		"name": "SplitTooLarge",
		"inputs": []
	},
	{
		"type": "error",
		"name": "TargetTooLarge",
		"inputs": []
	},
	{
		"type": "error",
		"name": "TargetTooSmall",
		"inputs": []
	},
	{
		"type": "error",
		"name": "TooManyExemptions",
		"inputs": []
	},
	{
		"type": "error",
		"name": "UnexpectedNativeValue",
		"inputs": []
	},
	{
		"type": "error",
		"name": "UnknownCoin",
		"inputs": []
	},
	{
		"type": "error",
		"name": "ZeroAddress",
		"inputs": []
	},
	{
		"type": "error",
		"name": "ZeroMaxLaunchFee",
		"inputs": []
	},
	{
		"type": "error",
		"name": "ZeroOperator",
		"inputs": []
	}
]
