[
 {
  "type": "constructor",
  "inputs": [
   {
    "name": "registry_",
    "type": "address",
    "internalType": "contract ILaunchRegistry"
   },
   {
    "name": "book_",
    "type": "address",
    "internalType": "contract IReserveBook"
   },
   {
    "name": "locker_",
    "type": "address",
    "internalType": "contract ILaunchLocker"
   },
   {
    "name": "assetRegistry_",
    "type": "address",
    "internalType": "contract ILaunchpadAssetRegistry"
   },
   {
    "name": "sunsetCanceller_",
    "type": "address",
    "internalType": "contract SunsetCanceller"
   },
   {
    "name": "quorumRescue_",
    "type": "address",
    "internalType": "contract QuorumRescue"
   },
   {
    "name": "hook_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "rohmeSafe_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "launchTwapFeed_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "feeSetter_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "launchFeeGRohm_",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "deployers",
    "type": "address[10]",
    "internalType": "address[10]"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "FEE_BURN_ADDRESS",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "FRAGMENT_MULTIPLE",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "GRANT_BPS",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint16",
    "internalType": "uint16"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "INITIAL_INDEX",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_LAUNCH_FEE",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "MAX_MIN_PRICE_USD9",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "abandon",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "acceptFeeSetter",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "assetRegistry",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract ILaunchpadAssetRegistry"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "book",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IReserveBook"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "build",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "create",
  "inputs": [
   {
    "name": "name",
    "type": "string",
    "internalType": "string"
   },
   {
    "name": "symbol",
    "type": "string",
    "internalType": "string"
   },
   {
    "name": "metadataURI",
    "type": "string",
    "internalType": "string"
   },
   {
    "name": "epochChoice",
    "type": "uint8",
    "internalType": "uint8"
   }
  ],
  "outputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "d1",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D1_TokenDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "d2a",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D2a_StakingDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "d2b",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D2b_GovDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "d3",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D3_TreasurySetDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "d4",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D4_BondDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "d5a",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D5a_TimelockDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "d5b",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D5b_GovDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "d6",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D6_PolicyDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "d6b",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D6b_ListerDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "d7",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract D7_ReceiptDeployer"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "feeSetter",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "gRohm",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "getLaunch",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "tuple",
    "internalType": "struct Launch",
    "components": [
     {
      "name": "phase",
      "type": "uint8",
      "internalType": "enum Phase"
     },
     {
      "name": "abandoned",
      "type": "bool",
      "internalType": "bool"
     },
     {
      "name": "creator",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "totalSupply",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "seedWethWei",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "launchPriceUsd9",
      "type": "uint256",
      "internalType": "uint256"
     },
     {
      "name": "tickSpacing",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "authority",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "token",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "treasury",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "distributor",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "stakedToken",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "govToken",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "staking",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "bondDepository",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "redemptionModule",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "policyGuard",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "timelock",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "governor",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "lister",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "pair",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "poolIdWeth",
      "type": "bytes32",
      "internalType": "PoolId"
     },
     {
      "name": "poolIdGRohm",
      "type": "bytes32",
      "internalType": "PoolId"
     },
     {
      "name": "startTickWeth",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "startTickGRohm",
      "type": "int24",
      "internalType": "int24"
     },
     {
      "name": "receipt",
      "type": "address",
      "internalType": "address"
     },
     {
      "name": "metadataURI",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "name",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "symbol",
      "type": "string",
      "internalType": "string"
     },
     {
      "name": "defaults",
      "type": "tuple",
      "internalType": "struct LaunchDefaults",
      "components": [
       {
        "name": "totalSupply",
        "type": "uint256",
        "internalType": "uint256"
       },
       {
        "name": "creatorAllocBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "wethPoolBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "curvePreset",
        "type": "uint8",
        "internalType": "uint8"
       },
       {
        "name": "epochLength",
        "type": "uint256",
        "internalType": "uint256"
       },
       {
        "name": "rewardRatePpm",
        "type": "uint256",
        "internalType": "uint256"
       },
       {
        "name": "votingDelay",
        "type": "uint48",
        "internalType": "uint48"
       },
       {
        "name": "votingPeriod",
        "type": "uint32",
        "internalType": "uint32"
       },
       {
        "name": "timelockDelay",
        "type": "uint256",
        "internalType": "uint256"
       },
       {
        "name": "proposalThresholdBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "quorumBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "bondFloorBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "gateMarketCapBps",
        "type": "uint16",
        "internalType": "uint16"
       },
       {
        "name": "bondVesting",
        "type": "uint256",
        "internalType": "uint256"
       },
       {
        "name": "seedWethWei",
        "type": "uint256",
        "internalType": "uint256"
       }
      ]
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "hook",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "isOpened",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "launch",
  "inputs": [
   {
    "name": "name",
    "type": "string",
    "internalType": "string"
   },
   {
    "name": "symbol",
    "type": "string",
    "internalType": "string"
   },
   {
    "name": "metadataURI",
    "type": "string",
    "internalType": "string"
   },
   {
    "name": "epochChoice",
    "type": "uint8",
    "internalType": "uint8"
   }
  ],
  "outputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "launchCount",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "launchFeeGRohm",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "launchTwapFeed",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "locker",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract ILaunchLocker"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "open",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "pendingFeeSetter",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "phaseOf",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint8",
    "internalType": "enum Phase"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "quorumRescue",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract QuorumRescue"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "registry",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract ILaunchRegistry"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "rohmeSafe",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "setLaunchFee",
  "inputs": [
   {
    "name": "newFee",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setPendingFeeSetter",
  "inputs": [
   {
    "name": "newSetter",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "sunsetCanceller",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract SunsetCanceller"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "v2Factory",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IUniswapV2Factory"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "weth",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "event",
  "name": "DAOLaunched",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "indexed": true,
    "internalType": "uint256"
   },
   {
    "name": "creator",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "token",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "stakedToken",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "govToken",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "staking",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "distributor",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "treasury",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "bondDepository",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "policyGuard",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "redemptionModule",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "governor",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "timelock",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "authority",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "locker",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "lister",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   },
   {
    "name": "poolIdWeth",
    "type": "bytes32",
    "indexed": false,
    "internalType": "PoolId"
   },
   {
    "name": "poolIdGRohm",
    "type": "bytes32",
    "indexed": false,
    "internalType": "PoolId"
   },
   {
    "name": "startTickWeth",
    "type": "int24",
    "indexed": false,
    "internalType": "int24"
   },
   {
    "name": "startTickGRohm",
    "type": "int24",
    "indexed": false,
    "internalType": "int24"
   },
   {
    "name": "totalSupply",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "metadataURI",
    "type": "string",
    "indexed": false,
    "internalType": "string"
   },
   {
    "name": "receipt",
    "type": "address",
    "indexed": false,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "FeeSetterTransferStarted",
  "inputs": [
   {
    "name": "oldSetter",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "pendingSetter",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "LaunchAbandoned",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "indexed": true,
    "internalType": "uint256"
   },
   {
    "name": "creator",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "refund",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "LaunchAccounting",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "indexed": true,
    "internalType": "uint256"
   },
   {
    "name": "launchPriceUsd9",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "curveSupply",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "LaunchFeeBurned",
  "inputs": [
   {
    "name": "payer",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "LaunchFeeSet",
  "inputs": [
   {
    "name": "oldFee",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "newFee",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "LaunchFeeSetterChanged",
  "inputs": [
   {
    "name": "oldSetter",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "newSetter",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "LaunchStaged",
  "inputs": [
   {
    "name": "launchId",
    "type": "uint256",
    "indexed": true,
    "internalType": "uint256"
   },
   {
    "name": "phase",
    "type": "uint8",
    "indexed": false,
    "internalType": "enum Phase"
   }
  ],
  "anonymous": false
 },
 {
  "type": "error",
  "name": "AlreadyAbandoned",
  "inputs": []
 },
 {
  "type": "error",
  "name": "CannotAbandon",
  "inputs": []
 },
 {
  "type": "error",
  "name": "FeeAboveMax",
  "inputs": []
 },
 {
  "type": "error",
  "name": "LockerNotBound",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotBuilt",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotCreated",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotCreator",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotFactoryRegistered",
  "inputs": []
 },
 {
  "type": "error",
  "name": "OnlyFeeSetter",
  "inputs": []
 },
 {
  "type": "error",
  "name": "OnlyPendingFeeSetter",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ReceiptMismatch",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ReentrancyGuardReentrantCall",
  "inputs": []
 },
 {
  "type": "error",
  "name": "SafeERC20FailedOperation",
  "inputs": [
   {
    "name": "token",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "WarmupNotZero",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
 }
]